标签:程序 xls java 输入 font 分组 复杂 存储 依赖
润乾集算报表提供了一种新的数据集类型——脚本数据集,同意用户在数据集中完毕数据的进一步计算和加工,为报表提供数据源支持。
以下详细来看一下脚本数据集。
集算报表的一种数据集类型。能够在脚本数据集中编辑计算脚本(脚本遵循集算器语法)完毕数据计算和处理,将加工后的结果集为报表提供数据源支持,从而使报表工具获得数据源再计算的能力。
脚本数据集编辑器中即无法像集算器编辑器一样添加删除行列。也无法进行可视化调试,所以脚本数据集适用于计算脚本比較简单的情况。
脚本数据集与SQL数据集类似。仅仅是脚本数据集中输入的不是SQL语句,而是分步的计算脚本。以下通过两个样例来看一下使用过程。
报表说明
依据学生总成绩排名后。依照蛇形分布进行分班(分两个班)。1班是1,4,5,8,…名。2班是2,3,6,7,…名。
现依据班级參数查询本班学生名单。
下面为实现步骤。
报表数据源
新建报表并设置报表參数
在集算报表设计器中新建报表,并设置班级參数:
新建脚本数据集
在数据集类型中选择“脚本数据集”,在脚本数据集编辑窗体分步输入计算脚本。完毕数据排列和过滤等计算。
A1:使用报表当前数据源demo运行sql查询全部学生名单及成绩等信息;集算脚本数据集同意连接不同数据源(非当前报表数据源)进行数据查询。能够先使用connect(“db”)建立数据源连接后。再依据该连接进行数据查询;
A2:依照学生成绩降序排列;
A3:为排序后的记录添加排名字段;
A4:使用A.step()函数取子集。这里依据报表參数class来动态获取每一个班级的成员;集算脚本数据集中能够直接使用报表定义的參数,更加简明,如本例中的class(这点与SQL数据集等不同);
A5:为报表返回结果集。
设置报表表达式
最后在报表模板中编辑报表表达式完毕报表制作。
预览报表,班级參数分别输入1和2,得到1班和2班学生名单,例如以下:
本例中脚本数据集完毕的计算不管使用报表表达式还是SQL都比較难以实现,SQL要通过子查询生成编号后,使用模(mod(no,4)=1 or mod(no,4)=0)才干完毕。而在集算脚本数据集中排序后使用A.step()函数就能够非常方便取出子集(实际上脚本中添加的排名字段无实际用途,仅仅是为了方便查看结果),非常easy。
脚本数据集除了能够操作数据库。还能够直接从文件里取数计算。以下来看实例二。
报表说明
学生測试成绩以文本文件(score.txt)存储,现须要依据班级參数,在全部学生成绩单中查询本班成绩并按学生分组汇总总成绩。
文件内容例如以下:
CLASS STUDENTID SUBJECT SCORE ID NAME GENDER AGE
Class one 1 English 84 1 Emily F 17
Class one 1 Math 77 1 Emily F 17
Class one 1 PE 69 1 Emily F 17
Class one 2 English 81 2 Elizabeth F 16
Class one 2 Math 80 2 Elizabeth F 16
Class one 2 PE 97 2 Elizabeth F 16
Class one 3 English 75 3 Sean M 17
Class one 3 Math 86 3 Sean M 17
Class one 3 PE 67 3 Sean M 17
Class one 4 English 96 4 Lauren F 15
新建报表设置參数
设置脚本数据集
A1:依据文件路径创建文件游标。
A2:使用cs.select()进行数据过滤,返回记录游标;
A3:针对游标依据学生进行分组汇总。求总成绩;
A4:通过result为报表返回结果集。
设置报表表达式
通过如上步骤使用脚本数据集完毕文件的读取并完毕过滤汇总等操作,很easy。
脚本数据集适合完毕一些很规运算(如实例一),这些运算既不适合在报表端做,又不适合在数据库中完毕。假设通过外置的数据集(存储过程或Java程序)实现又过于复杂。添加报表的开发门槛,这时使用集算报表的脚本数据集就是个不错的选择。
像实例二中读取文本文件一样。脚本数据集使集算报表先天支持多样性数据源。不再依赖第三方程序。除了TXT。脚本数据集还能够支持xls、hadoop、nosql等数据源。
此外。脚本数据集因为採用专门的计算环节,避免在报表中做计算,降低隐藏格,从而还能提高报表的总体性能。
标签:程序 xls java 输入 font 分组 复杂 存储 依赖
原文地址:http://www.cnblogs.com/yxysuanfa/p/6852508.html