集算报表 功能详解

数据源计算

集算报表内置了集算引擎用于完成数据的进一步计算,为报表提供数据源支持。数据计算逻辑通过使用集算器语法编写在集算脚本中,脚本代码可以分步编写,使用单独的集算脚本编辑器还可以实时查看每个步骤的运行结果。

集算脚本既可以访问传统关系型数据库,也可以读取文本、文件或文件系统、JSON、NoSQL数据库的数据,同时可以为报表返回多个结果集使用。

component_datasource_1

集算脚本返回多结果集

集算引擎用于解析脚本的运行,完成计算层任务,将结果集输出给报表。集算引擎除了可以处理单线程计算任务,还可以完成多线程并行计算,集算器提供了方便快捷的数据拆分办法,还提供了先进的游标机制,可以高效地把并行结果进行归并,从而快速完成数据源计算。

报表设计

类Excel的编辑

集算报表采用类Excel的方式进行报表的绘制和编辑,可以直接读入Excel报表格式(文档类型即为xls),生成的报表可以无缝导出为Excel格式:

component_design_1

集算报表主编辑界面

底图描绘实现套打绘制

集算报表采用底图描绘的方案解决套打时的报表绘制问题。可将需要套打的票据扫描成图片,作为报表设计的底图,然后依照图片上格线进行报表描绘,可保证绘制出的报表能够精确地套打进入印刷票据中。

component_design_2

底图描绘方式进行套打绘制(下面的表格是底图)

灵活快捷的分组汇总

集算报表可简单完成带有多级分组与汇总的普通行式报表,采用单元格分组函数实现分组扩展,没有明显的分组区域,从而在增删分组或改变分组次序时不必象传统报表工具需要重新设计分组区内数据表达式。集算报表独创的主格关联机制决定了统计汇总的范围,汇总表达式可以摆放在报表中任何合理的位置(分组上/下边或在分组明细同行合并成一个大格)。

component_design_3

带分组合计的行式报表(运行)

行列对称的扩展机制

集算报表行列对称设计,无须专门的交叉表模型处理列向变动的报表。多层、分片交叉报表均可轻松实现,并可类似行式报表一样编写自由的汇总运算。

component_design_4

多层交叉带汇总报表

层次座标

集算报表发明的层次坐标和位移坐标概念能够对扩展后单元格/集进行命名,从而可以在表达式中精确描述出对其它单元格的引用,完美地解决自由格间运算。有规律的单元格跨行组运算可轻松实现,对于无规则的任意运算,集算报表还提供类Excel式的格间运算。

子报表

集算报表支持不限嵌套层数的子报表功能。
子报表分为引入式和嵌入式两种,引入式将子表数据和格式依次填到主表的单元格中,而嵌入式则将整个子表缩放后嵌入到主表的某个单元格中。

component_design_5

嵌入式子报表(主子表的格线不对齐)

component_design_6

引入式子报表(子表延用主表的格线)

统计图

集算报表的统计图数据来源于报表内而非重新再设置数据源,因而也可以支持多表多库的统计图。同一张报表可绘制多个统计图,甚至可绘制在分组内,随着数据分组一起扩展成多个。

集算报表提供强有力的统计图开发接口,支持通过二次开发和第三方产品,实现丰富的展现效果。

在一些特殊情况下,系统提供的默认统计图如果都不能满足要求,那么,我们就可以利用自定义统计图了。自定义统计图可以满足任意一种特殊的统计样式和效果。只需要符合API接口即可实现,而且更为灵活。

报表自身的单元格能支持嵌入HTML元素,也就是说,我们可以将一个FLASH或者其他的支持交互的动态元素作为插件,和报表共同工作,实现一些更为美观和有特殊交互功能的展示效果。

报表参数与宏

集算报表一般意义的报表参数功能。参数有数据类型,可以用于报表的数据源(SQL语句)或报表中的运算表达式中。

component_design_9

报表参数定义

component_design_10

SQL语句中使用参数

除参数外,集算报表还提供特有的宏。宏没有数据类据,仅是简单地在语句或表达式中替换。例如,可以将SQL语句中SELECT的列名或FROM的表名或ORDER BY的方向甚至整句SQL语句都作为宏而临时改变,这样将给使用者提供更加灵活的控制方式。

报表展现输出

集算报表不需安装控件,可以实现纯HTML报表方式,可以支持PDF,Excel等输出,提供了全面的页面与打印控制,能很多地满足Web报表的展现需要。同时,集算报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。

报表元素的外观属性

集算报表对报表元素提供非常丰富的外观属性,包括:

component_display_1

图片显示与大字段上传

集算报表支持图片显示,可以支持的图片包括图片文件和图片字段,也支持自定义来源的图片,图片格式支持GIF/PNG/JPG等。
集算报表的大字段上传,不仅仅支持图片格式的文件,还支持其他格式的文件,例如word文档、压缩包等等,只不过只有图片格式的文件才可以显示在报表中,其他格式的文件仅仅提供上传,不支持显示。

统计图

集算报表支持柱状图、饼图、折线图、甘特图、仪表盘等20多种类型的统计图:

component_display_2

component_display_3

component_display_4

component_display_5

页面(HTML)输出

集算报表可在WEB上生成标准的纯HTML输出格式,对IE5和Netscape7以及上版本均可支持且效果一致,统计图则完成以纯HTML图片形式展现,浏览器端无须事先安装任何插件。

component_display_6

除静态HTML外,集算报表还可生成固定表头(上/左均可)的可滚动报表以及行式分组可伸缩报表,大大方便了用户的使用。

文件输出

除标准HTML外,集算报表还可将报表以文件方式导出,例如:

(1)Excel

集算报表可输出完全不失真的Excel文件,报表中的统计图也将嵌入其中,并附带有各种打印属性,生成的Excel可不作任何调整直接打印而不会丧失格式信息。还可对导出的Excel进行进一步的加工处理。

component_display_7

(2)PDF

集算报表可输出PDF文件,报表中的统计图也将嵌入,并附有纸张打印信息,结果可直接输出打印。

(3)RAT文件

RAT文件是集算报表自有的文件格式,用以保存运算后的报表结果,其中带有统计图、纸张打印信息等,可由集算报表设计器打开查看以实现报表的脱机浏览(不依赖于第三方软件且可在UNIX上显示),并可打印或再次输出成上述几种格式的文件。

分页与分栏

集算报表对报表页面提供了强有力的控制功能:
分页方案:支持按纸张大小分页、按行列数分页、强制分页(分组后或固定行列)。
分页方向:支持纵向和横向双方向分页,有上表头、页眉、页脚、左表头等功能。上/左表头信息每页均会合理重复。
单元格拆分:单一单元格不能被分页拆分,当合并单元格被拆分时可选择其中数据是否也分页断开显示。
分栏:支持横向分栏;支持末页补足空行的操作。

component_display_8

打印

集算报表可通过采用JavaApplet的方式实现浏览器中的精确打印,可支持如下功能:
(1)一纸多页,实现小票据或卡片式打印,可选择按行排列和按列排列;
(2)缩放与定位:打印前的缩放及在纸张中的定位控制;
(3)页码控制,选择不同页码打印;
(4)打印前可控制是否允许再修改数据。

component_display_9

集算报表不需安装控件,可以实现纯HTML报表方式,可以支持PDF,Excel等输出,提供了全面的页面与打印控制,能很多地满足Web报表的展现需要。同时,集算报表对图表有良好的支持,可以生成柱图、饼图、折线图等二十几种图表。

报表元素的外观属性

集算报表对报表元素提供非常丰富的外观属性,包括:

component_display_1

图片显示与大字段上传

集算报表支持图片显示,可以支持的图片包括图片文件和图片字段,也支持自定义来源的图片,图片格式支持GIF/PNG/JPG等。
集算报表的大字段上传,不仅仅支持图片格式的文件,还支持其他格式的文件,例如word文档、压缩包等等,只不过只有图片格式的文件才可以显示在报表中,其他格式的文件仅仅提供上传,不支持显示。

统计图

集算报表支持柱状图、饼图、折线图、甘特图、仪表盘等20多种类型的统计图:

component_display_2

component_display_3

component_display_4

component_display_5

页面(HTML)输出

集算报表可在WEB上生成标准的纯HTML输出格式,对IE5和Netscape7以及上版本均可支持且效果一致,统计图则完成以纯HTML图片形式展现,浏览器端无须事先安装任何插件。

component_display_6

除静态HTML外,集算报表还可生成固定表头(上/左均可)的可滚动报表以及行式分组可伸缩报表,大大方便了用户的使用。

文件输出

除标准HTML外,集算报表还可将报表以文件方式导出,例如:

(1)Excel

集算报表可输出完全不失真的Excel文件,报表中的统计图也将嵌入其中,并附带有各种打印属性,生成的Excel可不作任何调整直接打印而不会丧失格式信息。还可对导出的Excel进行进一步的加工处理。

component_display_7

(2)PDF

集算报表可输出PDF文件,报表中的统计图也将嵌入,并附有纸张打印信息,结果可直接输出打印。

(3)RAT文件

RAT文件是集算报表自有的文件格式,用以保存运算后的报表结果,其中带有统计图、纸张打印信息等,可由集算报表设计器打开查看以实现报表的脱机浏览(不依赖于第三方软件且可在UNIX上显示),并可打印或再次输出成上述几种格式的文件。

分页与分栏

集算报表对报表页面提供了强有力的控制功能:
分页方案:支持按纸张大小分页、按行列数分页、强制分页(分组后或固定行列)。
分页方向:支持纵向和横向双方向分页,有上表头、页眉、页脚、左表头等功能。上/左表头信息每页均会合理重复。
单元格拆分:单一单元格不能被分页拆分,当合并单元格被拆分时可选择其中数据是否也分页断开显示。
分栏:支持横向分栏;支持末页补足空行的操作。

component_display_8

打印

集算报表可通过采用JavaApplet的方式实现浏览器中的精确打印,可支持如下功能:
(1)一纸多页,实现小票据或卡片式打印,可选择按行排列和按列排列;
(2)缩放与定位:打印前的缩放及在纸张中的定位控制;
(3)页码控制,选择不同页码打印;
(4)打印前可控制是否允许再修改数据。

component_display_9

报表展现输出

集算报表提供了强有力的交互能力和分析能力,能够支持用户进行数据分析。

灵活定义的查询和参数功能

在很多情况下,用户需要通过输入条件,对数据进行查询,并灵活控制显示的数据范围。集算报表通过参数模板的功能,可以非常灵活地定义各种查询界面和查询条件,由用户方便地输入查询条件,交互式地控制报表的内容和形式。

实际上,影响一个报表的参数可能有很多项,其中部分参数是应用系统或环境的基本信息,不应当再由用户输入,如当前登录的用户角色、当天的日期等。无须输入的参数被称之为系统参数,对应的需要输入的称为用户参数。集算报表提供了强有力的参数处理机制,可以分别对待处理这两类不同情况的参数。

component_interaction_1

报表分析

集算报表的所有单元格和统计图的图例上都可以加上超链接,且可以引当前单元格的值和统计图图例对应值作为超链接的参数。这样,可以将几张事先做好的报表通过链接参数串到一起,实现对数据的逐级钻取。

数据填报

填报表单的主要目标在于数据采集,即已有的数据不够完整,还需要相关人员或部门补充录入一部分后才能再进行下一步的统计分析。

支持填写的表格需要增加大量相关的属性,这些属性对于只用于查看的统计报表没有用处;而用于填写的表格一般没有多复杂的计算要求,这却又是统计报表最需要的地方。如果把这两个功能点混合到一个产品中,就容易产生顾此失彼的问题,报表计算时会带着许多无用的填写属性,影响性能,而处理填写问题时又要确保与复杂的计算逻辑不矛盾,降低灵活性。虽然报表和填写都体现在表格上,但事实上是侧重点很不相同的功能。

因此,在新版本中,我们把填报功能单独拆分出来。

填报表单的技术难点除了要能够方便填写之外,更重要的在于能让业务人员自行设计出可结构化的表格以供填写。填写本身的技术在过去填报表的发展过程中已经较为完善;但降低结构化操作的难度一直没有实现。

数据补充采集一般由业务部门主导,而只有结构化后的数据才可以进一步分析处理,但业务人员难以掌握数据结构化的原理和技术,目前只能借助技术部门定制开发,或者采集回一些未结构化的数据后只能简单查看而无法进一步分析统计。

润乾报表4.x对这个目标解决得也不好,虽然提供了灵活的数据源映射机制,但没有降低结构化的理解难度,仍需要程序员才能描述表格数据与结构化存储之间的对应关系。

新的填报表单在保持原有填写技术的同时,着重设计了数据映射关系,只要熟悉Excel的业务用户经过的案例讲解就能够设计出可结构化的表格,采集上来的数据可以直接实施分组汇总、交叉钻取以及绘制图形等分析动作。