多语言展示
当前在线:1909今日阅读:84今日分享:32

在报表设计软件中如何动态显示参数控件

由于业务的需要,很多情况下需要当满足某个条件时,某些查询条件才显示出来:选择年报,显示年的下拉框控件,如图所示:下面我们就通过报表设计软件FineReport来向大家介绍。
工具/原料
1

报表设计软件FineReport7.1.1

2

大小:148.2M 适用平台:windows/linux

方法/步骤
1

打开模板

2

修改数据集将数据集修改为:SELECT * FROM 订单 where 1=1 ${if(type=='日报','and date(订购日期) = '' + date + ''',if(type=='月报','and strftime('%m',订单.订购日期) = '+ month + ' and strftime('%Y',订单.订购日期) = ' + year ,'and strftime('%Y',订单.订购日期) = ' + year ))}给参数type设置默认值为日报,参数date设置默认值的类型为字符串型值为2010-01-03。

3

表样修改将表样修改成如下样式:给A3设置形态,自定义数据,实际值与对应的显示值分别为:日报,日期;月报,轿沟年月;年报,年份。在B3单元格中增加如下公式:=if(type=='日报',$date,if(type=='月报',$year+'.'+$month,$year))

4

参数界面设置将参数界面设置成如下样式:设置参数type的控件类型为下拉框,数据字典选择自定义,实际值与显示值都为日报,月报,年报。设置参数year的控件类型为下拉框,数据字典选择自定义,显示值与实际值都为2010,2011。特激肺设置参数month的控件类型也为下拉框,数据字典选择公式,在实际值出填写公式=range(1,6)即可。设置参数date的控件类型为日期,返回值类型为默认的字符串型。

5

动态显示参数控件JS事件设置给参数type的下拉框控件增加编辑后事件,具体的JS代码如下:点击参数type的下拉框控件,在属性表的下方选择事件面板,点击增加编辑后事件,具体的js如下:var form = this.options.form;var p2Widget = form.getWidgetByName('date');var p3Widget = form.getWidgetByName('year');var p4Widget = form.getWidgetByName('month');var value = this.getValue();  //获取当前参数即type参数的值if (value == '日报') {          p2Widget.visible();   p3Widget.invisible();   p4Widget.invisible();} else if (value == '月报') {   p2Widget.invisible();   p3Widget.visible();   p4Widget.visible();} else if(value == '年报'){   p2Widget.invisible();   p3Widget.visible();   p4Widget.invisible();}else {   p2Widget.invisible();   p3Widget.invisible();   p4Widget.invisible();}注:此段代码判断type参数的值,若是日报,则只显示date控件诸帮,若是月报,则显示year和month控件,若是年报,则只显示year控件。

6

保存模板点击分页预览,效果如上图。

推荐信息