$PBExportHeader$f_find_mtrlware_spt.srf global type f_find_mtrlware_spt from function_object end type forward prototypes global function integer f_find_mtrlware_spt (string arg_mtrlcode, long arg_sptid, ref s_sptware_array arg_s_mtrlware) end prototypes global function integer f_find_mtrlware_spt (string arg_mtrlcode, long arg_sptid, ref s_sptware_array arg_s_mtrlware);Int rslt = 1 Long cnt = 0 String ls_like_mtrlcode String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode String ls_plancode,ls_status,ls_woodcode,ls_pcode Long ls_mtrlwareid,ls_mtrlid,ll_sptid String ls_mtrlsectype,ls_zxmtrlmode Dec ls_noallocqty,ls_planprice,ls_cost int li_ifunit Boolean if_find = FALSE IF Pos(Trim(arg_mtrlcode),'%') = 0 THEN ls_like_mtrlcode = '%'+ Trim(arg_mtrlcode) + '%' ELSE ls_like_mtrlcode = Trim(arg_mtrlcode) END IF SELECT count(*) INTO :cnt FROM ow_wfjgware, u_mtrldef WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) AND ( ow_wfjgware.sptid = :arg_sptid ) And ( u_mtrldef.mtrlcode = :arg_mtrlcode OR u_mtrldef.mtrlname = :arg_mtrlcode ); IF sqlca.SQLCode <> 0 THEN rslt = 0 GOTO ext ELSE IF cnt <> 1 THEN SELECT count(*) INTO :cnt FROM ow_wfjgware, u_mtrldef WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) AND ( ow_wfjgware.sptid = :arg_sptid ) And ( u_mtrldef.mtrlcode Like :ls_like_mtrlcode OR u_mtrldef.mtrlname Like :ls_like_mtrlcode ); IF sqlca.SQLCode <> 0 THEN rslt = 0 GOTO ext ELSE IF cnt <> 1 THEN rslt = 0 GOTO ext ELSE SELECT ow_wfjgware.mtrlwareid , ow_wfjgware.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.unit, ow_wfjgware.noallocqty, ow_wfjgware.planprice, ow_wfjgware.plancode, u_mtrldef.mtrlmode, ow_wfjgware.status, ow_wfjgware.woodcode, ow_wfjgware.pcode, ow_wfjgware.cost, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, ow_wfjgware.sptid, u_mtrldef.ifunit INTO :ls_mtrlwareid, :ls_mtrlid, :ls_mtrlcode, :ls_mtrlname, :ls_unit, :ls_noallocqty, :ls_planprice, :ls_plancode, :ls_mtrlmode, :ls_status, :ls_woodcode, :ls_pcode, :ls_cost, :ls_mtrlsectype, :ls_zxmtrlmode, :ll_sptid, :li_ifunit FROM u_mtrldef, ow_wfjgware WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) AND ( ow_wfjgware.sptid = :arg_sptid ) And ( u_mtrldef.mtrlcode Like :ls_like_mtrlcode OR u_mtrldef.mtrlname Like :ls_like_mtrlcode ); IF sqlca.SQLCode <> 0 THEN rslt = 0 GOTO ext ELSE if_find = TRUE END IF END IF END IF ELSE SELECT ow_wfjgware.mtrlwareid , ow_wfjgware.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.unit, ow_wfjgware.noallocqty, ow_wfjgware.planprice, ow_wfjgware.plancode, u_mtrldef.mtrlmode, ow_wfjgware.status, ow_wfjgware.woodcode, ow_wfjgware.pcode, ow_wfjgware.cost, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, ow_wfjgware.sptid, u_mtrldef.ifunit INTO :ls_mtrlwareid, :ls_mtrlid, :ls_mtrlcode, :ls_mtrlname, :ls_unit, :ls_noallocqty, :ls_planprice, :ls_plancode, :ls_mtrlmode, :ls_status, :ls_woodcode, :ls_pcode, :ls_cost, :ls_mtrlsectype, :ls_zxmtrlmode, :ll_sptid, :li_ifunit FROM u_mtrldef, ow_wfjgware WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) AND ( ow_wfjgware.sptid = :arg_sptid ) And ( u_mtrldef.mtrlcode = :arg_mtrlcode OR u_mtrldef.mtrlname = :arg_mtrlcode ); IF sqlca.SQLCode <> 0 THEN rslt = 0 GOTO ext ELSE if_find = TRUE END IF END IF END IF IF if_find THEN arg_s_mtrlware.u_mtrldef_mtrlcode[1] = ls_mtrlcode arg_s_mtrlware.u_mtrldef_mtrlname[1] = ls_mtrlname arg_s_mtrlware.u_mtrldef_unit[1] = ls_unit arg_s_mtrlware.u_mtrldef_mtrlmode[1] = ls_mtrlmode arg_s_mtrlware.u_mtrldef_mtrlsectype[1] = ls_mtrlsectype arg_s_mtrlware.u_mtrldef_zxmtrlmode[1] = ls_zxmtrlmode arg_s_mtrlware.plancode[1] = ls_plancode arg_s_mtrlware.status[1] = ls_status arg_s_mtrlware.woodcode[1] = ls_woodcode arg_s_mtrlware.pcode[1] = ls_pcode arg_s_mtrlware.mtrlid[1] = ls_mtrlid arg_s_mtrlware.mtrlwareid[1] = ls_mtrlwareid arg_s_mtrlware.sptid[1] = ll_sptid arg_s_mtrlware.noallocqty[1] = ls_noallocqty arg_s_mtrlware.planprice[1] = ls_planprice arg_s_mtrlware.cost[1] = ls_cost arg_s_mtrlware.ifunit[1] = li_ifunit END IF ext: RETURN rslt end function