--[[
|
编码: WMS-81-15
|
名称: 出入库测试-新增窗口-选容器前
|
作者:HAN
|
日期:2025-1-29
|
|
级别:固定 (说明本段代码在项目中不太会变化)
|
|
函数: BeforeSelectCntr
|
|
功能:
|
弹出容器查询面板
|
更改记录:
|
|
--]]
|
|
json = require ("json")
|
mobox = require ("OILua_JavelinExt")
|
m3 = require("oi_base_mobox")
|
|
function BeforeSelectCntr ( strLuaDEID )
|
local nRet, strRetInfo
|
|
-- 获取仓库编码
|
nRet, strRetInfo = mobox.getCurEditDataObjAttr( strLuaDEID, "S_TEST_TYPE","S_TO_AREA_CODE","S_TO_LOC_CODE" )
|
if ( nRet ~= 0 ) then lua.Error( strLuaDEID, debug.getinfo(1), "获取当前编辑属性失败! "..strRetInfo ) end
|
local obj_attrs = json.decode( strRetInfo )
|
local test_type = lua.Get_StrAttrValue( obj_attrs[1].value )
|
local area_code = lua.Get_StrAttrValue( obj_attrs[2].value )
|
local loc_code = lua.Get_StrAttrValue( obj_attrs[3].value )
|
if ( area_code == '' or test_type == '') then return end
|
|
local seg = {}
|
seg = lua.split( area_info, '#' )
|
local area_code = seg[1]
|
local strCondition = ''
|
|
if ( loc_code == '' or loc_code == nil ) then
|
mobox.setInfo( strLuaDEID, "必须先选一个货位!" )
|
return
|
end
|
|
if ( test_type == "入库" ) then
|
-- 如果是入库,选的容器必须是没有和货位绑定的
|
strCondition = 'S_CODE NOT IN ( Select S_CNTR_CODE From TN_Loc_Container )'
|
else
|
-- 如果是出库,选的容器必须是在选中库区的
|
strCondition = 'S_CODE IN ( Select S_CNTR_CODE From TN_Loc_Container '
|
strCondition = strCondition.." Where S_LOC_CODE = '"..loc_code.."')"
|
end
|
|
-- 设置 action 的参数
|
local action = {}
|
local value = {}
|
action.action_type = "open_data_query_dlg"
|
value.multi_choice = false -- 不多选
|
value.cls_name = "Container" -- 选择的数据类标识
|
value.grid_style = "basis-选择面板用" -- 选择面板中 GridStyle
|
value.condition = strCondition
|
value.order = "S_CODE"
|
action.value = value
|
|
lua.Debug( strLuaDEID, debug.getinfo(1), "action", action )
|
|
nRet, strRetInfo = mobox.setAction( strLuaDEID, '['..lua.table2str(action)..']' )
|
if (nRet ~= 0) then lua.Error( strLuaDEID, debug.getinfo(1), strRetInfo ) end
|
end
|