反饋已提交

網絡繁忙

JS實現填報聯動自動生成預設值

1. 概述

1.1 問題描述

想實現在填報聯動的基礎上,選擇第一個元件的值後,其他相關元件可以聯動出可選範圍內的第一個值。

1.2 實現思路

當儲存格元件的值聯動和資料字典聯動都設定了的情況下,觸發資料字典聯動時,會清空儲存格值,造成值聯動失效。所以要同時實現值聯動和資料字典聯動的話,需透過 JS 方法對儲存格進行指派。API說明可以參考:API匯總

注:不支援行動端。

2. 範例

2.1 設計表格

B1、D1、F1 儲存格新增下拉框元件,如下圖所示:

2.2 設定元件的資料字典聯動

給三個元件分別設定下拉框資料字典,類型設定選擇公式,輸入實際值與顯示值,如下圖所示:

三個元件僅實際值不同,顯示值都為 $$$,實際值分別為:

B1:sql("FRDemoTW", "SELECT 貨主地區 FROM 訂單", 1)

D1:sql("FRDemoTW", "SELECT 貨主省份 FROM 訂單 where 貨主地區='" + B1 + "'", 1)

F1:sql("FRDemoTW", "SELECT 貨主城市 FROM 訂單 where 貨主地區='" + B1 + "' and 貨主省份='" + D1 + "'", 1)

2.3 設定元件的值聯動

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)

2.4 關閉腳本呼叫公式限制

由於範例中使用腳本呼叫了一些公式,需要開啟數據決策系統,點選管理系統>安全管理,將腳本呼叫公式限制右邊的按鈕關閉掉,如下圖所示:

2.5 效果預覽

儲存報表,點選填報預覽,最終的效果下圖所示:


3. 範本下載

附件列表


主題: 填報應用
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙