
birt报表使用简要说明.doc
26页Birt报表使用指南1 Birt的安装方法把birt整合到了Myeclipse6.5中,(eclipse的官方网站上提供有一个birt-report-designer-all-in-one-2_2_2.zip,你直接解压缩这个就可以了,就免去了birt与Myeclipse6.5的整合)如果要把birt安装到Myeclipse6.5中,要注意一些事情1.1 eclipse的版本就是说你的eclipse版本要和适当的birt版本配合,当前birt的最新稳定版是birt2.3如果使用的是eclipse3.3版本,你应该用birt-report-framework-2_2_2.zip,如果使用的是eclipse3.4,你应该用birt-report-framework-2_3_0.zip版本不一致会出一些问题1.2 在Myeclipse6.5中装birtMyEclipse6.5自带的是eclipse3.3,所以只能下载birt-report-framework-2_2_2.zip (下载地址:http://download.eclipse.org/birt/downloads/index2.2.2.php) 而birt-report-framework-2_3_0.zip是针对eclipse3.4的。
把下载下来的birt-report-framework-2_2_2.zip包解压,解压后的features文件夹下的所有文件拷贝到MyEclipse6.5安装目录下的..\myeclipse\eclipse\features下,解压后的plugins文件夹下的所有文件拷贝到..\myeclipse\eclipse\plugins下重新启动MyEclipse就好了2 公共方法2.1 公用数据源的方法1.右键单击工程,选择new>Library,起个名字叫ds.rptlibrary2.在Outline窗口下选择Data Sources,选择JDBC Data Source,然后填入连库字符串及用户名密码3.这样数据源就建立好了4.新建报表后,再Outline窗口下,右键单击Libraries,选择Use Library,选择刚才新建的ds.rptlibrary5.使用ds我一直没有找到方法,老是找不到怎么把ds引入到Data Sources下,只好修改源代码了,选择报表下面的XML Source 标签,再 后面下粘贴下面的语句
然后就能看到Outline窗口下Data Sources下面多了一个Data Source的链接,说明建立成功2.2 公用样式的方法1.右键单击工程,选择new>Other>Web>CSS,建立一个CSS文件,比如birt.css2.在birt.css里写样式3.点一个报表文件,选择Layout标签,然后再Outline窗口下看到Styles,下面有两个默认的Style,可以先删除然后右键单击Styles,选择"Use CSS File...",找到刚才建立的birt.css4.然后就OK了,如果修改了birt.css,只需要右键单击Outline窗口下的Styles的birt.css,选择"Use CSS File..."2.3 Birt的分页显示报表,交替颜色功能1、鼠标停在表格上,选择Row Detail一行; 2、选择script标签页,打开birt的脚本编辑窗口; 3、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下:var count = 0;4、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:count++;//分页if(count % 10 == 0){ style.pageBreakAfter = "always"; } //交替颜色if(count%2==0){this.getStyle().backgroundColor = "#EFEFEF";}else{this.getStyle().backgroundColor = "#d4d0c8";}5、保存,使用Web Reviewer进行预览,数据可以进行分页显示了。
注意不要使用Preview标签页进行浏览,这个标签页的浏览效果是不分页的发布到web工程上,也可以进行分页显示了 2.4 如何去掉birt报表自动生成的日期2.4.1对已存在报表的解决初次接触birt每次做出来的报表后面都一个时间,比较不合需要,又没找到去掉的地方,索性打开xml,找到下面这段代码:
javascript代码如:document.frames["show_report"].location.replace("http://134.32.34.237:9090/birt/frameset?__report=abs/new_sum.rptdesign&ParameterDept="+dept);其中show_report为iframe的name,dept为报表参数有时候中文参数需要编码处理:deptName = encodeURI(deptName);2.6 如何增加序号1. 点击报表的空白处,然后到script页,选择initialize,输入 var num=0 2. 回到报表设计页,在组上加入一个data,在这个data的expression中,输入: num++; num 3. 保存报表即可2.7 导出工具条1、如果你不想要那个工具条的话,在URL后面加上:& __toolbar=false,这样就会把整个的工具条都隐藏了2、如果想修改工具条中的一个按钮的时候要修改,对应的 2.8 使用脚本可以使用脚本,是BIRT的一大特色在BIRT中,数据源、数据集和报表项,都可以书写脚本。
具体做法:选择数据源、数据集和报表项任意一种对象,然后选择"脚本"页面如选择数据源user后,对应的脚本输入页面:选择对应的事件,然后在下方的脚本输入框中输入脚本即可如对于第一个例子,我们需要统计用户地址是"No.5 St."的用户数:1. 选择数据集,然后选择"脚本",进入数据集的脚本编辑窗口2. 选择事件"afterOpen",在脚本窗口内输入:count=0;3. 选择事件"onFetch",在脚本窗口内输入:if( row["addr"]== "No.5 St.") count++;4. 选择报表,在脚本窗口选择事件"onRender",输入:this.caption=count;5. 预览,或运行报表后,会在报表的标题输出count的数值2.9 如何有条件的隐藏元素选择要有条件地隐藏的元素在“属性编辑器”中,选择“可视性”将出现“隐藏元素”选项,如图 7-12 所示属性编辑器”中的“隐藏元素”选项选择“隐藏元素”以指定将隐藏此元素如果要始终隐藏元素,您只需要执行此操作如果要有条件地隐藏元素,请指定条件选择要应用隐藏条件的报告格式要对所有报告格式应用隐藏条件,请选择“对于所有输出”。
要对某些报告格式应用隐藏条件,请选择“对于特定输出”如果想要根据报告格式应用不同的条件,也请选择此选项指定隐藏条件:选择“表达式构建器”在表达式构建器中,创建指定隐藏条件的表达式请记住,您必须考虑何时隐藏元素,而不是何时显示它例如,要在参数不等于等于“所有部门时”显示该行信息,可使用以下表达式有条件地隐藏文本元素:如:if(params["ParameterDept"]=="所有部门"){false}else{ true} 当部门名称不等于“所有部门”时,此表达式隐藏该文本消息选择“确定”预览报告以测试条件可视性2.10 编写表达式通过使用直接来自数据源的数据并简单地将数据源字段从“数据资源管理器”拖到报告中,可以创建多个报告但有时您想要显示不在数据源中的数据,或者您想要以不同于数据源中显示数据的方式来显示数据您还可能想要使用公式来产生新的数据在这些情况及许多其他情况下,应使用 JavaScript 来编写表达式表达式是一个将生成值的语句表达式可以是文字值, 将字段拖到报告中时,BIRT 报告设计器将创建表达式该表达式指定报告显示其值的字段的名称例如,下列表达式分别获取 customerName 字段和 phone 字段中的值:dataSetRow["customerName"] dataSetRow["phone"] 表达式可以包含文字值、字段、运算符、变量和函数的任意组合,条件是求得的结果为单个值。
在下列示例中,第一个表达式将静态文本与字段组合在一起,第二个表达式使用 JavaScript 函数,而第三个表达式将两个字段的值相乘:"Order Total: " + row["orderTotal"] row["orderDate"].getYear() row["itemQuantity"] * row["itemPrice"] 2.11 创建参数报表用的参数,在Report Parameters中闯将,界面上传的值的名字和报表上定义的参数的名字要一样2.12 如何自定义动态查询1. 首先创建参数2. 在数据集的“查询”页上,定义 SQL 查询,例如:Select name from t_city where year = ?(注:参数用?号表示)3. 在数据集的参数选项卡,如称为“year1”的Integer参数注解:这里创建的参数,要与?号的位置相对应3 实际样例3.1 创建简单报表的步骤3.1.1 创建一个报表 选择File->New->Report 新建报表(new report )对话出现 在Tree View中选择我们之前创建的项目。
