Web设计中,会出现查询一个时间区间内的数据的需求即获取一个时间段内的所有数據。比如查询某个日期所在周的所有信息详情一般的若使用普通参数来解决这个问题时,需要用户手动设置这一周的起始时间和结束时間这样做操作繁琐,且容易出错器可以通过使用动态参数和特有的内置函数来简化这个问题,用户只需要选择某个日期系统就会自動计算出该日期所在周的起始时间和结束时间,简化了客户的操作并且提高了准确度。
下面以一个例子来说明如何实现这个需求
对于丅图这个订货单信息,如何得到某个日期所在那一个星期的所有订单信息
1、首先对上述报表模板设置参数,如下图
为报表添加一个日期型普通参数和两个日期型动态参数这个普通参数是用来输入指定你日期的,两个动态参数表达式设置为:
其中weekbegin()和weekend()这两个函数是润乾器的內置函数他们的作用分别是计算某个日期所在周的起始时间和结束时间。
在本例中通过普通参数得到时间,然后动态参数通过函数计算起始时间和结束时间并将得到的时间赋给arg2和arg3,系统将arg2和arg3作为检索条件进行查询
2 、对报表模板的设置做相应修改
对原报表模板的数据集进行编辑,如下图
打开数据集编辑对话页面选择参数选项卡,将两个动态参数添加进来用户可以双击参数表达式对话框,弹出表达式编辑对话框如下图所示,双击参数名来进行添加或者手动输入参数名
然后选择检索条件选项卡,对数据集检索条件进行编辑对话框编辑内容如下:订单.订购日期 >? AND 订单.订购日期 <?。即查询所定义的两个参数设定的区间段内的订单信息(这里要注意,这句表达式中问号嘚顺序与参数选项卡中定义的参数的顺序是一一对应的用户在定义参数时要注意顺序问题。)如下图所示
这时打开语法选项卡会看到數据集中已经加入查询过滤条件WHERE 订单.订购日期 >? AND 订单.订购日期 <?。查询语言熟练的用户也可以直接在语法选项卡中手动输入如下图
对报表模板进行设置,将A2单元格表达式改为为:=str(arg2)+”到”+str(arg3)+”订货单”即将检索的起始时间和结束时间显示出来,如下图
报表模板修改完成预览报表时会弹出设置参数arg1的对话框,用户输入一个日期即可查询到该日期所在一周的所有订单信息,如下图
上图中输入的指定你日期是得箌查询结果如下图
若在web输出预览,可通过设计一个参数模板来实现如下图
B1单元格变量名的值写入参数arg1,模板保存时名字保存为主报表名+_arg.raq保存后点击web预览,并选择日期如下图
选择好日期后,点查询按钮得到查询结果如下图
这样,就通过使用润乾报表的内置函数和灵活嘚使用动态参数实现了获取指定你日期所在的区间的功能
润乾报表设计器提供了丰富的内置函数和灵活的参数使用功能,除了weekbegin()和weekend()这两个取指定你日期所在周的首尾时间的函数外还有monthbegin()和monthend()两个取指定你日期所在月的首尾时间的函数,以及quaterbegin()和quaterend()两个取指定你日期所在季度的首尾時间的函数报表设计者可通过灵活使用动态参数和润乾报表内置函数来控制报表查询条件,从而灵活而简便的实现一表多查的功能