产品中心 业内新闻 案例中心 视频中心

Gungho任务二次开发-任务分类集成3000功能的扩展属性excel导入 Gungho任务二次开发-任务分类集成3000功能的扩展属性excel导入

Gungho任务二次开发-任务分类集成3000功能的扩展属性excel导入

分类:二次开发 产品中心 105

Gungho任务二次开发-任务分类集成3000功能的清单导入

这个是一个标准的导入模板 ,使用前可以通过修改 表名,字段名称,字段中文名,字段对应赋值变量名称。

–[[

这个是一个标准的脚本,可以

1、修改里面的数据对象名称 样品技术参数

2、字段相关名称(字段中文名、字段名称、字段赋值变量名称)

字段名称                            字段中文名          字段对应赋值变量名

N_SN                                 序号                     nSN

S_ITEM_NAME                 名称                     strItemName

S_ITEM_M_S_N               型号_规格_数量   strItemMSN

S_ITEM_CODE                 编号                     strItemCode

S_MANUFACTURER        生产单位              strFacturer

3、若字段不够多,或太多,需要调整程序

4、里面的唯一性判断是 task_id + S_ITEM_NAME + S_ITEM_CODE (需要根据情况调整)

–]]

功能说明:json = require(“json”)

mobox = require(“OILua_JavelinExt”)

require(“oi_basestrfunc”)

function ImportExcle(strLuaDEID)

local nRet, strRetInfo

local strPrjID = ”

local strTaskID = ”

— 获取全局变量 prj_id, task_id

nRet, strRetInfo = mobox.getGlobalAttr( strLuaDEID, “task_id”,”prj_id” )

if ( nRet ~= 0 or strRetInfo == ” ) then

mobox.error( strLuaDEID, “系统无法获取全局变量 “..strRetInfo )

return

end

local input_paramter = json.decode( strRetInfo )

strTaskID = input_paramter[1].value

strPrjID = input_paramter[2].value

if ( strTaskID == ” ) then

mobox.error( strLuaDEID, “必须要有项目及任务相关信息” )

return

end

— 获取导入的单条数据, 返回 {“id”:”xxx”,”attrs”:[{“attr”:”attr1″,”value”:”xxx1″},{“attr”:”attr2″,”value”:”xxx2″}, …]}

nRet, strRetInfo = mobox.getInputParameter(strLuaDEID)

if (nRet ~= 0 or strRetInfo == ” ) then

mobox.error(strLuaDEID, “无法获取导入数据!”..strRetInfo)

return

end

local n, nCount, nValue

local strAddAttr = ”

local strAttr = ”

local strSetSQL = ”

— 一些关键属性 (脚本 后期只需要改字段名称就可以)

local nSN                           — 对应 序号 N_SN

local strItemName = ”        — 对应 名称 S_ITEM_NAME

local strItemMSN = ”         — 对应 型号_规格_数量 S_ITEM_M_S_N

local strItemCode = ”         — 对应 编号 S_ITEM_CODE

local strFacturer = ”            — 对应 生产单位 S_MANUFACTURER

 

— 因为每次导入只传一条记录,所以当前条写入 prj_id 及 task_id

strAddAttr = strAddAttr .. ‘{“attr”:”G_TASK_ID”,”value”:”‘ .. strTaskID .. ‘”},’

strAddAttr = strAddAttr .. ‘{“attr”:”G_PRJ_ID”,”value”:”‘ .. strPrjID .. ‘”},’

local retJson =json.decode(strRetInfo)

local input_rows =retJson[“parameter”]

— 步骤1 获取从excel导入的一行数据,根据excel的列定义进行属性组合 strAddAttr

nCount = #input_rows

for n = 1, nCount do

strAttr = input_rows[n].attr

strValue = input_rows[n].value

— 根据导入的excel列头名称进行判断

— 关键属性判断

if (strAttr == “名称”) then

if (strValue == ”) then

mobox.error(strLuaDEID, strAttr .. “不能为空!”)

return

end

strItemName = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”S_ITEM_NAME”,”value”:”‘ .. strItemName .. ‘”},’

 

— 常规属性

elseif (strAttr == “序号”) then

nSN = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”N_SN”,”value”:”‘ .. nSN .. ‘”},’

elseif (strAttr == “型号_规格_数量”) then

strItemMSN = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”S_ITEM_M_S_N”,”value”:”‘ .. strItemMSN .. ‘”},’

elseif (strAttr == “编 号”) then

strItemCode= strValue
strAddAttr = strAddAttr .. ‘{“attr”:”S_ITEM_CODE”,”value”:”‘ .. strItemCode .. ‘”},’

elseif (strAttr == “生产厂家”) then

strFacturer = strValue
strAddAttr = strAddAttr .. ‘{“attr”:”S_MANUFACTURER”,”value”:”‘ .. strFacturer .. ‘”},’

end

end
–去除最后一个,
local strAddAttr1 = trim_laster_char(strAddAttr)

— 步骤2 根据 (名称+编号+taskid) 来判断导入的检测数据是否已经存在
— 如果已经存在,根据导入的数据进行覆盖
— 如果不存在需要创建
local attrs
local strCondition = “S_ITEM_NAME='” .. strItemName .. “‘ and G_TASK_ID='”..strTaskID..”‘ and S_ITEM_CODE='” .. strItemCode.. “‘”
nRet, strRetInfo = mobox.existThisData(strLuaDEID, “样品技术参数”, strCondition)
if (nRet ~= 0 ) then

mobox.error(strLuaDEID, “在检查样品技术参数是否存在时失败! ” .. strRetInfo)

return
end

if (strRetInfo == ‘yes’) then

— 已经存在,根据导入的数据进行覆盖

strCondition = “S_ITEM_NAME='” .. strItemName .. “‘ and G_TASK_ID='”..strTaskID..”‘ and S_ITEM_CODE='” .. strItemCode.. “‘”

strSetSQL = “N_SN='” ..nSN.. “‘, S_ITEM_NAME = ‘” .. strItemName ..”‘ , S_ITEM_CODE ='” ..strItemCode .. “‘ , S_ITEM_M_S_N = ‘” .. strItemMSN ..”‘ “

nRet, strRetInfo = mobox.updateDataAttrByCondition(strLuaDEID, “样品技术参数”, strCondition, strSetSQL)

if (nRet ~= 0) then

mobox.error(strLuaDEID, strRetInfo)

return

end

elseif (strRetInfo == ‘no’) then

— 创建 样品技术参数

— mobox.writeSysLog(“strAddAttr1”, strAddAttr1)

strAddAttr1 = ‘[‘ .. strAddAttr1 .. ‘]’

mobox.writeSysLog(“strAddAttr2”, strAddAttr1)

nRet, strRetInfo = mobox.createDataObj(strLuaDEID, “样品技术参数”, strAddAttr1)

if (nRet ~= 0) then

mobox.error(strLuaDEID, “创建样品技术参数失败! ” .. strRetInfo )

return
end

end
end

 

function
标签:手册脚本 上一篇: 下一篇:
展开更多
预约软件体验

loading...