参数表达式-引用相同报表参数
报表样例
通过本示例,可以了解不同数据集参数引用相同报表参数的应用。
制作如下图所示的报表:
报表特点:
- 查看订单时,可以输入查询的地区,输入的地区将传给报表中的订单数据集ds1和客户数据集ds2,在两个数据集中分别过滤出下达订单的客户和收货人都在同一地区的数据
- 报表中订购客户名称、订购客户地区两列的数据来自数据集ds2,其余列的数据来自数据集ds1
- 数据集ds1中设置了参数area对字段货主地区过滤,数据集ds2中设置了参数region对字段地区过滤,两个数据集参数通过引用同一个报表参数来获取相同的地区查询值
数据集ds1从产品中自带的演示数据表“演示_订单表”取数,采用复杂sql数据集,sql语法如下:
数据集ds2从产品中自带的演示数据表“演示_客户表”取数,采用复杂sql数据集,sql语法如下:
制作方法
定义数据集ds1时设置参数area对订单表的货主地区字段过滤:
数据集ds2设置参数region,用于控制从客户表查询的客户地区:
在【报表属性-参数定义】界面下新增一个报表参数“diqu”,并且修改两个数据集参数的参数表达式,设置为引用报表参数diqu,原来自动添加的报表参数可以删除:
绘制报表格式,并设置单元格表达式,其中:
- A4:=ds1.select(订单ID,false)
- B4:=ds1.客户ID
- C4:=ds2.select1(客户名称,客户ID==B4)
- D4:=ds2.地区
- E4:=ds1.货主名称
- F4:=ds1.货主地区
- G4:=ds1.货主城市
- H4:=ds1.货主地址
由于客户本身所在的地区并不总是与订单的送货地区相同,因此在报表的部分行中C4、D4单元格的值可能为空,这些行我们并不需要在报表中显示,这时可以将这些数据所在的行隐藏,选中第四行单元格,设置隐藏行表达式:
进入通用查询,将参数diqu添加为查询条件即最终完成此示例报表制作:
功能点说明
参数表达式引用相同报表参数
参数表达式用于设置数据集参数与报表参数的对应关系,报表计算时数据集参数的值是通过参数表达式中引用的报表参数传入。
可以根据需要人为地更改设置数据集参数的参数表达式,设置需要引用的报表参数。报表中不同数据集中的参数,可以引用相同的报表参数。
在上面的示例报表中,数据集ds1的参数area和数据集ds2的参数region均通过参数表达式设置为引用报表参数diqu,实现两个数据集中均利用相同的参数值进行数据过滤,只是各自过滤的字段不同。
详细了解参数表达式,请参考:参数。