Perisian analisis data Tutorial FineReport: [5] Antara muka parameter JS (penuh)_kemahiran javascript

WBOY
Lepaskan: 2016-05-16 15:45:16
asal
1428 orang telah melayarinya

Apabila menggunakan alat laporan untuk mereka bentuk laporan dan menggunakan kawalan parameter, kadangkala kami mahu beberapa kawalan parameter tidak dipaparkan apabila syarat tidak dipenuhi, dan kemudian dipaparkan selepas syarat dipenuhi Seterusnya, saya akan mengajar anda cara melakukannya ia!

Cara perisian hamparan mengawal sama ada kawalan parameter dipaparkan berdasarkan syarat

1: Penerangan masalah

Apabila menggunakan kawalan parameter, kadangkala kami berharap beberapa kawalan parameter tidak akan dipaparkan apabila syarat tidak dipenuhi, dan kemudian dipaparkan selepas syarat dipenuhi, seperti ditunjukkan di bawah: Hanya selepas kandungan dipilih dalam titisan sebelumnya- kotak bawah, kawalan kotak lungsur dalam lapisan seterusnya akan dipaparkan:

Dua: Penyelesaian

Mula-mula mulakan kawalan terkawal menjadi halimunan atau tidak tersedia, kemudian tambahkan acara penamat pengeditan pada kawalan bersyarat dan tetapkan kawalan terkawal supaya kelihatan atau tersedia melalui skrip js Kaedah js yang sepadan adalah seperti berikut:

setEnable(boolean): Tetapkan sama ada ia tersedia, benar bermakna tersedia, palsu tidak tersedia

setVisible(boolean): Tetapkan sama ada ia boleh dilihat, benar bermakna boleh dilihat, palsu bermaksud tidak kelihatan;

Tiga: Contoh

Buka templat %FR_HOME%WebReportWEB-INFreportletsdocparameterMutiValue.cpt

Kami menggunakan kawasan dalam templat ini sebagai kawalan bersyarat dan wilayah sebagai kawalan terkawal untuk menggambarkan proses tetapan.

Empat: Mulakan kawalan terkawal agar tidak kelihatan

Klik pada kawalan wilayah, pilih Jadual Atribut >

5: Tetapan acara kawalan bersyarat

Tambahkan acara pasca edit pada kawalan kawasan dan panggil kaedah JS untuk menetapkan kawalan wilayah supaya kelihatan Kod khusus adalah seperti berikut:

Pilih kawalan kotak lungsur bagi kawasan parameter, pilih panel acara jadual atribut dan tambahkan acara tamat pengeditan, seperti ditunjukkan di bawah:

Kandungan kod dalam gambar ialah:

Kodnya ialah:

.  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("请选择地区"); 
Salin selepas log masuk
Pengesahan kawalan tarikh JS

1: Gambaran Keseluruhan

Sesetengah pengesahan data boleh dilakukan dalam antara muka pertanyaan parameter terbina dalam Contohnya, terdapat dua parameter: tarikh mula dan tarikh tamat Perkara yang ingin kami sahkan seterusnya ialah: tarikh mula dan tarikh tamat tidak boleh kosong. dan tarikh tamat mestilah dalam tarikh mula dan tarikh tamat mestilah dalam tempoh masa tertentu selepas tarikh mula, jika tidak, maklumat yang berkaitan akan digesa, yang mana anda boleh menambah acara pada butang pertanyaan. Tetapan khusus diperkenalkan di bawah.

Penyampaian khusus adalah seperti berikut:

Langkah untuk membaca

Untuk ralat tertentu, sila lihat amaran ralat dalam pemaparan.

Dua: Buka templat

Buka templat: %FR_HOME%WebReportWEB-INFreportletsdocParameterTimeScaleTimeScale.cpt.

Antara muka parameter adalah seperti yang ditunjukkan di bawah:

Tiga: Tambahkan acara
Tambah acara klik pada butang pertanyaan Kod JS khusus adalah seperti berikut:

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;
}
Salin selepas log masuk
Nota: Walaupun pengesahan juga boleh ditetapkan dalam kawalan parameter, kawalan parameter tidak boleh disahkan sehingga kawalan diklik Oleh itu, antara muka parameter tidak boleh kosong dan pengesahan perbandingan perlu ditetapkan dalam butang pertanyaan.

Empat: Pandangan Kesan

Pratonton templat dalam halaman, pilih masa mula dan masa tamat, dan buat perbezaan antara dua tarikh melebihi 15 hari, kotak dialog di atas akan muncul.

Nota: Kod js di atas tidak mempunyai masalah dalam Firefox, Google IE9 dan penyemak imbas lain, tetapi kotak amaran untuk menentukan perbezaan antara dua tarikh tidak akan berfungsi dalam versi pelayar IE8 dan IE di bawah IE8 . Kod berikut tersedia:

清空(重置)条件

一:问题描述

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

二:解决方案

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

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

$.each(this.options.form.name_widgets,function(i,item){ 
 if (item.options.type !=='label') {item.setValue();item.setText();} 
});;
Salin selepas log masuk
Salin selepas log masuk

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

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

在参数设计页面新建一个按钮控件,设定其名字为清空供应商,同时设置按钮点击事件,将供应商(supplierID)控件内容清空,具体的js如下:

var supplierID = this.options.form.getWidgetByName("supplierID"); //获取supplierID控件
supplierID.reset(); //将supplierID控件内容清空
Salin selepas log masuk

四:重置所有控件内容
在参数界面新建一个按钮控件,设定其名字为清空全部,同时设置按钮点击事件,事件js脚本为:

$.each(this.options.form.name_widgets,function(i,item){ 
 if (item.options.type !=='label') {item.setValue();item.setText();} 
});;
Salin selepas log masuk
Salin selepas log masuk

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

一:问题描述

我们在预览带有参数面板的模板的时候,会发现其参数界面与主体界面交接处有一个三角按钮,那么如何隐藏该按钮呢?

二:解决思路

在模板加载结束后,拿到该按钮元素,然后设置其隐藏,或者直接去掉即可。

隐藏按钮

$('.parameter-container-collapseimg-up').hide();
Salin selepas log masuk

去掉按钮

$('.parameter-container-collapseimg-up').remove();
Salin selepas log masuk

三:示例

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

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

四:js代码如下:

setTimeout(function() {
 $('.parameter-container-collapseimg-up').hide();
}, 10);
Salin selepas log masuk

五:效果查看

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

参数控件赋值

一:概述

参数界面中,往往需要在一个控件中动态的控制其他控件的值,如下图,当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);
}
Salin selepas log masuk

Dieser Code wird verwendet, um den Statusparameter festzulegen. Wenn Benutzername leer ist, ist !Benutzername wahr und der Status ist auf 2 gesetzt. Andernfalls, wenn Benutzername einen Wert hat, wird der Status auf 1 gesetzt.

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan