$PBExportHeader$w_inware_cp.srw forward global type w_inware_cp from w_publ_1ton_share_detail end type type ddlb_status from dropdownlistbox within w_inware_cp end type type st_2 from statictext within w_inware_cp end type type st_3 from statictext within w_inware_cp end type type ddlb_scid from uo_ddlb_scid within w_inware_cp end type type cb_1 from commandbutton within w_inware_cp end type type cbx_packqty_cmpl from checkbox within w_inware_cp end type type cb_new_scanbill from commandbutton within w_inware_cp end type end forward global type w_inware_cp from w_publ_1ton_share_detail integer width = 3621 string title = "生产进仓单" boolean maxbox = true windowstate windowstate = maximized! long dw_pageretr_w = 33835544 long dw_child_h = 33938164 long dw_child_w = 33939932 boolean if_mtrlpicview = true boolean if_chkmtrlinfo = true event insert_childrow ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_import_price ( ) event ue_cmpl_status_qty ( ) event ue_p_cmpl_qty ( ) event ue_cmpl_qty ( ) event ue_p_formula_set ( ) event ue_p_cus_set ( ) event ue_all_choice ( ) event ue_allnot_choice ( ) event ue_all_audit ( ) event ue_allnot_audit ( ) event ue_all_delete ( ) event ue_view_status ( long arg_row, string arg_status ) event ue_mod_enprice ( ) event ue_getsaletask_sale ( ) event ue_view_mxdscrp ( ) event ue_view_mxdscrp2 ( ) event ue_view_mxdscrp3 ( ) event ue_view_mxdscrp4 ( ) event ue_editzy ( ) ddlb_status ddlb_status st_2 st_2 st_3 st_3 ddlb_scid ddlb_scid cb_1 cb_1 cbx_packqty_cmpl cbx_packqty_cmpl cb_new_scanbill cb_new_scanbill end type global w_inware_cp w_inware_cp type variables uo_inware_cp uo_ware long cur_flag= -1 //-1:全部,0未审 long cur_scid //分店ID long cur_scid_arr[] string ol_cdw_str = '' long ii_packqty_cmpl = 0 int ii_enamt_edit = 0 end variables forward prototypes public function integer wf_flagstatus_rf () public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid) public subroutine wf_find_cust (long arg_childrow, long arg_scid, long arg_orderid) public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, ref string arg_msg) public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg) public subroutine wf_check_billfj () public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg) public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg) public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg) public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, ref string arg_msg) public function integer wf_check_qtyandaddqty (ref string arg_msg) public function integer wf_checkqty (ref string arg_msg) public function integer wf_refresh_interface () end prototypes event insert_childrow();long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('u_mtrldef_mtrlcode') end event event ue_fj_edit();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,ok!) RETURN END IF //IF NOT f_power_ind(1098) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN //END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_uc.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,ok!) RETURN END IF s_pic.f_long = 207 //销售订单的mainID s_pic.f_string = dw_uc.Object.inwarecode[ls_row] s_pic.g_long = dw_uc.Object.inwareid[ls_row] s_pic.e_long = dw_uc.Object.u_inware_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) wf_check_billfj() end event event ue_fj_view();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,ok!) RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_uc.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('错误','没有指定附件数据库连接'+arg_msg,stopsign!,ok!) RETURN END IF s_pic.f_long = 207 //销售订单的mainID s_pic.f_string = dw_uc.Object.inwarecode[ls_row] s_pic.g_long = dw_uc.Object.inwareid[ls_row] s_pic.e_long = dw_uc.Object.u_inware_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_import_price();if not dw_edit_mode then return Long i Long ll_mtrlid String ls_status String ls_woodcode String ls_pcode Decimal lde_planprice String ls_msg dw_child.AcceptText() FOR i = 1 TO dw_child.RowCount() lde_planprice = 0 ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i] ls_status = dw_child.Object.u_inwaremx_status[i] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i] ls_pcode = dw_child.Object.u_inwaremx_pcode[i] // IF sys_option_planprice_configure = 0 THEN // SELECT planprice // INTO :ld_planprice // FROM u_mtrldef // Where mtrlid = :ll_mtrlid; // IF sqlca.SQLCode <> 0 THEN // ls_msg = '查询' + dw_child.Object.u_mtrldef_mtrlcode[i] + '计划价失败!' // GOTO ext // END IF // ELSE // ls_status = dw_child.Object.u_inwaremx_status[i] // ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i] // ls_pcode = dw_child.Object.u_inwaremx_pcode[i] // SELECT u_mtrl_planprice.planprice // INTO :ld_planprice // FROM u_mtrl_planprice // WHERE status = :ls_status AND // woodcode = :ls_woodcode AND // pcode = :ls_pcode AND // mtrlid = :ll_mtrlid; // IF sqlca.SQLCode = -1 THEN // ls_msg = '查询' + dw_child.Object.u_mtrldef_mtrlcode[i] + '计划价失败!' // GOTO ext // END IF // END IF lde_planprice = f_get_planprice(ll_mtrlid, ls_status,ls_woodcode,ls_pcode, true) dw_child.Object.u_inwaremx_fprice[i] = lde_planprice // dw_child.Object.u_inwaremx_fprice[i] = ld_planprice NEXT //ext: //if ls_msg <> '' then // messagebox('错误',ls_msg,stopsign!,ok!) //end if end event event ue_cmpl_status_qty();Int ll_flag Decimal ll_value Long ll_num Long i,j,k String ls_mtrlmode String ls_status Decimal ld_qty Decimal ld_addqty String ls_msg Long ll_type s_cmpl_addqty s_cmpl dw_child.AcceptText() dw_uc.SetRedraw(FALSE) IF dw_edit_mode THEN Open(w_cmpl_status_qty_ch) s_cmpl = Message.PowerObjectParm ll_flag = s_cmpl.flag ll_value = s_cmpl.addvalue ll_num = s_cmpl.num ll_type = s_cmpl.cmptype IF ll_value <= 0 THEN RETURN IF dw_child.RowCount() <= 0 THEN RETURN FOR i = 1 TO dw_child.RowCount() ld_addqty = dw_child.Object.u_inwaremx_addqty[i] CHOOSE CASE ll_type CASE 0 ls_status = dw_child.Object.u_inwaremx_status[i] CASE 1 ls_status = dw_child.Object.u_inwaremx_woodcode[i] CASE 2 ls_status = dw_child.Object.u_inwaremx_pcode[i] CASE 3 ls_status = dw_child.Object.u_mtrldef_mtrlsectype[i] CASE 4 ls_status = dw_child.Object.u_mtrldef_zxmtrlmode[i] END CHOOSE IF ld_addqty = 0 OR ls_status = '' THEN ELSE ld_qty = 0 IF f_cmpl_status_qty(ld_addqty,ls_status,ld_qty,ls_msg) = 0 THEN MessageBox('错误',ls_msg,stopsign!,ok!) GOTO ext END IF IF ll_flag = 0 THEN dw_child.Object.u_inwaremx_qty[i] = Round(ld_qty * ll_value,ll_num) ELSE dw_child.Object.u_inwaremx_qty[i] = Round(ld_qty / ll_value,ll_num) END IF END IF NEXT END IF ext: dw_uc.SetRedraw(TRUE) end event event ue_p_cmpl_qty();IF dw_child.RowCount() = 0 THEN RETURN Long i String ls_formula String ls_msg String ls_rs String ls_num Decimal ld_addqty Decimal ld_price Decimal ld_rebate Decimal ld_qty dw_child.AcceptText() s_cmpl_qty s_cmpl Open(w_cmpl_qty_ch_son) s_cmpl = Message.PowerObjectParm dw_uc.SetRedraw(FALSE) FOR i = 1 TO dw_child.RowCount() ld_qty = 0 IF dw_child.Object.u_inwaremx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_inwaremx_formula[i] s_cmpl.addqty = dw_child.Object.u_inwaremx_addqty[i] s_cmpl.price = dw_child.Object.u_inwaremx_fprice[i] s_cmpl.ifnorebate = 1 s_cmpl.status = dw_child.Object.u_inwaremx_status[i] s_cmpl.woodcode = dw_child.Object.u_inwaremx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_inwaremx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] IF f_cmpl_qty(s_cmpl,ld_qty,ls_msg) = 0 THEN MessageBox('提示','第' + String(i) + '行,' + ls_msg, Information!, OK! ) GOTO ext END IF dw_child.Object.u_inwaremx_qty[i] = ld_qty END IF NEXT ext: dw_child.SetColumn('u_inwaremx_qty') dw_uc.SetRedraw(TRUE) end event event ue_cmpl_qty();IF dw_child.GetRow() = 0 THEN RETURN Long child_row dw_child.AcceptText() child_row = dw_child.GetRow() s_cmpl_qty s_cmpl,s_return s_cmpl.qty = dw_child.Object.u_inwaremx_qty[child_row] s_cmpl.formula = dw_child.Object.u_inwaremx_formula[child_row] s_cmpl.addqty = dw_child.Object.u_inwaremx_addqty[child_row] s_cmpl.price = dw_child.Object.u_inwaremx_fprice[child_row] s_cmpl.ifnorebate = 1 s_cmpl.status = dw_child.Object.u_inwaremx_status[child_row] s_cmpl.woodcode = dw_child.Object.u_inwaremx_woodcode[child_row] s_cmpl.pcode = dw_child.Object.u_inwaremx_pcode[child_row] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] IF NOT IsValid(w_cmpl_qty_ch) THEN OpenWithParm(w_cmpl_qty_ch,s_cmpl) s_return = Message.PowerObjectParm IF s_return.formula <> s_cmpl.formula or s_return.qty <> s_cmpl.qty THEN dw_child.Object.u_inwaremx_qty[child_row] = s_return.qty dw_child.Object.u_inwaremx_formula[child_row] = s_return.formula END IF END IF end event event ue_p_formula_set();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定公式', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_child.AcceptText() dw_child.SetRedraw(FALSE) FOR ll_i = 1 TO dw_child.RowCount() IF ll_i = 1 THEN CONTINUE dw_child.Object.u_inwaremx_formula[ll_i] = dw_child.Object.u_inwaremx_formula[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_p_cus_set();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定客户', question!, YesNo!, 2) = 2 THEN RETURN END IF IF dw_child.RowCount() < 2 THEN RETURN Long i dw_child.SetRedraw (FALSE) FOR i = 2 TO dw_child.RowCount() dw_child.Object.u_cust_cuscode[i] = dw_child.Object.u_cust_cuscode[1] dw_child.Object.u_cust_name[i] = dw_child.Object.u_cust_name[1] dw_child.Object.if_mtrlware[i] = dw_child.Object.if_mtrlware[1] dw_child.Object.u_inwaremx_sptid_cusid[i] = dw_child.Object.u_inwaremx_sptid_cusid[1] NEXT dw_child.SetRedraw (TRUE) end event event ue_all_choice();Long i FOR i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.ch[i] = 1 NEXT end event event ue_allnot_choice();Long i FOR i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.ch[i] = 0 NEXT end event event ue_all_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail String arg_msg,arg_msg1,ls_taskcode IF NOT (f_power_ind(63) OR f_power_ind(1055)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR ll_i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息 ll_billid = dw_pageretr.Object.inwareid[ll_i] ll_scid = dw_pageretr.Object.u_inware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i] ls_taskcode = dw_pageretr.Object.inwarecode[ll_i] IF li_flag = 0 THEN //仓审 IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN ll_fail++ arg_msg1 = arg_msg1 + ' ' + ls_taskcode CONTINUE END IF IF uo_ware.auditing(True,arg_msg) = 0 THEN ll_fail++ arg_msg1 = arg_msg1 + ' ' + ls_taskcode CONTINUE END IF END IF w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT Close(w_sys_wait_jdt) IF ll_fail <> 0 THEN MessageBox('提示','审核失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,Information!,OK!) END IF This.TriggerEvent('retrieve_pageretr') end event event ue_allnot_audit();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail String arg_msg,arg_msg1,ls_taskcode IF NOT (f_power_ind(909) OR f_power_ind(1056)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR ll_i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在撤审..." //进度信息 ll_billid = dw_pageretr.Object.inwareid[ll_i] ll_scid = dw_pageretr.Object.u_inware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i] ls_taskcode = dw_pageretr.Object.inwarecode[ll_i] IF li_flag = 1 THEN //撤审 IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN ll_fail++ arg_msg1 = arg_msg1 + ' ' + ls_taskcode CONTINUE END IF IF uo_ware.c_auditing(True,arg_msg) = 0 THEN ll_fail++ arg_msg1 = arg_msg1 + ' ' + ls_taskcode CONTINUE END IF END IF w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT Close(w_sys_wait_jdt) IF ll_fail <> 0 THEN MessageBox('提示','撤审失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,Information!,OK!) END IF This.TriggerEvent('retrieve_pageretr') end event event ue_all_delete();Long ll_billid,ll_scid,li_flag,li_secflag,ll_i,ll_fail String arg_msg,arg_msg1,ls_taskcode IF NOT (f_power_ind(597) OR f_power_ind(1058)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR ll_i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在删除..." //进度信息 ll_billid = dw_pageretr.Object.inwareid[ll_i] ll_scid = dw_pageretr.Object.u_inware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] // li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i] ls_taskcode = dw_pageretr.Object.inwarecode[ll_i] IF li_flag = 0 THEN //删除 IF uo_ware.del(ll_scid,ll_billid,arg_msg,True) = 0 THEN ll_fail++ arg_msg1 = arg_msg1 + ' ' + ls_taskcode CONTINUE END IF END IF w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT Close(w_sys_wait_jdt) IF ll_fail <> 0 THEN MessageBox('提示','删除失败数 '+String(ll_fail) + ' '+ '失败单号:' + arg_msg1 ,information!,OK!) END IF This.TriggerEvent('retrieve_pageretr') end event event ue_view_status(long arg_row, string arg_status);s_view_dscrp s_view,s_return String ls_dscrp long ll_mtrlid,ll_statusflag,ll_woodcodeflag,ll_pcodeflag dw_child.AcceptText() ll_mtrlid = dw_child.object.u_inwaremx_mtrlid[arg_row] SELECT statusflag, woodcodeflag, pcodeflag into :ll_statusflag,:ll_woodcodeflag,:ll_pcodeflag FROM U_MTRLDEF where mtrlid = :ll_mtrlid; IF arg_status = 'u_inwaremx_status' THEN IF ll_statusflag<>5 THEN RETURN ELSEIF arg_status = 'u_inwaremx_woodcode' THEN IF ll_woodcodeflag<>5 THEN RETURN ELSEIF arg_status = 'u_inwaremx_pcode' then IF ll_pcodeflag<>5 THEN RETURN ELSE RETURN END IF ls_dscrp = dw_child.GetItemString(arg_row, arg_status) s_view.Title = '配置内容' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_status,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.setitem(arg_row,arg_status,s_return.dscrp) END IF end event event ue_mod_enprice();IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不可使用') RETURN END IF Long uc_row,child_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选择单据') RETURN END IF Long ll_flag ,ll_secflag,ll_balcflag, ll_cnt, ll_balcdateint Long ll_scid,ll_inwareid,ll_printid Long ll_storageid,ll_mtrlid,cnt String ls_status,ls_woodcode,ls_pcode Int li_StoreBalcType ll_flag = dw_pageretr.Object.flag[uc_row] ll_balcflag = dw_pageretr.Object.balcflag[uc_row] ll_balcdateint = dw_pageretr.Object.u_inware_balcdateint[uc_row] ll_scid = dw_pageretr.Object.u_inware_scid[uc_row] ll_inwareid = dw_pageretr.Object.inwareid[uc_row] ll_storageid = dw_pageretr.Object.storageid[uc_row] IF ll_flag = 0 THEN MessageBox('系统提示','进仓单待审核状态下不能执行修改单价功能') RETURN END IF IF ll_balcflag = 1 THEN MessageBox('提示','单据已结存,不能执行修改单价功能', Information!, OK! ) RETURN END IF s_edit_index_tran s_tran_mod s_tran_mod.b_long = ll_scid s_tran_mod.c_long = ll_inwareid OpenWithParm(w_inwaremx_cp_mod_price,s_tran_mod) This.TriggerEvent('retrieve_childdw') end event event ue_getsaletask_sale();//用于选择订单自制料 IF Not dw_edit_mode THEN RETURN Long child_row Long ll_storageid = 0 Decimal lde_planprice String ls_plancode String ls_con_name child_row = dw_child.GetRow() IF Not IsValid(w_inware_salemx_ch) THEN s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位pkid (备用) s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.if_select_all = True s_ch_tran.b_long = 0 s_ch_tran.c_long = ll_storageid Long chc = 1,ls_j OpenWithParm(w_inware_salemx_ch,s_ch_tran) s_inwaremx_self s_inscust s_inscust = Message.PowerObjectParm FOR ls_j = 1 To UpperBound(s_inscust.mtrlid) IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_inwaremx_mtrlid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF //dw_child.Object.u_inwaremx_ifrel[child_row] = 1 dw_child.Object.u_inwaremx_mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_inwaremx_relid[child_row] = s_inscust.relid[ls_j] dw_child.Object.u_inwaremx_relprintid[child_row] = s_inscust.printid[ls_j] dw_child.Object.taskcode[child_row] = s_inscust.taskcode[ls_j] dw_child.Object.salerelcode[child_row] = s_inscust.relcode[ls_j] dw_child.Object.u_inwaremx_qty[child_row] = s_inscust.noqty[ls_j] NEXT dw_child.SetFocus() END IF This.TriggerEvent('ue_allowedit') end event event ue_view_mxdscrp();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp[dw_child.GetRow()] s_view.Title = '生产进仓单明细备注' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_inwaremx_mxdscrp[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_view_mxdscrp2();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp2[dw_child.GetRow()] s_view.Title = '生产进仓单明细备注2' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_inwaremx_mxdscrp2[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_view_mxdscrp3();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp3[dw_child.GetRow()] s_view.Title = '生产进仓单明细备注3' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_inwaremx_mxdscrp3[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_view_mxdscrp4();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_inwaremx_mxdscrp4[dw_child.GetRow()] s_view.Title = '生产进仓单明细备注4' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_inwaremx_mxdscrp4[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_editzy();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!", Information!, OK! ) return END IF IF NOT (f_power_ind(778) or f_power_ind(781)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF string arg_msg='' string ls_str long uc_row s_inputbox s_sreu uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!', Information!, OK! ) return end if s_sreu.title='请输入要补充到备注的内容' s_sreu.old_text='' openwithparm(w_inputbox,s_sreu) ls_str=message.stringparm if trim(ls_str)='' or isnull(ls_str) then return long ll_scid,ll_inwareid ll_scid = dw_pageretr.object.u_inware_scid[uc_row] ll_inwareid = dw_pageretr.object.inwareid[uc_row] UPDATE u_inware set dscrp = :ls_str where scid = :ll_scid and inwareid = :ll_inwareid; IF SQLCA.SQLCode <> 0 THEN messagebox('error!','更新单据备注失败!') return END IF messagebox('提示','修改备注操作成功!', Information!, OK! ) wf_refresh_curuc(ll_scid,ll_inwareid) end event public function integer wf_flagstatus_rf ();//==================================================================== // Function: wf_flagstatus_rf() //-------------------------------------------------------------------- // Description: //-------------------------------------------------------------------- // Arguments:(None) //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.12.26 //-------------------------------------------------------------------- // Modify History: // //==================================================================== long pagerert_row pagerert_row=dw_pageretr.getrow() if pagerert_row<=0 then cb_auditing.enabled=false goto ext end if if dw_edit_mode then cb_auditing.enabled=false cb_auditing_cancel.enabled=false else if dw_pageretr.object.flag[pagerert_row]=0 then cb_auditing.enabled=true cb_auditing_cancel.enabled=false elseif dw_pageretr.object.flag[pagerert_row]=1 then cb_auditing.enabled=false cb_auditing_cancel.enabled=true end if end if ext: return 0 end function public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid);wf_flagstatus_rf()//wf_refresh_curuc if arg_inwareid<=0 or isnull(arg_inwareid) then return 0 long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then return 0 long storageid datetime indate string inrep string part string dscrp int balcflag string inwarecode string sptname datetime opdate string opemp string modemp datetime moddate int flag datetime Auditingdate string Auditingrep string storagename int ll_printnum SELECT u_inware.storageid, u_inware.indate, u_inware.inrep, u_inware.part, u_inware.dscrp, u_inware.opdate, u_inware.opemp, u_inware.flag, u_inware.auditingdate, u_inware.auditingrep, u_inware.inwarecode, u_inware.balcflag, u_inware.sptname, u_storage.storagename, u_inware.modemp, u_inware.moddate, u_inware.printnum into :storageid, :indate, :inrep, :part, :dscrp, :opdate, :opemp, :flag, :Auditingdate, :Auditingrep, :inwarecode, :balcflag, :sptname, :storagename, :modemp, :moddate , :ll_printnum FROM u_inware, u_storage WHERE ( u_inware.inwareid = :arg_inwareid ) and ( u_inware.storageid = u_storage.storageid ) and ( u_inware.scid=:arg_scid ); if sqlca.sqlcode<>0 then messagebox('错误',"查询操作失败(错误单据唯一码)",stopsign!,ok!) return 0 end if dw_pageretr.object.u_inware_scid[uc_row]=arg_scid dw_pageretr.object.inwareid[uc_row]=arg_inwareid dw_pageretr.object.indate[uc_row]=indate dw_pageretr.object.part[uc_row]= part dw_pageretr.object.inrep[uc_row]= inrep dw_pageretr.object.storageid[uc_row]=storageid dw_pageretr.object.sptname[uc_row]=sptname dw_pageretr.object.dscrp[uc_row]= dscrp dw_pageretr.object.balcflag[uc_row]= balcflag dw_pageretr.object.inwarecode[uc_row]=inwarecode dw_pageretr.object.opdate[uc_row]= opdate dw_pageretr.object.u_inware_opemp[uc_row]= opemp dw_pageretr.object.u_inware_moddate[uc_row]= moddate dw_pageretr.object.u_inware_modemp[uc_row]= modemp dw_pageretr.object.flag[uc_row]= flag dw_pageretr.object.Auditingdate[uc_row]= Auditingdate dw_pageretr.object.Auditingrep[uc_row]=Auditingrep dw_pageretr.object.u_storage_storagename[uc_row]=storagename dw_pageretr.object.u_inware_printnum[uc_row]=ll_printnum dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(TRUE) wf_flagstatus_rf() return 1 end function public subroutine wf_find_cust (long arg_childrow, long arg_scid, long arg_orderid);IF arg_childrow <= 0 THEN RETURN Long cnt = 0 Long li_ordertype SELECT ordertype INTO :li_ordertype FROM u_order_ml WHERE scid = :arg_scid AND orderid = :arg_orderid; IF sqlca.SQLCode <> 0 THEN RETURN IF li_ordertype = 0 THEN RETURN SELECT count(*) INTO :cnt FROM u_order_ml_mx WHERE scid = :arg_scid AND orderid = :arg_orderid; IF sqlca.SQLCode <> 0 THEN RETURN IF cnt <> 1 THEN RETURN Long ll_cusid String ls_cuscode,ls_cusname SELECT u_cust.cusid, u_cust.cuscode,u_cust.name INTO :ll_cusid,:ls_cuscode,:ls_cusname FROM u_cust,u_order_ml_mx WHERE u_cust.cusid = u_order_ml_mx.cusid AND u_order_ml_mx.scid = :arg_scid AND u_order_ml_mx.orderid = :arg_orderid; IF sqlca.SQLCode <> 0 THEN RETURN dw_child.SetRedraw(FALSE) dw_child.object.u_inwaremx_ifrel[arg_childrow] = 1 dw_child.Object.u_inwaremx_sptid_cusid[arg_childrow] = ll_cusid dw_child.Object.u_cust_name[arg_childrow] = ls_cusname dw_child.Object.u_cust_cuscode[arg_childrow] = ls_cuscode dw_child.SetRedraw(TRUE) end subroutine public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, ref string arg_msg);//选订单调用 //wf_autoaddmx(arg_saletaskid,arg_storageid,arg_msg) //查询物料库存总额 //查询库存批/插入明细记录 IF Not dw_edit_mode THEN RETURN 0 s_saletask_mtrl s_rqmtrlI Long P_rqmtrl,lrow,li,rslt = 1 Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_price,noallocqty,allocqty,ins_salerate,ins_packqty Decimal lde_planprice Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode,ins_mtrlengname String ls_cuscode,ls_cusname,ins_mtrltype String ins_handtype Boolean lb_find = True Date l_rqdate l_rqdate = Today() uo_custdef uo_cust uo_cust = Create uo_custdef uo_cust.commit_transaction = sqlca Int li_if_cus_mtrlware Long ls_sptid SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :arg_storageid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询仓库是否使用客户库存失败' rslt = 0 GOTO ext END IF IF li_if_cus_mtrlware = 1 THEN ls_sptid = arg_cusid IF uo_cust.getinfo(arg_cusid,arg_msg) = 1 THEN ls_cuscode = uo_cust.s_cust.cuscode ls_cusname = uo_cust.s_cust.Name END IF IF uo_cust.s_cust.bhflag = 1 THEN //备货客户不考虑客户库存 ls_sptid = 0 ls_cuscode = '' ls_cusname = '' END IF ELSE ls_sptid = 0 END IF rslt = wf_saletaskmtrltoarr(arg_scid,arg_saletaskid,s_rqmtrlI,P_rqmtrl,arg_msg) FOR li = 1 To P_rqmtrl sumqty = 0 ins_mtrlcode = '' ins_mtrlname = '' lb_find = True allocqty = 0 noallocqty = 0 i_qty = 0 SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.mtrltype, u_mtrldef.zxmtrlmode, u_mtrldef.salerate, u_mtrldef.handtype, u_mtrldef.packqty, u_mtrldef.mtrlengname INTO :ins_mtrlcode, :ins_mtrlname, :ins_unit, :ins_mtrlmode, :ins_mtrlsectype, :ins_mtrltype, :ins_zxmtrlmode, :ins_salerate, :ins_handtype, :ins_packqty, :ins_mtrlengname FROM u_mtrldef Where u_mtrldef.mtrlid = :s_rqmtrlI.mtrlid[li]; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询物料资料失败[错误物料唯一码]>' + sqlca.SQLErrText rslt = 0 GOTO ext END IF child_llrow = dw_child.GetRow() IF child_llrow > 0 THEN IF dw_child.Object.u_inwaremx_mtrlid[child_llrow] <> 0 THEN child_llrow = dw_child.InsertRow (0) ELSE child_llrow = dw_child.GetRow() END IF ELSE child_llrow = dw_child.InsertRow (0) END IF IF li_if_cus_mtrlware = 1 THEN IF uo_cust.s_cust.bhflag = 1 THEN //mei:20170106 dw_child.Object.if_mtrlware[child_llrow] = 0 ELSE dw_child.Object.if_mtrlware[child_llrow] = 1 END IF dw_child.Object.u_cust_cuscode[child_llrow] = ls_cuscode dw_child.Object.u_cust_name[child_llrow] = ls_cusname dw_child.Object.u_inwaremx_sptid_cusid [child_llrow] = ls_sptid END IF dw_child.Object.u_inwaremx_ifrel[child_llrow] = 1 dw_child.Object.u_inwaremx_relid [child_llrow] = arg_saletaskid dw_child.Object.u_inwaremx_relprintid [child_llrow] = s_rqmtrlI.printid[li] dw_child.Object.u_inwaremx_mtrlid[child_llrow] = s_rqmtrlI.mtrlid[li] IF sys_option_inwarecp_saleprice = 0 THEN lde_planprice = f_get_planprice(s_rqmtrlI.mtrlid[li], s_rqmtrlI.status[li], s_rqmtrlI.woodcode[li], s_rqmtrlI.pcode[li], True) dw_child.Object.u_inwaremx_fprice[child_llrow] = lde_planprice //s_rqmtrlI.fprice[li] ELSE dw_child.Object.u_inwaremx_fprice[child_llrow] = s_rqmtrlI.fprice[li] * ins_salerate END IF dw_child.Object.u_inwaremx_qty[child_llrow] = s_rqmtrlI.qty[li] dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit dw_child.Object.u_inwaremx_relcode[child_llrow] = arg_taskcode dw_child.Object.u_inwaremx_status[child_llrow] = s_rqmtrlI.status[li] dw_child.Object.u_inwaremx_woodcode[child_llrow] = s_rqmtrlI.woodcode[li] dw_child.Object.u_inwaremx_pcode[child_llrow] = s_rqmtrlI.pcode[li] dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype dw_child.Object.u_mtrldef_mtrltype[child_llrow] = ins_mtrltype dw_child.Object.u_mtrldef_handtype[child_llrow] = ins_handtype dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode dw_child.Object.u_inwaremx_mxdscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] dw_child.Object.u_inwaremx_mxdscrp2[child_llrow] = s_rqmtrlI.mxdscrp2[li] dw_child.Object.u_inwaremx_mxdscrp3[child_llrow] = s_rqmtrlI.mxdscrp3[li] dw_child.Object.u_inwaremx_mxdscrp4[child_llrow] = s_rqmtrlI.mxdscrp4[li] dw_child.Object.u_inwaremx_mtrlcuscode[child_llrow] = s_rqmtrlI.mtrlcuscode[li] dw_child.Object.u_inwaremx_addqty[child_llrow] = s_rqmtrlI.addqty[li] dw_child.Object.u_saletask_taskdate[child_llrow] = s_rqmtrlI.taskdate[li] dw_child.Object.u_inwaremx_plancode[child_llrow] = s_rqmtrlI.plancode[li] dw_child.Object.u_mtrldef_packqty[child_llrow] = ins_packqty dw_child.Object.u_mtrldef_mtrlengname[child_llrow] = ins_mtrlengname //系统选项289 [0- 不使用;1- 引用订单明细备注;2-引用用订单明细备注+客户名称;3-引用订单明细备注+订单明细备注2] IF sys_option_inwarecp_auto_saletask_dscrp = 1 THEN dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 2 THEN String ls_temp_cusname ls_temp_cusname = '' SELECT Name Into :ls_temp_cusname From u_cust Where cusid = :arg_cusid; dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] + ' ' + ls_temp_cusname ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 3 THEN dw_child.Object.u_inwaremx_waredscrp[child_llrow] = s_rqmtrlI.mxdscrp[li] + ' ' + s_rqmtrlI.mxdscrp2[li] END IF Decimal dec_lmbuyprice //设定购价 dec_lmbuyprice = 0 SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = :s_rqmtrlI.mtrlid[li]; dw_child.Object.u_mtrldef_lmbuyprice[child_llrow] = dec_lmbuyprice Long li_statusflag Long li_woodcodeflag Long li_pcodeflag s_mtrldef_array arg_s_mtrldef IF f_find_mtrl(ins_mtrlcode, - 1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_child.Object.u_mtrldef_statusflag[child_llrow] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_llrow] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_llrow] = li_pcodeflag NEXT ext: RETURN rslt end function public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long arg_p_rqmtrl,ref string arg_msg) //查询合同物料资料 //把物料资料写入数组 Long rslt = 1 //查询合同物料 DECLARE pf_cur CURSOR FOR SELECT u_saletaskmx.mtrlid, u_saletaskmx.orderqty - u_saletaskmx.assignqty, u_saletaskmx.enprice, u_saletaskmx.ware_fprice, u_saletaskmx.rebate, u_saletaskmx.mxdscrp, u_saletaskmx.status, u_saletaskmx.woodcode, u_saletaskmx.pcode, u_saletaskmx.mxdscrp, u_saletaskmx.mtrlcuscode, u_saletaskmx.addqty, u_saletask.taskdate, u_saletaskmx.printid, u_saletaskmx.plancode, u_saletaskmx.mxdscrp2, u_saletaskmx.mxdscrp3, u_saletaskmx.mxdscrp4 FROM u_saletaskmx ,u_mtrldef,u_saletask WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND ( u_saletaskmx.taskid = :arg_taskid ) //AND ( u_saletaskmx.orderqty - u_saletaskmx.assignqty > 0 ) AND ( u_saletaskmx.scid = :arg_scid ) AND u_saletask.taskid = u_saletaskmx.taskid And u_saletask.scid = u_saletaskmx.scid ; OPEN pf_cur; arg_p_rqmtrl = 1 FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl], :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],:arg_s_rqmtrl.rebate[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.status[arg_p_rqmtrl], :arg_s_rqmtrl.woodcode[arg_p_rqmtrl],:arg_s_rqmtrl.pcode[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl], :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.taskdate[arg_p_rqmtrl], :arg_s_rqmtrl.printid[arg_p_rqmtrl],:arg_s_rqmtrl.plancode[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl]; DO WHILE sqlca.SQLCode = 0 arg_p_rqmtrl++ FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl], :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl],:arg_s_rqmtrl.rebate[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.status[arg_p_rqmtrl], :arg_s_rqmtrl.woodcode[arg_p_rqmtrl],:arg_s_rqmtrl.pcode[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl], :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.taskdate[arg_p_rqmtrl], :arg_s_rqmtrl.printid[arg_p_rqmtrl],:arg_s_rqmtrl.plancode[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl]; LOOP arg_p_rqmtrl = arg_p_rqmtrl - 1 CLOSE pf_cur; RETURN rslt end function public subroutine wf_check_billfj ();String arg_msg Long ll_ConnectionID Long cur_billtype long ll_relid,ll_relid_mx,ll_scid Long ls_filecount = 0 Int rslt = 1 uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long row,uc_relid row = dw_pageretr.GetRow() IF row > 0 THEN ll_relid = dw_pageretr.Object.inwareid[row] ll_scid = dw_pageretr.Object.u_inware_scid[row] ll_relid_mx = 0 ELSE rslt = 0 GOTO ext END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF cur_billtype = 207 //客户投拆单的 mainiD ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount) IF ls_filecount > 0 THEN rslt = 1 GOTO ext ELSE rslt = 0 GOTO ext END IF ext: wf_encl(rslt) DESTROY ls_uo_fjbt end subroutine public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//============================================================================== // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata() //------------------------------------------------------------------------------ // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可 //------------------------------------------------------------------------------ Long LS_ROW,ll_id,i,ll_scid LS_ROW = dw_uc.GetRow() IF LS_ROW <= 0 THEN arg_msg = '没有目标单据!' RETURN 0 END IF //修改点:获取 指定retriev参数 ll_id = dw_uc.Object.#1[LS_ROW] ll_scid = dw_uc.Object.u_inware_scid[LS_ROW] //查询所选模版是否含有图片信息 Long ll_ifpic Long ll_classid SELECT ifpic INTO :ll_ifpic FROM U_XLS_Templates Where id = :ll_xls_Templatesid; IF sqlca.SQLCode <> 0 THEN ll_ifpic = 0 END IF Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype s_xls_pic_list s_pic //结构数组-用于保存图片路径 IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件 SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 207); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[ll_i] //取该附件类型中的第一个附件. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype FROM u_file WHERE relid = :ll_mtrlid AND classid = :ll_classid AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf' OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg') USING sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN ll_fileid = 0 END IF IF ll_fileid > 0 THEN Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype IF Trim(Pathname) <> '' THEN IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN RETURN 0 END IF IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN RETURN 0 ELSE s_pic.path[ll_i] = Pathname //记录临时文件位置,本窗口退出后删除 wf_addlog_tempfilepathname(Pathname) END IF ELSE s_pic.path[ll_i] = '' END IF ELSE s_pic.path[ll_i] = '' END IF NEXT END IF // END IF ////可选设置/// arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码 if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码 boolean xls_locked xls_locked = not (sys_option_xls_lock = 1) /// Excel 的可选设置 if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then return 0 end if for i = 1 to arg_str_billlist.count ////可选操作/// arg_str_billlist.bill[i].ds_data = create datastore // arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow // arg_str_billlist.bill[i].ds_data.settransobject(sqlca) //修改点:注意retrieve 参数与上文对应 arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id) next return 1 end function public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long i,ref string arg_msg) //查询合同物料资料 //把物料资料写入数组 Long rslt = 1 Long i FOR i = 1 TO UpperBound(arg_s_rqmtrl.taskid) SELECT u_saletaskmx.mtrlid, u_saletaskmx.orderqty - u_saletaskmx.assignqty, u_saletaskmx.enprice, u_saletaskmx.fprice, u_saletaskmx.rebate, u_saletaskmx.mxdscrp, u_saletaskmx.status, u_saletaskmx.woodcode, u_saletaskmx.pcode, u_saletaskmx.unit, u_saletaskmx.rate, u_saletaskmx.mtrlcuscode, u_saletaskmx.outtype, u_saletaskmx.formula, u_saletaskmx.addqty, u_saletask.cusid, u_cust.cuscode, u_cust.name, u_saletask.taskcode, u_saletask.taskdate, u_saletaskmx.printid, u_saletaskmx.plancode, u_saletaskmx.mxdscrp2, u_saletaskmx.mxdscrp3, u_saletaskmx.mxdscrp4 INTO :arg_s_rqmtrl.mtrlid[i],:arg_s_rqmtrl.qty[i], :arg_s_rqmtrl.enprice[i],:arg_s_rqmtrl.fprice[i], :arg_s_rqmtrl.rebate[i],:arg_s_rqmtrl.mxdscrp[i], :arg_s_rqmtrl.status[i],:arg_s_rqmtrl.woodcode[i], :arg_s_rqmtrl.pcode[i],:arg_s_rqmtrl.unit[i], :arg_s_rqmtrl.rate[i],:arg_s_rqmtrl.mtrlcuscode[i], :arg_s_rqmtrl.outtype[i],:arg_s_rqmtrl.formula[i], :arg_s_rqmtrl.addqty[i], :arg_s_rqmtrl.cusid[i],:arg_s_rqmtrl.cuscode[i], :arg_s_rqmtrl.cusname[i],:arg_s_rqmtrl.taskcode[i], :arg_s_rqmtrl.taskdate[i], :arg_s_rqmtrl.printid[i], :arg_s_rqmtrl.plancode[i], :arg_s_rqmtrl.mxdscrp2[i], :arg_s_rqmtrl.mxdscrp3[i], :arg_s_rqmtrl.mxdscrp4[i] FROM u_saletaskmx ,u_mtrldef,u_saletask,u_cust WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND ( u_saletaskmx.taskid = :arg_s_rqmtrl.taskid[i] ) AND ( u_saletaskmx.scid = :arg_scid ) AND u_saletaskmx.printid = :arg_s_rqmtrl.printid[i] and u_saletask.taskid = u_saletaskmx.taskid and u_saletask.scid = u_saletaskmx.scid and u_saletask.cusid = u_cust.cusid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询订单明细失败!' GOTO ext END IF NEXT ext: RETURN rslt end function public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg);Long LS_ROW,ll_id,i,ll_scid LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN arg_msg = '没有目标单据!' RETURN 0 END IF //修改点:获取 指定retriev参数 ll_id = dw_pageretr.Object.#1[LS_ROW] ll_scid = dw_pageretr.Object.u_inware_scid[LS_ROW] Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long ll_classid SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[ll_i] arg_s_pic.mtrlid[ll_i] = ll_mtrlid //取该附件类型中的第一个附件. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype FROM u_file WHERE relid = :ll_mtrlid AND classid = :ll_classid AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf' OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg') USING sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN ll_fileid = 0 END IF IF ll_fileid > 0 THEN Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype IF Trim(Pathname) <> '' THEN IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN RETURN 0 END IF IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN RETURN 0 ELSE arg_s_pic.path[ll_i] = Pathname //记录临时文件位置,本窗口退出后删除 wf_addlog_tempfilepathname(Pathname) END IF ELSE arg_s_pic.path[ll_i] = '' END IF ELSE arg_s_pic.path[ll_i] = '' END IF NEXT END IF RETURN 1 end function public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, ref string arg_msg);//选订单明细调用 //wf_autoaddmx(arg_taskid,arg_storageid,arg_msg) //查询合同物料于数组中 //循环数组 //查询物料库存总额 //查询库存批/插入明细记录 IF Not dw_edit_mode THEN RETURN 0 Long P_rqmtrl,lrow,li,rslt = 1 Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_price,noallocqty,allocqty,r_qty,ins_salerate Decimal lde_planprice Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode,ins_mtrlengname Boolean lb_find = True Long storageid Long mtrlwareid Int li_bhflag Decimal planprice Date l_rqdate l_rqdate = Today() Int li_if_cus_mtrlware,li_noallocflag Long ls_sptid SELECT balctype,noallocflag INTO :li_if_cus_mtrlware,:li_noallocflag FROM u_storage Where storageid = :arg_storageid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询仓库是否使用客户库存失败' rslt = 0 GOTO ext END IF child_llrow = dw_child.GetRow() rslt = wf_saletaskmtrltoarr_salemx(arg_scid,arg_s_rqmtrli,arg_msg) FOR li = 1 To UpperBound(arg_s_rqmtrli.taskid) sumqty = 0 ins_mtrlcode = '' ins_mtrlname = '' lb_find = True allocqty = 0 noallocqty = 0 i_qty = 0 SELECT u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_mtrldef.salerate, u_mtrldef.mtrlengname INTO :ins_mtrlcode, :ins_mtrlname, :ins_unit, :ins_mtrlmode, :ins_mtrlsectype, :ins_zxmtrlmode, :ins_salerate, :ins_mtrlengname FROM u_mtrldef Where u_mtrldef.mtrlid = :arg_s_rqmtrli.mtrlid[li]; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF child_llrow > 0 THEN IF dw_child.Object.u_inwaremx_mtrlid[child_llrow] <> 0 THEN child_llrow = dw_child.InsertRow (0) ELSE child_llrow = dw_child.GetRow() END IF ELSE child_llrow = dw_child.InsertRow (0) END IF IF li_if_cus_mtrlware = 1 THEN //备货客户不考虑客户库存 SELECT bhflag Into :li_bhflag From u_cust Where cusid = :arg_s_rqmtrli.cusid[li]; IF sqlca.SQLCode <> 0 THEN li_bhflag = 0 END IF IF li_bhflag = 0 THEN dw_child.Object.if_mtrlware[child_llrow] = 1 dw_child.Object.u_cust_cuscode[child_llrow] = arg_s_rqmtrli.cuscode[li] dw_child.Object.u_cust_name[child_llrow] = arg_s_rqmtrli.cusname[li] dw_child.Object.u_inwaremx_sptid_cusid [child_llrow] = arg_s_rqmtrli.cusid[li] END IF END IF dw_child.Object.u_inwaremx_ifrel[child_llrow] = 1 dw_child.Object.u_inwaremx_relid [child_llrow] = arg_s_rqmtrli.taskid[li] dw_child.Object.u_inwaremx_relprintid [child_llrow] = arg_s_rqmtrli.printid[li] dw_child.Object.u_inwaremx_mtrlid[child_llrow] = arg_s_rqmtrli.mtrlid[li] IF sys_option_inwarecp_saleprice = 0 THEN lde_planprice = f_get_planprice(arg_s_rqmtrli.mtrlid[li], arg_s_rqmtrli.status[li], arg_s_rqmtrli.woodcode[li], arg_s_rqmtrli.pcode[li], True) dw_child.Object.u_inwaremx_fprice[child_llrow] = lde_planprice ELSE dw_child.Object.u_inwaremx_fprice[child_llrow] = arg_s_rqmtrli.fprice[li] * ins_salerate END IF dw_child.Object.u_inwaremx_qty[child_llrow] = arg_s_rqmtrli.qty[li] dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit dw_child.Object.u_inwaremx_relcode[child_llrow] = arg_s_rqmtrli.taskcode[li] dw_child.Object.u_inwaremx_status[child_llrow] = arg_s_rqmtrli.status[li] dw_child.Object.u_inwaremx_woodcode[child_llrow] = arg_s_rqmtrli.woodcode[li] dw_child.Object.u_inwaremx_pcode[child_llrow] = arg_s_rqmtrli.pcode[li] dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode dw_child.Object.u_inwaremx_mxdscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] dw_child.Object.u_inwaremx_mxdscrp2[child_llrow] = arg_s_rqmtrli.mxdscrp2[li] dw_child.Object.u_inwaremx_mxdscrp3[child_llrow] = arg_s_rqmtrli.mxdscrp3[li] dw_child.Object.u_inwaremx_mxdscrp4[child_llrow] = arg_s_rqmtrli.mxdscrp4[li] dw_child.Object.u_inwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrli.mtrlcuscode[li] dw_child.Object.u_inwaremx_addqty[child_llrow] = arg_s_rqmtrli.addqty[li] dw_child.Object.u_saletask_taskdate[child_llrow] = arg_s_rqmtrli.taskdate[li] dw_child.Object.u_inwaremx_plancode[child_llrow] = arg_s_rqmtrli.plancode[li] dw_child.Object.u_mtrldef_mtrlengname[child_llrow] = ins_mtrlengname //系统选项289 [0- 不使用;1- 引用订单明细备注;2-引用用订单明细备注+客户名称;3-引用订单明细备注+订单明细备注2] IF sys_option_inwarecp_auto_saletask_dscrp = 1 THEN dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 2 THEN String ls_temp_cusname ls_temp_cusname = '' SELECT Name Into :ls_temp_cusname From u_cust Where cusid = :arg_s_rqmtrli.cusid[li]; dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] + ' ' + ls_temp_cusname ELSEIF sys_option_inwarecp_auto_saletask_dscrp = 3 THEN dw_child.Object.u_inwaremx_waredscrp[child_llrow] = arg_s_rqmtrli.mxdscrp[li] + ' ' + arg_s_rqmtrli.mxdscrp2[li] END IF Long li_statusflag Long li_woodcodeflag Long li_pcodeflag s_mtrldef_array arg_s_mtrldef IF f_find_mtrl(ins_mtrlcode,-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_child.Object.u_mtrldef_statusflag[child_llrow] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_llrow] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_llrow] = li_pcodeflag NEXT ext: RETURN rslt end function public function integer wf_check_qtyandaddqty (ref string arg_msg);Long i Int rslt = 1 Long lk_mtrlid,lk_ifcheckaddqty String ls_strcheckaddqty,ls_mtrlmode Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty,dec_rebate String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode Long num s_cmpl_qty s_cmpl s_cmpl.addvalue = 1 String ls_msg dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() lk_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i] dec_qty = dw_child.Object.u_inwaremx_qty[i] dec_addqty = dw_child.Object.u_inwaremx_addqty[i] ls_status = dw_child.Object.u_inwaremx_status[i] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[i] ls_pcode = dw_child.Object.u_inwaremx_pcode[i] ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] dec_danpackqty=0 dec_packqty=0 dec_rebate = 1 ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i] SELECT ifcheckaddqty,strcheckaddqty,strcheck_digit Into :lk_ifcheckaddqty,:ls_strcheckaddqty,:num From u_mtrldef Where mtrlid = :lk_mtrlid; s_cmpl.formula = ls_strcheckaddqty s_cmpl.status = ls_status s_cmpl.woodcode = ls_woodcode s_cmpl.pcode = ls_pcode s_cmpl.mtrlsectype = ls_mtrlsectype s_cmpl.zxmtrlmode = ls_zxmtrlmode s_cmpl.addqty = dec_addqty s_cmpl.num = num s_cmpl.oldqty = dec_qty s_cmpl.mtrlsectype = ls_mtrlsectype s_cmpl.zxmtrlmode = ls_zxmtrlmode s_cmpl.packqty = dec_packqty s_cmpl.rebate = dec_rebate //如果有填写数量 则 只检查数量和辅数的关系 Decimal dec_tmp IF lk_mtrlid > 0 And dec_qty <> 0 THEN IF f_cmpl_qty_check(s_cmpl,dec_tmp,ls_msg) <> TRUE THEN rslt = 0 arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty GOTO ext END IF END IF //如果没有填写数量 则 由辅数计算出数量 IF lk_mtrlid > 0 And dec_qty = 0 THEN IF f_cmpl_qty(s_cmpl,dec_tmp,ls_msg) = 0 THEN rslt = 0 arg_msg += '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty goto ext END IF dw_child.Object.u_inwaremx_qty[i] = dec_tmp END IF NEXT dw_child.AcceptText() ext: RETURN rslt end function public function integer wf_checkqty (ref string arg_msg);long i,j,rslt=1,n = 1 long ll_taskid,ll_scid,ll_printid dec dec_qty long ll_row,ll_rowc Dec lde_orderQty,lde_AssignQty,lde_needbuyqty,lde_needwfjgqty Dec lde_buytaskqty,lde_wfjgtaskqty long arr[] ll_row = dw_child.rowcount() - 1 ll_rowc = dw_child.rowcount() dw_child.accepttext() //FOR i = 1 To dw_child.RowCount() // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN // ll_taskid = dw_child.Object.u_inwaremx_relid[i] // dec_qty = dw_child.Object.u_inwaremx_qty[i] // ll_printid = dw_child.Object.u_inwaremx_relprintid[i] // ll_scid = cur_scid//dw_uc.Object.u_inware_scid[dw_uc.getrow()] // //messagebox('',ll_scid) // SELECT orderqty,needbuyqty,needwfjgqty, // AssignQty,buytaskqty,wfjgtaskqty // INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty, // :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty // FROM u_SaleTaskMx WHERE scid = :ll_scid AND // taskid = :ll_taskid AND // printid = :ll_printid Using SQLCA; // IF SQLCA.SQLCode <> 0 THEN // arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText // rslt = 0 // messagebox('',arg_msg) // END IF // // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量' // rslt = 0 // //MESSAGEBOX('',arg_msg) // END IF // END IF //NEXT // IF ll_rowc = 1 THEN ll_row = 1 END IF for i=1 to ll_rowc IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN ll_taskid = dw_child.Object.u_inwaremx_relid[i] dec_qty = dw_child.Object.u_inwaremx_qty[i] ll_printid = dw_child.Object.u_inwaremx_relprintid[i] ll_scid = cur_scid IF ll_rowc >1 and i<> ll_rowc THEN for j=i to ll_row IF ll_taskid = dw_child.Object.u_inwaremx_relid[J+1] AND ll_printid = dw_child.Object.u_inwaremx_relprintid[J+1] Then dec_qty = dec_qty + dw_child.Object.u_inwaremx_qty[J+1] END IF next END IF SELECT orderqty,needbuyqty,needwfjgqty, AssignQty,buytaskqty,wfjgtaskqty INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty, :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty FROM u_SaleTaskMx WHERE scid = :ll_scid AND taskid = :ll_taskid AND printid = :ll_printid Using SQLCA; IF SQLCA.SQLCode <> 0 THEN arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText rslt = 0 messagebox('',arg_msg) END IF IF sys_option_inware_cp_assignqty = 0 THEN // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量' // rslt = 0 // return rslt // END IF IF lde_orderQty - lde_AssignQty < dec_qty THEN arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量' rslt = 0 return rslt END IF END IF end if next //FOR i = 1 To ll_row // FOR j = i To ll_row // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN // IF dw_child.OBJECT.taskid[i] = dw_child.OBJECT.taskid[j+1] and dw_child.OBJECT.relprintid[j] = dw_child.OBJECT.relprintid[j+1] then // ll_taskid = dw_child.OBJECT.taskid[j] // dec_qty = dec_qty + dw_child.OBJECT.u_inwaremx_qty[j+1] // // end if // END IF // next //NEXT //FOR i=1 to upperbound(arr) // FOR j = 1 to dw_child.getrow() // IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_relid[J] = ARR[i] then // dec_qty = dec_qty + dw_child.Object.u_inwaremx_qty[j] // END IF // next //next return rslt end function public function integer wf_refresh_interface ();//wf_refresh_interface IF dw_edit_mode THEN cb_retrieve.Enabled = FALSE cb_delet.Enabled = FALSE cb_print.Enabled = FALSE cb_viewprint.Enabled = FALSE cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = FALSE dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关 dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关 // dw_child.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位 cb_edit.Enabled = TRUE cb_add.Enabled = TRUE cb_xls.Enabled = FALSE cb_edit.Text = "放弃&E" cb_add.Text = "保存&S" cb_edit.normalpicname = 'Undo.bmp' cb_add.normalpicname = 'Save.bmp' cbx_packqty_cmpl.enabled = false ELSE cb_retrieve.Enabled = TRUE cb_delet.Enabled = TRUE cb_print.Enabled = TRUE cb_viewprint.Enabled = TRUE cb_auditing.Enabled = TRUE cb_auditing_cancel.Enabled = TRUE cb_add.Enabled = TRUE cb_edit.Enabled = TRUE cb_xls.Enabled = TRUE dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 // dw_child.titleclick_sort_use = FALSE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位 cb_edit.Text = "修改&E" cb_add.Text = "新建&S" cb_edit.normalpicname = 'OPEN.bmp' cb_add.normalpicname = 'new.bmp' cbx_packqty_cmpl.enabled = true IF dw_pageretr.GetRow() <= 0 THEN cb_edit.Enabled = FALSE cb_delet.Enabled = FALSE cb_addzy.Enabled = FALSE cb_auditing.Enabled = FALSE END IF END IF IF retrieve_all OR dw_edit_mode THEN cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE em_pagerowno.Enabled = FALSE cb_func.Enabled = FALSE IF dw_edit_mode THEN sle_usual_query.Enabled = FALSE ELSE sle_usual_query.Enabled = TRUE END IF ELSE cb_nextpage.Enabled = TRUE cb_retrieveall.Enabled = TRUE em_pagerowno.Enabled = TRUE sle_usual_query.Enabled = TRUE cb_func.Enabled = TRUE END IF wf_lock_child() //修改uc_taborder IF dw_edit_mode THEN dw_uc.TriggerEvent("ue_taborder") IF dw_uc.ins_if_nomodify_uc_taborder THEN Long ll_uc_int FOR ll_uc_int = 1 TO uc_column_int dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 ) NEXT END IF ELSE dw_uc.TriggerEvent("ue_taborder_cancel") END IF cb_edit.of_init_draw() cb_add.of_init_draw() cb_edit.of_paint() cb_add.of_paint() cb_add.TriggerEvent('ue_textchange') cb_edit.TriggerEvent('ue_textchange') ll_lastrow = 0 THIS.TriggerEvent('refresh_interface') RETURN 1 end function on w_inware_cp.create int iCurrent call super::create this.ddlb_status=create ddlb_status this.st_2=create st_2 this.st_3=create st_3 this.ddlb_scid=create ddlb_scid this.cb_1=create cb_1 this.cbx_packqty_cmpl=create cbx_packqty_cmpl this.cb_new_scanbill=create cb_new_scanbill iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_status this.Control[iCurrent+2]=this.st_2 this.Control[iCurrent+3]=this.st_3 this.Control[iCurrent+4]=this.ddlb_scid this.Control[iCurrent+5]=this.cb_1 this.Control[iCurrent+6]=this.cbx_packqty_cmpl this.Control[iCurrent+7]=this.cb_new_scanbill end on on w_inware_cp.destroy call super::destroy destroy(this.ddlb_status) destroy(this.st_2) destroy(this.st_3) destroy(this.ddlb_scid) destroy(this.cb_1) destroy(this.cbx_packqty_cmpl) destroy(this.cb_new_scanbill) end on event open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() ds_copy_bill = CREATE datastore ds_copy_bill.DataObject = dw_child.dataobject ds_copy_bill.SetTransObject(sqlca) OLD_TITLE = THIS.Title s_tran = Message.PowerObjectParm IF NOT IsNull(s_tran) THEN retrieve_all = s_tran.if_retrieve_all mode = s_tran.work_mode arg_pkid = s_tran.arg_pkid arg_string_code = s_tran.arg_string_code if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效 ds_share = s_tran.ds_share END IF dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字 ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select") //==================================================================== // Script - w_inware_cp inherited from w_publ_1ton_share_detail for open // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2003.12.01 //-------------------------------------------------------------------- ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据 //==================================================================== ls_newselect = ori_oldselect ds_curquery = CREATE DATASTORE ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) wf_editindex_lockf() IF s_tran.d_long = 2 THEN cur_scid = s_tran.c_long Int li_item li_item = ddlb_scid.FindItem(s_tran.d_string,0) IF li_item > 0 THEN ddlb_scid.SelectItem(li_item) END IF END IF sle_usual_query.Text = Trim(arg_string_code) IF NOT retrieve_all THEN THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve ELSE IF if_sharedata THEN ds_share.ShareData(dw_pageretr) ELSE wf_retrieveuc(dw_pageretr,ls_newselect,1) THIS.TriggerEvent('RETRIEVE_pageretr') END IF END IF IF retrieve_all THEN THIS.TriggerEvent("ue_usual_query_filt") END IF uc_column_int = 8 //uc dw前5列可以编辑 child_column_int = 20//子dw前20列可以编辑 uo_ware = CREATE uo_inware_cp uo_ware.commit_transaction = sqlca s_hide_col s_col s_col.col_1 = 'u_inwaremx_fprice' s_col.col_2 = 'amt' s_col.col_3 = 'u_mtrldef_lmsaleprice' s_col.col_4 = 'lmsaleamt' s_col.col_5 = 'u_inwaremx_cost' s_col.col_6 = 'u_inwaremx_costamt' //f_hide_col(121,dw_child,s_col) f_hide_col(1449,dw_child,s_col) s_hide_col s_col_mtrlsectype s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_child,s_col_mtrlsectype) s_hide_col s_col_zxmtrlmode s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_child,s_col_zxmtrlmode) s_hide_col s_col_cusname s_col_cusname.col_1 = 'u_cust_name' f_hide_col(1306,dw_child,s_col_cusname) end event event close;call super::close;destroy uo_ware wf_del_tempfilepathname() end event event refresh_interface;call super::refresh_interface;wf_flagstatus_rf() ddlb_status.Enabled = Not dw_edit_mode IF dw_edit_mode THEN ddlb_scid.Enabled = False ELSE IF sys_scid > 0 THEN ddlb_scid.Enabled = False ELSE ddlb_scid.Enabled = True END IF END IF IF Not sys_power_issuper And f_power_ind(943) THEN dw_child.Modify('u_inwaremx_fprice.Protect = 1') ELSE dw_child.Modify('u_inwaremx_fprice.Protect = 0') END IF IF not sys_power_issuper and (f_power_ind(1711) or f_power_ind(1717) ) THEN dw_child.Modify('u_inwaremx_status.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0)" ~n u_inwaremx_woodcode.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0) " ~n u_inwaremx_pcode.protect="0~tif (u_inwaremx_ifrel =1 , 1 ,0) "') ELSE dw_child.Modify('u_inwaremx_status.protect=0 ~n u_inwaremx_woodcode.protect=0 ~n u_inwaremx_pcode.protect=0 ') END IF end event event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row > 0 THEN ll_scid = dw_pageretr.Object.u_inware_scid[row] uc_relid = dw_pageretr.Object.inwareid[row] dw_child.SetRedraw (FALSE) dw_child.Retrieve(uc_relid,ll_scid) dw_child.SetRedraw (TRUE) ELSE dw_child.Reset() END IF end event event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_func_enabled=cb_func.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false cb_func.enabled=false //只显未自已管的仓库 datawindowchild childdw string new_sqlstr,modify_str dw_uc.SetTransObject (sqlca) dw_uc.getchild("storageid",childdw) childdw.SetTransObject (sqlca) new_sqlstr=childdw.Describe("DataWindow.Table.Select") if len(ol_cdw_str) = 0 then ol_cdw_str = new_sqlstr new_sqlstr=f_modify_selectstr(ol_cdw_str) modify_str="DataWindow.Table.Select='" + new_sqlstr +"'" childdw.modify ( modify_str ) if childdw.retrieve(cur_scid) = 0 then childdw.InsertRow(0) END IF dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,cur_flag) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.triggerevent(rowfocuschanged!) end if this.triggerevent('retrieve_childdw') cb_nextpage.enabled=cb_nextpage_enabled cb_retrieveall.enabled=cb_retrieveall_enabled cb_func.enabled=cb_func_enabled end event event ue_usual_query_filt;call super::ue_usual_query_filt;string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="(inwarecode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(inwarecode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="(u_inware.inwarecode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_inware.inwarecode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用 IF Not dw_edit_mode THEN RETURN Long child_row Long ll_storageid = 0 Decimal lde_planprice String ls_plancode String ls_con_name child_row = dw_child.GetRow() ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ll_storageid = 0 Or IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库',information!,ok!) RETURN END IF IF Not IsValid(w_mtrldef_edit) THEN s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = False //是否一次retrieve所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位pkid (备用) s_ch_tran.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.if_select_all = True s_ch_tran.b_long = 0 s_ch_tran.c_long = ll_storageid Long chc = 1,ls_j dw_child.AcceptText() IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) OpenWithParm(w_mtrldef_edit,s_ch_tran) s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm FOR ls_j = 1 To UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_inwaremx_mtrlid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_inwaremx_mtrlid[child_row] = s_inscust.mtrlid[ls_j] // IF sys_option_planprice_configure = 0 THEN //dw_child.Object.u_inwaremx_fprice[child_row] = s_inscust.planprice[ls_j] lde_planprice = f_get_planprice(s_inscust.mtrlid[ls_j], s_inscust.status[ls_j], s_inscust.woodcode[ls_j], s_inscust.pcode[ls_j], True) dw_child.Object.u_inwaremx_fprice[child_row] = lde_planprice //s_rqmtrlI.fprice[li] // END IF dw_child.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_prdpackcode[child_row] = s_inscust.prdpackcode[ls_j] dw_child.Object.u_mtrldef_packqty[child_row] = s_inscust.packqty[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_mtrltype[child_row] = s_inscust.mtrltype[ls_j] dw_child.Object.u_mtrldef_handtype[child_row] = s_inscust.handtype[ls_j] dw_child.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j] dw_child.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j] dw_child.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j] dw_child.Object.u_inwaremx_status[child_row] = s_inscust.status[ls_j] dw_child.Object.u_inwaremx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_inwaremx_pcode[child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] //3个属性默认值 String ls_status_default,ls_woodcode_default,ls_pcode_default ls_status_default = '' ls_woodcode_default = '' ls_pcode_default = '' SELECT status_default,woodcode_default,pcode_default Into :ls_status_default,:ls_woodcode_default,:ls_pcode_default From u_mtrldef Where mtrlid = :s_inscust.mtrlid[ls_j]; IF Len(ls_status_default) > 0 THEN dw_child.Object.u_inwaremx_status[child_row] = Trim(ls_status_default) END IF IF Len(ls_woodcode_default) > 0 THEN dw_child.Object.u_inwaremx_woodcode[child_row] = Trim(ls_woodcode_default) END IF IF Len(ls_pcode_default) > 0 THEN dw_child.Object.u_inwaremx_pcode[child_row] = Trim(ls_pcode_default) END IF Decimal dec_lmbuyprice //设定购价 dec_lmbuyprice = 0 SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = : s_inscust.mtrlid[ls_j]; dw_child.Object.u_mtrldef_lmbuyprice[child_row] = dec_lmbuyprice IF s_inscust.statusflag[ls_j] = 2 THEN SELECT name INTO :ls_con_name FROM u_mtrl_configure Where u_mtrl_configure.mtrlid = :s_inscust.mtrlid[ls_j] And u_mtrl_configure.DefaultPZ = 1; dw_child.Object.u_inwaremx_status[child_row] = ls_con_name END IF ls_plancode = f_get_newplancode(ll_storageid) dw_child.Object.u_inwaremx_plancode[child_row] = ls_plancode dw_child.SetColumn('u_inwaremx_qty') END IF NEXT dw_child.SetFocus() END IF This.TriggerEvent('ue_allowedit') end event event ue_viewprint;call super::ue_viewprint;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('提示','没有打印目标单据!',information!,ok!) RETURN END IF S_print_MSG LS_PRMSG IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!) RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_inware_cp_edit' END IF LS_PRMSG.TAG_TEXT = '生产进仓单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[LS_ROW] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[LS_ROW] LS_PRMSG.rowcnt = dw_child.rowcount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF OpenWithParm(w_publ_preview,LS_PRMSG) IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF //**更新打印次料 string arg_msg printnum = message.doubleparm f_update_printnum('u_inware',printnum,dw_pageretr.Object.u_inware_scid[LS_ROW],dw_pageretr.object.inwareid[LS_ROW],'','',arg_msg,true) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[LS_ROW],dw_pageretr.Object.inwareid[LS_ROW]) end event event ue_print;call super::ue_print;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF //--直接打印 uo_print_preview uo_print S_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('提示','没有可打印的单据!',information!,ok!) RETURN END IF IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!) RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_inware_cp_edit' END IF LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = '成品进仓单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[dw_pageretr.GetRow()] LS_PRMSG.rowcnt = dw_child.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF uo_print.FACT_PRINT_MSG = LS_PRMSG String arg_msg IF uo_print.uof_print_begin(arg_msg) = 0 THEN MessageBox("错误",arg_msg,stopsign!,ok!) RETURN END IF uo_print.ds_print() IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF //**更新打印次料 f_update_printnum('u_inware',1,dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()],dw_pageretr.object.inwareid[dw_pageretr.GetRow()],'','',arg_msg,true) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.inwareid[dw_pageretr.GetRow()]) end event event ue_f9;call super::ue_f9;IF Not dw_edit_mode THEN RETURN Long child_row dw_child.AcceptText() child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF Not IsValid(w_cust_ch) THEN s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all = False //是否一次RETRIEVE所有行 s_ch_tran.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid = 0 //目标定位PKID (备用) //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.arg_string_code = Upper(Trim(dw_child.Object.u_cust_cuscode[dw_child.GetRow()])) OpenWithParm(w_cust_ch,s_ch_tran) //调用 s_custom S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值 dw_child.SetRedraw(False) dw_child.Object.u_inwaremx_sptid_cusid[child_row] = S_INSCUST.cusid dw_child.Object.u_cust_name[child_row] = S_INSCUST.Name dw_child.Object.u_cust_cuscode[child_row] = S_INSCUST.cuscode dw_child.Object.u_cust_custype[child_row] = S_INSCUST.custype dw_child.SetRedraw(True) dw_child.SetColumn('u_inwaremx_qty') END IF END IF end event event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN Long child_row String ls_colorname child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF NOT IsValid(w_color_edit) THEN Open(w_color_edit) ls_colorname = Message.StringParm IF ls_colorname = '' THEN RETURN dw_child.Object.u_inwaremx_status[child_row] = ls_colorname dw_child.SetFocus() END IF end event event ue_addzy;call super::ue_addzy; IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,ok!) return END IF IF NOT (f_power_ind(799) OR f_power_ind(1059)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF string arg_msg='',LS_STR long uc_row s_inputbox S_SREU uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!',information!,ok!) return end if S_SREU.TITLE='请输入要补充到备注的内容' S_SREU.OLD_TEXT='' openwithparm(w_inputbox,S_SREU) LS_STR=Message.StringParm if trim(LS_STR)='' or isnull(LS_STR) then return if uo_ware.add_dscrp(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid[uc_row],LS_STR,arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,ok!) return else messagebox('提示','添加备注操作成功!',information!,ok!) wf_refresh_curuc(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid[uc_row]) end if end event event ue_f7;call super::ue_f7;IF NOT dw_edit_mode THEN RETURN Long ls_storageid Long ls_taskid String ls_taskcode ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ls_storageid = 0 OR IsNull(ls_storageid) THEN MessageBox('提示','请先选择仓库',information!,ok!) RETURN END IF s_saletask_find s_find s_find.scid = cur_scid s_find.areaid = sys_areaid IF NOT IsValid(w_saletask_ware_ch) THEN s_saletask_ch s_saletask OpenWithParm(w_saletask_ware_ch,s_find) s_saletask = Message.PowerObjectParm IF s_saletask.taskid > 0 THEN ls_taskid = s_saletask.taskid ls_taskcode = s_saletask.taskcode int ll_row ll_row = dw_uc.GetRow() if s_saletask.relcode<>'' then dw_uc.object.part[ll_row] = s_saletask.relcode else dw_uc.object.part[ll_row] = s_saletask.taskcode end if String errmsg = '' wf_autoaddmx(cur_scid,ls_taskid,ls_taskcode,ls_storageid,s_saletask.cusid,errmsg) // dw_uc.SetColumn("sptname") dw_uc.SetRedraw(TRUE) END IF END IF this.triggerevent('ue_allowedit') //THIS.Enabled = TRUE end event event ue_f11;call super::ue_f11;IF NOT dw_edit_mode THEN RETURN Long child_row Int if_addmxdscrp String ls_mxdscrp s_addqty_input s_input dw_child.AcceptText( ) child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF dw_child.Object.u_inwaremx_mtrlid[child_row] <= 0 THEN RETURN ls_mxdscrp = dw_child.Object.u_inwaremx_mxdscrp[child_row] IF NOT IsValid(w_addqty_input) THEN OpenWithParm(w_addqty_input,ls_mxdscrp) s_input = Message.PowerObjectParm IF s_input.addqty = -1 THEN RETURN dw_child.Object.u_inwaremx_addqty[child_row] = s_input.addqty IF s_input.addqtystr <> '' THEN dw_child.Object.u_inwaremx_mxdscrp[child_row] = s_input.addqtystr END IF IF s_input.formula <> '' THEN dw_child.Object.u_inwaremx_formula[child_row] = s_input.formula END IF IF s_input.flag = 1 THEN dw_child.Object.u_inwaremx_qty[child_row] = s_input.qty END IF END IF end event event ue_rpt_print;call super::ue_rpt_print;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN uo_rpt_print_preview uo_print S_rpt_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('提示','没有可打印的单据!',information!,ok!) RETURN END IF IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[row] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!) RETURN END IF END IF IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = THIS.Title LS_PRMSG.rpname = ls_rpname LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.rpid = ls_msgprintid_rpt LS_PRMSG.retr_scid = dw_pageretr.Object.u_inware_scid[row] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.inwareid[row] LS_PRMSG.rowcnt = dw_child.RowCount() uo_print.FACT_PRINT_MSG = LS_PRMSG String arg_msg IF uo_print.uof_print_begin(arg_msg) = 0 THEN MessageBox("错误",arg_msg,stopsign!,ok!) RETURN END IF uo_print.ds_print() end event event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF NOT (f_power_ind(469) OR f_power_ind(1057)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[row] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,ok!) RETURN END IF END IF s_rpt_print_msg s_print s_print.retr_pram_falg = 15 s_print.rpid = ls_msgprintid_rpt s_print.retr_flag = TRUE s_print.tag_text = THIS.Title s_print.rpname = ls_rpname s_print.retr_scid = dw_pageretr.Object.u_inware_scid[row] s_print.retr_pramnmb = dw_pageretr.Object.inwareid[row] s_print.rowcnt = dw_child.RowCount() OpenWithParm(w_rpt_preview,s_print) end event event ue_f6;call super::ue_f6;IF NOT dw_edit_mode THEN RETURN Long ls_storageid Long ls_taskid Long ls_cusid String ls_taskcode String errmsg dw_uc.AcceptText() IF dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN ls_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ls_storageid = 0 OR IsNull(ls_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF s_saletask_find s_find s_find.scid = cur_scid s_find.areaid = sys_areaid //THIS.Enabled = FALSE IF NOT IsValid(w_saletask_inware_ch) THEN s_saletask_mtrl s_saletask OpenWithParm(w_saletask_inware_ch,s_find) s_saletask = Message.PowerObjectParm IF UpperBound(s_saletask.taskid ) > 0 THEN wf_autoaddmx_salemx(cur_scid,s_saletask,ls_storageid,errmsg) dw_uc.SetColumn("inrep") dw_uc.SetRedraw(TRUE) END IF END IF //THIS.Enabled = TRUE end event type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_cp end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_cp end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_cp integer x = 178 integer width = 549 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_cp integer x = 3022 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_cp integer x = 2693 integer y = 48 integer width = 320 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_cp integer x = 2025 integer y = 300 integer width = 1527 integer height = 908 string dataobject = "dw_inware_cp_index" end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged; wf_check_billfj() wf_flagstatus_rf() end event type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_cp integer x = 0 end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_cp integer x = 3173 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_cp integer y = 300 integer width = 2021 integer height = 908 string dataobject = "dw_inware_cp_edit" end type event dw_uc::dwnkey;parent.triggerevent('user_key') if key = KeyDownArrow! then return 1 if dw_edit_mode then if dw_uc.GetColumnName ( )='dscrp' and key = KeyEnter! then dw_child.setfocus() dw_child.scrolltorow(1) dw_child.SetColumn ('u_mtrldef_mtrlcode') return 1 else if key = KeyEnter! Then // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab Return 1 end If end if end if end event event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN IF dwo.Name = 'storageid' THEN //wf_lock_plancode(long(data)) dw_child.Reset() PARENT.TriggerEvent("insert_childrow") END IF end event event dw_uc::doubleclicked;int i = 0 end event event dw_uc::buttonclicked;call super::buttonclicked; // parent.triggerevent('ue_f7') // // IF dw_edit_mode THEN IF dwo.Name = 'p_b' OR dwo.Name = 't_choicesaletask_t' THEN PARENT.TriggerEvent('ue_f7') ELSEIF dwo.Name = 'p_c' OR dwo.Name = 't_choicesaletaskmx_t' THEN PARENT.TriggerEvent('ue_f6') ELSEIF dwo.Name = 'p_1' OR dwo.Name = 't_2' THEN PARENT.TriggerEvent('ue_getsaletask_sale') END IF END IF end event event dw_uc::clicked;call super::clicked;if dwo.name='p_b' or dwo.name='t_choicesaletask_t' then parent.TRIGGEREVENT('ue_f7') elseif dwo.name='p_c' or dwo.name='t_choicesaletaskmx_t' then parent.TRIGGEREVENT('ue_f6') ELSEIF dwo.Name = 'p_1' OR dwo.Name = 't_2' THEN PARENT.TriggerEvent('ue_getsaletask_sale') end if end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_cp end type type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_cp integer y = 1220 integer width = 3552 integer height = 924 string dataobject = "dw_inwaremx_cp_edit" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode string ls_prdpackcode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype Long ls_mtrlid,ls_orderid,ll_storageid String ls_order_relcode Decimal lde_planprice,ls_packqty,ls_nofinishqty s_mtrldef_array arg_s_mtrldef Long li_statusflag Long li_woodcodeflag Long li_pcodeflag Long child_row Long ls_null SetNull(ls_null) IF dw_edit_mode THEN dw_uc.AcceptText() ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ll_storageid = 0 OR IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库',information!,ok!) RETURN END IF ls_orderid = dw_uc.Object.u_inware_relid[dw_uc.GetRow()] IF KeyDown(keydownarrow!) THEN Long li_row IF this.GetRow() = this.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE IF KeyDown(keyenter!) AND KeyDown(keycontrol!) then // IF this.GetColumnName() = 'u_inwaremx_status' or this.GetColumnName() = 'u_inwaremx_woodcode' or this.GetColumnName() = 'u_inwaremx_pcode' THEN // child_row = this.GetRow() // string ls_column // ls_column = this.GetColumnName() // this.selectrow(child_row,false) // this.setrow(child_row+1) // this.selectrow(child_row+1,true) // this.setcolumn(ls_column) // return 1 // end if elseIF KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN IF this.GetColumnName() = 'u_mtrldef_mtrlcode' THEN this.AcceptText() child_row = this.GetRow() ls_mtrlcode = this.Object.u_mtrldef_mtrlcode[child_row] IF f_find_mtrl(ls_mtrlcode,ll_storageid,arg_s_mtrldef) = 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 ELSE ls_mtrlid = arg_s_mtrldef.mtrlid[1] ls_mtrlcode = arg_s_mtrldef.mtrlcode[1] ls_mtrlname = arg_s_mtrldef.mtrlname[1] ls_unit = arg_s_mtrldef.unit[1] ls_mtrlmode = arg_s_mtrldef.mtrlmode[1] // ls_planprice = arg_s_mtrldef.planprice[1] ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1] ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1] ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1] ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1] ls_mtrltype = arg_s_mtrldef.mtrltype[1] li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF this.Object.u_inwaremx_relid[child_row] = ls_orderid this.Object.u_inwaremx_mtrlid[child_row] = ls_mtrlid this.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname this.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode this.Object.u_mtrldef_unit[child_row] = ls_unit // IF sys_option_planprice_configure = 0 THEN // this.Object.u_inwaremx_fprice[child_row] = ls_planprice lde_planprice = f_get_planprice(ls_mtrlid, arg_s_mtrldef.status[1],arg_s_mtrldef.woodcode[1],arg_s_mtrldef.pcode[1], true) this.Object.u_inwaremx_fprice[child_row] = lde_planprice //s_rqmtrlI.fprice[li] // END IF this.Object.u_mtrldef_prdpackcode[child_row] = ls_prdpackcode this.Object.u_mtrldef_packqty[child_row] = ls_packqty this.Object.u_inwaremx_qty[child_row] = ls_nofinishqty this.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode this.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode this.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype this.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype this.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode this.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype this.Object.u_mtrldef_statusflag[child_row] = li_statusflag this.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag this.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag this.Object.u_inwaremx_status[child_row] = arg_s_mtrldef.status[1] this.Object.u_inwaremx_woodcode[child_row] = arg_s_mtrldef.woodcode[1] this.Object.u_inwaremx_pcode[child_row] = arg_s_mtrldef.pcode[1] string ls_plancode ls_plancode = f_get_newplancode(ll_storageid) this.Object.u_inwaremx_plancode[child_row] = ls_plancode parent.triggerevent('ue_allowedit') wf_find_cust(child_row,cur_scid,ls_orderid) IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF // ELSEIF this.GetColumnName( ) = 'u_inwaremx_plancode' AND this.GetRow() = this.RowCount() THEN // // IF Key = keyenter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab // keybd_event ( 9, 0, 2, 0 ) // 释放tab // RETURN 1 // END IF ELSEIF this.GetColumnName() = 'u_cust_cuscode' THEN this.AcceptText() child_row = this.GetRow() IF child_row <= 0 THEN RETURN 1 String ls_cuscode,ls_cusname Long li_cusid ls_cuscode = this.Object.u_cust_cuscode[child_row] SELECT cusid,name INTO :li_cusid,:ls_cusname FROM u_cust Where cuscode = :ls_cuscode; IF sqlca.SQLCode <> 0 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 END IF this.Object.u_cust_name[child_row] = ls_cusname this.Object.u_inwaremx_sptid_cusid[child_row] = li_cusid IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 // PARENT.TriggerEvent("insert_childrow") // RETURN 1 END IF ELSE IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF END IF END IF end event event dw_child::itemchanged;call super::itemchanged;if not dw_edit_mode then return if dwo.name = 'if_mtrlware' then this.accepttext() if this.object.if_mtrlware[row] = 1 then dw_child.object.u_inwaremx_sptid_cusid[row] = 0 dw_child.object.u_cust_cuscode[row] = '' dw_child.object.u_cust_name[row] = '' end if ELSEIF dwo.Name = 'u_inwaremx_packqty' THEN this.accepttext() Long ll_mtrlid Decimal lde_packqty_single, lde_packqty, lde_rate IF ii_packqty_cmpl = 1 THEN ll_mtrlid = This.Object.u_inwaremx_mtrlid[row] lde_packqty_single = f_get_packqty(ll_mtrlid) lde_packqty = This.Object.u_inwaremx_packqty[row] //lde_rate = This.Object.u_inwaremx_rate[row] //if lde_rate = 0 then lde_rate = 1 This.Object.u_inwaremx_qty[row] = lde_packqty * lde_packqty_single //This.Object.u_inwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate //This.Object.u_inwaremx_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate END IF end if end event event dw_child::doubleclicked; string ls_text IF dwo.Name = 'u_inwaremx_mxdscrp' THEN PARENT.TriggerEvent('ue_view_mxdscrp') RETURN ELSEIF dwo.Name = 'u_inwaremx_mxdscrp2' THEN PARENT.TriggerEvent('ue_view_mxdscrp2') RETURN ELSEIF dwo.Name = 'u_inwaremx_mxdscrp3' THEN PARENT.TriggerEvent('ue_view_mxdscrp3') RETURN ELSEIF dwo.Name = 'u_inwaremx_mxdscrp4' THEN PARENT.TriggerEvent('ue_view_mxdscrp4') RETURN END IF dw_child.AcceptText() IF dw_edit_mode AND row > 0 THEN If (dwo.Name = 'u_cust_cuscode' OR dwo.Name = 'u_cust_name') AND THIS.Object.if_mtrlware[row] = 1 THEN PARENT.TriggerEvent('ue_f9') // ELSEIF dwo.Name = 'u_inwaremx_status' THEN // PARENT.TriggerEvent('ue_f10') ELSEIF dwo.Name = 'u_inwaremx_addqty' THEN PARENT.TriggerEvent('ue_f11') ELSEIF dwo.Name = 'u_inwaremx_qty' OR dwo.Name ='u_inwaremx_formula' THEN PARENT.TriggerEvent('ue_cmpl_qty') ELSEIF dwo.name = 'u_inwaremx_status' or dwo.name = 'u_inwaremx_woodcode' or dwo.name = 'u_inwaremx_pcode' then string name name =dwo.name PARENT.trigger event ue_view_status(row,name) ELSE IF dw_child.Object.u_inwaremx_ifrel[row] = 1 THEN PARENT.TriggerEvent('ue_f7') ELSE PARENT.TriggerEvent('ue_f8') END IF END IF END IF end event event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText() end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_cp end type type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_cp end type type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_cp end type event cb_add::clicked;IF NOT (f_power_ind(376) OR f_power_ind(1054)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF String arg_msg = '' Long uc_row,i,j s_inwaremx s_mx IF dw_edit_mode THEN dw_uc.AcceptText() dw_child.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,ok!) RETURN END IF IF NOT dw_uc.Object.indate[uc_row] > DateTime(2000-01-01,Now()) THEN MessageBox('提示','不合理发生时间!',information!,ok!) dw_uc.SetFocus() dw_uc.SetColumn("indate") RETURN END IF IF NOT Len(String(dw_uc.Object.inrep[uc_row])) > 0 THEN MessageBox('提示','请填写经手人!',information!,ok!) dw_uc.SetFocus() dw_uc.SetColumn("inrep") RETURN END IF FOR j = 1 TO dw_child.RowCount() IF dw_child.Object.u_inwaremx_qty[j] = 0 THEN CONTINUE IF dw_child.Object.if_mtrlware[j] = 1 AND dw_child.Object.u_inwaremx_sptid_cusid[j] = 0 THEN MessageBox('提示','请先选择客户,第'+String(j)+'行',information!,ok!) RETURN END IF //MEI:20160610 // IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_fprice[j] = 0 then // MessageBox('提示','第'+String(j)+'行,'+'该物料以计划价取价时,进仓价不能为0', Information!, OK! ) // RETURN // END IF IF NOT f_power_ind(1511) then IF dw_child.Object.u_inwaremx_ifrel[j] = 1 AND dw_child.Object.u_inwaremx_relid[j] = 0 THEN MessageBox('提示','用户权限限制,请选择订单,第'+String(j)+'行', Information!, OK! ) RETURN END IF IF dw_child.Object.u_inwaremx_ifrel[j] = 0 AND dw_child.Object.u_inwaremx_qty[j] > 0 THEN MessageBox('提示','用户权限限制,请选择订单,第'+String(j)+'行', Information!, OK! ) RETURN END IF END IF NEXT //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量 IF wf_check_qtyandaddqty(arg_msg) = 0 THEN MessageBox('提示',arg_msg + ',不能保存!',information!,OK!) RETURN END IF IF wf_checkqty(arg_msg) = 0 then MessageBox('提示',arg_msg + ',不能保存!',information!,OK!) RETURN END IF uo_ware.indate = dw_uc.Object.indate[uc_row] // 发生时间 uo_ware.inrep = dw_uc.Object.inrep[uc_row] // 经手人 uo_ware.part = dw_uc.Object.part[uc_row] //相关部门 uo_ware.dscrp = dw_uc.Object.dscrp[uc_row] //备注 uo_ware.storageid = dw_uc.Object.storageid[uc_row] uo_ware.sptname = dw_uc.Object.sptname[uc_row] uo_ware.relid = dw_uc.Object.u_inware_relid[uc_row] FOR i = 1 TO dw_child.RowCount() IF dw_child.Object.u_inwaremx_mtrlid[i] > 0 THEN s_mx.printid=dw_child.Object.printid[i] s_mx.mtrlid=dw_child.Object.u_inwaremx_mtrlid[i] s_mx.mtrlcode=dw_child.Object.u_mtrldef_mtrlcode[i] s_mx.plancode=dw_child.Object.u_inwaremx_plancode[i] s_mx.status=dw_child.Object.u_inwaremx_status[i] s_mx.uqty=dw_child.Object.u_inwaremx_qty[i] s_mx.addqty=dw_child.Object.u_inwaremx_addqty[i] s_mx.uprice=dw_child.Object.u_inwaremx_fprice[i] s_mx.rebate=1 s_mx.mxdscrp =dw_child.Object.u_inwaremx_mxdscrp[i] s_mx.mxdscrp2 =dw_child.Object.u_inwaremx_mxdscrp2[i] s_mx.mxdscrp3 =dw_child.Object.u_inwaremx_mxdscrp3[i] s_mx.mxdscrp4 =dw_child.Object.u_inwaremx_mxdscrp4[i] s_mx.jgprice=0 s_mx.relid=dw_child.Object.u_inwaremx_relid[i] s_mx.relprintid=dw_child.Object.u_inwaremx_relprintid[i] s_mx.ifrel=dw_child.Object.u_inwaremx_ifrel[i] s_mx.woodcode=dw_child.Object.u_inwaremx_woodcode[i] s_mx.pcode=dw_child.Object.u_inwaremx_pcode[i] s_mx.mtrlcuscode=dw_child.Object.u_inwaremx_mtrlcuscode[i] s_mx.sptid=dw_child.Object.u_inwaremx_sptid_cusid[i] s_mx.unit=dw_child.Object.u_mtrldef_unit[i] s_mx.rate=1 s_mx.formula=dw_child.Object.u_inwaremx_formula[i] s_mx.waredscrp=dw_child.Object.u_inwaremx_waredscrp[i] s_mx.inworkdate =dw_child.Object.u_inwaremx_inworkdate[i] s_mx.packqty = dw_child.Object.u_inwaremx_packqty[i] // IF uo_ware.acceptmx(dw_child.Object.printid[i],& // dw_child.Object.u_inwaremx_mtrlid[i],& // dw_child.Object.u_mtrldef_mtrlcode[i],& // dw_child.Object.u_inwaremx_plancode[i],& // dw_child.Object.u_inwaremx_status[i],& // dw_child.Object.u_inwaremx_qty[i],& // dw_child.Object.u_inwaremx_addqty[i],& // dw_child.Object.u_inwaremx_fprice[i],& // 1,& // dw_child.Object.u_inwaremx_mxdscrp[i],& // arg_msg,& // 0,& // dw_child.Object.u_inwaremx_relid[i],& // dw_child.Object.u_inwaremx_relprintid[i],& // dw_child.Object.u_inwaremx_ifrel[i],& // dw_child.Object.u_inwaremx_woodcode[i],& // dw_child.Object.u_inwaremx_pcode[i],& // dw_child.Object.u_inwaremx_mtrlcuscode[i],& // dw_child.Object.u_inwaremx_sptid_cusid[i],& // dw_child.Object.u_mtrldef_unit[i],& // 1,& // dw_child.Object.u_inwaremx_formula[i],& // dw_child.Object.u_inwaremx_waredscrp[i],& // dw_child.Object.u_inwaremx_inworkdate[i]) = 0 THEN // MessageBox('错误',arg_msg,stopsign!,ok!) // RETURN // END IF IF uo_ware.acceptmx(s_mx,arg_msg)=0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF END IF NEXT IF uo_ware.Save(TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF MessageBox('提示','保存操作成功!',information!,ok!) //write ini f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.storageid[dw_uc.GetRow()])) // Long ll_row ll_row = dw_uc.GetRow() dw_uc.SelectRow(0,FALSE) dw_uc.SelectRow(ll_row,TRUE) wf_refresh_curuc(cur_scid,uo_ware.inwareid) //刷新uc ELSE IF uo_ware.newbegin(cur_scid,3,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF END IF CALL SUPER::Clicked //read ini IF dw_edit_mode THEN PARENT.TriggerEvent("insert_childrow") dw_uc.SetRedraw(FALSE) String ls_storageid ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0') IF f_find_storageid(ls_storageid) = '' THEN ls_storageid = '0' END IF dw_uc.Object.storageid[dw_uc.GetRow()] = Long(ls_storageid) dw_uc.Object.inrep[dw_uc.GetRow()] = publ_operator dw_uc.SetColumn("storageid") dw_uc.SetRedraw(TRUE) //wf_lock_plancode(long(ls_storageid)) ELSE PARENT.TriggerEvent("retrieve_childdw") END IF // end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_cp end type event cb_edit::clicked; IF NOT (f_power_ind(376) OR f_power_ind(1054)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF String arg_msg = '' Long uc_row,ll_storageid uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,ok!) RETURN END IF ll_storageid = dw_pageretr.Object.storageid[uc_row] IF NOT dw_edit_mode THEN IF uo_ware.updatebegin(dw_pageretr.Object.u_inware_scid[uc_row],dw_pageretr.Object.inwareid[uc_row],3,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF parent.triggerevent('ue_allowedit') END IF CALL SUPER::Clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_cp end type event cb_delet::clicked;IF NOT (f_power_ind(597) OR f_power_ind(1058)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF if dw_edit_mode then return string arg_msg='' long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!',information!,ok!) return end if IF MessageBox ("询问","是否确定要删除当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN if uo_ware.del(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid [uc_row],arg_msg,true)=0 then messagebox('错误',arg_msg,stopsign!,ok!) ELSE //日志 long ls_id string ls_code ls_id=dw_pageretr.object.inwareid [uc_row] ls_code=dw_pageretr.object.inwarecode[uc_row] f_setsysoplog('生产进仓单','删除,ID:'+string(LS_id)+',code:'+ls_code,arg_msg,true) //-- MESSAGEBOX('提示','删除单据'+string(dw_pageretr.object.inwarecode[uc_row])+'成功!',information!,ok!) dw_pageretr.deleterow(uc_row) dw_pageretr.postevent(rowfocuschanged!) end if end event type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_inware_cp end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=增加备注~tEvent=ue_addzy" menustr = menustr + "|" + "Text=修改备注~tEvent=ue_editzy" menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy" menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view" menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=全选~tEvent=ue_all_choice" menustr = menustr + "|" + "Text=全不选~tEvent=ue_allnot_choice" menustr = menustr + "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit" menustr = menustr + "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit" menustr = menustr + "|" + "Text=批删除(选中的)~tEvent=ue_all_delete" IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu END IF end event type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_inware_cp end type event cb_auditing::clicked;call super::clicked;IF NOT (f_power_ind(63) OR f_power_ind(1055)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF IF dw_edit_mode THEN RETURN IF NOT KeyDown(KeyControl!) THEN String arg_msg = '' Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,ok!) RETURN END IF IF MessageBox ("询问","是否确定要审核当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN IF uo_ware.getinfo(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) ELSE MessageBox('提示','审核成功!',information!,ok!) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row]) parent.triggerevent('retrieve_childdw') END IF ELSE IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",Question!,YesNo! ) = 2 THEN RETURN Long ll_i,ll_billid Int li_flag Long ll_suc,ll_fail dw_pageretr.AcceptText() OPEN(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR ll_i = 1 TO dw_pageretr.RowCount() w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[ll_i] + " 正在审核..." //进度信息 li_flag = dw_pageretr.Object.flag[ll_i] IF li_flag = 1 THEN CONTINUE ll_billid = dw_pageretr.Object.inwareid[ll_i] IF uo_ware.getinfo(cur_scid,ll_billid,arg_msg) = 0 THEN ll_fail++ CONTINUE END IF IF uo_ware.auditing(TRUE,arg_msg) = 0 THEN ll_fail++ CONTINUE END IF ll_suc++ w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT CLOSE(w_sys_wait_jdt) MessageBox('提示','批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,ok!) PARENT.TriggerEvent('retrieve_pageretr') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_cp end type event cb_xm::clicked;is_mx_menustr = '' IF dw_edit_mode THEN is_mx_menustr += "|" + "Text=批设定公式~tEvent=ue_p_formula_set" is_mx_menustr += "|" + "Text=批由公式计算数量~tEvent=ue_p_cmpl_qty" is_mx_menustr += "|" + "Text=批由辅数和配置计算数量~tEvent=ue_cmpl_status_qty" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=批设定客户~tEvent=ue_p_cus_set" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=导入产品计划价~tEvent=ue_import_price" ELSE is_mx_menustr += "|" + "Text=修改明细终止数~tEvent=ue_stopqty" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=修改明细单价~tEvent=ue_mod_enprice" END IF CALL Super::Clicked end event type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_cp end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_cp end type type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_cp end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_cp end type event cb_auditing_cancel::clicked;call super::clicked;IF NOT (f_power_ind(909) OR f_power_ind(1056)) THEN MessageBox('提示','你没有使用权限!',information!,ok!) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,ok!) RETURN END IF IF MessageBox ("询问","是否确定要撤消审核当前单据?",question!,yesno! ) = 2 THEN RETURN IF uo_ware.getinfo(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) ELSE //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.inwareid [pagerert_row] ls_code = dw_pageretr.Object.inwarecode[pagerert_row] f_setsysoplog('生产进仓单','撤审,ID:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox('提示','撤消审核成功!',information!,ok!) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row]) END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_inware_cp end type type p_help from w_publ_1ton_share_detail`p_help within w_inware_cp end type type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_cp end type type p_other from w_publ_1ton_share_detail`p_other within w_inware_cp end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_cp end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_cp end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_cp end type type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_cp integer x = 3579 end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_cp end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_cp end type type ddlb_status from dropdownlistbox within w_inware_cp integer x = 1705 integer y = 188 integer width = 402 integer height = 300 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "[全部]" boolean sorted = false string item[] = {"[全部]","待审核","已审核"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if index=1 then cur_flag=-1 elseif index=2 then cur_flag= 0 elseif index=3 then cur_flag= 1 end if parent.triggerevent("retrieve_pageretr") end event type st_2 from statictext within w_inware_cp integer x = 1527 integer y = 204 integer width = 219 integer height = 48 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "状 态" boolean focusrectangle = false end type type st_3 from statictext within w_inware_cp integer x = 777 integer y = 204 integer width = 219 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "分 部" boolean focusrectangle = false end type type ddlb_scid from uo_ddlb_scid within w_inware_cp integer x = 951 integer y = 188 integer width = 549 integer height = 652 boolean bringtotop = true end type event constructor;call super::constructor;cur_scid=this.uo_scid cur_scid_arr = THIS.uo_scid_arr end event event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid cur_scid_arr = THIS.uo_scid_arr parent.triggerevent("retrieve_pageretr") end event type cb_1 from commandbutton within w_inware_cp boolean visible = false integer x = 2487 integer y = 204 integer width = 402 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "none" end type event clicked;long i,j,rslt long ll_taskid,ll_scid,ll_printid dec dec_qty long ll_row Dec lde_orderQty,lde_AssignQty,lde_needbuyqty,lde_needwfjgqty Dec lde_buytaskqty,lde_wfjgtaskqty string arg_msg s_inwaremx s_check ll_row = dw_child.getrow() dw_child.accepttext() MESSAGEBOX('',string(dw_child.Object.u_inwaremx_relid[1])) //IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN //FOR i = 1 To (ll_row - 1) // for j=i to (ll_row -1) // IF dw_child.Object.u_inwaremx_relid[j] = dw_child.Object.u_inwaremx_relid[j+1] THEN // END IF // next //next //FOR i = 1 To dw_child.RowCount() // IF dw_child.Object.u_inwaremx_ifrel[i] = 1 THEN // ll_taskid = dw_child.Object.u_inwaremx_relid[i] // dec_qty = dw_child.Object.u_inwaremx_qty[i] // ll_printid = dw_child.Object.u_inwaremx_relprintid[i] // ll_scid = cur_scid//dw_uc.Object.u_inware_scid[dw_uc.getrow()] // messagebox('',ll_scid) // SELECT orderqty,needbuyqty,needwfjgqty, // AssignQty,buytaskqty,wfjgtaskqty // INTO :lde_orderQty,:lde_needbuyqty,:lde_needwfjgqty, // :lde_AssignQty,:lde_buytaskqty,:lde_wfjgtaskqty // FROM u_SaleTaskMx WHERE scid = :ll_scid AND // taskid = :ll_taskid AND // printid = :ll_printid Using SQLCA; // IF SQLCA.SQLCode <> 0 THEN // arg_msg = '查询销售订单信息失败!'+SQLCA.SQLErrText // rslt = 0 // messagebox('',arg_msg) // END IF // // IF lde_orderQty + lde_needbuyqty + lde_needwfjgqty - lde_AssignQty < dec_qty THEN // arg_msg = '第['+string(i) +']行,进仓数量大于销售订单安排未进仓数量' // rslt = 0 // MESSAGEBOX('',arg_msg) // END IF // END IF //NEXT return 0 end event type cbx_packqty_cmpl from checkbox within w_inware_cp integer x = 3250 integer y = 84 integer width = 576 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "录入包装数计算数量" end type event clicked;IF THIS.Checked THEN ii_packqty_cmpl = 1 ELSE ii_packqty_cmpl = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",String(ii_packqty_cmpl)) end event event constructor;this.backcolor = 14215660 ii_packqty_cmpl = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "packqty_cmpl",'0')) IF ii_packqty_cmpl = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF //this.y = cbx_enamt_edit.y //this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10 end event type cb_new_scanbill from commandbutton within w_inware_cp integer x = 2286 integer y = 192 integer width = 384 integer height = 84 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "条码扫描开单" end type event clicked;String em,ls_str Long this_parrow Long i,ll_row,ll_ucrow Long ll_scid,ll_outwareid IF Not dw_edit_mode THEN MessageBox('NO','请在编辑状态操作!') RETURN END IF this_parrow = dw_pageretr.GetRow() IF this_parrow <= 0 THEN MessageBox('NO','请选择单据!') RETURN END IF dw_uc.AcceptText() s_edit_index_tran s_tran_mod // s_tran_mod.c_long = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] OpenWithParm(w_inwaremx_cp_p_new_scanqty,s_tran_mod) dw_child.AcceptText() // // Decimal dec_lmbuyprice //设定购价 // long ll_mtrlid // // // for i=1 to dw_child.rowcount() // dec_lmbuyprice = 0 //// ll_mtrlid=1 //// SELECT lmbuyprice Into :dec_lmbuyprice From u_mtrldef Where mtrlid = :ll_mtrlid; //// dw_child.Object.u_mtrldef_lmbuyprice[i] = dec_lmbuyprice //next // end event event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审 IF sys_option_check_scanqty = 1 THEN This.Visible = True ELSE This.Visible = False END IF end event