Archive for 05月, 2009

如何使计算某个报表导致内存溢出时,其他报表运算不影响

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

报表在运行过程中经常会出现如果查询数据量大的时候,报表显示不出来,甚至会出现out of memory的问题,一旦出现此问题,整个系统的报表就不能用了,连最简单的报表也打不开,但是应用系统还是能用,也就是说应用并没有死机。在这种情况下自然就会希望可以做到就算数据量大,显示很慢或者显示不出来,也不会影响其他报表的显示。

润乾报表系统中,当某一大报表计算出现内存不足,无法进行计算也就是内存溢出时,并不会导致整个系统崩溃,也就是说是有条件在此时让系统仍然可以计算其他报表的。我们需要做的就是修改reportConfig.xml文件中的maxWaitTimeForReport属性(默认是9999秒),此选项设置的是等待计算报表时间,默认值由于时间比较大,所以当大报表计算内存溢出后,系统会认为报表依然在运算,会等待9999秒直到超时,此时给用户的感觉就是其他报表也不能计算了。所以,建议一般情况下可以将此值设为300,那么当某一大报表计算导致内存溢出后,系统等待300秒之后此报表运算时间就会超时,系统则可以继续进行其他报表的运算了。

引自:润乾报表知识库
原文链接:
如何使计算某个报表导致内存溢出时,其他报表运算不影响
相关文章:一种实现类似excel把负数显示成红色且去掉负号的方法 ; 导入带公式excel的问题web报表的扩展功能;润乾报表出了新版统计图解决行式填报导入excel发生错位的问题
其他相关内容: 润乾商业智能解决方案 ; 商业智能BI联盟 ; Java报表 ; 报表软件

两种数据源连接的配置方式:jndi和jdbc

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

润乾报表的数据源配置是在reportConfig.xml中进行设置的,支持jndi数据源配置和jdbc直连数据源配置两种。在读取配置文件的时候,会首先读取jndi的配置,如果没有相关的数据源配置则会读取jdbc直连配置的数据源。

1、jndi数据源配置(即:在dataSource中配置)

此配置适用于在j2ee的服务器中配置了jndi连接池,比如:tomcat服务器下在conf\Catalina\ localhost配置了连接池,则可以通过reportConfig.xml的jndi配置连接数据源。

关于reportConfig.xml中的jndi数据源的配置详细如下:

数据源的JNDI名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编 码][,SQL是否需要转码];[重复]……

另外需要注意的:这里的数据源的jndi名称要与连接池中配置的jndi数据源名称一致。

2、jdbc直连数据源配置

此配置适用于没有在j2ee服务器上配置jndi连接池的情况。

详细的配置方法如下:

在<reportConfig></reportConfig>加入如下的配置:

<jdbc-ds-configs>
<jdbc-ds-config>
<name>db2</name>
<db-type>db2</db-type>
<connection-url>jdbc:db2://192.168.0.217:50000/sample</connection-url>
<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
<user-name>administrator</user-name>
<password>runqian</password>
<db-charset>gbk</db-charset>
<client-charset>gbk</client-charset>
<extend-properties></extend-properties>
</jdbc-ds-config>
</jdbc-ds-configs>

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

存在汇总统计等功能的大数据量报表的优化方案

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

对于大数据量,多层分组的的汇总报表不能采用分页标签,可以采用如下的优化方案:

一、先初步对报表进行优化:

1、尽量在sql实现group分组,数据库虽然要进行分组运算,但是数据库中有索引,运算速度快,且 取到报表服务器端的记录数大大减少,取数速度大大加快,因此在报表端进行分组运算的时候只要对 很少的记录数进行,报表的运算速度大大加快了。

2、修改背景色的表达式尽量少采用row(),比如在每一行的一个格子里算出来行号,然后在背景 色表达式判断。 背景色的奇偶行判断,比如:if(row()%2==0,-3342337),主要是row(),是因为这种函数无法优化计 算,有多少个表达式就要计算多少次,而且必须在扩展完后拖后计算。这样的话,如果扩展比较多的 话,对性能就会有比较大的影响。

3、对于交叉分组要尽量减少数据集个数,尽量用单数据集。

二、配置优化:

以JVM内存设置为1G的服务器为例子,假设并发量最大为5,用户请求的报表为200单元格*1000页(数 据量可能上千万,但通过条件查询,最其中几千条记录),一般大数据量都没有图片,所以以每一个 单元格为0.5k计算,那么在最大并发量下,得出报表系统内存使用量为: 200*1000*5*0.5/1024K=488.28125M 根据以上计算,我们在实际生产系统中,我们建议:

cachedReportTimeout设置成180分钟,用户数据量大的情况下,增大报表缓存时间。
alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。
同时在tag标签中把useCache设置为yes。
timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1 。
maxConcurrentForReport为5,即并发量为5。
maxWaitForReport设置为10 ,即等待队列里允许的最大报表量。
maxWaitTimeForReport设置为300秒钟,6分钟内得不到响应,用户需要再次请求。
maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*500页=100000格。
如果不能用缓存,可以将缓存开关关掉,重点关注一下并发和最大格子数的设置。

另外,报表里,报表属性-格子数,这个属性可以写成这样的表达式:ds1.count()*13,如果还有一些固定格子,可以写成ds1.count()*13+固定格子数.

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

多数据集使用

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

多数据集使用:

不同的报表情况,我们要考虑是用多个数据集来完成报表还是用一条SQL来做报表,这在效率上会有所不同,以下我们看个例子,可以从中比较得到多数据集的使用技巧。

看如下报表:
1.jpg

这是一个比较典型的主子报表,主表一条记录对应子表多条记录,是个典型的一对多的关系,再引伸一下,一个主表可以对应多个子表,每个子表都是多条记录。

此时做法还是存在两种:

第一种:

1、 每个主表和子表分别定义一个数据集,在报表里通过条件把子表和主表关联起来

2、 优点:避免了表间叉乘,减少了数据量,加快了取数速度和数据库的运算速度。

3、 原因:对于主子报表,主表的字段数一般比较多,而子表一般有多条记录和主表的一条记录关联,同时子表间往往没有关联关系,因此如果叉乘会导致数据量大大增加,在多子表的情况下这个现象尤其明显

4、 缺点:子表取数扩展时,需要根据条件和主表记录关联,需要对子表记录进行遍历检索,但是大部分的情况下,主表只有一条记录或者只有十几条记录,因此对子表的遍历检索次数不会很多

第二种:

1、 只定义一个数据集,把主表和所有子表叉乘起来

2、 缺点:由于子表之间没有关联关系,且主表的字段数比较多,叉乘往往导致记录数呈几何级数增加

3、 优点:子表取数扩展时,不需要对子表记录进行遍历扩展,运算速度快点

总结:第一种做法的性能优于第二种。

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

巧用快逸报表属性中的显示值和独立多数据集

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

设计Web报表时,存储在数据库中的往往是员工D、员工编号、产品序号、简称,而报表展现出来的却需要是员工的姓名和产品的名称。

而且很多时候员工ID和员工姓名不是来自数据库的同一个表,在老式的报表工具中需要程序员写SQL将几个表中的数据字段拼接在一起。这时需要同时对这几个表进行WHERE条件运算,往往运算速度很慢;而且SQL写起来也比较复杂,后期维护困难。

在这种情况下,利用快逸报表的”报表属性”中的”显示值”和”独立多数据集”往往可以轻松的解决问题,而且解决方案非常直观,便于后期的维护和修改。具体应用例子我们来看下面这个张报表,如下图:

快逸报表</p

这是一种常见的订单统计表,报表中统计了不同年份中,各个销售人员完成订单金额的情况,以及各年份的订单金额总和。

这张报表是一张典型的二级分组报表,第一级按年份进行分组,第二级按销售员进行分组,这时问题来了,如果产生数据集ds1的物理表中,只有”雇员ID”,没有雇员的姓氏和名字。那如何得到雇员的全名呢?如下图所示:

数据集ds1</p

图中:A2表达式为:=ds1.Group(year(订购日期),false)+”年”,B2表达式为:=ds1.Group(雇员ID,false),数据集ds1里面没有雇员的姓氏和名字。这时如果不想写SQL语句改数据集ds1来增加雇员的姓氏和名字,有没有更一种简单的方法得到雇员的姓名呢?答案是利用快逸”报表属性”中的”显示值”和”独立多数据集”。如下图所示:

利用快逸报表属性</p

如图中所示:用简单的SQL语句增加一个数据集ds2:SELECT 雇员.雇员ID,雇员.姓氏,雇员.名字 FROM 雇员,然后直接设置B2的显示值为: ds2.select1(姓氏+名字,雇员ID==value()),这样就通过”显示值”表达式把”雇员ID”变成了”姓名”。这也就引出了快逸”独立多数据集的概念”,也就是在报表单元格中不能用多个数据集,但在单元格的”显示值”中却可以使用多个数据集,而且多个数据集可以相互关联。

我们再来看报表的C2和D2单元格的表达式,C2格中为:=ds1.sum(单价*数量),D2格中为:=sum(C2{}),根据快逸分组扩展的概念,C2只求数据本年本雇员的”单价*数量”,所以表达式很简单;而D2则通过更改主格为A1,从而通过sum(C2{})可以直接对本年度分组内C2格扩展出的所有单元格求和,如下图所示:

更改D2左主格,从而通过sum(C2{})可以直接对本年度分组内C2格扩展出的所有单元格求和

这时细心的读者可能会问:最后一列中的”比去年增长金额”如何计算?这个同样是利用”报表属性”中的”显示值”和”独立多数据集”:首先我们将数据集ds1原封不动的复制成数据集ds3:然后在E2里面写表达式:=year(ds1.订购日期)-1,再设置E2的”显示值”为:if(value() in ds3.Group(year(订购日期)), sum(C2{}) - ds3.sum(单价*数量,year(订购日期) == year(ds1.订购日期)-1),”去年为空”)。就能达到目的了,最终结果如第一张图所示。如果仔细观察还会发现用这种方法,还可以做出与上年或者上个月的同期比等报表,至于如何做留给读者自己去思考吧!

读到这里,有的读者可能还是觉得这样实现功能非常复杂,但是这仅仅是快逸报表免费版的功能,在快逸开发版和增强版中有更多高级功能,可以用更简单的方法来做本文的这张报表,包括直接在表达式中使用多个数据集。快逸报表开发版和增强版都提供免费试用,申请地址:http://www.quiee.com.cn/archives/341

快逸报表免费下载地址:http://www.quiee.com.cn/archives/337,推荐试用免费版。

引自:报表工具知识库
原文链接:巧用快逸报表属性中的显示值和独立多数据集
相关文章:Sql语句中的as问题 ; 多源关联分片介绍 ; 报表工具制表能力的探讨;五种主流web报表工具的功能对比模板与数据能否分离
其他相关内容:如何用多源关联设计复杂报表; 免费.NET Web报表工具下载; 探讨Web报表工具;.net报表研究

在分页后的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报表研究

让Web报表统计图图列显示名称听你的话

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

开发Web报表,一定离不开统计图,一张简单明了的统计图将大大加大报表的可读性、更好地说明报表数据。快逸报表作为一种成熟高效的纯Java的Web报表开发工具,它支持45种统计图的制作,不但包括初级的柱形图,饼形图,折线图等,还包括雷达图,甘特图,仪表盘,里程碑等高级统计图。

下面就介绍快逸报表统计图使用中,如何指定统计图系列名称的一个技巧。

在快逸报表中,可以很方便的指定统计图的分类轴和系列,但是有的客户提出设置系列名称后,有时图例正确显示系列名称,而在有的情况下图例却显示分类轴的名称,

其实这是快逸报表为用户提供一个功能选择,针对客户提出的困惑,我们需要分为两种情况说明:1)系列名称对应的是一个扩展格,2)系列名称对应的是一个常量

1)系列名称对应的是一个扩展格

这种情况下,图列名称是扩展格所扩展出来的多个值,这是正确的情况,例子可见快逸安装包中自带的初级教程的例子7.5.raq。图例名称来自扩展格A3,如下图所示:

快逸报表统计图的图列名称是扩展格所扩展出来的多个值

初级教程的例子7.5.raq的预览结果如下,可见这种情况下显示正常:

快逸报表统计图的图列名称显示</p

2)系列名称对应的是一个常量

在这种情况下客户有两种选择,下面还是举一个简单的例子来说明:

选择1:客户选择默认设置,使系列名称等于这个常量,这时就出现了有的客户提出情况,图例不显示这个常量,而显示分类轴的值。如图所示:

快逸报表统计图在系列名称</p

选择2:如果客户不想使图例显示分类轴的值,而等于系列名称对应的常量,那么可以在”统计图属性定义->显示外观”中将”总按系列画图例”选上即可,如下图所示:

快逸报表设置统计图属性,总按系列画图例

结果如下图所示:可以看到图例已经显示为系列值常量3。

快逸报表统计图在系列名称</p

用快逸开发web报表时,如何设置快逸设计器的初始属性

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

快逸报表已经成为Web报表开发人员不可缺少的开发工具,快逸报表设计器已经针对报表开发人员的一般需求,设置了很多默认启动属性,大大方便了报表开发人员。

尽管如此,还是有很多经验丰富的快逸报表开发人员,需要更加个性化的设计器启动属性。比如希望可以设置一组属性如行高,列宽,字体等,以便于以后每次打开设计器设计报表的时候可以不用再去调一些基本的设置。

下面针对高级快逸用户提供两种解决办法:

方法1,在打开设计器选择”配置->选项->初始属性”在这里设置好具体的值然后确定,下次打开设计器新建报表的时候就会以设置的初始属性来新建报表。如下图所示:

设置快逸报表设计器的默认属性

但是在设计器里的初始属性设置的时候某些属性只能设置为整数,没法设置成小数。

方法2,打开设计器安装目录reportHome\designer\tmp找到report4config.xml文件,找到option节点, 设置节点下的fRowHeight、fColWidth等属性的值,这里可以设置小数,设置好后打开设计器查看”配置->选项->初始属性” 就会发现这里的属性值变成了配置文件中的值,这里要注意一点,编辑配置文件时要关闭设计器,设置好了以后,再重启设计器就可以了。如下图所示:

更改快逸报表设计器的默认配置文件

引自:报表工具知识库
原文链接:用快逸开发web报表时,如何设置快逸设计器的初始属性
相关文章:五种常用web服务器jvm参数设置; 如何安装JDKweb报表工具的制表效率分析报表标题自动定位
其他相关内容:报表系统功能说明:填报

使用VMware在不同操作系统上调试web报表时的三种网络连接方式

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

在开发Web报表时,很多开发人员都在同一服务器上用VMware虚拟不同的系统,从而可以很方便的进行跨平台的Web报表部署和调试。

下面针对实际Web报表应用情况介绍VMware网络设置的三种方式,与大家分享经验。

bridge方式:

这种方式最简单,直接将虚拟网卡桥接到一个物理网卡上面,和linux下一个网卡绑定两个不同地址类似,实际上是将网卡设置为混杂模式,从而使网卡具有侦听多个IP的能力。

在此种模式下,虚拟机内部的网卡(例如linux下的eth0)直接连到了物理网卡所在的网络上,可以想象为虚拟机和host机处于对等的地位,在网络关系上是平等的,没有谁在谁后面的问题。

使用这种方式很简单,前提是你可以得到1个以上的地址。对于想进行种种网络实验的朋友不太适合,因为你无法对虚拟机的网络进行控制,它直接出去了。

nat方式:

这种方式下host内部出现了一个虚拟的网卡vmnet8(默认情况下),如果你有过做nat服务器的经验,这里的vmnet8就相当于连接到内网的网卡,而虚拟机本身则相当于运行在内网上的机器,虚拟机内的网卡(eth0)则独立于vmnet8。

你会发现在这种方式下,vmware自带的dhcp会默认地加载到vmnet8界面上,这样虚拟机就可以使用dhcp服务。更为重要的 是,vmware自带了nat服务,提供了从vmnet8到外网的地址转换,所以这种情况是一个实实在在的nat服务器在运行,只不过是供虚拟机用的。

很显然,如果你只有一个外网地址,此种方式很合适。

hostonly方式::

这应该是最为灵活的方式,有兴趣的话可以进行各种网络实验。和nat唯一的不同的是,此种方式下,没有地址转换服务,因此,模认情况下,虚拟机只能到主机访问,这也是hostonly的名字的意义。

默认情况下,也会有一个dhcp服务加载到vmnet1上。这样连接到vmnet1上的虚拟机仍然可以设置成dhcp,方便系统的配置.

是不是这种方式就没有办法连接到外网呢,当然不是,事实上,这种方式更为灵活,你可以使用自己的方式,从而达到最理想的配置,例如:
a,使用自己dhcp服务:首先停掉vmware自带的dhcp服务,使dhcp服务更为统一。
b,使用自己的nat,方便加入防火墙。windows host可以做nat的方法很多,简单的如windows xp的internet共享,复杂的如windows server里的nat服务。
c,使用自己的防火墙。因为你可以完全控制vmnet1,你可以加入(或试验)防火墙在vmnet1和外网的网卡间。

从以上可以看出,hostonly这种模式和普通的nat server带整个内网上网的情形类似,因此你可以方便的进行与之有关的实验,比如防火强的设置等。

引自:报表工具知识库
原文链接:使用VMware在不同操作系统上调试web报表时的三种网络连接方式
相关文章:快逸报表V4.0支持什么样的数据库及服务器? ; 关于自定义类在不同操作系统下不能识别的问题 ; 利用内建数据集方便地进行快逸报表调试 ; OA产品的平台选择
其他相关内容:如何用多源关联设计复杂报表 ; ASP Web报表开发软件 ; 探讨报表工具;web报表博客

巧设快逸报表服务器,提高Web报表开发调试效率

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

程序员可能都会承认,开发一个稳定健壮的程序,只用20%的时间编写代码,其它80%的时间往往花在调试和修改程序上。

Web报表开发中,这个二八定律也同样适用。报表设计完成、部署成功后,往往还需要根据客户的实际需求进行大量的报表更改、调试、优化的工作,而在这个时候调试报表的速度是最重要的。

下面就介绍加快快逸报表调试速度的一个技巧,加快快逸报表部署成功后不断修改、发布、再修改、再发布的过程。

有的快逸报表客户会遇到这样的问题:每次修改更新报表后,把新报表上传到服务器后,都要重新启动服务器报表才能生效,如果不重启服务器,显示的结果都为原来的样式,很影响应用开发效率.

分析这个问题:理论上不更新xml配置文件是不需要重新启动J2EE应用服务器的,可能是系统缓存造成的影响。

解决技巧:在报表项目的开发测试阶段,可以将快逸报表服务器设置为每次浏览报表都更新缓存,等报表测试完成正式上线时,再将快逸报表服务器设置为使用缓存工作。以提高性能。具体方法如下:

在部署项目时,在发布目录的reportConfig.xml配置文件中的设置:

<config>
<name>alwaysReloadDefine</name>
<value>yes</value>
</config>

这样报表每次上传后都可以及时更新了。在报表开发测试完成后,再去掉这个设置,就可以又使用J2EE应用服务器的缓存来提高快逸报表性能了

引自:Web报表工具知识库

原文链接:巧设快逸报表服务器,提高Web报表开发调试效率

相关文章:报表工具分类-实现技术;部署与集成 ;常用五种web服务器缓存目录 ;好的java开发工具

其他相关内容: Java报表打印方案;用多源关联分片设计.NET报表 ; 探讨报表工具 ;.net报表研究