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 )