Posts Tagged ‘宏’

宏介绍

10.12.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

宏在计算机相关的使用中是一个很常见的概念,其定义范围也很广,不同的产品,不同的软件其宏的具体定义和使用方法都不同。
快逸报表中的宏是一个没有数据类型的字符串标识,在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的宏名替换成宏值。

快逸报表中的宏分为两类:普通宏和动态宏

普通宏
利用宏可以在报表中动态的进行表达式的替换,根据用户传入的不同宏值,得到不同的报表,这样用户就不用根据不同的情况编制许多不同的报表了,大大减轻了用户的工作量。

如下面的图例,传入宏值为奖金时,报表显示奖金字段列,传人工资时显示工资列。

快逸报表普通宏

快逸报表普通宏

上面介绍的是快逸报表的普通宏设置,下面再来介绍一下动态宏:

动态宏
动态宏和普通宏的主要区别在于普通宏是直接将宏值传到报表中计算,动态宏是把传进来的宏值当成表达式进行计算,然后再把计算得到值做为宏值传到报表中参与计算。例子请看下图:

快逸报表动态宏

上面的例子就是动态宏的应用,统计字段中选择宏的值(数量),汇总方式里选择宏的计算方式(求和),然后再把计算后的宏值输出展现在报表上(统计数量的合计值:1270.00)。

例子中普通宏和动态宏的样式仅仅是众多表现形式中的一种,快逸用户可以根据自己的情况来灵活的设定自己的表现形式,合理的解决自己的需求。

附注:宏的制作方法可以参考教程:设计器—帮助—学习教程—报表初级设计—11章宏和13章动态宏
本文的例子来自:\quieeReport\webapps\quiee\reportFiles\基础报表—宏报表.raq和动态宏报表.raq

引自:报表工具知识库
原文链接: 宏介绍

巧用动态宏实现统计图

07.28.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

各大报表工具都有参数机制,但是支持宏的却少之又少。宏有着参数所不具备的灵活性,可以应对很多参数无法解决的局面。

如下图,是虚拟的一个数据集,现在要做一张带统计图的报表,要根据输入的参数(这个参数是行号或列号),得到该行或该列的数据,然后生成一个统计图。

1.jpg

比如:输入”行5″,就要得到”5,52,53,54,55″这5个数据做为系列值生成统计图,系列名称为对应的”列1,列2,列3,列4,列5″。输入”列5″,也类似,得到用”5,25,35,45,55″这5个数据生成统计图。

这种情况下,不可能简单通过参数去获得某行或某列的数据。表面上看,似乎是无法得到数据去生成统计图的。这时,动态宏就发挥它的重要作用了。

下面开始宏的制作,以及统计图的生成:

1 先定义一个参数:arg1

2.jpg

arg1:输入行号或列号,参数值1-5分别对应行1-行5,6-10分别对应列1-列5

2 定义两个动态宏:macro1 macro2

3.jpg

macro1:显示系列名称,宏值:case(arg1,list(”1″,”2″,”3″,”4″,”5″),”B1:F1″,”A2:A6″),即输入参数为行号时系列取列1-列5,输入参数为列号时系列值取行1-行5

macro2:显示系列值,宏值:case(arg1,list(”1″),”B2:F2″,list(”2″),”B3:F3″,list(”3″),”B4:F4″,list(”4″),”B5:F5″,list(”5″),”B6:F6″,list(”6″),”B2:B6″,list(”7″),”C2:C6″,list(”8″),”D2:D6″,list(”9″),”E2:E6″,list(”10″),”F2:F6″),即输入不同的行号或列号时取得对应的值

3 生成统计图:

4.jpg

设计器中的效果:

5.jpg

现在可以输入参数,预览看一下效果。输入9(即列4),就可以看到”列4″所在列的数据生成的统计图了。

6.jpg

由这个简单的例子,可以体现出宏的作用的强大,看似很难得到数据的报表,通过使用动态宏,也可以轻松实现!
引自:润乾报表知识库
相关文章:显示值or真实值?——谈谈导出excel的数据显示; 可树形展开的折叠报表的制作横向分页报表的标题切分用润乾报表轻松实现动态排序浏览式报表中如何使用checkbox

超链接中的宏传递

07.23.2009 by fengzhou - 0 Comment - 0
Posted in java报表相关

参数机制给报表设计带来了很大的灵活性,通过使用参数可以实现页面上的动态交互功能。然而,有时候仅仅有参数还是不够的,还需要更加灵活的宏机制。润乾报表的宏机制可以满足此类的需求。宏还分为普通宏和动态宏两种,动态宏可以预先进行运算,与参数机制结合就可以完成复杂的条件设置。

比如,一个查询订单的报表,通过设置参数模板可以在页面上实时选择想要的分组方式(按地区或按运货商),点击查询可以按照所选的方式进行分组。这时,在报表设计中就要用到宏机制。利用动态宏,来根据页面传过来的参数值进行不同的分组。更进一步的,在查询出的每个订单号后面加一个超链接,通过超链接把主页面中的宏传给子页面,并且在子页面中对传过来参数字段的值进行检索。也就是说,当选择按地区分组时,主页面中展现的是按地区的分组列表,点击每个分组后面的超链接时,在子页面中要显示该地区选中字段的详细信息,即通过超链接把主页面中的条件传递给了子页面作为其自身的检索条件,选择按运货商分组时效果也是同样。如下图所示:

1.png

2.png

主页面的报表设计界面及超链接定义如下:

3.png

定义了一个参数arg1接收页面输入的参数值,并定义了与此参数有关的动态宏macro1:

4.png

超链接页面的报表设计与上面的类似,通过设置的超链接接收由主页面传递过去的检索条件。

在实际应用中,灵活的使用参数与宏机制,可以提高整个报表系统的的页面交互性能,不用写脚本而轻松实现许多复杂的需求。
引自:润乾报表知识库
相关文章:显示值or真实值?——谈谈导出excel的数据显示; 可树形展开的折叠报表的制作横向分页报表的标题切分用润乾报表轻松实现动态排序

用润乾报表轻松实现动态排序

07.04.2009 by fengzhou - 0 Comment - 0
Posted in web报表

我们都知道在sql语句中写入orderby col1 asc/desc 可以将取出的数据按照指定规则进行排序展现,但是这必须在取数那一步就清楚需要以哪个字段为基准进行排序以及排序的升降。但很多时候,按照哪个字段排序是不固定的,升序降序也是不固定的,需要用户可以在页面上进行动态的设定,根据当前的设置,动态的对数据进行排序。

这个时候,使用润乾报表提供的动态宏设置,就可以完成上述需求。

1.制作一张网格式报表

1.png

2.设置两个参数arg1(排序字段)和arg2(升降序):

2.png

3.设置一个动态宏macro1,其值为:排序字段+空格+升降序,即arg1+’ ‘+arg2:

3.png

4.编辑数据集,在排序页面加上${macro1}为排序字段,或者直接在取数sql语句后加上:ORDER BY ${macro1}

4.png

5.png

5.建一个参数表单,用来选择排序字段和升降序:

6.png

6.这样,就可以在web页面上动态地选择要排序的字段和升降序了,如选择按照奖金的升序进行排列:

7.png

通过灵活的使用参数和宏,尤其是动态参数和动态宏,可以设计出很多在页面上与用户进行实时交互的查询展现报表,润乾报表提供的方便简洁的设置界面,也为报表开发人员省去了大部分的编码工作,使整个报表设计过程变得简单高效,结果却比以往更加出色。

引自:润乾报表知识库
原文链接:
用润乾报表轻松实现动态排序
相关文章:一种实现类似excel把负数显示成红色且去掉负号的方法 ; 导入带公式excel的问题web报表的扩展功能
润乾报表出了新版统计图解决行式填报导入excel发生错位的问题
其他相关内容: 润乾商业智能解决方案 ; 商业智能BI联盟 ; Java报表 ; 报表软件

在分页后的Web报表最后一页补上空行的4种变化

05.26.2009 by fengzhou - 0 Comment - 0
Posted in web报表

几乎任何形式的文档和报表都离不开分页,报表如何分页在B/S模式的Web报表中也是个常见的问题,特别是当大数据量的Web报表需要打印输出时,不可能将所有数据打印到一张纸上,这时必然涉及到报表的分页。

快逸报表提供了非常完善的Web报表分页打印功能,下面就基于快逸报表介绍:如何在Web报表分页后的最后一页补上空行。

开发Web报表常常遇到这样的问题:当数据比较多时,在分页后,常常最后一页只有几条数据,这样的报表被打印出来以后,看起来不是很美观,是否能在Web报表最后一页不足行的时候自动用空白行补充呢?

这个问题用快逸报表可以非常灵活的解决,下面介绍Web报表分页打印时补空行的四种不同的变化如何在快逸报表中实现。

变化一,行高固定,无表头的报表

这种形式的报表最简单,下面用一个两层分组的客户表来举例说明。当此报表分页后,一共分为4页,最后一页只有一行,看起来非常不规整,如下图所示:

需要补空行的Web分组报表,无表头,行高固定

针对这张报表,假设报表按A4纸张大小进行分页,一页纸可以打印30行。那么我们首先在报表末尾增加一个空白行,然后在最左边的单元格里加 入=to(1,30-ds1.count()%30)表达式,此表达式的意思是说,一页纸固定行数是30行,分页时如果最后一页数据集ds1数据不满30 行,则用空白行补充。

接着选定此单元格,将右侧属性栏中的[可视]属性去掉,发布报表即可看到效果,设计界面如下图所示:

快逸报表设计界面</p

将此报表发布后,可以看到最后一页已经被补入了空行,正好填充满第四页,如下图所示:

浏览器预览已经补好空行的报表,无表头,行高固定

变化二,行高固定,每页都有表头的报表

当报表加上表头而且每页都有时,情况也不复杂,只需要算出除去表头每页一共可以容纳多少行就可以。在本例中,除去表头每页还可以容纳29行,这样我们只需要将单元格A3中的表达式改为=to(1,29-ds1.count()%29),就实现了添加空行。发布后的效果如下图所示:

浏览器预览已经补好空行的报表,有表头,行高固定

其实当报表加入加入表尾、页面、页脚等等,并且每页都显示时,处理方法也是一样的,只要算出这种情况下每页可以容纳多少行,再取模就可以。

变化三,行高固定,行数不固定,每页都有表头的报表

这种情况下,报表的总行数不等于数据集中记录的总个数,比如本例中在每个”地区”分组后都加入一个”公司数”汇总信息行的情况。这时报表按”地区”一共分为几组由具体数据决定,在设计报表时并不知道,但在快逸报表中非常容易得到这个分组个数,只要算出A2扩展出几个单元格就行。我们把A4的表达式改成:=to(1,29-(ds1.count()+count(A2{}))%29),如下图所示:

快逸报表设计界面</p

其实,本例只是行数不固定的一种简单情况,还有很多其它行数不固定的情况,在快逸报表报表中都可以表达式算出这不固定的总行数,从而解决问题。

变化四,行高固定,行数不固定,只有第一页有表头的报表

很多Web报表只需要在第一页打印报表表头,针对这种情况,快逸报表可以通过报表属性设置很方便地设置表头打印的方式,如下图所示:

快逸报表设计界面</p

这时情况其实和变化一类似,只是第一页多出来了报表头这一行,我们只需要在变化三的基础上把取模总数加1、再把每页按29行取模改成按30行取模,修改表达式为:=to(1,30-(ds1.count()+count(A2{})+1)%30),最后预览结果如下图所示:

add-blank-4-preview.png

到这里,利用快逸报表实现分页打印Web报表补足空行的四种变化都介绍完了,细心的读者可能会发现,这四种变化都是基于”行高固定”这个假设,那么当行高不固定的时候如何处理呢?其实最简单答案还是在快逸报表中用取模的方法,只是取模的时候要加入具体行高和打印纸张的高度进行计算就行了。这时候又有读者会问,如果Web报表中的纸张大小都不固定怎么办呢?呵呵,这个也难不倒快逸报表。开发人员可以用快逸报表中的参数和宏的功能,动态设定纸张大小,以适应不同的打印情况。

好了,关于如何使用快逸报表的参数和宏解决更多问题,这里就不详述了,实际应用中的情况千变万化,快逸报表的强大功能远不止这些,读者可以自己使用快逸,创造出更多Web报表的解决方案。

引自:报表工具知识库
原文链接:在分页后的Web报表最后一页补上空行的4种变化
相关文章:分页标签的使用 ; 报表中某行的高度比给定纸张高无法分页 ; web报表填报功能 ; 快逸报表在:eclipse工程中无法打印的原因
其他相关内容:免费Web报表开发论坛 ; 专业.net报表工具 ; 探讨Web报表工具.net报表研究