宝哥软件园

数据分析软件FineReport教程:[5]参数接口JS(完整)

编辑:宝哥软件园 来源:互联网 时间:2021-09-08

在使用报表工具设计报表、使用参数控件时,有时我们希望某些参数控件在不满足条件时不显示,而在满足条件后显示。那我就教你怎么做!

表格软件如何控制参数控制是否根据条件显示

一、问题描述

在使用参数控件时,有时我们希望有些参数控件在不满足条件时不显示,而是在满足条件后才显示,如下图所示:上一级下拉框控件只有选择了上一级下拉框的内容后才会显示:

二:解决方案

首先将受控控件初始化为不可见或不可用,然后将编辑结束事件添加到条件控件中,通过js脚本将受控控件设置为可见或可用。相应的js方法如下:

SetEnable(布尔值):设置是否可用,true可用,false不可用;

SetVisible(布尔值):设置是否可见,true可见,false不可见;

三:例子

打开模板% fr _ home % web report web-INF report lets doc parameter muti value . CPT。

在此模板中,我们使用区域作为条件控制,使用省作为控制控制来说明设置过程。

4.将受控控件初始化为不可见

点击省控件,选择属性表的基本属性进行勾选,如下图所示:

动词(verb的缩写)条件控件的事件设置

向区域控件添加一个已编辑的事件,并调用JS方法将省控件设置为可见。具体代码如下:

选择参数区的下拉框控件,选择属性页的事件面板,添加编辑结束事件,如下图:

图中代码内容为:

其中代码为:var省份=this . options . form . getwidgetbyname('省份');var area=this . options . form . getwidgetbyname(' area ');var thislen=this.getValue(面积)。长度;if(thislen)省份. set visible(true);else alert('请选择一个地区');检查JS的日期控制

一.概述

可以在内置的参数查询界面进行一些数据验证。例如,有两个参数:开始日期和结束日期。我们需要验证以下内容:开始日期和结束日期不能为空,结束日期必须在开始日期之后,并且在开始日期之后的一定时间段内。否则会提示相关信息,可以在查询按钮中添加事件。以下描述了具体的设置。

具体效果图如下:

分步阅读

有关具体错误,请参见渲染中的错误警告。

二:打开模板

打开模板:% fr _ home% webreport web-INF 子报告文档参数时间刻度时间刻度. cpt.

参数界面如下所示:

第三,增加活动次数

向查询按钮添加点击事件。具体的JS代码如下:

var start=this . options . form . getwidgetbyname(' start time ')。getValue();var end=this . options . form . getwidgetbyname(' end time ')。getValue();如果(start=='' || start==null){ //判断开始日期是否为空预警('错误,开始时间不能为空');//当起始日期参数为空时,提示返回false};如果(end=='' || end==null){ //判断结束日期是否为空预警('错误,结束时间不能为空');//当结束日期参数为空时,提示返回false};如果(开始结束){ //判断开始日期是否晚于结束日期预警(‘错误,开始时间不能晚于结束时间’);//当开始日期晚于结束日期时,提示返回false}var startdate=新日期(开始);//将开始日期转换为日期类型var enddate=new Date(结束);//将结束日期转换为日期类型varsubdate=(end Date-start Date)/(1000 * 60 * 60 * 24);//如果(子日期15){ //判断结束日期是否超过开始日期预警后的15天(错误,结束日期必须在开始日期的15天以内),则将两个日期相减得到的毫秒数转换为天;//结束日期超过开始日期十五天后提示返回false}注意:虽然也可以在参数控件中设置验证,但是要点击控件才能验证参数控件,所以参数界面不能为空,需要在查询按钮中设置比较验证。

四:效果查看

页面预览模板,选择开始时间和结束时间,使这两个日期相差超过15天,就会弹出上面的对话框。

注意:上面的js代码在Firefox、Google ie9等浏览器中没有问题,但是判断两个日期差异的警告框在ie8以下的IE浏览器版本中不会工作。以下代码可用:

var start=this . options . form . getwidgetbyname(' start time ')。getValue();var end=this . options . form . getwidgetbyname(' end time ')。getValue();如果(start=='' || start==null){ //判断开始日期是否为空预警('错误,开始时间不能为空');//当起始日期参数为空时,提示返回false};如果(end=='' || end==null){ //判断结束日期是否为空预警('错误,结束时间不能为空');//当结束日期参数为空时,提示返回false};如果(开始结束){ //判断开始日期是否晚于结束日期预警(‘错误,开始时间不能晚于结束时间’);//当开始日期晚于结束日期时,提示返回false} var adate=start。split('-')var start date=new date(adate[1]'-' adate[2]'-' adate[0])//转换为MM-dd-yyyy格式alert(start date);var aDate=end . split('-')var end Date=new Date(aDate[1]'-' aDate[2]'-' aDate[0])警报(end Date);Var子日期=((end date-start date)/1000/60/60/24)//将毫秒差转换为预警天数(子日期);如果(子日期15){ //判断结束日期是否超过开始日期预警后的15天(‘错误,结束日期必须在开始日期的15天以内’);//结束日期超过开始日期十五天后提示返回false}空(重置)条件

一、问题描述

在使用控件时,有时我们希望能够快速重置控件的内容,或者重置所有控件的内容,如下图所示:

二:解决方案

当只重置一个控件的值时,我们可以在js事件中获取需要重置的控件,并执行reset()方法来清空控件的内容。

当我们需要重置所有控件时,可以通过form.name_widgets获取参数接口上的所有控件,然后遍历每个控件并重置。代码如下:

$.每个(this.options.form.name_widgets,function(i,item){ if (item.options.type!==' label '){ item . SetVaLue();item . settext();} });

三:重置单个控件内容的按钮

以上图中的清除供应商按钮为例,说明如何重置单个控件的内容。

在参数设计页面上创建一个新的按钮控件,将其名称设置为空供应商,并设置按钮点击事件以清空供应商控件的内容。具体js如下:

var supplier id=this . options . form . getwidgetbyname(' supplier id ');//获取supplierID控件supplier id . reset();//清空supplierID控件的内容

4.重置所有控件内容,在参数界面新建一个按钮控件,将其名称设置为Clear All,同时设置按钮点击事件。事件js脚本是:

$.每个(this.options.form.name_widgets,function(i,item){ if (item.options.type!==' label '){ item . SetVaLue();item . settext();} });

隐藏参数界面中的向上和向下三角形按钮

一、问题描述

当我们用参数面板预览模板时,会发现参数界面和主界面的交界处有一个三角形的按钮,那么如何隐藏这个按钮呢?

二:解决方案

加载模板后,获取按钮元素,然后将其设置为隐藏,或者直接移除。

隐藏按钮

$('.参数-容器-折叠-向上')。hide();

移除按钮

$('.参数-容器-折叠-向上')。移除();

三:例子

以GettingStarted.cpt模板为例,我们想在模板显示时隐藏参数界面的三角形按钮。

打开设计器,双击模板,切换到参数面板编辑界面,点击参数面板空白处,选择参数面板,添加初始化后事件,如下图:

四:js代码如下:

setTimeout(函数(){ $(')。参数-容器-折叠-向上')。hide();}, 10);

五:效果查看

保存模板,点击预览,可以看到三角形按钮不再显示,如下图:

参数控制分配

一.概述

在参数接口中,经常需要动态控制一个控件中其他控件的值。如下图所示,当username有值时,状态自动变为1,否则变为2:

二:解决方案

您可以通过js脚本获取所需的控件,从而获取控件的值并为控件赋值。

注意:您不能将控制编号设置为0。在JS中,0表示假。一个控件不能设置另一个控件的显示值。

三:参数接口

参数界面如下所示

用户名控件类型是下拉框,数据是用户定义的。实际值和显示值分别为:jerny、anna、merry。

单选按钮组被选为状态控件类型,并且数据也是用户定义的。实际值和显示值为:1,2。

四:JS事件设置

在用户名的事件编辑中添加编辑后事件,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);}

该代码用于设置状态参数的编号。当用户名为空时,如果用户名为真,此时将状态设置为2;否则,当username有值时,将state设置为1。

更多资讯
游戏推荐
更多+