$PBExportHeader$dbauo_taskmx.sru forward global type dbauo_taskmx from nonvisualobject end type end forward global type dbauo_taskmx from nonvisualobject end type global dbauo_taskmx dbauo_taskmx type variables //==================================================================== // 事件: .Declare Instance Variables() //-------------------------------------------------------------------- // 描述: //-------------------------------------------------------------------- // 参数: //-------------------------------------------------------------------- // 返回: (none) //-------------------------------------------------------------------- // 作者: lwl 日期: 2011年05月20日 //-------------------------------------------------------------------- // LONGJOE //-------------------------------------------------------------------- // 修改历史: // //==================================================================== long ins_printid long ins_mtrlid string ins_mtrlcuscode string ins_status string ins_pcode string ins_woodcode long ins_stopflag decimal ins_saleqty // 未发货数 decimal ins_allocqty // 已分配数 dbauo_task ins_task dbauo_mtrlware ins_mtrlware dbauo_adapter ins_adapter dbauo_taskmx_assign ins_assigns[] end variables forward prototypes public subroutine f_init (dbauo_task arg_task, long arg_printid, long arg_mtrlid, string arg_mtrlcuscode, string arg_status, string arg_pcode, string arg_woodcode, decimal arg_saleqty) public subroutine f_clear () end prototypes public subroutine f_init (dbauo_task arg_task, long arg_printid, long arg_mtrlid, string arg_mtrlcuscode, string arg_status, string arg_pcode, string arg_woodcode, decimal arg_saleqty);ins_task = arg_task ins_printid = arg_printid ins_mtrlid = arg_mtrlid ins_mtrlcuscode = arg_mtrlcuscode ins_status = arg_status ins_pcode = arg_pcode ins_woodcode = arg_woodcode ins_saleqty = arg_saleqty ins_adapter = ins_task.ins_adapter ins_mtrlware = ins_adapter.f_getware(ins_mtrlid, ins_mtrlcuscode, ins_status, ins_pcode, ins_woodcode) ins_allocqty = 0 ins_stopflag = 0 SELECT stopflag INTO :ins_stopflag FROM u_SaleTaskMx WHERE scid = :ins_task.ins_scid AND TaskID = :ins_task.ins_taskid AND printid = :ins_printid; if sqlca.sqlcode <> 0 then end if Long ll_assignid, arr_assignid[], ll_mtrlwareid, arr_mtrlwareid[] Decimal ld_qty, arr_qty[] Long ll_cnt = 0 DECLARE cur1 CURSOR FOR SELECT Assignid, u_mtrlware_assign.assignqty - u_mtrlware_assign.outqty, mtrlwareid FROM u_mtrlware_assign WHERE assigntype = 1 AND scid = :ins_task.ins_scid AND relbillid = :ins_task.ins_taskid And relprintid = :ins_printid; OPEN cur1; FETCH cur1 Into :ll_assignid, :ld_qty, :ll_mtrlwareid; DO WHILE sqlca.SQLCode = 0 ll_cnt++ arr_assignid[ll_cnt] = ll_assignid arr_qty[ll_cnt] = ld_qty arr_mtrlwareid[ll_cnt] = ll_mtrlwareid ins_allocqty += ld_qty FETCH cur1 Into :ll_assignid, :ld_qty, :ll_mtrlwareid; LOOP CLOSE cur1; Long ll_i f_clear() FOR ll_i = 1 To ll_cnt ins_assigns[ll_i] = Create dbauo_taskmx_assign ins_assigns[ll_i].f_init(This, arr_assignid[ll_i], arr_qty[ll_i], arr_mtrlwareid[ll_i]) NEXT end subroutine public subroutine f_clear ();long ll_i for ll_i = 1 to upperbound(ins_assigns) destroy ins_assigns[ll_i] next dbauo_taskmx_assign mx_empty[] ins_assigns = mx_empty end subroutine on dbauo_taskmx.create call super::create TriggerEvent( this, "constructor" ) end on on dbauo_taskmx.destroy TriggerEvent( this, "destructor" ) call super::destroy end on event destructor;f_clear() end event