第四章 BIRT数据集和参数的建立 (续) .

来源:互联网 发布:淘宝店铺身份复核逾期 编辑:程序博客网 时间:2024/06/05 07:52

4.2 参数的设置

新建报表

说明:

名称:用来定义参数的名字

提示文本:报表运行时参数输入时提示的文本

帮助文本:报表运行时参数输入时鼠标移过时的帮助文本

数据类型:参数的类型,共有八种基本类型(布尔,整型,浮点型,日期,时间,日期时间,字符串,十进制)

显示类型:显示的时候提供的类型(共有四种:文本框,组合框,列表框,单选按钮)

格式,指定帮助文件的格式;必须与否,指定参数是否必输;默认值,指定参数的默认值

下面分别介绍文本框,组合框,列表框,单选按钮

文本框只有静态一种,默认值可以是常量,也可以是由表达式生成器生成。

组合框分为静态组合框和动态组合框。

静态组合框可以构建组合框内容,也可以由一个数据集导入。

可以设置一个默认值。

排序指的是组合框的下拉排序,可以选择显示列或者值列的升序或者降序。

下面我们看一下动态组合框,新建一个报表para_box.rptdesign,使用空白模板和示例数据库数据源

新建数据集:

select CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER,CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,CLASSICMODELS.CUSTOMERS.CONTACTLASTNAME,CLASSICMODELS.CUSTOMERS.PHONE,CLASSICMODELS.CUSTOMERS.ADDRESSLINE1,CLASSICMODELS.CUSTOMERS.CITY,CLASSICMODELS.CUSTOMERS.STATE,CLASSICMODELS.CUSTOMERS.POSTALCODE,CLASSICMODELS.CUSTOMERS.COUNTRY,CLASSICMODELS.CUSTOMERS.SALESREPEMPLOYEENUMBER,CLASSICMODELS.CUSTOMERS.CREDITLIMIT

from CLASSICMODELS.CUSTOMERS

where CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER=?

新建参数,选择动态组合框-字符串的数据类型,如图

说明:

数据集:指定动态组合框选定的数据集,可以新建

选择值列:指定组合框选定之后要用的值,可以只用数据集的特定字段,也可以用表达式生成器去生成特定的值

选择显示文本:指定组合框下拉时显示出来的文本,可以只用数据集的特定字段,也可以用表达式生成器去生成特定的值

默认值:指定组合框初始的值

排序依据:指定组合框下拉时的排序,可以指定数据集的特定字段,排序方向可以是升序或者降序

运行效果如下:

这样我们可以新建一个数据集2,带有占位符,把整个组合框参数传递过去

查询sql如下:

select CLASSICMODELS.ORDERS.CUSTOMERNUMBER,CLASSICMODELS.ORDERS.ORDERNUMBER,CLASSICMODELS.ORDERS.ORDERDATE,CLASSICMODELS.ORDERS.REQUIREDDATE

from CLASSICMODELS.ORDERS

where CLASSICMODELS.ORDERS.CUSTOMERNUMBER=?

绑定占位符和组合框参数:

我们用数据集2构建报表:

预览以下,

列表框和动态组合框类似,只是列表框可以多选

预览以下,按住ctrl键即可多选

单选按钮框和静态组合框类似:

不过,报表中使用最广泛的是级联组合下拉框,这又有两种情形

第一种是从单一数据集里选取,比如客户信息表中,一个客户的多条身份或者通讯信息,如果也都录入在一个表中,这个表中录入有多个客户的信息。我们要选取一个客户的一个身份或者一个通讯信息。

构建示例数据库上的数据集customer如下:

select CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER,CLASSICMODELS.CUSTOMERS.CUSTOMERNAME,CLASSICMODELS.CUSTOMERS.CONTACTLASTNAME,CLASSICMODELS.CUSTOMERS.PHONE,CLASSICMODELS.CUSTOMERS.ADDRESSLINE1,CLASSICMODELS.CUSTOMERS.CITY,CLASSICMODELS.CUSTOMERS.STATE,CLASSICMODELS.CUSTOMERS.POSTALCODE,CLASSICMODELS.CUSTOMERS.COUNTRY,CLASSICMODELS.CUSTOMERS.SALESREPEMPLOYEENUMBER,CLASSICMODELS.CUSTOMERS.CREDITLIMIT

from CLASSICMODELS.CUSTOMERS

新建级联参数casc,选择Single Data Set

添加级联参数casc1

再添加级联参数casc2

这样下拉框2只能从下拉框1的取值中去筛选:

另一种是从多个数据集中筛选

我们再构建一个数据集orders

select CLASSICMODELS.ORDERS.ORDERNUMBER,CLASSICMODELS.ORDERS.ORDERDATE,CLASSICMODELS.ORDERS.REQUIREDDATE,CLASSICMODELS.ORDERS.CUSTOMERNUMBER

from CLASSICMODELS.ORDERS

where CLASSICMODELS.ORDERS.CUSTOMERNUMBER=?

然后再构建级联参数casc

 

其中casc1取自数据集customer,取值customernumber,显示值customername,显示类型是组合框;

Casc2取自数据集orders,取值ordernumber,显示值orderdate,显示类型是组合框;

然后再绑定数据集orders,占位符绑定参数casc1

这样我们就构建了级联参数了,为了测试,我们再构建数据集customerorder

select CLASSICMODELS.ORDERDETAILS.ORDERNUMBER,CLASSICMODELS.ORDERDETAILS.PRODUCTCODE,CLASSICMODELS.ORDERDETAILS.QUANTITYORDERED,CLASSICMODELS.ORDERDETAILS.PRICEEACH,CLASSICMODELS.ORDERDETAILS.ORDERLINENUMBER

from CLASSICMODELS.ORDERDETAILS

where CLASSICMODELS.ORDERDETAILS.ORDERNUMBER=?

然后绑定占位符到参数casc2,用customerorder布局报表

预览以下

 

 

级联参数都可以设置默认值,设定排序字段,排序依据以及帮助文档,和组合框类似,不再赘述。

 

原创粉丝点击