目录

普通参数

一、报表实例

制作下图所示的“地区订单详细表”,通过设置参数“货主地区”,使用户可以按地区查看订单明细。

 

二、设计过程

第1步:新建报表

第2步:定义数据集

demo_地区订单:select 订单ID, 订购日期, 货主名称, 货主地址, 货主地区 from DEMO_ORDERS where 货主地区=?

1. 选择主表,勾选字段


2. 在【检索条件设置】页面的打开【参数设置】页面,【增加】一个参数,设置参数的名称为“Area”,参数描述为“地区”,数据类型为“字符串”,参数类型为“普通参数”,默认值为“东北”:


3.返回到【检索条件设置】界面,【增加】一个检索条件,【字段】选为货主地区,【条件值或参数名】选择参数并选择存在的参数【Area】:


4. 返回主界面,进行【数据预览】的结果如下图所示:


5.【查看sql】的结果为:


第3步:编辑报表

1. A3单元格的表达式:=demo_地区订单.Select(订单ID)

2. B3单元格的表达式:=demo_地区订单.订购日期,显示格式为yyyy-MM-dd

3. C3单元格的表达式:=demo_地区订单.货主名称

4. D3单元格的表达式:=demo_地区订单.货主地址

5. E3单元格的表达式:=demo_地区订单.货主地区

6. 合并单元格A1~E1,输入标题:=@Area+"地区订单详细表"

7. 美化外观

第4 步:保存预览报表

报表保存为“地区订单详细表”,预览结果如下图所示:

 

如果我们在【参数定义】中,将参数Area的值设为“华北”,则预览结果如下:

可见,设置不同的Area值,我们就可以查看不同地区的订单详细表。

三、小结 

1. 参数的作用

参数的作用是为SQL传入条件值,或为存储过程传入参数值。在简单SQL、复杂SQL及存储过程数据集中,可以使用参数,从而增加数据集使用的灵活性。
    要注意的是,参数的作用仅限于此,不能用在SQL的条件值之外的其它位置或存储过程的过程名。

2. 参数的使用

(1) 点击菜单工具栏的【报表属性】-【参数定义】


    弹出“参数定义”窗口,如下图所示:

(2) 点击【增加】按钮,新增一个参数,默认名称为“arg0”,数据类型为“字符串”,参数类型为“普通参数”


定义参数的名称、描述、类型、数据类型、值等内容。

(3) 在报表中通过“@参数名”引用参数值。

(4) 如果需要,在数据集中定义参数。

3. 参数的内容

 定义参数时,应定义参数的名称、描述、类型、数据类型、值等内容。

参数的类型
    参数共有三种类型:

(1) 普通参数:参数值应该由外部传入;

(2) 动态参数:参数值通过一个表达式运算而来;

(3) 会话变量:参数值会从会话(session)中获取对应名称的会话变量;
    对于数据集本身来说,数据集并不关心参数的类型,它只需要参数值。而由引擎根据不同的参数类型,以不同的方式拿到参数值,再传给数据集。
参数的名称
    参数的名称仅对普通参数有意义,因为普通参数应由外部传入。而外部传入时,就应该以该参数的名称,传入这个参数。
参数的数据类型
    因为参数的作用是为SQL及存储过程提供值,因此参数的数据类型为SQL支持的数据类型的一个子集。
参数的值
    对于普通参数,这个值将作为默认值,若外部未传入该参数,则以默认值进行后面的动作。未设置时认为是空值,默认值将传入null。
    对于动态参数,这里应该设置动态参数的表达式。未设置时认为是空表达式,其运算结果将为null。

4. 数据集的参数定义

建立数据集时增加的参数,可以让使用该数据集制作的报表,按照参数的值起到筛选作用。

添加参数的步骤:

(1) 在检索条件的区域增加一个条件,选择设置为参数的字段、别名、比较符等;

(2) 在参数的页面增加一个参数,设置参数的名称、描述、数据类型、参数类型、默认值等。
    为数据集定义参数时,参数定义的数量和顺序,应与SQL语句中的参数标记(即“?”)一一对应。每个参数都应该被用到,且只能被使用一次。

5.报表参数与数据集参数

报表中引入的带参数的数据集,会自动添加到与数据集参数对应的报表参数,来为报表参数传值。数据集参数自动生成参数表达式。