新建报表
说明:
名称:用来定义参数的名字
提示文本:报表运行时参数输入时提示的文本
帮助文本:报表运行时参数输入时鼠标移过时的帮助文本
数据类型:参数的类型,共有八种基本类型(布尔,整型,浮点型,日期,时间,日期时间,字符串,十进制)
显示类型:显示的时候提供的类型(共有四种:文本框,组合框,列表框,单选按钮)
格式,指定帮助文件的格式;必须与否,指定参数是否必输;默认值,指定参数的默认值
下面分别介绍文本框,组合框,列表框,单选按钮
文本框只有静态一种,默认值可以是常量,也可以是由表达式生成器生成。
组合框分为静态组合框和动态组合框。
静态组合框可以构建组合框内容,也可以由一个数据集导入。
可以设置一个默认值。
排序指的是组合框的下拉排序,可以选择显示列或者值列的升序或者降序。
下面我们看一下动态组合框,新建一个报表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布局报表
预览以下
级联参数都可以设置默认值,设定排序字段,排序依据以及帮助文档,和组合框类似,不再赘述。