http://blog.sina.com.cn/knowledgewang[订阅]
博文
自定义函数的登记(2009-12-07 09:22)
润乾报表提供了大量的内置函数,但是再多的函数也无法完全满足五花八门的业务需求,用户往往还需要自定义函数。 自定义函数的标准写法是:继承润乾报表提供的function类或者DSFunction类,实现其中的calculate方法,并返回运算结果。 自定义函数的登记:在java的类路径的config目录下,找到customFunctions.properties文件,并在其中进行自定义函数类及函数名的登记。 在应用中登记好后,要在设计器中用自定义函数,并在自带的web中浏览报表,就要在设计器和web端都进行登记。 在设计器端,将customFunctions.properties文件复制到\designer\web\WEB-INF\classes\config下,将类文件复制到designer\web\WEB-INF\classes下,有包名的,相应的建包路径。 在web端,将customFunctions.properties文件复制到\webapps\demo\WEB-INF\classes\config下,将类文件复制到\webapps\demo\WEB-INF\classes下,有包名的,相应的建包路径。 重启设计器,就可以在设计器中自由运用自定义函数了。
在填报表的录入页面,选中单元格对单元格的内容进行修改,默认是以'插入'的方式修改当前单元格的内容,即若不进行删除原有内容依然存在。 1.png 那么,如何做到选中单元格的同时也将该单元格的原有内容全部选中,输入新内容时直接替换掉原有内容呢? 3.png 我们只需要在发布报表的jsp中加个标签,selectText='yes',就可以了,selectText标签的含义就是:单元格获得焦点时,是否选中单元格的内容。 2.png
润乾报表具有强大的填报功能,其多源填报模型真正实现了数据的有来有去、多来多去、来去无关。在细节上,也提供了丰富的编辑风格,只需经过简单几步设置就可以方便用户的数据填写并且保证采集到数据的正确性。 这里我们主要来关注一下下拉日历。在设计一张填报表时,将单元格的编辑风格选择为下拉日历,那么在页面上进行填写的时候就可以直接从点击弹出的日历 中进行日期的选择。默认使用下拉日历保存的数据是'yyyy-MM-dd'格式的,如:2009-07-01,显然只有这一种格式远远满足不了实际的需 求。那么,如何根据实际情况来自定义下拉日历的日期格式呢? 润乾报表专门提供了一个format.properties文件来设置下拉日历的默认格式,这个文件是打包在report4.jar中的。比如,直 接将format.properties中下拉日历的默认格式设置为'yyyyMMdd',则保存的数据就是符合该格式的八位数字,如20090701。 并且,还可以分别设置英文版的下拉日历格式和中文版的下拉日历格式,因为通常中英文的日期格式区别是很大的。 润乾报表,不仅拥有着强大的报表模型,同时进行了全面的细节优化,不愧为国内报表工具的领军。

在报表中引入统计图可以让报表展现的数据更直观的表现出来,但有的时候报表和统计图放在同一个页面上,会使整个页面拉的很长,需要通过设置滚动条才能完整的看到效果,下面介绍一种方法,利用单选按钮在同一个页面来切换统计图和报表的显示, 用此方法就可以避免报表和统计图过长的现象了。

实现思路:

1制作两张一模一样的报表,一张用来只显示统计图,一张用来只显示报表数据。

2写一个jsp,用来展现报表和统计图,在里面设计两个单选按钮,通过控制统计图和报表的显示来达到效果。

具体实现:

第一步:来制作一张普通的带有统计图的报表。

报表组的功能很强大,可以实现一些单个报表实现不了的功能。但是由于客户需求的多样化,有些功能还不能直接实现,比如点击一个sheet页面中的订单ID然后在另一个sheet页面显示该订单的明细。

本文就来通过例子说明怎样间接实现该功能。

做过报表组的人知道,浏览报表组的时候默认显示的第一张报表。通过查看显示报表组的页面源代码了解到报表组是把每个报表sheet的内容放在一个div中,默认显示第一个div,点击第二个报表的tab页就显示第二报表的div。所以要实现上面的功能,我们可以根据下面的思路来做。

大致思路:

首先创建一个包含两个报表的报表组,在第一个报表中创建超链接,连接到报表组本身,把订单ID和需要显示的哪个层的标志传递给报表组,第二个报表根据订单ID查询订单明细,报表组再根据显示层标志来显示相应的div。比如这个超链接:'/reportJsp/showReportGroupTest.jsp?rpg=/group/group.rpg&order='+A2+'&showFlag=2″

 

超链接是一个非常实用强大的功能,在各种项目、应用中使用都非常广泛,快逸报表也支持这个强大的功能。下面就来介绍一下在报表中怎么设置超链接。

报表的超链接就是设置单元格的超链接属性。超链接可以分三种形式:

1. 普通超链接

如果超链接字符串不需要动态生成,可以直接写所要链接的页面路径,那么可以直接在超链接属性编辑框中编辑。如:”reportJsp/showReport.jsp?raq=超链接例子2.raq”

2. 绝对路径的超链接

绝对路径要写完整,包含传输协议。如:http://www.quiee.com.cn

3. 带参数的超链接

 

填报表中的自动计算功能有很广泛的应用。用户在页面的某些单元格中填报数据,然后另外的单元格根据填入的数据自动计算得到相应的数据。但是这个自动计算得到的数据在用普通的显示格式设置的时候却发现设置无效,这里就需要使用JavaScript函数对其进行单独设置。

首先看一个例子报表3.9.raq。

将”总运货费”设置显示格式为¥#.#,设置方法如下图:

 

快逸报表格式设计1.png

 

发布预览发现:”总运货费”一列显示格式没有达到格式显示的效果。说明显示格式对自动计算单元格不起作用。

 

快逸报表显示2.png

uuid的产生:

用 过数据库的人都知道在数据库中存在着主键约束,也就是不能出现相同的主键,如果用一些简单的整数做主键,很有可能会违法主键约束,从而产生了 UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的,详细信息请参 照:http://baike.baidu.com/view/1052579.htm?fr=ala0

 

快逸报表柱形图和堆积图的单个柱体宽度是根据单元格的宽窄和图形的数量进行拉伸显示的,发布到web页面以后,如果根据参数模板查询出结果展现图形的话,会根据数据的不同,图像有宽有窄,显示的很不美观。本文就来介绍一下如何利用单元格的属性动态控制统计图图形效果。

思路分析:统计图的图形宽度是根据单元格宽窄和数据多少进行改变的,数据量的多少不能硬性规定,所以需要设置单元格宽窄来解决问题。

 

很 多做过统计报表的人都遇到过这样一种情况:每个月填入的新数据比较少,绝大多数都是一些固定的数据,而这些固定数据之间有着关联对应的关系,如果能在报表 中加入一些关联关系,那么只需要填入其中一种数据,其他的数据信息就会根据关联关系自动被填充好,这样即提高了统计人员的工作效率,也减少了可能误填的情 况,那么如何实现填报表不同单元格的自动关联填充呢?

实现思路:

利用快逸报表中的自动计算功能就可以完成不同单元格信息的自动关联,所谓的自动计算,是在填报的时候,当用户录入了某些数据后,系统会自动算出另外一部分单元格的值,由于自动计算大部分时候是在网页上响应的,即用户在网页上录入数据时触发另外一些单元格自动计算,因此自动计算表达式采用的是javascript表达式或者函数,并且可以引用单元格的值。

实现步骤: