目录

实例介绍

实例介绍

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,就可以获得本章开头的那张图中的报表。