主要實(shí)現(xiàn)的功能: 在主頁(yè)面,通過(guò)單擊按鈕,彈出窗體,在窗體中通過(guò)下拉框選擇值并查詢,如果是多值,可以通過(guò)復(fù)選框選擇,點(diǎn)擊確定,將選中的行的字段值傳遞給主頁(yè)面的下拉復(fù)選框,定義其編輯后事件進(jìn)行查詢。將想要的結(jié)果顯示在表格中。在表格后面添加刪除按鈕,可以刪除對(duì)應(yīng)的列。 該功能主要涉及到幾個(gè)JS方法,和FR的自動(dòng)查詢(值得注意的是,F(xiàn)R 的自動(dòng)查詢,只能使用在參數(shù)面板,在表單中無(wú)法使用。) 首先是使用JS彈出一個(gè)窗體,而這個(gè)窗體的內(nèi)容就是一個(gè)報(bào)表模板: window.form = this.options.form;var $iframe = $("<iframe id='inp' name='inp' width='100%' height='100%' scrolling='no' frameborder='0'>"); $iframe.attr("src", "${servletURL}?reportlet=WorkBook47.cpt&op=write");var o = { title : "請(qǐng)選擇記錄項(xiàng)", width : 800, height: 500}; FR.showDialog(o.title, o.width, o.height, $iframe,o); 然后是,在彈出的這個(gè)模板中設(shè)計(jì)內(nèi)容,其實(shí)也和普通的模板設(shè)計(jì)一樣,只是多了一步就是通過(guò)JS獲取單元格的值并回傳給主頁(yè)面。 關(guān)于回傳值(按鈕執(zhí)行JS方法): var products = []; var $span = $('.fr-checkbox-checkon'); //獲取選中的復(fù)選框var $tds = $("td").has($span); //定義選中復(fù)選框的單元格 var $trs = $("tr").has($tds); for(var i=0; i<$trs.length;i++){ var product = $("td:eq(1)",$($trs[i])).html(); //獲取選中的C3單元格的值products.push(product); //將選中的值放到數(shù)組中} var form = window.parent.form; var pva=form.getWidgetByName("p2").getValue();if(pva==0) { //form.getWidgetByName("p1").setValue(products); form.getWidgetByName("p2").setValue(products); }else{//form.getWidgetByName("p1").setValue(pva+","+products);form.getWidgetByName("p2").setValue(pva+","+products); } window.parent.FR.closeDialog(); window.parent.FR.distroyDialog(); 為了更方便的操作,將值回傳給下拉復(fù)選框,傳值過(guò)后通過(guò)下拉復(fù)選框的編輯后事件,可以自動(dòng)查詢: _g().parameterCommit(); 為了更加方便與界面優(yōu)化,可以將下拉復(fù)選框隱藏,定義其初始化事件: this.invisible(); |
|