动态显示参数控件

编辑
文档创建者:文档助手1 (67727 )     浏览次数:12416次     编辑次数:16次     最近更新:Dahlia 于 2017-01-22     

目录:

1. 问题描述编辑

由于业务的需要,很多情况下需要当满足某个条件时,某些查询条件才显示出来:
选择年报,显示年的下拉框控件,如图所示:
选择月报,显示年月下拉框控件,如图所示:
选择日报,显示日期下拉框控件,如图所示:

2. 实现思路编辑

通过控件的visible()、invisible() 属性控制其可见与不可见:
var Widget = form.getWidgetByName("[ParaName]"); //通过控件名获取控件,其中ParaName为控件名
Widget.visible(); //设置该控件可见 
Widget.invisible(); //设置该控件不可见

3. 示例编辑

3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicSQL\DynamicSQL.cpt
3.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.3 表样修改
将表样修改成如下样式:
给A3设置形态,自定义数据,实际值与对应的显示值分别为:日报,日期;月报,年月;年报,年份。
在B3单元格中增加如下公式:=if(type=="日报",$date,if(type=="月报",$year+"."+$month,$year))
3.4 参数界面设置
将参数界面设置成如下样式:
设置参数type的控件类型为下拉框,数据字典选择自定义,实际值与显示值都为日报,月报,年报。
设置参数year的控件类型为下拉框,属性设置为可用不可见,数据字典选择自定义,显示值与实际值都为2010,2011。
设置参数month的控件类型也为下拉框,属性设置为可用不可见,数据字典选择公式,在实际值出填写公式["01","02","03","04","05","06"]即可。
设置参数date的控件类型为日期,属性设置为可用不可见,返回值类型为默认的字符串型。
3.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控件。
3.6 保存模板
点击分页预览,效果如上图。在线查看模板效果请点击DynamicParaWidget.cpt

已完成模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicParaWidget.cpt

附件列表


主题: 参数应用
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: