多语言展示
当前在线:442今日阅读:2今日分享:38

birt入门教程:[6]交互报表

birt入门教程:[6]交互报表
工具/原料

birt报表

方法/步骤
1

创建数据集我们需要建立3个数据集:1. 建立数据集CustomerId,所用SQL语句:select EBANK.CUSTOMER.CUSTOMER_ID,EBANK.CUSTOMER.CUSTOMER_NAMEfrom EBANK.CUSTOMERwhere EXISTS    (SELECT  EBANK.CONTRACTSUM.CUSTOMER  FROM   EBANK.CONTRACTSUM  WHERE EBANK.CUSTOMER.CUSTOMER_ID =    EBANK.CONTRACTSUM.CUSTOMER)

2

2建立数据集CustomerInfo:所用SQL语句:select EBANK.CUSTOMER.CUSTOMER_NAME,EBANK.CUSTOMER.TEL,EBANK.CUSTOMER.FAX,EBANK.CUSTOMERTYPE.TYPENAMEfrom EBANK.CUSTOMER,EBANK.CUSTOMERTYPEwhere EBANK.CUSTOMER.CUSTOMERTYPE=EBANK.CUSTOMERTYPE.TYPEIDand EBANK.CUSTOMER.CUSTOMER_ID = ?输入SQL语句后,还要在数据集编辑窗口选择Parameters选项。

3

双击默认参数Pram1或者选择“Edit”,弹出如下窗口:

4

输入:Name:CustID;Default Value:’1’;其它默认完成后,在Preview Result选项中就可看见结果预览:

5

建立数据集Contract:所用SQL语句:select EBANK.CONTRACTSUM.AMOUNT,EBANK.PRODUCT.PRODUCT_NAMEfrom EBANK.CONTRACTSUM,EBANK.PRODUCTwhere EBANK.CONTRACTSUM.PRODUCT = EBANK.PRODUCT.PRODUCT_IDand EBANK.CONTRACTSUM.CUSTOMER = ?同上一步一样,还需对参数设置默认值,方法同上。

6

加入响应参数1.建立好数据集之后,展开选择数据资源管理器“Data Explorer”,右键点击“Report Parameters”选择“New Parameter”,弹出如下窗口:

7

输入:Name:CustIdPrompt:请输入用户编号Data Type:选择默认StringDisplay Type:从下拉菜单中选择Combo Box2. 将Display Type值选为Combo Box后,下方的“List  of  Value”的两个选择按钮变亮,选择“Dynamic”,窗口变为如下:

8

输入数据:Data Set:从下拉框中选择CustomerId;Select Value Column:从下拉框中选择CUSTOMER_ID;Select Display text:从下拉框中选择CUSTOMER_ID;Default Value:选择之后在弹出的窗口中选择任意一个即可,这里选1

9

点击“OK”完成

10

布局报表1、 先在布局编辑器中建立一个1列2行的Grid;2、 在所建立的Grid的第二格中再加入一个3列2行的Grid;3、 选中3列2行的Grid的第一列,在属性编辑器Property Edit,将默认菜单下的General项中的 “Width”设定为20%,其中“%”符号从下拉框中选择;选中第二列,同样方法设定其宽为60%;

11

4、 从选用板中向选中3列2行的Grid的第二列第一行的空格拖拽一个2列4行的Table,选中这个Table的第一列,用第3步中的方法设定其宽为50%,选中这个Table的第一行“Header Row”,右键点击选择“Merge Cells”将此行合并,并从选用板中拖拽一个“Lable”,输入“客户基本信息”,使其居左;5、 再在这个3列2行的Grid的第二列第二行的空格中加入一个2列1行的Table,对此Table作与第4步同样的处理,在合并“Header Row”之前先选中“Header Row”,右键点击选择“insert”,插入一行新的Header Row。然后将第一个“Header Row”合并,在合并后的“Header Row”中加入的“Lable”中输入“客户订单信息”使其居左布局后的视图:

12

插入报表数据参数绑定:选中我们在3.5.4中第3步加入的第一个Table,下方出现Table的属性编辑器Property Edit,选中标题栏的Binding栏,在“Data Set”的下拉框中中选择数据集“CustomerID”;然后点击其后的按钮“Dataset Parameter Binding”,进入后双击默认的变量进入进行设置,点击“Value”标签后的函数符号“”,进入参数设定界面:

13

从下方的设定窗口依次选择:Report Paramrters——All——{}CustID,双击{}CustID将其加入。依次点击各个窗口的“OK”,完成参数绑定。2 将数据集CustomerInfo中的数据项一一拖拽至第一个Table的第二列的“Detail Row”中,在第一列中加入“Lable”并输入标题信息。3 对第二个Table也做与第一步的相同操作:注意在Table的属性编辑器中进行参数绑定之前在“Data Set”中选择的数据集应该是Contract。做好参数绑定之后,将数据集Contract中的数据项一一拖拽到Table的“Detail Row”的两个空格中,然后将“Header Row”中自动生成的标题Lable更改。这样,我们就完成了交互报表的基本工作。END

同为比较常用的报表工具,FineReport对交互报表的解决方案和实现方法与BIRT有所不同,在FineReport中没有交互报表的概念,但是对参数的利用却渗透的FineReport的所有报表制作过程中,FineReport中交互报表的具体实现思路和步骤如下,供BIRT使用者借鉴:
1

1. 概述在数据集查询中,数据表,数据列以及条件都可以是动态的,下面我们来介绍动态数据表和动态条件,动态数据列实现方式有两种,下面有章节专门介绍。

2

2. 动态数据表若数据库中存在两张表结构相同,只是数据量不同,如何实现不同的人根据需要选择不同的表进行查看,从而提高查询效率呢?

3

2.1 实现思路在定义数据集时,通过if函数来判断参数的值从而来实现调用不同的数据表,如直接将SQL语句定义成:SELECT * FROM ${if(aa=1,'订单','订单1')},即若参数aa=1时,查询的是订单表,若aa!=1时,查询的是订单1表。

4

3. 动态条件若您对表中的数据进行过滤时,查询条件是不确定的,有时候想用A列进行过滤,有时候想用B列进行过滤,此时要如何实现呢?

5

3.1 实现思路在定义数据集时,将条件定义为参数,如SQL语句定义成:SELECT * FROM TableName ${Condition}。

6

3.2 示例· 打开模板打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL.cpt。· 修改数据集将数据集修改为:SELECT * FROM 订单 ${Condition}。· 修改参数界面将参数界面的控件名称修改为Condition即可。· 效果查看保存模板点击分页预览,输入动态的查询条件如:where 货主地区='西南',便可以获取货主地区为西南的数据了,效果如下图:END

推荐信息