实例介绍
实例介绍
1、新建一个空白报表,定义两个参数,如下所示:
2、建立两个数据集。
ds1:SELECT 订单.订购日期,订单.订单ID,订单.货主地区,订单.货主城市,订单.运货商 FROM 订单 WHERE 订单.订购日期 >? AND 订单.订购日期 <?
并添加两个参数定义arg2和arg3。
ds2:SELECT 运货商.公司名称,运货商.运货商ID FROM 运货商报表设计如下:
其中,
A2单元格表达式为:=str(arg2)+"到"+str(arg3)+"订货单"
A4单元格表达式为:=ds1.Select(货主地区)
B4单元格表达式为:=ds1.货主城市
C4单元格表达式为:=ds1.订单ID
D4单元格表达式为:=ds1.运货商,显示值表达式为=ds2.select(公司名称,,运货商ID==value())
E4单元格表达式为:=date(ds1.订购日期),显示格式为:yyyy年MM月dd日
3、浏览报表,分别输入起始日期和结束日期参数值,即可查出结果报表。
这样就完成了一个按始末日期查询的报表,这个报表在预览的时候需要输入两个参数。但是对于我们查询过去某周的这种需求,这个报表就需要确定该周的始末日期才能查询,对用户来说很不方便,一般人们记不住过去的某个日期所在周的始末日期是啥。
如何才能做到随便输入一个日期,就自动算出这个日期所在周的周报表呢?这个就要使用动态参数了。
4、动态参数
简单的说,动态参数就是可以使用表达式的参数。在这个报表里,进入主菜单-配置-参数,添加一个新参数arg1,数据类型为日期型,把arg2和arg3两个参数的参数类型都改成动态参数,arg2的值填写weekbegin(arg1),arg3的值填写weekend(arg1)。
现在,预览报表,可见弹出的参数设置窗口中只有arg1一个参数了。
随便输入一个日期(注意要yyyy-MM-dd的格式来输入),如1996-07-08,就可以获得本章开头的那张图中的报表。