lua 開發過程中,我們需要對當前窗體的數據進行獲取,之后進行二次開發演變為我們需要的數據,并重新給窗體的各字段賦值。
1、獲取當前窗體上所需字段的數值
nRet, strRetInfo = mobox.getCurEditDataObjAttr(strLuaDEID, “G_PRJ_ID”, “S_PRJ_CODE”, “S_PRJ_NAME”, “S_PM_NAME”, “S_PD_NAME”)
2、得到Json字符串(strRetInfo)內容描述(暫且我們稱之為 mobox3 格式)
[{
“attr”: “G_PRJ_ID”,
“value”: “”
},
{
“attr”: “S_PRJ_CODE”,
“value”: “PM-0002”
},
{
“attr”: “S_PRJ_NAME”,
“value”: “pcy 0999 hard”
},
{
“attr”: “S_PM_NAME”,
“value”: “金振興”
},
{
“attr”: “S_PD_NAME”,
“value”: “”
}
]
3、將得到的Json字符串(strRetInfo)轉變為Json標準的表格式(strOBJInfo )
nRet, strOBJInfo = mobox.objAttrToObjJson (‘JS001’, strRetInfo )
注意:strOBJInfo 得到其實還是一個Json字符串,但其是一個標準的Json表格式表達
具體 objAttrToObjJson 函數怎么用查看手冊
4、得到Json表字符串(strOBJInfo )(是一種 json對表的標準格式)
{“cls”: “JS001”,
“ver”: 1,
“G_PRJ_ID”: “”,
“S_PRJ_CODE”: “PM-0002”,
“S_PRJ_NAME”: “pcy 0999 hard”,
“S_PM_NAME”: “金振興”
}
注意:這個Json格式是標準表格式字符串表達。
5、我們需要將這個字符串轉為表(tbOBJ)
local tbOBJ = json.decode (strOBJInfo)
注,只有變成表后,我們可以這樣來理解這個表:
字段名 | cls | ver | G_PRJ_ID | S_PRJ_CODE | S_PRJ_NAME | S_PM_NAME |
數值 | JS001 | 1 | PM-0002 | pcy 0999 hard | 金振興 |
6、數據取值與賦值
取值方法:
local strPMName
strPMName = tbOBJ.S_PRJ_NAME
賦值方法:
tbOBJ.S_PRJ_NAME = ‘潘元元’
完整代碼
local strRetInfo , strOBJInfo
local tbOBJ ={}
— 得到當前窗體上指定字段的json字符串
nRet, strRetInfo = mobox.getCurEditDataObjAttr(strLuaDEID, “G_PRJ_ID”, “S_PRJ_CODE”, “S_PRJ_NAME”, “S_PM_NAME”, “S_PD_NAME”)— 將json字符串(mobox3)格式轉為 json標準表格式
nRet, strOBJInfo = mobox.objAttrToObjJson (‘JS001’, strRetInfo )–將json字符串轉變為表
tbOBJ = json.decode (strOBJInfo)
— 獲取表字段內容及設置表字段值
local strPMName
strPMName = tbOBJ.S_PM_NAME
tbOBJ.S_PM_NAME = ‘潘元元’
若需要將數據轉會mobox3數據格式
–將表轉變為json字符串(標準格式)
strOBJInfo = json.encode (tbOBJ)— 將json標準表格式格式轉為 json字符串(mobox3)
nRet, strRetInfo = mobox.objJsonToObjAttr (‘JS001’, strOBJInfo )