用FineReport报表系统构建资金监管平台

技术小阿哥 2017-11-27

脚本 报表

一、应用背景

计算机的应用已经渗透到日常工作的许多方面,无论是其自身还是所发挥的作用,计算机都标志着一种高科技,使工作高效率和高水平。为了能更方便,更轻松,更好的管理,信息化建设正在日益发展壮大,更加完善。2007年11月,财政部党组明确提出了“一体化建设”指导思想,要求做到管理一体化、业务一体化和技术一体化。近两年来,始终坚持贯彻落实一体化建设指导思想,不断加快建设步伐,信息化建设正逐步由“分散”走向“统一”,取得明显进展。

二、工具

资金监管系统采用PHP网站架构,iframe方式嵌入了,使用FinReport6.5.3版本报表软件,连接相关业务系统ORACLE数据库,制作出图形分析和报表分析,最终通过appserv访问资金监管系统。

三、数据源

资金监管系统来源数据来于相关多个业务系统ORACLE数据库。

(一)总体发放分析
FFDW表,是发放单位表,字段分为,单位代码和单位名称。

20150825142426117

FFLX表,是发放类型表,字段分为,发放类型代码、发放类型名称、单位代码、备注。

20150825142429712

FFXM表,是发放项目表,字段为,发放项目代码、发放项目名称、发放类型、发放单位代码、预警金额、备注、项目备注。

20150825142435959

HM_AREA表,是单位表,字段分为,区域代码和区域名称。

20150825142442565

HM_DATA表,是发生数据表,字段分为,ID号、部门代码、发放项目代码、***号、姓名、区域代码、账号、金额、日期、备注、发放日期。

20150825142448548

RYXX表,是人员信息表,字段分为,***号、姓名、性别、联系地址、联系电话、状态、日期、单位代码。
20150825142455679
(二)账务分析
Sjzw_dw表,是财务单位表,字段分为单位代码和单位名称。

20150825142516416

Sjzw_dwkm表,是单位科目表,字段分为单位代码,科目代码,科目名称。

20150825142525878


Sjzw_pz表,是凭证表,字段分为单位代码、凭证ID、凭证日期、凭证号、凭证类型、用途、科目代码、借方金额、贷方金额、审核员、财务主管、制单员、记账员,记账日期。 

20150825142532018

四、需求分析
对全区资金进行资金监管,包括区、镇、街道财政和行政事业单位的所有资金收入和支出过程,银行账户资金变动状况进行实时监督、管理、分析,并通过各类图表等方式实时展示反映、预警控制和实时互动交流分析管理。

.         各类报表可以自由组合并预测

每张报表在特定的条件下可以由指定用户自由组合、定义组成相关的报表,并有多种查询方式,同时需要有预测分析功能。

.         各类报表需要有预警功能

.         每张报表都需要有预警功能,而预警值可以由用户自行定义,在预警范围内有数据为正常情况而无需做任何动作时,可以以打标记的方式让这条数据不出现在预警中。

.         各类报表的灵活性

.         每张报表的图形分析要直观明了,联动性强,数据报表需要逐层挖掘至最底层明细数据。报表的操作灵活性要强,需要可以如EXCEL一样可以随意指定对齐方式、文本数字格式、多列排序,便于所有业务管理人员操作。

(一)资金总体发放分析
资金总体发放图形分析分三块统计图,第一部分为部门发放比例,点击部委传参联动第二部分部门发放类型比例,点击发放类型传参联动第三部分部门发放类型的趋势。
资金总体发放报表分析也分为三块,第一部分是发放汇总总表,以交叉报表形式展现,横向为部门,纵向为区域,金额以部门和区域交叉显示。横向纵向每个金额都可以点击,传不同条件展现出不同数据报表。第二部分是定位查询,输入框输入信息点击查询,得到关于当前输入框内信息的报表。第三部分为预警分析报表,每张报表设置好预警值,可以查看预警信息。
(二)账务分析(资产负债表)
资产一般是按各种资产变化先后顺序逐一列在表的左方,反映单位所有的各项财产、物资、债权和权利;所有的负债和所有者权益则逐一列在表的右方。负债一般列于右上方分别反映各种长期和短期负债的项目,业主权益列在右下方,反映业主的资本和盈余。左右两方的数额相等。资产负债表在制作过程中分为2类:第一类为有规则资产负债表,取数据全部取每一个一级科目的金额,一个一个科目单列在资产负债表上;第二类为无规律资产负债表,取数据全部取每一个一级科目的金额,单个科目或多个科目相加列在资产负债表上。

五、数据分析
(一)资金总体发放分析
资金总体发放分析的内容:资金发放分析、资金发放对比分析、资金发放预警分析。
资金总体发放分析的目的:揭示单位发放每个发放类型的内涵、了解单位发放资金变动情况及变动原因、调整发放异常数据、为下一年预算做调整。
(二)账务分析(资产负债表)
资产负债表分析的内容:资产负债表水平分析、资产负债表垂直分析、资产负债表项目分析。
资产负债表分析的目的:揭示资产负债表及相关项目的内涵、了解单位财务状况的变动情况及变动原因、评价单位会计对单位收支状况的反映程度、评价单位的会计政策、修正资产负债表的数据。

六、报表制作
①传统的图形分析及报表制作方法
难点1、图形界面中无法制作中文字定位查询,输入中文字系统不识别。
难点2、图形界面中表格无法自定义合并单元格居左、居中、居右。
难点3、图形界面中统计图分析模块单独最大化,数据多时,数据紧凑无法看清楚数据。
难点4、报表中无法行列冻结显示,数据横向和纵向数据多时,向下向上无法知道当前单元格字段意思。
难点5、报表中定位查询无法在整张报表中定位查询,只能查询定位到当前页报表数据。
难点6、报表中无法屏蔽无意义数据,报表数据为零的条目屏蔽显示难;
难点7、报表中无法在线打印,只能导出EXCL再打印。
难点8、报表中数据无法自动刷新,每次只能人工手动刷新数据。
难点9、通过SQL语句查询出数据,无法再报表内自定义取数和排列,无法制作无规则报表(自定义报表)。
②利用FineReport报表工具
1、新建一个报表模板,模板内新建一个参数,在参数设计中,按钮控件事件中添加定位查询后报表超链接代码
20150825142541654

连接FineReport报表JS脚本中添加代码:
var XM = this.options.form.getWidgetByName("XM").getValue();
window.open("/WorkSpace1/ReportServer?reportlet=[60e0][6c11]/[5d07][660e][53bf][60e0][6c11][8d44][91d1][603b][4f53][53d1][653e][5206][6790][ff08][4e2a][4eba][67e5][8be2][62a5][8868][ff09].cpt&xm="+FR.cjkEncode(XM));


如果连接第三方报表JS脚本可以修改编码转换方式。 

20150825142546671

2、表格每一列可以任意合并单元格,居左、居中、居右,还可以调整不同格式。
20150825142552682
3、图形分析界面模板中,每个模块都用网页框控件嵌入,如第一部分图形分析制作2份,一份嵌入在网页框控件中,另一份放大版通过超链接写在最大化图片上面。
20150825142557726
4、报表冻结设置,文件—页面设置—其他中输入重复标题起始行和重复标题结束行,再冻结重复标题结束行打钩。

20150825142608489
5、FineReport报表查询过滤,针对当前报表所有数据进行查询过滤,不存在无法查询过滤翻页数据。
6、报表中屏蔽无意义数据,在需要屏蔽无意义数据关键单元格中,右击条件属性,添加条件属性,增加行高属性,高度为0,输入屏蔽无意义数据条件。


20150825142617532
7、FineReport报表含多种打印方式,其中FLASH打印模式操作最为方便简洁。
20150825142627278

20150825142634263
8、FineReport报表每次打开都是最新数据,打开FR报表时,实时刷新当前报表中数据集中的SQL语句,得到最新数据。
9、制作无规律资产负债表,资产负债表分2类数据资产类和负债类,新建2个数据集,一个为资产类科目借方减去贷的数据,另一个为负债科目贷方减去借方的数据。
数据集中唯一值取数用公式replace(UNIQUEARRAY(数据集名称select(字段名)),",","")如:月份、单位名称、单位负责人、财务主管、制单人、审核员都可以用此公式取数据。
资产负债表取无规律值通过用公式=MAP(符合条件的值, "数据集名称", "符合条件的列数","取值的列数")如:取科目“应收在院病人医药费”的年初数,公式输入=MAP(111, "科目1-5", "1", "3"),公式表示取数据集“科目1-5”中第一列值等于111对应的第三列的值。多个科目合计数可以使用公式=MAP(符合条件的值, "数据集名称","符合条件的列数", "取值的列数")+MAP(符合条件的值, "数据集名称","符合条件的列数", "取值的列数"),如:去科目“货币资金”的年初数,输入公式=MAP(101, "科目1-5","1", "3")+MAP(102, "科目1-5","1", "3")+MAP(109, "科目1-5","1", "3"),公式表示取数据集“科目1-5”第一列值等于101、102、109对应的第三列的值的合计数。
20150825142645352
10、在报表页面设置,其他中报表设置居中对齐,设置冻结重复行,目前版本设置冻结后报表分页预览无法居中显示,通过在报表WEB属性中添加JS代码弥补此问题使用以下方法,但还存在缺陷,WEB预览报表时看不到上下滚动条和在数据量多网速慢的情况下,系统先刷新了数据在最大化,无法完成居中效果。

20150825142657853

在报表WEB属性,分页预览报表中使用默认工具栏,添加“起始加载”在JS脚本中输入
setTimeout(‘top.moveTo(0,0)’,5);
setTimeout(‘top.resizeTo(screen.availWidth,screen.availHeight)’,5);
此脚本打开报表起最大化作用; 
再添加“加载结束”在JS脚本中输入 
varslmargin=($(‘.content-container’).width()-$(‘.pageContentDIVdiv:first-child’).width())/2
if (slmargin>0) $(‘.content-container’).css(‘margin-left’,slmargin);
此脚本弥补报表冻结后无法居中的缺陷。

20150825142750028

七、成果展示
(一)资金总体发放图形分析
20150825142802444
“资金总体发放分析”点击“点击查看明细表”得到“资金发放汇总表”,数据以部门横向扩展显示,以区域纵向扩展显示以交叉表形势汇总数据,横向纵向交叉金额数据可以点击,传相关条件可以得到更明细数据。
20150825142811585
“资金发放汇总表”点击部门汇总合计金额,得到“部门资金发放汇总表”,数据以资金发放类型横向扩展显示,以区域纵向扩展显示以交叉表形势汇总数据,横向纵向交叉金额数据可以点击,传相关条件可以得到更明细数据。
20150825142822993

部门资金发放汇总表”点击资金发放类型汇总合计金额,得到“资金发放类型资金发放明细表”,数据以月份横向扩展显示,区域、姓名、***、地址以列表纵向扩展显示以交叉表形势汇总数据。区域以分组显示,能方便查看某区域有多少人信息,报表添加了统计行数功能,能明确数量的多与少。
20150825142843297
“资金总体发放分析”点击“10天内到期”得到符合当前报表条件报表。
20150825142853018
“资金总体发放分析”点击“金额大于10万”得到符合当前报表条件报表。
20150825142903445
“资金总体发放分析”点击“金额大于等于1万小于10万”得到符合当前报表条件报表。
20150825142913922
“资金总体发放分析”点击“享受两项以上惠民政策”得到符合当前报表条件报表。

20150825142935535

点击***,得到此***的详细明细发放数据。


20150825142944919

(二)账务分析(资产负债表)
有规则资产负债表,同一张报表传不同单位,默认当前月日期显示数据。
有规则资产负债表单位1
20150825142957316
有规则资产负债表单位2
20150825143009238
无规则资产负债表(自定义报表),默认当前月日期显示数据。

 20150825143019636


本文转自 雄霸天下啦 51CTO博客,原文链接:http://blog.51cto.com/10549520/1688050,如需转载请自行联系原作者

登录 后评论
下一篇
云栖号资讯小编
743人浏览
2020-03-31
相关推荐
FineReport简明教程
4173人浏览
2016-04-12 12:21:27
如何建立数据分析中心
908人浏览
2017-07-04 15:21:00
0
0
0
931