Mobox二開的彈窗選擇數(shù)據(jù)實(shí)現(xiàn)技巧
需求描述
(上圖為多選窗口)
實(shí)現(xiàn)方式
需要開發(fā)2個(gè)lua腳本
Lua腳本【試驗(yàn)類型選擇前】
–[[? ? 這個(gè)腳本適合 單個(gè)選擇的獲取過程–]]json = require (“json”)
mobox = require (“OILua_JavelinExt”)
function BeforeSelectGP ( strLuaDEID )
local nRet, strRetInfo ,strCondition
strCondition = “”
local action = ‘[{“action_type”:”open_data_query_dlg”,”value”:{“mulit_select”:0,”cls_name”:”供應(yīng)商”,”order”:””,”grid_style”:”default”,”condition”:”‘..strCondition..'”}}]’
mobox.setAction( strLuaDEID, action )
end
- 彈出窗口定義:? ?(注意粘貼下面內(nèi)容的時(shí)候? ”? 可能是中文的,需要改成英文)
- 單選 “mulit_select”:0??? 多選? “mulit_select”:1
- 關(guān)聯(lián)表名 “cls_name”:”部分性能試驗(yàn)”?? (部分性能試驗(yàn) 這個(gè)是表名)
- 排序 “order”:””????? (可以設(shè)置排序字段名)
- 窗口grid “grid_style”:”procure”? (不設(shè)置就是默認(rèn)grid)
- 查詢條件 “condition”:”‘..strCondition..’”? ( strCondition 是變量,拼接的查詢條件)
我們?cè)趶棾龃翱谇埃梢詫⑽覀冃枰耐ㄟ^上述參數(shù)設(shè)置好后 再?gòu)棾?/p>
Lua腳本【試驗(yàn)類型選擇后】? 單選和多選例子
–[[
這個(gè)腳本適合 單個(gè)選擇 的獲取過程
–]]
json? = require (“json”)
mobox = require (“OILua_JavelinExt”)
function AfterSelectSYTPYE ( strLuaDEID )
local?? nRet,? strTpyeDESC , strOldDesc
— 獲取當(dāng)前選擇數(shù)據(jù)
nRet, strRetInfo = mobox.getInputParameter( strLuaDEID )
if ( nRet ~= 0 or? strRetInfo == ”) then
mobox.error( strLuaDEID, “無(wú)法獲取導(dǎo)入數(shù)據(jù)!”)
return
end
local retJson = json.decode( strRetInfo )
local input_parameter = retJson[“parameter”]
local n, nCount
strTpyeDESC = input_parameter[“S_TST_TPYEDESC”]
if ( strTpyeDESC == ”? ) then
mobox.error( strLuaDEID, “試驗(yàn)類型信息不對(duì)!”)
return
end
— 設(shè)置試驗(yàn)類型信息
local setAttr = ‘[{“attr”:”S_TST_TPYEDESC”,”value”:”‘..strTpyeDESC..'”}]’
mobox.setCurEditDataObjAttr( strLuaDEID,setAttr )
下面是多選的例子
–[[
這個(gè)腳本適合 多個(gè)選擇 的獲取過程
–]]
json? = require (“json”)
mobox = require (“OILua_JavelinExt”)
function AfterSelectSYTPYE ( strLuaDEID )
local?? nRet,? strTpyeDESC
— 獲取當(dāng)前選擇數(shù)據(jù)
nRet, strRetInfo = mobox.getInputParameter( strLuaDEID )
if ( nRet ~= 0 or? strRetInfo == ”) then
mobox.error( strLuaDEID, “無(wú)法獲取導(dǎo)入數(shù)據(jù)!”)
return
end
local retJson = json.decode( strRetInfo )
local input_parameter = retJson[“parameter”]????? —? 或者 retJson.parameter
local n, nCount
nCount = #input_parameter
strTpyeDESC =”
for n = 1 , nCount do???????????????????????????????????? — 需要for循環(huán)
??????? if (strTpyeDESC ==”) then
??????????? strTpyeDESC = input_parameter[n].S_TST_TPYEDESC
??????? else
??????????? strTpyeDESC = strTpyeDESC .. ‘、’..input_parameter[n].S_TST_TPYEDESC
??????? end
?? ?end
— 設(shè)置試驗(yàn)類型信息
local setAttr = ‘[{“attr”:”S_TST_TPYEDESC”,”value”:”‘..strTpyeDESC..'”}]’
mobox.setCurEditDataObjAttr( strLuaDEID,setAttr )
之后將這個(gè)腳本管理的窗口的定義里面