反饋已提交
網絡繁忙
想實現在填報聯動的基礎上,選擇第一個元件的值後,其他相關元件可以聯動出可選範圍內的第一個值。
當儲存格元件的值聯動和資料字典聯動都設定了的情況下,觸發資料字典聯動時,會清空儲存格值,造成值聯動失效。所以要同時實現值聯動和資料字典聯動的話,需透過 JS 方法對儲存格進行指派。API說明可以參考:API匯總
注:不支援行動端。
B1、D1、F1 儲存格新增下拉框元件,如下圖所示:
給三個元件分別設定下拉框資料字典,類型設定選擇公式,輸入實際值與顯示值,如下圖所示:
三個元件僅實際值不同,顯示值都為 $$$,實際值分別為:
B1:sql("FRDemoTW", "SELECT 貨主地區 FROM 訂單", 1)
D1:sql("FRDemoTW", "SELECT 貨主省份 FROM 訂單 where 貨主地區='" + B1 + "'", 1)
F1:sql("FRDemoTW", "SELECT 貨主城市 FROM 訂單 where 貨主地區='" + B1 + "' and 貨主省份='" + D1 + "'", 1)
1)給 B1 儲存格的下拉框元件新增編輯後事件。
JavaScript 程式碼如下:
var row = FR.cellStr2ColumnRow(this.options.location).row + 1;//獲取當前行號var area = this.getValue();//獲取當前元件值var province = FR.remoteEvaluate('sql("FRDemoTW","select 貨主省份 from 訂單 where 貨主地區=\'' + area + '\'",1,1)');//根據當前選擇的地區查詢出對應的第一個省份var city = FR.remoteEvaluate('sql("FRDemoTW","select 貨主城市 from 訂單 where 貨主地區=\'' + area + '\' and 貨主省份=\'' + province + '\'",1,1)');//根據當前選擇的地區和對應的第一個省份,查詢出對應的第一個城市setTimeout(function() { _g().setCellValue('D' + row, null, province); //給當前行的省份儲存格指派}, 200)
2)同樣給 D1 元件也新增編輯後事件。JavaScript 程式碼如下:
var row = FR.cellStr2ColumnRow(this.options.location).row + 1;//獲取當前行號var area = _g().getCellValue('B' + row, null);//獲取當前行的地區值var province = this.getValue();//獲取當前元件值var city = FR.remoteEvaluate('sql("FRDemoTW","select 貨主城市 from 訂單 where 貨主地區=\'' + area + '\' and 貨主省份=\'' + province + '\'",1,1)');//根據當前選擇的地區和省份,查詢出對應的第一個城市setTimeout(function() { _g().setCellValue('F' + row, null, city); //給當前行的城市儲存格指派}, 500)
由於範例中使用腳本呼叫了一些公式,需要開啟數據決策系統,點選管理系統>安全管理,將腳本呼叫公式限制右邊的按鈕關閉掉,如下圖所示:
儲存報表,點選填報預覽,最終的效果下圖所示:
點選下載範本:JS实现填报联动自动生成默认值.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙