帆软参数设置_数据分析软件之FineReport教程:[5]参数界面JS(全)

在用报表工具设计报表时,使用参数控件时,有时我们希望部分参数控件在没满足条件时不显示,满足条件后再显示,接下来我就来教教大家怎么做!

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

一:问题描述

在使用参数控件时,有时我们希望部分参数控件在没满足条件时不显示,满足条件后再显示,如下图效果:只有前面的下拉款选择了内容之后,后一层下拉框控件才显示出来:

二:解决方案

首先将被控制的控件初始化为不可见或者不可用,然后在条件控件上增加编辑结束事件,通过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 province=this.options.form.getWidgetByName("province"); var area=this.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 == "" || start==null){ //判断开始日期是否为空

alert("错误,开始时间不能为空"); //开始日期参数为空时提示

return false;

};

if(end == "" || end==null){ //判断结束日期是否为空

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(subdate>15){ //判断结束日期是否超过开始日期后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 == "" || start==null){ //判断开始日期是否为空

alert("错误,开始时间不能为空"); //开始日期参数为空时提示

return false;

};

if(end == "" || end==null){ //判断结束日期是否为空

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(subdate>15){ //判断结束日期是否超过开始日期后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脚本获取到需要的控件,从而获得控件的值,及给控件赋值。

注:不能给控件置数为0,JS里面,0表示false。且一个控件无法对另一个控件的显示值进行置数。

三:参数界面

如下图参数界面

username控件类型为下拉框,数据自定义,实际值和显示值都为:jerny,anna,merry。

state控件类型选择单选按钮组,数据也为自定义,实际值和显示值都为:1,2。

四: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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355241.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wurfl_比较OpenDDR与WURFL

wurfl量身定制的Web内容通常受益于定制,以考虑多种因素,例如屏幕大小,标记语言支持和图像格式支持。 此类信息存储在“设备描述存储库”(DDR)中。 WURFL和OpenDDR项目都提供了访问DDR的API,以简化并促进适应…

ssm 静态资源处理器

ssm 静态资源处理器<!-- 静态资源处理--><mvc:default-servlet-handler/>

极简单的方式序列化sqlalchemy结果集为JSON

继承 json.JSONEncoder 实现一个针对sqlalchemy返回类型的处理方式。 sqlalchemy的返回类型有大都有两种&#xff0c;一种是Model对象&#xff0c;一种是Query集合&#xff08;只查询部分字段&#xff09;。 针对这两种返回结果&#xff0c;都是来自同一中类型 sqlalchemy.orm…

easymock 图片_数据模拟神器 easy-mock 正式开源

开源公告由大搜车无线团队出品的 easy-mock 在线数据模拟服务上线至今已经有几个月时间了&#xff0c;近期网站刚更新了焕然一新的 2.0 版本&#xff0c;与此同时&#xff0c;我们还带来一个更重磅的消息&#xff1a;今天正式将整个服务的代码在 github 开源(github.com/easy-m…

在自定义Java 9映像上运行Eclipse Neon

我已经开始修改自定义Java二进制运行时映像文件。 映像文件是打包为运行时平台的模块的配置。 基本上&#xff0c;默认映像包含组成Java运行时的所有内容。 自定义图像可以包含该图像的一些子集。 例如&#xff0c;我创建了一个仅包含“ compact 3”概要文件的映像&#xff0c…

ssm异常捕获和处理

ssm异常捕获和处理package exception;import lombok.extern.slf4j.Slf4j; import org.hibernate.HibernateException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ResponseBody; import entity.vo.Res…

载波聚合或双连接的方式进行_处理载波聚合及双连接的装置及方法与流程

本发明涉及一种用于无线通信系统的通信装置及方法&#xff0c;尤其涉及一种处理载波聚合及双连接的装置及方法。背景技术&#xff1a;通过第三代合作伙伴计划(third generation partnership project&#xff0c;3GPP)发起的新无线(new radio&#xff0c;NR)系统包含有新无线接口…

拼接xml

拼接xml/*** description 拼接xml* param list 用户信息* return java.lang.String 拼接完成的xml* author zhaohuaqing* date 2021/6/21 15:39* version 1.0*/public static String getUserXMl(List<User> list,int totalNumber,int start){StringBuilder sb new Stri…

unity游戏开发毕设_一个程序小白的unity 2D游戏开发的反思与经验

学游戏设计的码农&#xff0c;中传大三在校生&#xff0c;代码水平目前还在进阶中。这个学期和美术一起进行了一次不成熟的磕磕绊绊的游戏开发。踩了很多坑&#xff0c;就当是毕设前的预热吧&#xff0c;做个总结&#xff0c;希望毕设不会再犯这些错误。因为整个本科阶段做的或…

Asp.Net MVC项目通过Git同步到新开发设备上后无法作为网站启动

右键项目名->属性->启动项目->单启动项目&#xff0c;在下拉框中选择你的网站主项目就可以了。&#xff08;由于用的英文版&#xff0c;所以翻译的内容可能略有差异&#xff09;转载于:https://www.cnblogs.com/chenyangsocool/p/7127469.html

前端参数编码

前端参数编码//对参数编码 function paramsCode(){var params ;$(.param).each(function () {var name $(this).attr("name");if ($(this).attr("type") "radio"){params (&name encodeStr($("input[name"name"]:checke…

如何以访客模式访问_重新访问了访客模式

如何以访客模式访问访客模式是面向对象设计中最被高估但又被低估的模式之一。 高估了它&#xff0c;因为它通常选择得太快了&#xff08; 可能是由建筑宇航员选择的 &#xff09;&#xff0c;然后以错误的方式添加后&#xff0c;使原本非常简单的设计肿了。 如果您不遵循教科书…

abap 创建出口历程_SAP abap 需找出口(BADI)的几种方法

现在给出一些比较简单的方法首先&#xff0c;大家要知道&#xff0c;一个程序的出口不会太多&#xff0c;需找出口&#xff0c;很多的时候都是在尝试第二&#xff0c;方法&#xff1a;首先会给出事务码&#xff0c;然后通过SE93找出对应的程序Y第三&#xff0c;se16里面&#x…

Objective-C基础语法高速入门

Objective-C是Mac软件开发领域最基本的开发语言&#xff0c;假如我们对C语言已经非常熟悉或者具有面向对象语言的基础。对于我们学习Objective-C将会非常实用。 方法调用(Calling Methods) 为了可以尽快上手。我们先来看一些简单的样例。Objective-C语法里面主要的方法调用是这…

华为堡垒机_运维堡垒机----Gateone

简介&#xff1a;运维堡垒机的理念起源于跳板机。2000年左右&#xff0c;高端行业用户为了对运维人员的远程登录进行集中管理&#xff0c;会在机房里部署跳板机。跳板机就是一台服务器&#xff0c;维护人员在维护过程中&#xff0c;首先要统一登录到这台服务器上&#xff0c;然…

拼图推迟将Java 9的发布日期推迟到2017年

由于Jigsaw项目的延迟&#xff0c;Java 9的发布日期被推迟到2017年 由于项目延迟的悠久历史&#xff0c;这可能不足为奇&#xff0c;但是看起来备受期待的拼图项目已被延迟。 再次。 好消息是&#xff0c;与上一次使用Java 8不同&#xff0c;它仍在Java 9的开发路线上。坏消息…

前端获取当前url路径

前端获取当前url路径//获取url路径 function getUrlPath(){//获取当前网址var currentPath window.document.location.href;//获取主机地址之后的目录var pathName window.document.location.pathname;var pos currentPath.indexOf(pathName);//获取主机地址var localhostPa…

jquery改变字符串中部分字符的颜色

//该方法改变字符串中中括号内&#xff08;包括中括号&#xff09;的字符串颜色为红色function changecolocer() {  var zf $(#YWFA).text();   if(zf.length>0){     $(#YWFA).html(zf.replace(/\【.*?\】/g,<label style"color:red;">$&<…

java自动推断类型_Java 7的类型推断

java自动推断类型每个优秀的程序员都喜欢编写简洁但有效且经过优化的代码。 类型推断是JDK 7中引入的一种方法&#xff0c;它肯定会为您带来更少键入的好处。 您以以下方式使用Java代码已有很长时间了。 但是&#xff0c;在初始化Collections的特定实现时&#xff0c;您是否曾经…

shell 删除七日内日志_shell日志删除(超容量自动)

背景&#xff1a;避免双十一磁盘被打爆&#xff0c;本想通过crontab执行&#xff0c;但是删除需要密码&#xff0c;所以用作当机器磁盘高于摸个阈值&#xff0c;进行无关性日志强删#!/bin/sh#use#sh clean.sh wmporder_prehost 38(说明&#xff1a;磁盘超过38%&#xff0c;则进…