当前位置: 技术问答>java相关
report tool
来源: 互联网 发布时间:2015-08-01
本文导语: 我们公司是做ASP服务的,每签一个客户,就要给该客户做report。report可能有txt,pdf等格式。现在,report已经做了很多,但都是hadrcode定制的。很显然,一个好的report tool应该具有如下特性: 1.由于客户遍布各国,应该方...
我们公司是做ASP服务的,每签一个客户,就要给该客户做report。report可能有txt,pdf等格式。现在,report已经做了很多,但都是hadrcode定制的。很显然,一个好的report tool应该具有如下特性:
1.由于客户遍布各国,应该方便支持多语言,目前我们对于多语言是hardcode
2.数据与格式能简单分开,比如在数据整齐的情况下,可用数组存放数据,作为一个对象传给不同的report格式。但大部分情况下数据是杂乱的,如何用同一份数据制作不同格式的report。当然首先想到的是observer,这样,这些数据必须存储在私有变量中方可,而且使用者与制作者之间耦合严重。还有种办法是采用容器存放数据,表面上看耦合没有了,但存放/获取(或serialize/deserialze)的规则还使暗含耦合。
3.减少对象的创建,减少资源消耗,比如我们用iText制作PDF report,每个table中的Cell都是一个对象,天哪,如果1个十几页的report会达到几万个对象,难怪速度慢。所以好的tool应该实现fryweight.
4.支持layout,能从某种template中获取字体,大小,定位等格式信息。
5.支持简单的script扩展
请大家推荐一下免费的report tool。或者讨论一下一个设计框架。
1.由于客户遍布各国,应该方便支持多语言,目前我们对于多语言是hardcode
2.数据与格式能简单分开,比如在数据整齐的情况下,可用数组存放数据,作为一个对象传给不同的report格式。但大部分情况下数据是杂乱的,如何用同一份数据制作不同格式的report。当然首先想到的是observer,这样,这些数据必须存储在私有变量中方可,而且使用者与制作者之间耦合严重。还有种办法是采用容器存放数据,表面上看耦合没有了,但存放/获取(或serialize/deserialze)的规则还使暗含耦合。
3.减少对象的创建,减少资源消耗,比如我们用iText制作PDF report,每个table中的Cell都是一个对象,天哪,如果1个十几页的report会达到几万个对象,难怪速度慢。所以好的tool应该实现fryweight.
4.支持layout,能从某种template中获取字体,大小,定位等格式信息。
5.支持简单的script扩展
请大家推荐一下免费的report tool。或者讨论一下一个设计框架。
|
gz
|
http://xml.apache.org/fop/
|
gz
|
xml/xslt