BIRT报表(报表设计器)

 

一、去掉Birt表格下自动生成的日期时间

在报表下点击Xml Source标签,打开xml,找到


       
           
               
                    html
                    new Date()]]>
               

           

       

   


                    html
                    new Date()]]>

这几行去掉即可。

 

二、Birt表格隔行换颜色

1、  鼠标旋停在表格上,选择Row Detail一行;

2、  选择script标签页,打开birt的脚本编辑窗口;

3、  从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:
if(row.__rownum % 2 == 0){
this.getStyle().backgroundColor = "#E9EAEB";
}else{
this.getStyle().backgroundColor = "#FFFFFF";
}

4、  保存

 

三、Birt表格分页

下面是我从网上找的方法,我试了一下不行,后来我在table里设置了Page break interval就可以了,但是预览的时候不能看到分页

1、鼠标旋停在表格上,选择Row Detail一行;
2
、选择script标签页,打开birt的脚本编辑窗口;
3
、从下拉列表中选择onPrepare,在下面加入Javascript脚本如下:
         var count = 0;
4
、从下拉列表中选择OnCreate,在下面加入Javascript脚本如下:
        count++;
        if(count % 10 == 0){
                style.pageBreakAfter = "always";
        }
5
、保存,使用Web Reviewer进行预览,数据可以进行分页显示了。注意不要使用Preview标签页进行浏览,这个标签页的浏览效果是不分页的。发布到web工程上,也可以进行分页显示了。

 

四、BIRT报表添加时间控件的方法

birt再传递参数时候,很多报表需要有时间段的参数,为简化用户操作,日历控件是个很好的选择,在birt里也能实现日历控件的方法,效果如图:

实现方法:

首先需要引入一个Calendar.js脚本,将此脚本放置于WebRoot>webcontent>birt>ajax>utility下,

Calender.js内容如下:

然后修改WebRoot>webcontent>birt>pages>layout>FramesetFragment.jsp,找到

再下面加上

然后再修改WebRoot>webcontent>birt>pages>parameter>TextBoxParameterFragment.jsp,找到

INPUT CLASS="BirtViewer_parameter_dialog_Input"

再里面的ID="<%= encodedParameterName %>" 下面加上

<%if (encodedParameterName.indexOf("Date")>=0) {%>
       οnclick="calendar()"
<%} %>

注意此处的含义是如果参数名中含有"Date",则调用日历控件,这是因为无法判断参数属性,所以要检查参数名称是否含有Date,定义参数的时候也要加上"Date",比如fromDate,endDate等。参数要使用文本框格式,属性设置为String

注:此方法暂不支持Firefox,如果想要再FF下也能使用日历控件,可以用http://www.my97.net/dp/demo/这个日历控件,此控件功能更强大,使用方法与上面的类似。

特别说明:日历控件的使用必须要把报表部署到tomcat或其他容器下,用预览模式不能使用日历控件!

 

四、Birt部署在tomcat下的方法

1、先下载birt-runtime-2.1.3.zip 地址:http://www.eclipse.org/downloads/download.php?file=/birt/downloads/drops/R-R1-2_1_3-200707051847/birt-runtime-2.1.3.zip

2、将其解压,把目录下的WebViewerExample文件夹复制到Tomcat主目录下的webapps目录下,并改名为birtApp.

3、复制第三方软件:

  • itext-1.5.2.jar:复制到birtApp/WEB-INF/platform/plugins/com.lowagie.itext/lib
  • 数据库驱动(mysql为例)mysql-connector-java-5.0.5-bin.jar:复制到birtApp/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_2.1.1.v20070705-1847/drivers

   不过我用的2.1.3版本不用复制itext-1.5.2.jar,相应目录下面都有,也不用复制其他的jar文件。但数据库驱动的jar文件一定要复制(不过报表中没用到数据库访问的话就不用了)

如果是用tomcat6的版本,需要在工程的Web-INF/lib下放置一个commons-logging-api-1.1.1.jar的包,这个包在tomcat5.5里有,6.0取消了这个包

4、启动Tomcat,在浏览器中输入http://lcoalhost:8080/birtApp/ 在首页中点击"View Example",若正常进入,则说明成功。

5、发布做好的报表文件:将制作好的报表文件如test.rptdesign复制到birtApp下,在浏览器中输入:

http://localhost:8080/birtApp/run?__report=test.rptdesign 就可以访问了。

6、访问报表:http://localhost:8080/birtApp/frameset?__report=报表文件路径

这个web应用支持2个动作:

  • frameset,以frameset的形式显示报表。这个界面包含一些frame,如页面导航,报表主体在其中的一个frame中显示;使用形式:
    http://localhost:8080/birtApp/frameset?__report=
    报表文件路径&参数=........
  • run,报表以一个单独的html页面或pdf显示,由于这种形式没有frmaeset,因此使用者必须自己提供相应的参数,如报表参数,页号等。使用形式:
    http://localhost:8080/birtApp/run?__report=
    报表文件路径&参数=........

   对于以上2个动作,以下列出可用的参数:

  • __format:报表输出格式:htmlpdf,缺省是html。对于frameset不起作用。
  • __isnull:指明一个参数是null,常用于字符串类型。如果提供参数且值为空: - 对于日期和数字类型,BIRT会将它们当作null处理。 - 对于字符串,BIRT会将它作为空字符串。因此,为了说明某个字符串是null,通常写为:__isnull=参数。
  • __locale:本地化选项,缺省是jvmlocale
  • __report:报表设计文件路径。
  • 报表参数:报表参数参数值对,形式:参数名=参数值。对于frameset,直接在地址栏中输入参数名=参数值后回车,不会影响报表结果。虽然,此时选择"运行报表"时,弹出的参数值已经改变。

五、Birt设置公用样式(Style)及公用数据源(DataSource)的方法

一、先说设置公用样式:

1.右键单击工程,选择new>Other>Web>CSS,建立一个CSS文件,比如birt.css

2.birt.css里写样式,如果CSS不熟的话,可以到我的CSDN共享资源里下载,下载地址是(http://download.csdn.net/source/1207675),这个报表能应付一般简单的表格

3.点一个报表文件,选择Layout标签,然后再Outline窗口下看到Styles,下面有两个默认的Style,可以先删除。然后右键单击Styles,选择"Use CSS File...",找到刚才建立的birt.css

4.然后就OK了,如果修改了birt.css,只需要右键单击Outline窗口下的Stylesbirt.css,选择"Reload CSS File"

二、再说公用数据源的方法

1.右键单击工程,选择new>Library,起个名字叫ds.rptlibrary

2.Outline窗口下选择Data Sources,选择JDBC Data Source,然后填入连库字符串及用户名密码

3.这样数据源就建立好了。

4.新建报表后,再Outline窗口下,右键单击Libraries,选择Use Library,选择刚才新建的ds.rptlibrary

5.使用ds我一直没有找到方法,老是找不到怎么把ds引入到Data Sources下,只好修改源代码了,选择报表下面的XML Source 标签,再 后面下粘贴下面的语句


        extends="ds.Data Source"/>
   

注意id=1350不能和报表中其他的id重复。

然后就能看到Outline窗口下Data Sources下面多了一个Data Source的链接,说明建立成功

以上摘录于:

http://hi.baidu.com/%BA%D3%B1%B1%B6%FE%C9%D9/blog/category/%BC%BC%CA%F5-birt%B1%A8%B1%ED

 

六、BIRT中的日期时间必须为String类型。

 

七、BIRT报表设置时间参数。(添加时间控件的方法可以参考网上的资料。这里没有使用时间控件的方法。)

例子如下:

北京移动各产品用户发展综合情况日监控表数据集如下:

select  * from bi_ui.v_syf_t8 t

where substr(report_date, 1, 4) = ?

   and substr(report_date, 5, 2) = ?

and  substr(report_date, 7, 2) = ?

yearSet如下:

select * from bi_ui.ui_dim_date_year dy where dy.year_value <= to_char(sysdate, 'yyyy')

monthSet如下:

select * from bi_ui.ui_dim_date_month

daySet如下:

select * from bi_ui.ui_dim_date_day

北京移动各产品用户发展综合情况日监控表数据集【参数】添加如下:

创建参数组,参数组中添加yearmonthday参数。以下是year设置。

数据类型:字符串

显示类型:列表框

选择【动态】:

数据集:yearSet

选择值列:YEAR_VALUE

选择显示文本:YEAR_DESC

 

 

 

你可能感兴趣的:(BIRT报表(报表设计器))