一.为什么选用该开源平台
BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。BIRT 也提供了图标引擎让你能为应用增加图标。
BIRT 当前发行的版本是 2.5.1。可通过
http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo下载使用。
有了 BIRT,你可以为应用程序构建丰富的报表。
列表 - 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。
图表 - 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。
交叉表 - 交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。(交叉表在 1.0.1 中没有提供,但计划在将来提供。)
信函和文档 - 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包括正文、格式、列表、图表等。
混合报表 - 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。
二.如何汉化
I.eclipse 的汉化
(webapps/birt/WEB-INF/lib/commons-logging.jar 是BIRT.WAR包解压没有但是是必须的)
1.下载eclipse-birt 集成的开发工具eclipse-reporting-galileo-win32.zip
解压至本地
2. http://download.eclipse.org/birt/downloads/lang.php?build=R-R1-2_2_2-200802271210
下载eclipse-birt的汉化包NLpack1-birt-report-designer-all-in-one-2_1_1.zip
将汉化包里面的文件按照相应的解压至eclipse-reporting-galileo-win32.zip解压出来的文件中
II.在tomcat里面的汉化
1.找到对应的birt/WEB-INF/lib/viewservlets.jar
找到viewservlets.jar/org/eclipse/birt/report/resource/Messages.properties
将里面的英文改成中文
2.用jdk 自带的转编码工具native2ascii.exe将其转为utf-8格式
Native2ascii.exe -encoding GBK Messages.properties(修改前) Messages.properties(修改后)
三.如何修改添加了日期控件
1. FramesetFragment.jsp
<script src="birt/ajax/core/BirtSoapResponse.js" type="text/javascript"></script>
<script src="birt/customizeFormat/date/WdatePicker.js" type="text/javascript" defer="defer" ></script>
defer="defer" 代表当javascript不改变文档的时候绕过执行
注:最终的解决方式是将<script src="birt/customizeFormat/date/WdatePicker.js" type="text/javascript" ></script> 置整个页面的底部
2. TextBoxParameterFragment.jsp
<INPUT CLASS="BirtViewer_parameter_dialog_Input"
TYPE="<%= parameterBean.isValueConcealed( )? "PASSWORD" : "TEXT" %>"
NAME="<%= encodedParameterName %>"
ID="<%= encodedParameterName %>"
TITLE="<%= parameterBean.getToolTip( ) %>"
VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"
<%= ( !parameterBean.isRequired( ) && parameterBean.getValue( ) == null )? "DISABLED='true'" : "" %>
<%=((encodedParameterName.toUpperCase()).indexOf("DATE")>=0)? "readonly" : "" %>
>
<%if ((encodedParameterName.toUpperCase()).indexOf("DATE") >=0) {%>
<img id="teqiimg" src="birt/images/btn_off_cal.gif" οnclick="WdatePicker({el:$dp.$('<%= encodedParameterName %>'),dateFmt:'yyyy-MM-dd'})"/>
<%} %>
3. 将customizeFormat文件夹考到birt/webcontent/birt/里,这个是时间控件
4. 报表参数的定义:
a) 参数的名称必须是*+“Date”,不如:startDate
显示类型是“文本框”