如何优化公司的网站,广州北京网站建设,藁城区建设局网站,网站开发+兼职项目在用报表工具设计报表时#xff0c;使用参数控件时#xff0c;有时我们希望部分参数控件在没满足条件时不显示#xff0c;满足条件后再显示#xff0c;接下来我就来教教大家怎么做#xff01;表格软件如何根据条件控制参数控件是否显示一#xff1a;问题描述在使用参数控…在用报表工具设计报表时使用参数控件时有时我们希望部分参数控件在没满足条件时不显示满足条件后再显示接下来我就来教教大家怎么做表格软件如何根据条件控制参数控件是否显示一问题描述在使用参数控件时有时我们希望部分参数控件在没满足条件时不显示满足条件后再显示如下图效果只有前面的下拉款选择了内容之后后一层下拉框控件才显示出来二解决方案首先将被控制的控件初始化为不可见或者不可用然后在条件控件上增加编辑结束事件通过js脚本设置被控制控件可见或可用对应的js方法如下setEnable(boolean)设置是否可用true为可用false为不可用setVisible(boolean)设置是否可见true为可见false为不可见三示例打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\parameter\MutiValue.cpt我们用这个模板中的area作为条件控件province作为被控控件来说明设置过程。四初始化被控控件为不可见点击province控件选择属性表基本属性将可见勾选掉如下图五条件控件的事件设置给area控件添加编辑后事件调用JS方法将province控件设定为可见具体的代码如下选择参数area的下拉框控件选择属性表的事件面板增加一个编辑结束事件如下图图中的代码内容是其中代码为. var provincethis.options.form.getWidgetByName(province); var areathis.options.form.getWidgetByName(area);. var thislen this.getValue(area).length;. if(thislen) province.setVisible(true);. else alert(请选择地区);日期控件校验JS一概述内置参数查询界面当中可进行一些数据校验例如有两个参数开始日期和结束日期下面我们要校验的是开始日期与结束日期不能为空结束日期必须在开始日期之后以及结束日期必须在开始日期后的某个时间段内否则提示相关信息对此可以在查询按钮中增加事件。下面介绍下具体的设置。具体效果图如下步骤阅读具体错误见效果图报错警告。二打开模板打开模板%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\TimeScale\TimeScale.cpt。如下图参数界面三增加事件给查询按钮增加点击事件具体的JS代码如下var start this.options.form.getWidgetByName(starttime).getValue();var end this.options.form.getWidgetByName(endtime).getValue();if( start || startnull){ //判断开始日期是否为空alert(错误,开始时间不能为空); //开始日期参数为空时提示return false;};if(end || endnull){ //判断结束日期是否为空alert(错误,结束时间不能为空); //结束日期参数为空时提示return false;};if( start end){ //判断开始日期是否大于结束日期alert(错误,开始时间不能大于结束时间); //开始日期大于结束日期时提示return false;}var startdate new Date(start); //将开始日期转化为Date型var enddate new Date(end); //将结束日期转化成Date型var subdate (enddate-startdate)/ (1000 *60 *60 *24); //将两个日期相减得出的毫秒数转化为天数if(subdate15){ //判断结束日期是否超过开始日期后15天alert(错误,结束日期必须在开始日期15天之内); //结束日期超过开始日期后的十五天时提示return false;}注虽然参数控件中也可以设置校验但是参数控件要点击控件后才能进行校验因此参数界面的不能为空以及比较校验需要在查询按钮中设置。四效果查看分页预览模板选择开始时间和结束时间使这两个日期之间相差超过15天就会弹出上述对话框。注上述js代码在火狐谷歌IE9等浏览器下没有问题但是在IE8以及IE8以下的ie浏览器版本中时判断两个日期之间的差值的警告框则不会起作用。可用以下代码var start this.options.form.getWidgetByName(starttime).getValue();var end this.options.form.getWidgetByName(endtime).getValue();if( start || startnull){ //判断开始日期是否为空alert(错误,开始时间不能为空); //开始日期参数为空时提示return false;};if(end || endnull){ //判断结束日期是否为空alert(错误,结束时间不能为空); //结束日期参数为空时提示return false;};if( start end){ //判断开始日期是否大于结束日期alert(错误,开始时间不能大于结束时间); //开始日期大于结束日期时提示return false;}var aDate start.split(-)var startdate new Date(aDate[1] - aDate[2] - aDate[0]) //转换为MM-dd-yyyy格式alert(startdate);var aDate end.split(-)var enddate new Date(aDate[1] - aDate[2] - aDate[0])alert(enddate);var subdate ((enddate - startdate) /1000/ 60/60/24) //把相差的毫秒数转换为天数alert(subdate);if(subdate15){ //判断结束日期是否超过开始日期后15天alert(错误,结束日期必须在开始日期15天之内); //结束日期超过开始日期后的十五天时提示return false;}清空(重置)条件一问题描述在使用控件时有时我们希望能够快捷的重置控件的内容或者重置所有控件的内容效果如下图所示二解决方案只重置一个控件的值时我们可以在js事件中获取需要重置的控件执行reset()方法从而清空该控件的内容。当我们需要重置全部控件时可以通过form.name_widgets获取参数界面上所有的控件然后遍历每个控件并重置代码如下$.each(this.options.form.name_widgets,function(i,item){if (item.options.type !label) {item.setValue();item.setText();}});;三重置单个控件内容的按钮以上图中清空供应商按钮为例说明如何重置单个控件内容。在参数设计页面新建一个按钮控件设定其名字为清空供应商同时设置按钮点击事件将供应商(supplierID)控件内容清空具体的js如下var supplierID this.options.form.getWidgetByName(supplierID); //获取supplierID控件supplierID.reset(); //将supplierID控件内容清空四重置所有控件内容在参数界面新建一个按钮控件设定其名字为清空全部同时设置按钮点击事件事件js脚本为$.each(this.options.form.name_widgets,function(i,item){if (item.options.type !label) {item.setValue();item.setText();}});;隐藏参数界面向上向下的三角按钮一问题描述我们在预览带有参数面板的模板的时候会发现其参数界面与主体界面交接处有一个三角按钮那么如何隐藏该按钮呢二解决思路在模板加载结束后拿到该按钮元素然后设置其隐藏或者直接去掉即可。隐藏按钮$(.parameter-container-collapseimg-up).hide();去掉按钮$(.parameter-container-collapseimg-up).remove();三示例我们以GettingStarted.cpt模板为例想要在模板展示的时候就隐藏参数界面的三角按钮。打开设计器双击该模板切换到参数面板编辑界面单击一下参数面板的空白处选中参数面板添加一个初始化后事件如下图四js代码如下setTimeout(function() {$(.parameter-container-collapseimg-up).hide();}, 10);五效果查看保存模板点击预览即可看到三角按钮不再显示如下图参数控件赋值一概述参数界面中往往需要在一个控件中动态的控制其他控件的值如下图当username有值时state自动变为1否则变为2:二解决方案可以通过js脚本获取到需要的控件从而获得控件的值及给控件赋值。注不能给控件置数为0JS里面0表示false。且一个控件无法对另一个控件的显示值进行置数。三参数界面如下图参数界面username控件类型为下拉框数据自定义实际值和显示值都为jernyannamerry。state控件类型选择单选按钮组数据也为自定义实际值和显示值都为12。四JS事件设置在username的事件编辑中添加编辑后事件JS代码如下var state this.options.form.getWidgetByName(state);var username this.options.form.getWidgetByName(username).getValue();if (!username){state.setValue(2);}else{state.setValue(1);}该段代码是用来对state参数置数当username为空时!username为真此时将state置数为2,否则当username有值时将state置数为1。