亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

數據分析軟件之FineReport教程:[5]參數界面JS(全)

2019-11-20 11:49:48
字體:
來源:轉載
供稿:網友

在用報表工具設計報表時,使用參數控件時,有時我們希望部分參數控件在沒滿足條件時不顯示,滿足條件后再顯示,接下來我就來教教大家怎么做!

表格軟件如何根據條件控制參數控件是否顯示

一:問題描述

在使用參數控件時,有時我們希望部分參數控件在沒滿足條件時不顯示,滿足條件后再顯示,如下圖效果:只有前面的下拉款選擇了內容之后,后一層下拉框控件才顯示出來:

二:解決方案

首先將被控制的控件初始化為不可見或者不可用,然后在條件控件上增加編輯結束事件,通過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瀏覽器版本中時判斷兩個日期之間的差值的警告框則不會起作用??捎靡韵麓a:

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。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
最近2019年中文视频免费在线观看| 欧美极品第一页| 国产精品 欧美在线| 夜夜嗨av色综合久久久综合网| 日韩精品视频免费专区在线播放| 爽爽爽爽爽爽爽成人免费观看| 欧美中文在线免费| 亚洲激情 国产| 亚洲精品电影网在线观看| 亚洲毛片在线观看| 欧美成人在线免费视频| 亚洲精品视频在线观看视频| 精品中文字幕乱| 亚洲视频在线观看免费| 亚洲福利在线视频| 久久成人18免费网站| 精品国产一区二区三区久久狼黑人| 久久久久在线观看| 国产一区二区丝袜高跟鞋图片| 日韩精品日韩在线观看| 国产精品美女主播在线观看纯欲| 国产精品7m视频| 久久夜色精品国产亚洲aⅴ| 97视频免费在线观看| 久久电影一区二区| 欧美日韩一二三四五区| 久久精品夜夜夜夜夜久久| 欧美性猛交xxxxx免费看| 91免费福利视频| 久久天天躁夜夜躁狠狠躁2022| 国产精品 欧美在线| 日韩女优在线播放| 国产成人精品一区二区在线| 欧美限制级电影在线观看| 超碰97人人做人人爱少妇| 欧美精品在线极品| 青草青草久热精品视频在线观看| 国产精品老女人视频| 亚洲精品少妇网址| 91av视频在线播放| 亚洲最大的网站| 亚洲毛茸茸少妇高潮呻吟| 亚洲国产另类 国产精品国产免费| 欧美精品videosex极品1| 6080yy精品一区二区三区| 日韩有码在线电影| 日韩在线视频观看正片免费网站| 欧美日韩在线第一页| 亚洲欧美日韩视频一区| 成人激情视频在线观看| 永久免费看mv网站入口亚洲| 国产精品偷伦视频免费观看国产| 在线观看国产精品淫| 午夜精品国产精品大乳美女| 欧美激情亚洲综合一区| 亚洲欧美中文日韩在线v日本| 国产婷婷97碰碰久久人人蜜臀| 国产精品午夜国产小视频| 国产精品第七影院| 久久久影视精品| 国产精品久久久久久久av电影| 亚洲一区亚洲二区| 视频一区视频二区国产精品| 国产精品免费在线免费| 大胆欧美人体视频| 亚洲一区中文字幕在线观看| 久久久久久久久亚洲| 欧美激情精品久久久久久黑人| 久久精品在线视频| 久久久久久久久综合| 久久久www成人免费精品| 中文字幕亚洲欧美| 国产日韩欧美在线看| 久久国产精品久久久| 国产欧美精品在线播放| 91福利视频在线观看| 亚洲国产精品va| 亚洲欧美中文字幕在线一区| 91青草视频久久| 大伊人狠狠躁夜夜躁av一区| 国产精品久久久久久久午夜| 57pao成人永久免费视频| 欧美成人精品h版在线观看| 97精品国产97久久久久久免费| 福利视频第一区| 国产精品网红直播| 亚洲精品按摩视频| 日韩av不卡在线| 欧美日韩亚洲精品一区二区三区| 欧美黄网免费在线观看| 91久久精品国产91久久性色| 日本在线精品视频| 亚洲网站视频福利| 国产精品久久久久久超碰| 国产精品久久久久久久久久久久| 97超级碰碰碰久久久| 国产精品亚洲激情| 久久视频中文字幕| 欧美一级bbbbb性bbbb喷潮片| 亚洲视频电影图片偷拍一区| 欧美乱大交做爰xxxⅹ性3| 日韩av日韩在线观看| 欧美成人免费在线视频| 亚洲国产精品久久久久秋霞蜜臀| 亚洲第一页在线| 中文字幕国产亚洲2019| 亚洲久久久久久久久久久| 国产在线观看不卡| 国产精品自产拍在线观看| 国产精品欧美久久久| 97在线精品视频| 国产成人在线精品| 国产一区二区丝袜高跟鞋图片| 欧洲精品在线视频| 欧美有码在线视频| 热久久免费视频精品| 成人h片在线播放免费网站| 日韩一级裸体免费视频| 国模gogo一区二区大胆私拍| 高清在线视频日韩欧美| 亚洲成色www8888| zzijzzij亚洲日本成熟少妇| 欧美亚洲在线视频| 精品国产欧美一区二区三区成人| 狠狠爱在线视频一区| 亚洲a在线播放| 亚洲欧美成人在线| 国产精品av免费在线观看| 久久免费精品视频| 最近2019中文字幕一页二页| 国产精品久久久久久久久久尿| 欧美另类极品videosbest最新版本| 亚洲区中文字幕| 国产精品96久久久久久又黄又硬| 成人天堂噜噜噜| 日本一本a高清免费不卡| 日韩欧美黄色动漫| 国产欧美精品一区二区三区介绍| 欧美另类69精品久久久久9999| 国产www精品| 色yeye香蕉凹凸一区二区av| 欧美成人网在线| 亚洲欧洲自拍偷拍| 中文在线不卡视频| 另类少妇人与禽zozz0性伦| 亚洲精品在线不卡| 狠狠做深爱婷婷久久综合一区| 九九综合九九综合| 91在线网站视频| 高清一区二区三区四区五区| www日韩中文字幕在线看| 日韩精品免费观看| 国产中文字幕亚洲| 欧美制服第一页| 成人在线观看视频网站| 亚洲欧洲激情在线| 亚洲精品一区二三区不卡| 欧美精品在线免费播放| 91精品久久久久久久久青青| 久色乳综合思思在线视频| 日本三级久久久| 亚洲美女av网站| 亚洲精品国产精品久久清纯直播| 中文字幕在线国产精品|