1. 概述
1.1 問題描述
某些情況下決策報表 body 組件裏的控件在鍵入查詢參數後會立即觸發查詢動作,如下圖所示:
但有時候希望能做成和普通報表的參數面板一樣,設置一個查詢按鈕,點擊後查詢按鈕後才觸發查詢動作,如下圖所示:
1.2 解決思路
在控件的編輯後事件裏用 return false 阻止原有的查詢效果,然後在查詢按鈕裏用 gotopage 去刷新報表塊并實現傳參效果。
2. 示例
2.1 報表設計
1)新建決策報表,body 組件采用絕對布局,如下圖分别将标簽控件、下拉複選框控件、按鈕控件、報表塊拖入設計主體中,調整好大小和布局。
2)選中下拉複選框控件,設置控件名稱爲a,定義好數據字典。
自定義數據字典如下圖所示:
3)選中下拉複選框控件,添加一個編輯後事件,JS 代碼如下:
return false;
4)選中按鈕控件,重命名爲查詢,并給控件添加一個點擊事件,JS 代碼如下:
var a=_g().getWidgetByName('a').getValue();
this.options.form.getWidgetByName("report0").gotoPage(1,"{a:'"+a+"'}",true);
5)報表塊的 A1 單元格添加公式split($a,',')。
2.2 效果預覽
保存報表,點擊PC端預覽,效果如描述中所示。
注:不支持移動端。
3. 模板下載
已完成模板可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\frm\決策報表控件實現點擊查詢按鈕後才能查詢.frm
點擊下載模板:決策報表控件實現點擊查詢按鈕後才能查詢.frm