反饋已提交
網絡繁忙
填報範本中有一個下拉複選框,設定了實際值和顯示值,希望將選中資料拆開作為不同的資料提交入庫,且需要將其顯示值也提交入庫。如下圖所示:
要拆成多筆資料入庫的話,下拉複選框的回傳值需要選擇陣列格式。
此時如果在提交屬性裏用value或者maparray等函式去獲取顯示值的話,就會出現兩個陣列,導致笛卡爾積。所以該需求需要用一種比較巧妙的方法實現。
利用range函式做一個固定的表格,用公式來將選擇資料的實際值和顯示值一一匹配,這樣在提交的時候就有對應關係了。
建立資料集ds1,sql語句為SELECT * FROM S產品 limit 5
在B2儲存格設定「下拉複選框元件」,「回傳值類型」設定為陣列,資料字典為ds1,實際值為產品ID,顯示值為產品名稱
在A4,B4和C4儲存格設定公式來構建一個提交用的表格。
A4:range(1,max(value("ds1","產品ID")))
B4:INDEXOFARRAY(B2,A4)
C4:value("ds1","產品名稱","產品ID",B4)
公式說明如下:
A4:獲取下拉複選框選項的最大個數來構建出表格的序號
B4:根據序號依次獲取下拉複選框所選的產品ID,使其擴展顯示
C4:根據B4的產品ID,獲取對應的產品名稱
如圖設定填報屬性:
有兩處需要注意下:
1)產品ID欄位需要設定為主鍵,否則只設定id欄位的話,按照提交邏輯相同id的資料會視為更新提交,最後入庫的資料只有一條。
2)需要設定提交條件為len(B4)!=0,目的是去除掉構建的表格中為空的資料。
使用填報預覽,效果如下:
注1:多選內容並不是一定要是數字體別,只要有能區分資料唯一的欄位就行,類似於文檔中的產品ID。
注2:方案支援行動端。
點選下載範本:下拉複選框多值提交.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙