润乾报表中对数据集添加过滤条件:ds1:select grade ,count(*) a from rpt_xd where grade is not null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了润乾报表中对数据集添加过滤条件:ds1:select grade ,count(*) a from rpt_xd where grade is not null相关的知识,希望对你有一定的参考价值。

ds2:select sum(a) ss from (select grade ,count(*) a from rpt_xd where grade is not null group by grade)
然后我想在润乾报表中有一栏是统计 每种grade占总数的比的 我再格中写:=ds1.select(a,grade=='AAA')/ds2.ss 但是最后预览的这个格变成了每个grade占所有的比,就是这个格被分成了好几行,有多少grade就有几行 我只想统计‘AAA’这个等级占所有等级数量的比 有什么解决办法?
呜呜 大家不要光浏览 给点建议吧 谢谢各位了

这是润乾最大的弱点啊,各种编码各种难学,一点也不考虑用户的感受 参考技术A 用select1本回答被提问者采纳

润乾集算报表的脚本数据集

         润乾集算报表提供了一种新的数据集类型——脚本数据集,同意用户在数据集中完毕数据的进一步计算和加工,为报表提供数据源支持。

以下详细来看一下脚本数据集。

什么是脚本数据集?

         集算报表的一种数据集类型。能够在脚本数据集中编辑计算脚本(脚本遵循集算器语法)完毕数据计算和处理,将加工后的结果集为报表提供数据源支持,从而使报表工具获得数据源再计算的能力。

         脚本数据集编辑器中即无法像集算器编辑器一样添加删除行列。也无法进行可视化调试,所以脚本数据集适用于计算脚本比較简单的情况。

怎样使用脚本数据集?

         脚本数据集与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。

     

脚本数据集的作用

      通过上面两个样例,能够看到脚本数据集的主要作用:

      1、完毕很规计算

         脚本数据集适合完毕一些很规运算(如实例一),这些运算既不适合在报表端做,又不适合在数据库中完毕。假设通过外置的数据集(存储过程或Java程序)实现又过于复杂。添加报表的开发门槛,这时使用集算报表的脚本数据集就是个不错的选择。

      2、支持多样性数据源

         像实例二中读取文本文件一样。脚本数据集使集算报表先天支持多样性数据源。不再依赖第三方程序。除了TXT。脚本数据集还能够支持xls、hadoop、nosql等数据源。

 

         此外。脚本数据集因为採用专门的计算环节,避免在报表中做计算,降低隐藏格,从而还能提高报表的总体性能。





以上是关于润乾报表中对数据集添加过滤条件:ds1:select grade ,count(*) a from rpt_xd where grade is not null的主要内容,如果未能解决你的问题,请参考以下文章

润乾报表中=ds1.group false是啥意思

润乾报表 多数据源如何比较两个字段值?

润乾报表之制作List列表

润乾报表:

如何动态改变报表的行高列宽

如何动态改变报表的行高列宽