close

另一個常用的元件,下拉式選項

選項的內容值可以直接寫在選項內,也可以抓取資料庫的值。
方式一.直接寫選項值
點選元件後,到[設定選項],將要放入的下拉值設定好。
設定幣別有台幣和美金,兩種選項。

顯示值為下拉選項看到的表面值。
實際值為下拉選項實際意義的價值Value。
方式二.透過SQL抓資料值
EFGP的BPM文件也有介紹說明方式,在此忽略,細節請登入EFGP看BPM文件。
在此分享BPM文件沒有介紹,很常用的抓資料方式,兩行就搞定。

//抓取SQL註冊器的資料代號,當下拉式選項 

var tSqlId = "getTTafz"; 

FormUtil.appendOptionBySqlId(tSqlId,"dwnTT"); //第二個參數,為下拉式選項元件代號。

在此要留意,SQL註冊器的Select 欄位數要為兩個,前面放表面值 後面放實際值。
以此範例為例。

通常載入資料到下拉選項的語法會寫在Form Open() 表單開啟時。
但這會遇到一個狀況,當選項有A,B,C三種資料時,第一關卡選B,
執行到下一關卡時,系統執行Form Open又會重新再載入一次資料
這時選項B的紀錄已被刷掉。這是我起初開發表單時常遇到的狀況。
所以請大家務必在Form Open時,先載入下拉選項的資料,再加入
以下語法,讓下拉選項的隱藏值定住選項值。

//當新增一個下拉選項的元件時,系統也同步會新增一個 元件代號_hdn 的隱藏元件 

var dwn_B_hdn=document.getElementById("dwn_B_hdn"); if (dwn_B_hdn != null) { //要表單送出後,系統才會建立此隱藏元件,所以寫這一行當判斷  

var tSelectdwn_B=eval(dwn_B_hdn.value); //注意要以eval() 轉換值。

DWRUtil.setValue("dwn_B", tSelectdwn_B); //第一個參數為下拉選項的元件代號。

補充另一種做法,將SQL語法寫在FORM 裡。

//下拉式選單 -簽核層級

var dwn_FunLevel_hdn=document.getElementById("FunLevel_hdn"); 

var tSql2 = "select functionLevelName,functionLevelName from FunctionLevel where organizationOID='"+mainOrgOID+"' order by levelValue DESC"; FormUtil.appendOption("EFGP",tSql2,"FunLevel");

//第三個參數是下拉選項的元件代號。

if (dwn_FunLevel_hdn != null) { 

var tSelectdwn_FunLevel=eval(dwn_FunLevel_hdn.value); 

DWRUtil.setValue("FunLevel", tSelectdwn_FunLevel); 

}

結論:
使用 FormUtil.appendOptionBySqlId 載入SQL註冊器的選項值,或FormUtil.appendOption載入SQL語法

使用 DWRUtil.setValue 鎖定下拉式選項值。

arrow
arrow
    文章標籤
    鼎新 BPM Easy Flow GP
    全站熱搜
    創作者介紹
    創作者 M先生 的頭像
    M先生

    雨果

    M先生 發表在 痞客邦 留言(0) 人氣()