动态参数-使用普通参数
报表样例
通过本示例,可以了解如何在动态参数的值表达式中应用普通参数。
制作如下图所示的报表:
报表特点:
- 报表查询时能够输入一个查询日期,然后基于该日期值自动计算出其所在周的起始日与结束日,报表标题下方可显示出这一周的日期区间
- 报表根据自动计算出的起始日与结束日,显示出这一周内的所有订单数据
报表中的数据来自产品中自带的演示数据表“演示_订单表”,采用sql检索数据集并对字段“订购日期”设置了应用参数进行数据过滤的检索条件,数据集sql语法如下:
制作方法
在定义报表的sql检索数据集时,选取对应的表和字段后,在检索条件设置中分别定义名称为“beginDate”和“endDate”、数据类型为“日期”的普通参数,并应用这两个参数设置对字段“订购日期”的过滤条件。
参数定义如下图:
数据集过滤条件设置如下图:
在报表属性的【参数定义】界面中,先新增一个名称为“inputDate”的普通参数,用于接收传入的查询日期,然后将自动添加到报表参数中的“beginDate”、“endDate”两个参数的类型修改为“动态参数”,并设置默认值表达式,表达式中使用了日期计算函数与普通参数“inputDate”进行日期计算,注意对参数的引用需要在参数名前加@:
绘制报表格式,并应用制表助手实现这张列表式报表的制作,注意D2、F2两个单元格的值是分别引用了报表参数“beginDate”、“endDate”,即两个单元格中显示的分别是根据参数“inputDate”自动计算出的一周起始日期和结束日期:
使用通用查询,将参数“inputDate”添加为报表的查询条件即最终实现了此示例报表的制作:
功能点说明
动态参数值表达式引用普通参数
动态参数的默认参数值是作为一个表达式,报表计算时会先将表达式计算然后再将计算结果作为参数值传给报表使用。表达式中可以应用函数,可以引用其它参数的值。引用参数时使用符号@+参数名的形式,例如:@arg
例如上面的示例报表中,动态参数“beginDate”的默认值表达式为:weekBegin(@inputDate)。weekBegin()是日期计算函数,其作用是可以根据传入的日期计算出该日期所在周的第一天的日期,每周的第一天按周日开始。当报表计算时,首先会用普通参数“inputDate”的值替换掉表达式中对该参数的引用部分,然后再进行表达式的后续计算。例如当在报表中输入查询日期“1997-07-01”然后点击查询后,动态参数“beginDate”的值表达式引用普通参数inputDate的值变为:weekBegin("1997-07-01"),接着再继续执行表达式的函数运算,最终返回日期“1997-06-29”作为参数beginDate的值,供报表进行使用。动态参数“endDate”与上面同理。
详细了解参数的应用,请参考:参数。
详细了解weekBegin()、weekEnd()函数的功能和使用,请参考:weekBegin()、weekEnd()。