$PBExportHeader$w_inware_buy.srw forward global type w_inware_buy from w_publ_1ton_share_detail end type type ddlb_scid from uo_ddlb_scid within w_inware_buy end type type st_3 from statictext within w_inware_buy end type type st_2 from statictext within w_inware_buy end type type cbx_enamt_edit from checkbox within w_inware_buy end type type ddlb_status from uo_ddlb_status within w_inware_buy end type type cbx_packqty_cmpl from checkbox within w_inware_buy end type type cbx_enamt_notax_edit from checkbox within w_inware_buy end type type cbx_all from checkbox within w_inware_buy end type end forward global type w_inware_buy from w_publ_1ton_share_detail integer width = 4183 string title = "采购收货单" boolean maxbox = true windowstate windowstate = maximized! boolean if_chkmtrlinfo = true event insert_childrow ( ) event ue_secauditing ( ) event ue_csecauditing ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_cpml_qty ( ) event ue_cmpl_addqty ( ) event ue_mod_banktype ( ) event ue_mod_price ( ) event ue_cmpl_status_qty ( ) event ue_cmpl_qty ( ) event ue_p_cmpl_qty ( ) event ue_p_formula_set ( ) event ue_import_price ( ) event ue_ch_banktype ( ) event ue_ch_money ( ) event ue_p_cus_set ( ) event ue_add_dscrp ( ) event ue_ch_cust ( ) event ue_mod_buyqty ( ) event ue_all_choice ( ) event ue_allnot_choice ( ) event ue_all_audit ( ) event ue_allnot_audit ( ) event ue_all_delete ( ) event ue_set_dytitle ( ) event ue_insert_execltodw ( ) event ue_create_spt_price_change ( ) event ue_mod_otheramt ( ) event ue_view_status ( long arg_row, string arg_status ) event ue_cmpl_set0 ( ) event ue_set_tax ( ) event ue_create_bmstamt ( ) event retrieve_fjnum ( ) event ue_all_c_secaudit ( ) event ue_cmpl_tax ( ) event ue_mod_relcode ( ) event ue_view_mxdscrp ( ) event ue_view_mxdscrp2 ( ) event ue_view_mxdscrp3 ( ) event ue_view_mxdscrp4 ( ) event ue_editzy ( ) event ue_get_maxprice ( ) event ue_priceaudit ( ) event ue_cpriceaudit ( ) ddlb_scid ddlb_scid st_3 st_3 st_2 st_2 cbx_enamt_edit cbx_enamt_edit ddlb_status ddlb_status cbx_packqty_cmpl cbx_packqty_cmpl cbx_enamt_notax_edit cbx_enamt_notax_edit cbx_all cbx_all end type global w_inware_buy w_inware_buy type variables Long cur_scid long cur_scid_arr[] Int cur_flag = -1 Int cur_secflag = -1 uo_inware_buy uo_ware uo_spt_price uo_sptprice Long cur_id = 0 Int cur_editfocus = 0 Long aflag = 0 String ol_cdw_str = '' Long flag = 0 Long secflag = 0 int ii_enamt_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 int ii_packqty_cmpl = 0 long ii_enamt_notax_edit=0 //录入不含税单价 end variables forward prototypes public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid) public function integer wf_flagstatus_rf () public function integer wf_check_print (ref string arg_msg) public function integer wf_check_over (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_get_wareqty (long arg_mtrlid, string arg_mtrlcode, ref decimal arg_wareqty, 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_check_part (long arg_scid, long arg_inwareid, string arg_part, ref string arg_msg) public subroutine wf_cmpl_amt (long row) public function integer wf_change_sptid (long arg_sptid) public subroutine wf_sptprice_mtrl (ref s_mtrldef_array ins_rt_stru) public subroutine wf_sptprice_in (s_mtrldef_array ss_inscust) public function integer wf_openfile (datawindow arg_dw) public function integer wf_check_qtyandaddqty (ref string arg_msg) public function integer wf_check_planprice (ref string arg_msg) public subroutine wf_enamt_facechg () public subroutine wf_ue_f7 (s_mtrldef_buytask_array s_inscust) end prototypes event insert_childrow();long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.object.u_inwaremx_ifrel[li_row] = sys_option_autoyes dw_child.SetColumn ('u_mtrldef_mtrlcode') end event event ue_secauditing();//IF dw_edit_mode THEN // MessageBox('系统提示',"编辑状态下不可以使用!") // return //END IF // //IF NOT f_power_ind(813) THEN // MessageBox(publ_operator,sys_msg_pow) // RETURN //END IF // //string arg_msg='' // //if messagebox ("if","是否确定要审核当前单据?",question!,yesno! ) = 2 then return //long pagerert_row // //pagerert_row=dw_uc.getrow() //if pagerert_row<=0 then // messagebox('系统提示','请选定当前目标单据!') // return //end if // ////==================================================================== //if uo_ware.getinfo(cur_scid,dw_uc.object.inwareid[pagerert_row],arg_msg)=0 then // messagebox('error!',arg_msg) // return //end if // //if uo_ware.secauditing(true,arg_msg)=0 then // messagebox('error!',arg_msg) //else // messagebox(publ_operator,'审核成功!') // wf_refresh_curuc(cur_scid,dw_uc.object.inwareid[pagerert_row]) // sle_usual_query.setfocus() // sle_usual_query.selecttext(1,len(sle_usual_query.text)) // //end if end event event ue_csecauditing();//IF dw_edit_mode THEN // MessageBox('系统提示',"编辑状态下不可以使用!") // return //END IF // //IF NOT f_power_ind(814) THEN // MessageBox(publ_operator,sys_msg_pow) // RETURN //END IF // //string arg_msg='' //long pagerert_row // //pagerert_row=dw_pageretr.getrow() //if pagerert_row<=0 then // messagebox('系统提示','请选定当前目标单据!') // return //end if //IF MessageBox ("IF","是否确定要撤审当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN // //if uo_ware.getinfo(cur_scid,dw_pageretr.object.inwareid [pagerert_row],arg_msg)=0 then // messagebox('Error!',arg_msg) // return //end if // //if dw_pageretr.object.u_inware_secflag[pagerert_row]=1 then // if uo_ware.c_secauditing(true,arg_msg)=0 then // messagebox('Error!',arg_msg) // else // //日志 // long ls_id // string ls_code // ls_id=dw_uc.object.inwareid[pagerert_row] // ls_code=dw_uc.object.inwarecode[pagerert_row] // f_setsysoplog('采购收货单','财务撤审,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true) // //-- // messagebox(publ_operator,'撤审成功!') // wf_refresh_curuc(cur_scid,dw_pageretr.object.inwareid[pagerert_row]) // end if //end if 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,sys_msg_pow) // RETURN //END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg, Information!, OK! ) RETURN END IF s_pic.f_long = 403 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.inwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.inwareid[ls_row] s_pic.e_long = dw_pageretr.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_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg, Information!, OK! ) RETURN END IF s_pic.f_long = 403 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.inwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.inwareid[ls_row] s_pic.e_long = dw_pageretr.Object.u_inware_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_cpml_qty();//ue_cpml_qty string ls_rate,ls_status,ls_qty[] decimal ll_rate,ll_qty[],ld_qty = 1 long i,j,k long ll_cmp1,ll_cmp2 s_changerate s_rate dw_child.accepttext() if dw_edit_mode then open(w_changerate_ch) s_rate = message.powerobjectparm ll_rate = dec(s_rate.rate) ll_cmp1 = s_rate.cmp1 ll_cmp2 = s_rate.cmp2 if ll_rate <= 0 then return if dw_child.rowcount() <= 0 then return for i= 1 to dw_child.rowcount() if ll_cmp1 = 1 then if isnull(dw_child.object.u_inwaremx_status[i]) then continue else ls_status = dw_child.object.u_inwaremx_status[i] end if elseif ll_cmp1 = 2 then if isnull(dw_child.object.u_inwaremx_woodcode[i]) then continue else ls_status = dw_child.object.u_inwaremx_woodcode[i] end if else if isnull(dw_child.object.u_inwaremx_pcode[i]) then continue else ls_status = dw_child.object.u_inwaremx_pcode[i] end if end if if ll_cmp2 = 1 then if dw_child.object.u_inwaremx_addqty[i] = 0 then else ls_status = ls_status + '*' + string(dw_child.object.u_inwaremx_addqty[i]) end if end if if isnull(ls_status) then continue else // ls_status = dw_child.object.u_inwaremx_status[i] if pos(ls_status,'*') = 0 then continue else j = 0 do while pos(ls_status,'*') > 0 j++ ls_qty[j] = mid(ls_status,1,pos(ls_status,'*') - 1) ls_status = mid(ls_status,pos(ls_status,'*') + 1) loop j++ ls_qty[j] = ls_status end if ld_qty = 1 for k =1 to j ld_qty = ld_qty * dec(ls_qty[k]) next dw_child.object.u_inwaremx_uqty[i] = round(ld_qty / ll_rate,10) dw_child.object.u_inwaremx_buyqty[i] = round(ld_qty / ll_rate,10) end if next end if end event event ue_cmpl_addqty();Int ll_flag Decimal ll_value long ll_num String ls_qty[] Decimal ld_qty Long i,j,k String ls_mtrlmode s_cmpl_addqty s_cmpl dw_child.AcceptText() IF dw_edit_mode THEN Open(w_cmpl_addqty_ch) s_cmpl = Message.PowerObjectParm ll_flag = s_cmpl.flag ll_value = s_cmpl.addvalue ll_num = s_cmpl.num IF ll_value <= 0 THEN RETURN IF dw_child.RowCount() <= 0 THEN RETURN FOR i = 1 TO dw_child.RowCount() IF IsNull(ls_mtrlmode) THEN CONTINUE ELSE ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i] IF Pos(ls_mtrlmode,'*') = 0 THEN CONTINUE ELSE j = 0 DO WHILE Pos(ls_mtrlmode,'*') > 0 j++ ls_qty[j] = Mid(ls_mtrlmode,1,Pos(ls_mtrlmode,'*') - 1) ls_mtrlmode = Mid(ls_mtrlmode,Pos(ls_mtrlmode,'*') + 1) LOOP j++ ls_qty[j] = ls_mtrlmode END IF ld_qty = 1 FOR k = 1 TO j ld_qty = ld_qty * Dec(ls_qty[k]) NEXT IF ll_flag = 0 THEN dw_child.Object.u_inwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_inwaremx_uqty[i] * ll_value,ll_num) ELSE dw_child.Object.u_inwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_inwaremx_uqty[i] / ll_value,ll_num) END IF END IF NEXT END IF end event event ue_mod_banktype();//更新结算方式 IF Not f_power_ind(974) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF IF dw_edit_mode THEN RETURN dw_pageretr.AcceptText() Long ll_row ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择单据', Information!, OK! ) RETURN END IF IF dw_pageretr.Object.flag[ll_row] = 1 AND dw_pageretr.Object.u_inware_secflag[ll_row] = 0 THEN s_inware_banktype s_banktype s_banktype.scid = dw_pageretr.Object.u_inware_scid[ll_row] s_banktype.inwareid = dw_pageretr.Object.inwareid[ll_row] s_banktype.banktypeid = dw_pageretr.Object.u_inware_relint_1[ll_row] openwithparm(w_inware_buy_mod_banktype,s_banktype) wf_refresh_curuc(s_banktype.scid,s_banktype.inwareid) //刷新uc ELSE MessageBox('提示','此功能只能在仓审后财审前应用', Information!, OK! ) END IF end event event ue_mod_price();IF NOT f_power_ind(979) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可使用', Information!, OK! ) RETURN END IF Long uc_row//,child_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选择单据', Information!, OK! ) RETURN END IF //child_row = dw_child.GetRow() //IF child_row <= 0 THEN // MessageBox('提示','请选择明细内容', Information!, OK! ) // RETURN //END IF Long ll_flag ,ll_secflag,ll_balcflag Long ll_scid,ll_inwareid,ll_printid ll_flag = dw_pageretr.Object.flag[uc_row] ll_secflag = dw_pageretr.Object.u_inware_secflag[uc_row] ll_balcflag = dw_pageretr.Object.balcflag[uc_row] ll_scid = dw_pageretr.Object.u_inware_scid[uc_row] ll_inwareid = dw_pageretr.Object.inwareid[uc_row] //ll_printid = dw_child.Object.u_inwaremx_printid[child_row] IF ll_flag = 0 THEN MessageBox('提示','进仓单待审核状态下不能执行修改单价功能', Information!, OK! ) RETURN END IF IF ll_secflag = 1 THEN MessageBox('提示','单据已财审,不能执行修改单价功能', Information!, OK! ) 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 s_tran_mod.c_string = '' s_tran_mod.d_long = ii_enamt_edit OpenWithParm(w_inwaremx_buy_mod_price_p,s_tran_mod) THIS.TriggerEvent('retrieve_childdw') 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, Information!, OK! ) GOTO ext END IF IF ll_flag = 0 THEN dw_child.Object.u_inwaremx_uqty[i] = Round(ld_qty * ll_value,ll_num) dw_child.Object.u_inwaremx_buyqty[i] = Round(ld_qty * ll_value,ll_num) ELSE dw_child.Object.u_inwaremx_uqty[i] = Round(ld_qty / ll_value,ll_num) dw_child.Object.u_inwaremx_buyqty[i] = Round(ld_qty / ll_value,ll_num) END IF END IF NEXT END IF ext: 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_uqty[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_uprice[child_row] s_cmpl.rebate = dw_child.Object.u_inwaremx_rebate[child_row] 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] s_cmpl.packqty = dw_child.Object.u_inwaremx_packqty[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_uqty[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_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_uprice[i] s_cmpl.rebate = dw_child.Object.u_inwaremx_rebate[i] 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_uqty[i] = ld_qty END IF NEXT ext: dw_child.SetColumn('u_inwaremx_uqty') dw_uc.SetRedraw(TRUE) 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_import_price();////////// Long i,ls_sptid,ll_mtrlid String ls_1stunit,arg_msg Decimal ls_1stnewcost Decimal ls_1stzqrate Decimal ls_1strate String ls_status String ls_woodcode String ls_pcode dw_child.AcceptText() dw_uc.AcceptText() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] FOR i = 1 TO dw_child.RowCount() ls_1stunit = '' ls_1stnewcost = 0 ls_1stzqrate = 0 ls_1strate = 0 ll_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i] IF ll_mtrlid > 0 THEN 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_1stunit = dw_child.Object.u_inwaremx_unit[i] IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,ll_mtrlid,ls_1stunit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN Int Mtrlorigin Decimal lmbuyprice SELECT u_mtrldef.Mtrlorigin, u_mtrldef.lmbuyprice INTO :Mtrlorigin, :lmbuyprice FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN dw_child.Object.u_inwaremx_uprice[i] = 0 ELSE IF Mtrlorigin > 0 THEN dw_child.Object.u_inwaremx_uprice[i] = lmbuyprice ELSE dw_child.Object.u_inwaremx_uprice[i] = 0 END IF END IF ELSE dw_child.Object.u_inwaremx_uprice[i] = ls_1stnewcost IF ls_1stzqrate = 0 THEN dw_child.Object.u_inwaremx_rebate[i] = 1 ELSE dw_child.Object.u_inwaremx_rebate[i] = ls_1stzqrate END IF dw_child.Object.u_inwaremx_rate[i] = ls_1strate dw_child.Object.u_inwaremx_unit[i] = ls_1stunit END IF END IF NEXT end event event ue_ch_banktype();IF NOT IsValid(w_banktype_edit_ch) THEN s_edit_index_tran s_open //传递参数使用 s_open.work_mode = 1 s_open.c_long = 1 Openwithparm(w_banktype_edit_ch, s_open) s_banktype s_ch s_ch = Message.PowerObjectParm IF s_ch.banktypeid > 0 THEN dw_uc.Object.u_inware_relint_1[dw_uc.GetRow()] = s_ch.banktypeid END IF datawindowchild childdw dw_uc.GetChild("u_inware_relint_1",childdw) childdw.SetTransObject (sqlca) childdw.Retrieve() END IF end event event ue_ch_money();IF NOT IsValid(w_currency_edit_ch) THEN Open(w_currency_edit_ch) s_currency s_ch s_ch = Message.PowerObjectParm IF s_ch.moneyid > 0 THEN dw_uc.Object.u_inware_relint_3[dw_uc.GetRow()] = s_ch.moneyid dw_uc.Object.u_inware_mrate[dw_uc.GetRow()] = s_ch.rate END IF datawindowchild childdw dw_uc.GetChild("u_inware_relint_3",childdw) childdw.SetTransObject (sqlca) childdw.Retrieve() END IF 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.u_inwaremx_if_mtrlware[i] = dw_child.Object.u_inwaremx_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_add_dscrp();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.dscrp[dw_uc.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_uc.Object.dscrp[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_ch_cust();IF Not dw_edit_mode THEN RETURN long uc_row Long child_row uc_row = dw_uc.getrow() IF uc_row = 0 THEN MessageBox('提示','请选定单据!',information!,OK!) RETURN END IF long ll_storageid ll_storageid = dw_uc.object.storageid[uc_row] Int li_if_cus_mtrlware, li_if_plancode, li_inwaretype SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ll_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('提示','查询仓库是否使用客户库存失败!',information!,OK!) RETURN END IF IF li_if_cus_mtrlware = 0 THEN MessageBox('提示','当前进仓仓库不使用客户库存,不能保存所属客户!',information!,OK!) RETURN end if child_row = dw_child.GetRow() IF child_row = 0 THEN MessageBox('提示','请选定明细!',information!,OK!) RETURN END IF IF Not IsValid(W_cust_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 (备用) //查询列(物料编码)部分内容,用于初步筛选 dw_child.AcceptText() s_ch_tran.arg_string_code = Trim(dw_child.Object.u_cust_cuscode[child_row]) OpenWithParm(W_cust_edit,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_if_mtrlware[child_row] = 1 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.SetRedraw(True) END IF END IF end event event ue_mod_buyqty();IF Not f_power_ind(979) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可使用', Information!, OK! ) RETURN END IF IF sys_option_outware_if_buyqty = 0 THEN MessageBox('提示','系统选项[085]限制,功能不能使用', Information!, OK! ) RETURN END IF Long uc_row //,child_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选择单据', Information!, OK! ) RETURN END IF Long ll_flag ,ll_secflag,ll_balcflag Long ll_scid,ll_inwareid,ll_printid ll_flag = dw_pageretr.Object.flag[uc_row] ll_secflag = dw_pageretr.Object.u_inware_secflag[uc_row] ll_balcflag = dw_pageretr.Object.balcflag[uc_row] ll_scid = dw_pageretr.Object.u_inware_scid[uc_row] ll_inwareid = dw_pageretr.Object.inwareid[uc_row] IF ll_flag = 0 THEN MessageBox('提示','进仓单待审核状态下不能执行修改收货数量功能', Information!, OK! ) RETURN END IF IF ll_secflag = 1 THEN MessageBox('提示','单据已财审,不能执行修改收货数量功能', Information!, OK! ) 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 s_tran_mod.c_string = '' OpenWithParm(w_inwaremx_buy_mod_buyqty_p,s_tran_mod) This.TriggerEvent('retrieve_childdw') 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(66) Or f_power_ind(103)) THEN MessageBox('提示',sys_msg_pow, 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 And li_secflag = 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(877) Or f_power_ind(878)) THEN MessageBox('提示',sys_msg_pow, 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 And li_secflag = 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.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(592) OR f_power_ind(584)) THEN MessageBox('提示',sys_msg_pow, 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 And li_secflag = 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_set_dytitle();Long ll_d_col_count,i,j = 1 String ls_col_name s_dytitle_inwarebuy ss_dytitle_inwarebuy //col_name ll_d_col_count = Long(dw_child.Object.datawindow.Column.Count) FOR i = 1 To ll_d_col_count ls_col_name = dw_child.Describe('#' + String(i) + '.Name') IF Long(dw_child.Describe(ls_col_name + '.TabSequence ')) > 0 THEN ss_dytitle_inwarebuy.col_name[j] = ls_col_name ss_dytitle_inwarebuy.title_name[j] = dw_child.describe(ls_col_name + '_t.Text') j++ END IF NEXT openwithparm(w_dytitle_inwarebuy,ss_dytitle_inwarebuy) end event event ue_insert_execltodw();Long i,ll_cnt,j SELECT count(*) Into :ll_cnt From u_dytitle_inwarebuy; IF ll_cnt = 0 THEN MessageBox('Error','明细标题与execl标题对应关系没有设置,请先执行设置') This.TriggerEvent('ue_set_dytitle') RETURN END IF dw_child.setredraw(false) wf_openfile(dw_child) dw_child.AcceptText() String ls_mtrlcode,ls_unit Long ll_mtrlid String arg_msg For j = dw_child.RowCount() to 1 step -1 ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[j] IF ls_mtrlcode = '' THEN dw_child.deleterow(j) end if Next FOR i = 1 To dw_child.RowCount() ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[i] IF ls_mtrlcode <> '' THEN ll_mtrlid = 0 SELECT mtrlid,unit Into :ll_mtrlid,:ls_unit From u_mtrldef Where mtrlcode = :ls_mtrlcode; IF ll_mtrlid <> 0 THEN dw_child.Object.u_inwaremx_printid[i] = i dw_child.Object.u_inwaremx_mtrlid[i] = ll_mtrlid IF dw_child.Object.u_inwaremx_unit[i] = '' Or IsNull(dw_child.Object.u_inwaremx_unit[i]) THEN dw_child.Object.u_inwaremx_unit[i] = ls_unit END IF ELSE arg_msg = arg_msg + ',' +ls_mtrlcode END IF END IF NEXT dw_child.setredraw(true) IF arg_msg <> '' THEN MessageBox('Error',arg_msg + ' 没有定义,请先定义物料') END IF end event event ue_create_spt_price_change();//辅助生成报价单 IF Not f_power_ind(114) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF Long ll_row long ll_sptid, ll_moneyid string ls_sptcode, ls_sptname Long ll_scid, ll_inwareid dw_pageretr.AcceptText() ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!',Information!,OK!) RETURN END IF IF (dw_pageretr.Object.flag[ll_row] = 1 ) THEN MessageBox('系统提示','当前选定单据非待仓审状态!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.object.u_inware_scid[ll_row] ll_inwareid = dw_pageretr.object.inwareid[ll_row] ll_sptid = dw_pageretr.object.sptid[ll_row] ll_moneyid = dw_pageretr.object.u_inware_relint_3[ll_row] ls_sptcode = dw_pageretr.object.u_spt_sptcode[ll_row] ls_sptname = dw_pageretr.object.u_spt_name[ll_row] s_edit_index_tran s_open IF Not IsValid(w_spt_price_change) THEN OpenWithParm(w_spt_price_change,s_open) w_spt_price_change.cb_add.TriggerEvent(Clicked!) ll_row = w_spt_price_change.dw_uc.GetRow() w_spt_price_change.dw_uc.Object.u_spt_price_change_sptid[ll_row] = ll_sptid w_spt_price_change.dw_uc.Object.u_spt_name[ll_row] = ls_sptname w_spt_price_change.dw_uc.Object.u_spt_sptcode[ll_row] = ls_sptcode w_spt_price_change.dw_uc.Object.u_spt_price_change_moneyid[ll_row] = ll_moneyid w_spt_price_change.wf_set_mx(ll_scid, ll_inwareid) END IF end event event ue_mod_otheramt();//更新优惠款 IF Not f_power_ind(974) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF IF dw_edit_mode THEN RETURN dw_pageretr.AcceptText() Long ll_row,ll_scid,ll_inwareid decimal ld_otheramt ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择单据', Information!, OK! ) RETURN END IF IF dw_pageretr.Object.flag[ll_row] = 1 AND dw_pageretr.Object.u_inware_secflag[ll_row] = 0 THEN ll_scid = dw_pageretr.Object.u_inware_scid[ll_row] ll_inwareid = dw_pageretr.Object.inwareid[ll_row] ld_otheramt = dw_pageretr.Object.u_inware_otheramt[ll_row] openwithparm(w_inware_buy_mod_otheramt,ld_otheramt) ld_otheramt = Message.DoubleParm update u_inware set otheramt = :ld_otheramt where inwareid = :ll_inwareid and scid = :ll_scid; IF SQLCA.SQLCODE <>0 THEN MESSAGEBOX("提示","更新失败"+sqlca.sqlerrtext) rollback; return else commit; END IF wf_refresh_curuc(ll_scid,ll_inwareid) //刷新uc ELSE MessageBox('提示','此功能只能在仓审后财审前应用', Information!, OK! ) END IF 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_cmpl_set0();long i for i=1 to dw_child.rowcount() dw_child.object.u_inwaremx_uqty[i]=0 next end event event ue_set_tax();// dw_child.AcceptText() IF dw_child.RowCount() < 1 THEN RETURN Long i FOR i = 1 To dw_child.RowCount() dw_child.Object.u_inwaremx_tax[i] = dw_child.Object.u_inwaremx_tax[1] wf_cmpl_amt(i) NEXT end event event ue_create_bmstamt();Long ll_secflag,ll_scid Long ll_mtrlwareid Int i,j decimal lde_zqamt s_inwarebuy_ch s_inware If Not f_power_ind(1752) Then MessageBox('提示',sys_msg_pow,information!,OK!) Return End If dw_pageretr.AcceptText() i = dw_pageretr.GetRow() If i <= 0 Then MessageBox('系统提示','请选定当前目标订单!',information!,OK!) Return End If ll_secflag = dw_pageretr.Object.u_inware_secflag[i] If ll_secflag <> 1 Then MessageBox('提示','只能对已财审的单据进行操作',information!,OK!) Return End If s_inware.inwareid = dw_pageretr.Object.inwareid[i] s_inware.scid = dw_pageretr.Object.u_inware_scid[i] s_inware.sptid = dw_pageretr.Object.sptid[i] s_inware.sptcode = dw_pageretr.Object.u_spt_sptcode[i] s_inware.sptname = dw_pageretr.Object.u_spt_name[i] s_inware.banktypeid = dw_pageretr.Object.u_inware_relint_1[i] s_inware.moneyid = dw_pageretr.Object.u_inware_relint_3[i] s_inware.billcode = dw_pageretr.Object.inwarecode[i] s_inware.mrate = dw_pageretr.Object.u_inware_mrate[i] s_inware.billamt = dw_child.Object.compute_8[i] //应付 s_inware.takeamt = dw_pageretr.Object.payamt[i] //已付 s_inware.balcamt = dw_pageretr.Object.balcamt[i] //未付 s_inware.indate = dw_pageretr.Object.indate[i] s_inware.storageid = dw_pageretr.Object.storageid[i] //折扣金额 lde_zqamt = 0 for j = 1 to dw_child.rowcount() lde_zqamt = lde_zqamt + (dw_child.Object.u_inwaremx_uprice[j] * dw_child.Object.u_inwaremx_uqty[j] * ( 1 - dw_child.Object.u_inwaremx_rebate[j])) next s_inware.zqamt = lde_zqamt s_edit_index_tran s_tran_open //翻页功能窗口 传递参数使用 s_tran_open.if_retrieve_all = local_retrieve_all //是否一次RETRIEVE所有行 s_tran_open.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran_open.arg_pkid = 0 //目标定位PKID (备用) s_tran_open.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran_open.d_long = 1 s_tran_open.e_long = 0 s_tran_open.c_long = dw_pageretr.Object.u_inware_scid[i] ll_scid = dw_pageretr.Object.u_inware_scid[i] If Not IsValid(w_bmstamt_spt_edit) Then OpenWithParm(w_bmstamt_spt_edit,s_tran_open) // w_bmstamt_edit.ddlb_scid.uf_selectsc(ll_scid) w_bmstamt_spt_edit.wf_ue_f7(s_inware) End If end event event retrieve_fjnum(); Long i,ls_filecount string arg_billcode dw_pageretr.SetRedraw(False) FOR i = 1 To dw_pageretr.RowCount() arg_billcode = dw_pageretr.Object.inwarecode[i] ls_filecount = 0 SELECT count(*) INTO :ls_filecount FROM u_file WHERE relcode = :arg_billcode AND scid = 0 AND billtype =403 Using sys_filedb_sqlca; IF ls_filecount <> 0 then dw_pageretr.Object.fj_num[i] = String(ls_filecount) end if NEXT dw_pageretr.SetRedraw(true) end event event ue_all_c_secaudit();IF dw_edit_mode THEN RETURN long row_count = 0 String ls_msg = '' Long i,rslt Long ll_suc,ll_fail,ll_i IF Not (f_power_ind(881) ) THEN MessageBox('提示',sys_msg_pow,Information!,OK!) RETURN END IF for i = 1 to dw_pageretr.rowcount() if dw_pageretr.object.ch[i] = 1 then row_count++ next IF row_count <= 0 THEN MessageBox('提示','请勾选目标单据!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要批财审当前选择单据吗?",Question!,YesNo! ) = 2 THEN RETURN Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR i = 1 TO dw_pageretr.rowcount() w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.inwarecode[i] + " 正在确认..." //进度信息 if dw_pageretr.object.ch[i] = 1 then rslt = 1 String ls_code,ls_opemp,ls_outpart string arg_msg = '' IF uo_ware.getinfo(dw_pageretr.Object.u_inware_scid[i],dw_pageretr.Object.inwareid [i],arg_msg) = 0 THEN ll_fail++ ls_msg += dw_pageretr.Object.inwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE ELSE IF uo_ware.c_secauditing(False,arg_msg) = 0 THEN ll_fail++ ls_msg += dw_pageretr.Object.inwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE ELSE ll_suc++ ls_code = dw_pageretr.Object.inwarecode[i] ls_opemp = dw_pageretr.Object.u_inware_opemp[i] ls_outpart = dw_pageretr.Object.part[i] f_setsysoplog('采购收货单','财务撤审,code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True) END IF END IF w_sys_wait_jdt.wf_inc(i) //进度 end if NEXT Close(w_sys_wait_jdt) ls_msg = '批财撤成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail)+'~r~n'+ls_msg IF ls_msg <> '' THEN OpenWithParm(w_message_err,ls_msg) ELSE MessageBox('提示','全部财撤成功!') END IF this.triggerevent('retrieve_pageretr') end event event ue_cmpl_tax();If dw_child.GetRow() = 0 Then Return Long child_row child_row = dw_child.GetRow() Decimal lde_saleqty, lde_rebate ,lde_taxamt,lde_enprice,lde_enprice_notax lde_saleqty = dw_child.Object.u_inwaremx_uqty[child_row] lde_rebate = dw_child.Object.u_inwaremx_rebate[child_row] lde_enprice = dw_child.Object.u_inwaremx_uprice[child_row] lde_enprice_notax = dw_child.Object.u_inwaremx_uprice_notax[child_row] If lde_saleqty = 0 Then MessageBox('提示','请填写数量!') Return End If If lde_enprice = 0 And lde_enprice_notax = 0 Then MessageBox('提示','请填写含税单价或者不含税单价') Return End If If Not IsValid(w_ware_cmpl_taxamt) Then s_edit_index_tran s_tran_tax s_tran_tax.b_string = dw_child.Object.u_inwaremx_unit[child_row] //单位 OpenWithParm(w_ware_cmpl_taxamt,s_tran_tax) s_edit_index_tran s_return s_return = Message.PowerObjectParm If Not IsNull(s_return) Then If s_return.b_decimal = 0 Then Return lde_taxamt = s_return.b_decimal dw_child.Object.u_inwaremx_uamt_tax[child_row] = lde_taxamt * lde_saleqty //总税金 If lde_enprice <> 0 Then dw_child.Object.u_inwaremx_uamt[child_row] = Round( lde_enprice * lde_rebate * lde_saleqty, 2) //总金额 // dw_child.Object.uamt_notax[child_row] = dw_child.Object.u_inwaremx_uamt[child_row] - dw_child.Object.u_inwaremx_uamt_tax[child_row] //不含税总金额 dw_child.Object.u_inwaremx_uprice_notax[child_row] = lde_enprice - lde_taxamt //不含税单价 dw_child.Object.u_inwaremx_tax[child_row] = lde_taxamt / (lde_enprice - lde_taxamt) //税率 elseif lde_enprice_notax <> 0 then // dw_child.Object.uamt_notax[child_row] = Round( lde_enprice_notax * lde_rebate * lde_saleqty, 2) //不含税总金额 dw_child.Object.u_inwaremx_uamt[child_row] = dw_child.Object.uamt_notax[child_row] + dw_child.Object.u_inwaremx_uamt_tax[child_row] //总金额 dw_child.Object.u_inwaremx_uprice[child_row] = lde_enprice_notax + lde_taxamt //单价 dw_child.Object.u_inwaremx_tax[child_row] = lde_taxamt / lde_enprice_notax //税率 End If End If End If end event event ue_mod_relcode();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!", Information!, OK! ) return END IF IF NOT (f_power_ind(2050)) 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= dw_pageretr.object.part[uc_row] openwithparm(w_inputbox,s_sreu) ls_str=message.stringparm if trim(ls_str)='' or isnull(ls_str) then return if uo_ware.mod_part(dw_pageretr.object.u_inware_scid[uc_row],dw_pageretr.object.inwareid[uc_row],ls_str,arg_msg)=0 then messagebox('error!',arg_msg) 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_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_buy,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_buy,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_buy,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_buy,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 event ue_get_maxprice();IF Not dw_edit_mode THEN RETURN dw_uc.AcceptText() IF dw_uc.GetRow() = 0 THEN RETURN long i ,ls_mtrlid , ls_sptid string ls_unit,ls_status,ls_woodcode,ls_pcode datetime ls_opdate,ls_opdatemax decimal ls_maxprice FOR i = 1 To dw_child.rowcount() ls_mtrlid = dw_child.Object.u_inwaremx_mtrlid[i] ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] ls_unit = dw_child.Object.u_inwaremx_unit[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 dw_uc.Object.inwareid[dw_uc.GetRow()] = 0 THEN ls_opdate = DateTime(Date(Today()),Time(Now())) ELSE ls_opdate = dw_uc.Object.opdate[dw_uc.GetRow()] END IF Select MAX(opdate)as opdate Into:ls_opdatemax from u_spt_price_MX where buildtype=0 and Opdate<=:ls_opdate and sptid=:ls_sptid and mtrlid=:ls_mtrlid and unit=:ls_unit and status=:ls_status and woodcode=:ls_woodcode and pcode=:ls_pcode group by sptid,mtrlid,status,unit,woodcode,pcode; IF sqlca.SQLCode <> 0 THEN ls_maxprice = 0 ELSE Select Top 1 price into :ls_maxprice from u_spt_price_MX where buildtype=0 and Opdate<=:ls_opdate and sptid=:ls_sptid and mtrlid=:ls_mtrlid and unit=:ls_unit and status=:ls_status and woodcode=:ls_woodcode and pcode=:ls_pcode and opdate = :ls_opdatemax; IF sqlca.SQLCode <> 0 THEN ls_maxprice = 0 END IF END IF dw_child.Object.maxprice[i] = ls_maxprice NEXT end event event ue_priceaudit();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF //IF Not f_power_ind(491) THEN // MessageBox('提示',sys_msg_pow,information!,OK!) // RETURN //END IF String arg_msg Long pagerert_row String ls_taskcode pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF uo_ware.priceaudit(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],True,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF MessageBox('提示','确认成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row]) end event event ue_cpriceaudit();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF //IF Not f_power_ind(491) THEN // MessageBox('提示',sys_msg_pow,information!,OK!) // RETURN //END IF String arg_msg Long pagerert_row String ls_taskcode pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF uo_ware.c_priceaudit(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row],True,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF MessageBox('提示','反确认成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row]) end event public function integer wf_refresh_curuc (long arg_scid, long arg_inwareid);//==================================================================== // Function: wf_refresh_curuc(arg_scid,arg_inwareid) //-------------------------------------------------------------------- // Description: 刷新dw_pageretr //-------------------------------------------------------------------- // Arguments: // value long arg_scid // value long arg_inwareid //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.11.14 //-------------------------------------------------------------------- // Modify History: // //==================================================================== 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 li_flag datetime Auditingdate string Auditingrep int li_secflag datetime secAuditingdate string secAuditingrep string storagename int thflag int relint_1 string sptcode long sptid Long priceflag datetime pricedate string priceemp Decimal sumuamt_tax Long ifsumuamt_tax DateTime viewdate dec otheramt long relint_3 decimal mrate long amt 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.secflag ,u_inware.secauditingdate ,u_inware.secauditingrep ,u_inware.inwarecode ,u_inware.balcflag ,u_inware.sptname ,u_storage.storagename ,u_inware.modemp ,u_inware.moddate ,u_inware.thflag ,u_inware.relint_1 ,u_spt.sptcode ,u_spt.name ,u_inware.otheramt ,u_inware.sptid ,u_inware.relint_3 ,u_inware.mrate ,samt.amt ,priceflag ,pricedate ,priceemp ,mxin.sumuamt_tax ,case when mxin.sumuamt_tax > 0 then 1 else 0 end as ifsumuamt_tax ,u_inware.viewdate INTO :storageid ,:indate ,:inrep ,:part ,:dscrp ,:opdate ,:opemp ,:li_flag ,:Auditingdate ,:Auditingrep ,:li_secflag ,:secAuditingdate ,:secAuditingrep ,:inwarecode ,:balcflag ,:sptname ,:storagename ,:modemp ,:moddate ,:thflag ,:relint_1 ,:sptcode ,:sptname ,:otheramt ,:sptid ,:relint_3 ,:mrate ,:amt ,:priceflag ,:pricedate ,:priceemp ,:sumuamt_tax ,:ifsumuamt_tax ,:viewdate FROM u_inware INNER JOIN u_spt ON u_inware.sptid = u_spt.sptid INNER JOIN u_storage ON u_inware.storageid = u_storage.storageid LEFT JOIN ( SELECT scid ,inwareid ,sum(uamt) AS amt FROM u_inwaremx WHERE scid = :arg_scid AND inwareid = :arg_inwareid GROUP BY scid ,inwareid ) samt ON samt.scid = u_inware.scid AND samt.inwareid = u_inware.inwareid LEFT OUTER JOIN ( SELECT scid ,inwareid ,sum(uamt_tax) AS sumuamt_tax FROM u_inwaremx GROUP BY scid ,inwareid ) AS mxin ON mxin.scid = u_inware.scid AND mxin.inwareid = u_inware.inwareid WHERE (u_inware.scid = :arg_scid) AND (u_inware.inwareid = :arg_inwareid); if sqlca.sqlcode<>0 then messagebox('提示',"查询操作失败(错误单据唯一码)", Information!, 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.u_spt_name[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]= li_flag dw_pageretr.object.Auditingdate[uc_row]= Auditingdate dw_pageretr.object.Auditingrep[uc_row]=Auditingrep dw_pageretr.object.u_inware_secflag[uc_row]= li_secflag dw_pageretr.object.u_inware_secAuditingdate[uc_row]= secAuditingdate dw_pageretr.object.u_inware_secAuditingrep[uc_row]=secAuditingrep dw_pageretr.object.u_storage_storagename[uc_row]=storagename dw_pageretr.object.u_inware_thflag[uc_row]=thflag dw_pageretr.object.u_inware_relint_1[uc_row]=relint_1 dw_pageretr.object.u_spt_sptcode[uc_row]=sptcode dw_pageretr.object.u_spt_name[uc_row]=sptname dw_pageretr.object.u_inware_otheramt[uc_row]=otheramt dw_pageretr.object.sptid[uc_row]=sptid dw_pageretr.object.u_inware_relint_3[uc_row]=relint_3 dw_pageretr.object.u_inware_mrate[uc_row]=mrate dw_pageretr.object.amt[uc_row]=amt dw_pageretr.object.priceflag[uc_row]=priceflag dw_pageretr.object.pricedate[uc_row]=pricedate dw_pageretr.object.priceemp[uc_row]=priceemp dw_pageretr.object.sumuamt_tax[uc_row]=sumuamt_tax dw_pageretr.object.ifsumuamt_tax[uc_row]=ifsumuamt_tax dw_pageretr.Object.viewdate[uc_row]=viewdate 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 function integer wf_flagstatus_rf ();//wf_flagstatus_rf() Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN cb_auditing.Text = '审核&F' cb_auditing.Enabled = False cb_auditing_cancel.Text = '撤审' cb_auditing_cancel.Enabled = False flag = -1 secflag = -1 GOTO ext END IF flag = dw_pageretr.Object.flag[pagerert_row] secflag = dw_pageretr.Object.u_inware_secflag[pagerert_row] IF dw_edit_mode THEN IF sys_option_hide_ware = 0 THEN cb_auditing.Text = '仓审&F' cb_auditing_cancel.Text = '仓撤' ELSE cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' END IF cb_auditing.Enabled = False cb_auditing_cancel.Enabled = False IF cur_editfocus = 1 THEN flag = -1 secflag = -1 END IF ELSE IF sys_option_hide_ware = 0 THEN IF flag = 0 THEN cb_auditing.Enabled = True cb_auditing.Text = '仓审&F' cb_auditing_cancel.Enabled = False ELSEIF flag = 1 And secflag = 0 THEN cb_auditing.Enabled = True cb_auditing.Text = '财审&F' cb_auditing_cancel.Enabled = True cb_auditing_cancel.Text = '仓撤' ELSE cb_auditing.Text = '仓审&F' cb_auditing.Enabled = False cb_auditing_cancel.Enabled = True cb_auditing_cancel.Text = '财撤' END IF ELSE IF flag = 0 THEN cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' cb_auditing.Enabled = True cb_auditing_cancel.Enabled = False ELSE cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' cb_auditing.Enabled = False cb_auditing_cancel.Enabled = True END IF END IF END IF cb_auditing.TriggerEvent('ue_textchange') cb_auditing_cancel.TriggerEvent('ue_textchange') ext: RETURN 0 end function public function integer wf_check_print (ref string arg_msg);long cnt int rslt = 1 string ls_msg string str_dwSQl,str_SyntaxFromSQL datastore ds_maxid datetime ld_cur_dt ld_cur_dt = datetime(today(),time(0)) if sys_option_mustprint = 0 then rslt = 1 goto ext end if string ls_storagestr,tmp_str ls_storagestr = sys_user_storagestr if ls_storagestr <> '0' and ls_storagestr <> '-1' then ls_storagestr = mid(ls_storagestr,2) ls_storagestr = left(ls_storagestr,len(ls_storagestr) - 1 ) end if ds_maxid= create datastore str_dwSQl="select count(*) as countnum from u_inware where indate < '" +string(ld_cur_dt,'yyyy-mm-dd hh:mm:ss')+ "' and billtype = 1 and flag = 0 and " if pos(ls_storagestr,',') > 0 or long(ls_storagestr) > 0 then tmp_str = '(' + 'storageid in (' + ls_storagestr + '))' else tmp_str = '(' + ls_storagestr + ' = 0 or storageid in (' + ls_storagestr + '))' end if str_dwSQl=str_dwSQl + tmp_str //messagebox("",str_dwSQl) str_SyntaxFromSQL =sqlca.SyntaxFromSQL(str_dwSQl,"style(type=grid)",ls_msg) if ls_msg>'' then arg_msg="dw语法生成失败" rslt = 0 goto ext end if ds_maxid.Create(str_SyntaxFromSQL,ls_msg) if ls_msg>'' then arg_msg="建立相关DW失败" rslt=0 goto ext end if ds_maxid.settransobject(sqlca) ds_maxid.retrieve() cnt=ds_maxid.GetItemNumber(1,1) if isnull(cnt) then cnt = 0 destroy ds_maxid if cnt > 0 then arg_msg = '仓库还有收货单未打印,不能新建' rslt = 0 goto ext end if ext: return rslt end function public function integer wf_check_over (ref string arg_msg);Int rslt = 1 Long ll_i long ll_taskid,ll_mtrlid,ll_orderid,ll_scid string ls_status,ls_unit,ls_mtrlcode decimal ld_addqty,ld_buyqty,ld_consignedqty string ls_msg Decimal ld_upqty,ld_uprate //0不允许,1允许,2不允许超比例 IF sys_option_ifovertask = 1 THEN rslt = 1 GOTO ext END IF dw_child.accepttext() FOR ll_i = 1 TO dw_child.RowCount() ll_scid = cur_scid ll_taskid = dw_child.object.u_inwaremx_relid[ll_i] ll_mtrlid = dw_child.object.u_inwaremx_mtrlid[ll_i] ll_orderid = dw_child.object.u_inwaremx_sptid_cusid[ll_i] ls_status = dw_child.object.u_inwaremx_status[ll_i] ls_unit = dw_child.object.u_inwaremx_unit[ll_i] ls_mtrlcode = dw_child.object.u_mtrldef_mtrlcode[ll_i] ld_addqty = dw_child.object.u_inwaremx_uqty[ll_i] if ld_addqty = 0 then continue if ll_mtrlid = 0 then continue SELECT upqty,uprate INTO :ld_upqty,:ld_uprate FROM u_mtrldef where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或错误物料编码["+ls_mtrlcode+"]导致查询物料资料属性失败"+"~n"+sqlca.SQLErrText GOTO ext END IF SELECT sum(u_buytaskmx.uqty), sum(u_buytaskmx.consignedqty) INTO :ld_buyqty, :ld_consignedqty FROM u_buytaskmx WHERE ( u_buytaskmx.taskid = :ll_taskid ) AND ( u_buytaskmx.mtrlid = :ll_mtrlid ) AND ( u_buytaskmx.orderid = :ll_orderid ) AND ( u_buytaskmx.status = :ls_status ) AND ( u_buytaskmx.unit = :ls_unit ) AND ( u_buytaskmx.scid = :ll_scid); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = "因网络或错误物料编码["+ls_mtrlcode+"]导致查询采购订单已完成数量操作失败"+"~n"+sqlca.SQLErrText GOTO ext END IF IF sys_option_ifovertask = 0 THEN IF ld_buyqty < ld_consignedqty + ld_addqty THEN ls_msg = "物料["+ls_mtrlcode+"]的未完成数量只有"+String(ld_buyqty - ld_consignedqty,'#,##0.0###')+',本次进:'+String(ld_addqty,'#,##0.0#')+",已超订货数,是否要继续入库?" if messagebox ("询问",ls_msg,question!,yesno! ) = 2 then arg_msg = '超订货数进仓,操作取消' rslt = 0 goto ext end if END IF ELSEIF sys_option_ifovertask = 1 THEN IF ld_buyqty * (1 + ld_uprate) + ld_upqty < ld_consignedqty + ld_addqty THEN ls_msg = "物料["+ls_mtrlcode+"]的未完成数量只有"+String(ld_buyqty - ld_consignedqty,'#,##0.0###')+',本次进:'+String(ld_addqty,'#,##0.0#')+",已超订货数,是否要继续入库?" if messagebox ("询问",ls_msg,question!,yesno! ) = 2 then arg_msg = '超订货数进仓,操作取消' rslt = 0 goto ext end if END IF END IF NEXT ext: 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 = 403 //客户投拆单的 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 = 403); 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_get_wareqty (long arg_mtrlid, string arg_mtrlcode, ref decimal arg_wareqty, string arg_msg);Long cur_storageid Decimal ld_wareqty IF dw_uc.GetRow() = 0 THEN RETURN 1 dw_uc.AcceptText() cur_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF cur_storageid = 0 THEN RETURN 1 ld_wareqty = 0 SELECT sum(u_mtrlware.noallocqty) INTO :ld_wareqty FROM u_mtrlware WHERE mtrlid = :arg_mtrlid AND storageid = :cur_storageid; IF sqlca.SQLCode = -1 THEN arg_msg = arg_mtrlcode + ',查询库存数量失败!' RETURN 0 ELSEIF IsNull(ld_wareqty) THEN ld_wareqty = 0 END IF arg_wareqty = ld_wareqty RETURN 1 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 = 201); 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_check_part (long arg_scid, long arg_inwareid, string arg_part, ref string arg_msg);Int rslt = 1 //return 1 - 检查通过 //return 0 - 语法出错 //return 2 - 限制 //return 3 - 询问 Long cnt IF Trim(arg_part) = '' THEN IF sys_option_buy_relcode_repeat = 0 THEN rslt = 1 GOTO ext ELSE rslt = 2 arg_msg = '请输入单据相关号' GOTO ext END IF ELSE SELECT count(*) INTO :cnt FROM u_inware WHERE (NOT EXISTS (SELECT * FROM u_inware u_task WHERE u_task.scid = u_inware.scid AND u_task.inwareid = u_inware.inwareid AND u_task.scid = :arg_scid AND u_task.inwareid = :arg_inwareid)) And (part = :arg_part); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询单据相关号码是否重复失败,'+sqlca.SQLErrText GOTO ext END IF IF cnt > 0 THEN IF sys_option_buy_relcode_repeat = 0 THEN arg_msg = '当前单据的相关号码与已有单据的重复,是否继续保存?' rslt = 3 GOTO ext ELSE rslt = 2 arg_msg = '当前单据的相关号码与已有单据的重复,请修改' GOTO ext END IF END IF END IF ext: RETURN rslt end function public subroutine wf_cmpl_amt (long row);IF row <= 0 THEN RETURN IF row > dw_child.RowCount() THEN RETURN Dec ld_round = 100 ld_round = 10.0 ^ (2 - sys_option_inware_buy_amt_round) IF sys_option_inware_buy_amt_round = 5 THEN ld_round = 1000 Decimal lde_tax lde_tax = dw_child.Object.u_inwaremx_tax[row] //由金额计算单价 IF sys_option_outware_if_buyqty = 0 THEN IF cbx_enamt_edit.Checked THEN IF dw_child.Object.u_inwaremx_uamt[row] <> 0 THEN IF dw_child.Object.u_inwaremx_rebate[row] <> 0 And dw_child.Object.u_inwaremx_uqty[row] <> 0 THEN dw_child.Object.u_inwaremx_uprice[row] = dw_child.Object.u_inwaremx_uamt[row] / dw_child.Object.u_inwaremx_rebate[row] / dw_child.Object.u_inwaremx_uqty[row] dw_child.Object.u_inwaremx_uprice_notax[row] = dw_child.Object.u_inwaremx_uprice[row] / ( 1 + dw_child.Object.u_inwaremx_tax[row] ) //不含税单价=单价/(1+税率) dw_child.Object.u_inwaremx_uamt_tax[row] = dw_child.Object.u_inwaremx_uprice_notax[row] * Dec(dw_child.Object.u_inwaremx_uqty[row]) * lde_tax END IF END IF ELSE dw_child.Object.u_inwaremx_uamt[row] = Round(dw_child.Object.u_inwaremx_uprice[row]*dw_child.Object.u_inwaremx_rebate[row]*dw_child.Object.u_inwaremx_uqty[row] * ld_round,0) / ld_round // dw_child.Object.u_inwaremx_uprice_notax[row] = dw_child.Object.u_inwaremx_uprice[row] / ( 1 + dw_child.Object.u_inwaremx_tax[row] ) //不含税单价=单价/(1+税率) dw_child.Object.u_inwaremx_uamt_tax[row] = dw_child.Object.u_inwaremx_uprice_notax[row] * Dec(dw_child.Object.u_inwaremx_uqty[row]) * lde_tax END IF ELSE IF cbx_enamt_edit.Checked THEN IF dw_child.Object.u_inwaremx_uamt[row] <> 0 THEN IF dw_child.Object.u_inwaremx_rebate[row] <> 0 And dw_child.Object.u_inwaremx_uqty[row] <> 0 THEN dw_child.Object.u_inwaremx_uprice[row] = dw_child.Object.u_inwaremx_uamt[row] / dw_child.Object.u_inwaremx_rebate[row] / dw_child.Object.u_inwaremx_buyqty[row] END IF END IF ELSE dw_child.Object.u_inwaremx_uamt[row] = Round(dw_child.Object.u_inwaremx_uprice[row]*dw_child.Object.u_inwaremx_rebate[row]*dw_child.Object.u_inwaremx_buyqty[row] * ld_round,0) / ld_round END IF END IF IF cbx_enamt_notax_edit.Checked THEN //录入不含税单价 IF dw_child.Object.u_inwaremx_uprice_notax[row] <> 0 THEN dw_child.Object.u_inwaremx_uprice[row] = dw_child.Object.u_inwaremx_uprice_notax[row] * (1 + lde_tax) dw_child.Object.u_inwaremx_uamt[row] = Round(dw_child.Object.u_inwaremx_uprice[row]*dw_child.Object.u_inwaremx_rebate[row]*dw_child.Object.u_inwaremx_uqty[row] * ld_round,0) / ld_round dw_child.Object.u_inwaremx_uamt_tax[row] = dw_child.Object.u_inwaremx_uprice_notax[row] * Dec(dw_child.Object.u_inwaremx_uqty[row]) * lde_tax END IF ELSE dw_child.Object.u_inwaremx_uprice_notax[row] = dw_child.Object.u_inwaremx_uprice[row] / ( 1 + dw_child.Object.u_inwaremx_tax[row] ) //不含税单价=单价/(1+税率) END IF end subroutine public function integer wf_change_sptid (long arg_sptid);Long ll_row,i Int rslt = 1 Boolean for_saletask = False //是否按订单 s_mtrldef_array ins_rt_stru Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate String arg_msg,ls_status,ls_woodcode,ls_pcode String ls_1stunit Long ls_sptid,ls_mtrlid ll_row = dw_uc.GetRow() IF ll_row <= 0 THEN RETURN rslt IF dw_uc.Object.sptid[ll_row] > 0 And dw_uc.Object.sptid[ll_row] <> arg_sptid THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_inwaremx_relid[i] <> 0 THEN for_saletask = True EXIT END IF NEXT IF for_saletask = True THEN //按订单 IF MessageBox('询问','由于收货单按订单收货,更换供应商会删除全部明细,是否继续?',question!,yesno!) = 2 THEN rslt = 0 RETURN rslt END IF dw_child.Reset() This.TriggerEvent("insert_childrow") ELSE //不按订单 wf_sptprice_mtrl(ins_rt_stru) wf_sptprice_in(ins_rt_stru) END IF END IF RETURN rslt end function public subroutine wf_sptprice_mtrl (ref s_mtrldef_array ins_rt_stru);datastore dw_mtrlmx Long i,ls_i,chC,ll_mtrl[] dw_mtrlmx = Create datastore dw_mtrlmx.DataObject = 'dw_mtrl_index_sptprice' dw_mtrlmx.SetTransObject(sqlca) FOR i = 1 To dw_child.RowCount() ll_mtrl[i] = dw_child.Object.u_inwaremx_mtrlid[i] NEXT dw_mtrlmx.Retrieve(ll_mtrl) FOR i = 1 To dw_mtrlmx.RowCount() dw_mtrlmx.SelectRow(i,True) NEXT FOR ls_i = 1 To dw_mtrlmx.RowCount() IF dw_mtrlmx.IsSelected(ls_i) THEN chC++ ins_rt_stru.mtrlid[chC] = dw_mtrlmx.Object.mtrlid[ls_i] ins_rt_stru.mtrlname[chC] = dw_mtrlmx.Object.mtrlname[ls_i] ins_rt_stru.mtrlengname[chC] = dw_mtrlmx.Object.mtrlengname[ls_i] ins_rt_stru.mtrlcode[chC] = dw_mtrlmx.Object.mtrlcode[ls_i] ins_rt_stru.mtrltype[chC] = dw_mtrlmx.Object.mtrltype[ls_i] ins_rt_stru.mtrlmode[chC] = dw_mtrlmx.Object.mtrlmode[ls_i] ins_rt_stru.unit[chC] = dw_mtrlmx.Object.unit[ls_i] ins_rt_stru.storageid[chC] = dw_uc.Object.storageid[dw_uc.GetRow()] ins_rt_stru.planprice[chC] = dw_mtrlmx.Object.planprice[ls_i] ins_rt_stru.dscrp[chC] = dw_mtrlmx.Object.dscrp[ls_i] ins_rt_stru.mtrlsectype[chC] = dw_mtrlmx.Object.mtrlsectype[ls_i] ins_rt_stru.lmbuyprice[chC] = dw_mtrlmx.Object.lmbuyprice[ls_i] ins_rt_stru.lmsaleprice[chC] = dw_mtrlmx.Object.lmsaleprice[ls_i] ins_rt_stru.prdpackcode[chC] = dw_mtrlmx.Object.prdpackcode[ls_i] ins_rt_stru.packqty[chC] = dw_mtrlmx.Object.packqty[ls_i] ins_rt_stru.zxmtrlmode[chC] = dw_mtrlmx.Object.zxmtrlmode[ls_i] ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i] ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i] ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i] ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i] ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i] ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i] IF dw_mtrlmx.Object.u_mtrldef_unit_buy[chC] = '' THEN ins_rt_stru.unit_buy[chC] = dw_mtrlmx.Object.unit[ls_i] ins_rt_stru.rate_buy[chC] = 1 ELSE ins_rt_stru.unit_buy[ls_i] = dw_mtrlmx.Object.u_mtrldef_unit_buy[ls_i] ins_rt_stru.rate_buy[chC] = dw_mtrlmx.Object.u_mtrldef_rate_buy[ls_i] END IF IF dw_mtrlmx.Object.u_mtrldef_unit_scll[chC] = '' THEN ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.unit[ls_i] ins_rt_stru.rate_scll[chC] = 1 ELSE ins_rt_stru.unit_scll[chC] = dw_mtrlmx.Object.u_mtrldef_unit_scll[ls_i] ins_rt_stru.rate_scll[chC] = dw_mtrlmx.Object.u_mtrldef_rate_scll[ls_i] END IF IF dw_mtrlmx.Object.u_mtrldef_unit_sale[chC] = '' THEN ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.unit[ls_i] ins_rt_stru.rate_sale[chC] = 1 ELSE ins_rt_stru.unit_sale[chC] = dw_mtrlmx.Object.u_mtrldef_unit_sale[ls_i] ins_rt_stru.rate_sale[chC] = dw_mtrlmx.Object.u_mtrldef_rate_sale[ls_i] END IF ins_rt_stru.ifcustom[chC] = dw_mtrlmx.Object.u_mtrldef_ifcustom[ls_i] ins_rt_stru.statusflag[chC] = dw_mtrlmx.Object.statusflag[ls_i] ins_rt_stru.woodcodeflag[chC] = dw_mtrlmx.Object.woodcodeflag[ls_i] ins_rt_stru.pcodeflag[chC] = dw_mtrlmx.Object.pcodeflag[ls_i] ins_rt_stru.statustype[chC] = dw_mtrlmx.Object.u_mtrldef_statustype[ls_i] ins_rt_stru.woodcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_woodcodetype[ls_i] ins_rt_stru.pcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_pcodetype[ls_i] ins_rt_stru.status_check[chC] = dw_mtrlmx.Object.u_mtrldef_status_check[ls_i] ins_rt_stru.woodcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_check[ls_i] ins_rt_stru.pcode_check[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_check[ls_i] ins_rt_stru.configcode[chC] = dw_mtrlmx.Object.u_mtrldef_configcode[ls_i] ins_rt_stru.configname[chC] = dw_mtrlmx.Object.u_mtrldef_configname[ls_i] ins_rt_stru.configcodetype[chC] = dw_mtrlmx.Object.u_mtrldef_configcodetype[ls_i] ins_rt_stru.mtrlcolor[chC] = dw_mtrlmx.Object.u_mtrldef_mtrlcolor[ls_i] ins_rt_stru.status_config[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i] ins_rt_stru.woodcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i] ins_rt_stru.pcode_config[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i] IF ins_rt_stru.statusflag[chC] = 4 THEN ins_rt_stru.status[chC] = dw_mtrlmx.Object.u_mtrldef_status_config[ls_i] ELSE ins_rt_stru.status[chC] = "" END IF IF ins_rt_stru.woodcodeflag[chC] = 4 THEN ins_rt_stru.woodcode[chC] = dw_mtrlmx.Object.u_mtrldef_woodcode_config[ls_i] ELSE ins_rt_stru.woodcode[chC] = "" END IF IF ins_rt_stru.pcodeflag[chC] = 4 THEN ins_rt_stru.pcode[chC] = dw_mtrlmx.Object.u_mtrldef_pcode_config[ls_i] ELSE ins_rt_stru.pcode[chC] = "" END IF ins_rt_stru.usermtrlmode[chC] = dw_mtrlmx.Object.u_mtrldef_usermtrlmode[ls_i] ins_rt_stru.buyunit[chC] = dw_mtrlmx.Object.u_mtrldef_buyunit[ls_i] ins_rt_stru.wfjgunit[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgunit[ls_i] ins_rt_stru.scllunit[chC] = dw_mtrlmx.Object.u_mtrldef_scllunit[ls_i] ins_rt_stru.saleunit[chC] = dw_mtrlmx.Object.u_mtrldef_saleunit[ls_i] ins_rt_stru.buydec[chC] = dw_mtrlmx.Object.u_mtrldef_buydec[ls_i] ins_rt_stru.wfjgdec[chC] = dw_mtrlmx.Object.u_mtrldef_wfjgdec[ls_i] ins_rt_stru.sclldec[chC] = dw_mtrlmx.Object.u_mtrldef_sclldec[ls_i] ins_rt_stru.saledec[chC] = dw_mtrlmx.Object.u_mtrldef_saledec[ls_i] ins_rt_stru.ifpack[chC] = dw_mtrlmx.Object.u_mtrldef_ifpack[ls_i] ins_rt_stru.ifpackpro[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro[ls_i] ins_rt_stru.ifpackpz[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpz[ls_i] ins_rt_stru.ifpackpro2[chC] = dw_mtrlmx.Object.u_mtrldef_ifpackpro2[ls_i] ins_rt_stru.ifpacktype[chC] = dw_mtrlmx.Object.u_mtrldef_ifpacktype[ls_i] ins_rt_stru.net_weight[chC] = dw_mtrlmx.Object.net_weight[ls_i] ins_rt_stru.gross_weight[chC] = dw_mtrlmx.Object.gross_weight[ls_i] ins_rt_stru.cubage[chC] = dw_mtrlmx.Object.cubage[ls_i] ins_rt_stru.handtype[chC] = dw_mtrlmx.Object.handtype[ls_i] ins_rt_stru.mtrltypeid[chC] = dw_mtrlmx.Object.mtrltypeid[ls_i] ins_rt_stru.mtrlorigin[chC] = dw_mtrlmx.Object.mtrlorigin[ls_i] ins_rt_stru.mtrlprp[chC] = dw_mtrlmx.Object.mtrlprp[ls_i] END IF NEXT Destroy dw_mtrlmx end subroutine public subroutine wf_sptprice_in (s_mtrldef_array ss_inscust);//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用 IF Not dw_edit_mode THEN RETURN Long child_row,ls_null Long ins_storageid = 0 Long ls_sptid Dec ls_lastprice,ls_rebate Long chc = 1,ls_j,i SetNull(ls_null) dw_uc.AcceptText() dw_child.AcceptText() s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = False s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 ins_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ins_storageid = 0 Or IsNull(ins_storageid) THEN MessageBox('提示','请先选择仓库', Information!, OK! ) RETURN END IF child_row = dw_child.GetRow() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) Or ls_sptid = 0 THEN This.TriggerEvent("ue_f9") END IF dw_uc.AcceptText() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF Not IsValid(w_mtrldef_edit) THEN s_edit_index_tran s_ch_tran s_ch_tran.if_retrieve_all = False s_ch_tran.work_mode = 1 s_ch_tran.arg_pkid = 0 s_ch_tran.arg_string_code = '' s_ch_tran.b_long = 2 s_ch_tran.c_long = ins_storageid s_ch_tran.if_select_all = True 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()]) s_mtrldef_array s_inscust s_inscust = ss_inscust //接受返回结构 dw_child.AcceptText() FOR ls_j = 1 To UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 FOR i = 1 To dw_child.RowCount() IF s_inscust.mtrlid[ls_j] = dw_child.Object.u_inwaremx_mtrlid[i] THEN child_row = i EXIT END IF NEXT 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] 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_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] Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate String arg_msg,ls_status,ls_woodcode,ls_pcode String ls_1stunit ls_status = dw_child.Object.u_inwaremx_status[child_row] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[child_row] ls_pcode = dw_child.Object.u_inwaremx_pcode[child_row] ls_1stunit = '' //dw_child.Object.u_inwaremx_unit[child_row] IF cur_editfocus = 1 THEN IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,s_inscust.mtrlid[ls_j],ls_1stunit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN Int Mtrlorigin SELECT u_mtrldef.Mtrlorigin INTO :Mtrlorigin FROM u_mtrldef Where mtrlid = :s_inscust.mtrlid[ls_j]; IF sqlca.SQLCode <> 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = 0 ELSE IF Mtrlorigin > 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = s_inscust.lmbuyprice[ls_j] ELSE dw_child.Object.u_inwaremx_uprice[child_row] = 0 END IF END IF dw_child.Object.u_inwaremx_rebate[child_row] = 1 IF s_inscust.unit_buy[ls_j] = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit[ls_j] ELSE dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate_buy[ls_j] dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit_buy[ls_j] END IF ELSE dw_child.Object.u_inwaremx_uprice[child_row] = ls_1stnewcost IF ls_1stzqrate = 0 THEN dw_child.Object.u_inwaremx_rebate[child_row] = 1 ELSE dw_child.Object.u_inwaremx_rebate[child_row] = ls_1stzqrate END IF dw_child.Object.u_inwaremx_rate[child_row] = ls_1strate dw_child.Object.u_inwaremx_unit[child_row] = ls_1stunit END IF ELSE IF dw_child.Object.u_inwaremx_unit[child_row] = '' THEN IF s_inscust.unit_buy[ls_j] = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit[ls_j] ELSE dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate_buy[ls_j] dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit_buy[ls_j] END IF END IF END IF Decimal ld_wareqty String ls_msg ld_wareqty = 0 IF wf_get_wareqty(s_inscust.mtrlid[ls_j],s_inscust.mtrlcode[ls_j],ld_wareqty,ls_msg) = 0 THEN MessageBox('提示',ls_msg, Information!, OK! ) END IF dw_child.Object.wareqty[child_row] = ld_wareqty dw_child.AcceptText( ) String ls_sptmtrlname IF uo_sptprice.uf_getmtrlname(ls_sptid,s_inscust.mtrlid[ls_j],ls_sptmtrlname,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_sptmtrlname[child_row] = ls_sptmtrlname 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] keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab END IF NEXT This.TriggerEvent('ue_allowedit') END IF dw_child.SetRedraw(True) dw_child.SetFocus() end subroutine public function integer wf_openfile (datawindow arg_dw); String str_savename,named,s_grxh Int excelok,li_net Long li_count,i,ll_hang oleobject excelserver excelserver = Create oleobject excelok = excelserver.ConnectToNewObject("excel.application") //检查返回值,以确保已成功地连接到了Excel IF excelok <> 0 THEN MessageBox("提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!", Information!, OK! ) RETURN -1 END IF li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls") IF li_net > 0 THEN IF str_savename = "" THEN RETURN -1 arg_dw.SetTransObject(sqlca) arg_dw.InsertRow(0) arg_dw.Reset() excelserver.workbooks.Open(str_savename) excelserver.activesheet.cells.Copy datastore ds_col30 /////////////建立映射//////////////////// // ds_col30 = Create datastore ds_col30.DataObject = 'dw_col30' ds_col30.ImportClipboard(1) Long ll_s_col_count = 30 Long ll_d_col_count String ls_execltitlename,ls_filtername s_dytitle_filter ss_dytitle_filter[] Long k = 1,m Long li_argcnt = 1 String ls_cmd,ls_arg[] ll_d_col_count = Long(arg_dw.Object.datawindow.Column.Count) Long ll_map[] // 目标表与原表的映射,0为没有映射 String ls_colType[] // 目标表列类型 Long col_d, col_s SELECT Top 1 hang Into :ll_hang From u_dytitle_inwarebuy; FOR col_d = 1 To ll_d_col_count String ls_col_title, ls_col_name ls_col_name = arg_dw.Describe('#' + String(col_d) + '.Name') ls_colType[col_d] = arg_dw.Describe('#' + String(col_d) + '.ColType') ls_col_title = arg_dw.Describe(ls_col_name + '_t.Text') //数据窗口的标题名称 ll_map[col_d] = 0 FOR col_s = 1 To ll_s_col_count String ls_s_title ls_s_title = ds_col30.GetItemString(ll_hang , col_s) //execl表的标题名称 // SELECT execltitlename,filtername Into :ls_execltitlename,:ls_filtername From u_dytitle_inwarebuy Where Name = :ls_col_name; // // if lower(trim(ls_col_title)) = lower(trim(ls_s_title)) then IF Lower(Trim(ls_execltitlename)) = Lower(Trim(ls_s_title)) THEN ll_map[col_d] = col_s IF ls_filtername <> '' THEN //记录过滤 ss_dytitle_filter[k].num = col_s ss_dytitle_filter[k].filtername = ls_filtername k++ END IF EXIT END IF NEXT NEXT // TODO: 人工干预,设置映射 Long row_s, row_d String lk_temp FOR row_s = ll_hang + 1 To ds_col30.RowCount( ) //ll_hang + 1 //过滤 FOR k = 1 To UpperBound(ss_dytitle_filter) lk_temp = String( Trim(ds_col30.GetItemString(row_s, ss_dytitle_filter[k].num))) // ls_cmd = ss_dytitle_filter[k].filtername IF Pos(ls_cmd,',') > 0 THEN //如果是多少个过滤字眼 DO WHILE Len(ls_cmd) > 0 i = Pos( ls_cmd, ",") IF i = 0 THEN i = Len(ls_cmd) + 1 ls_arg[li_argcnt] = Left(ls_cmd, i - 1) li_argcnt = li_argcnt + 1 ls_cmd = Replace(ls_cmd, 1, i, "") LOOP FOR m = 1 To UpperBound(ls_arg) IF Pos(lk_temp,ls_arg[m]) > 0 THEN GOTO ext END IF NEXT ELSE //一个过滤字眼 IF Pos(lk_temp,ss_dytitle_filter[k].filtername) > 0 THEN GOTO ext END IF END IF // NEXT //过滤 row_d = arg_dw.InsertRow(0) FOR col_d = 1 To ll_d_col_count IF ll_map[col_d] = 0 THEN CONTINUE Any Value String ls_value ls_value = Trim(ds_col30.GetItemString(row_s, ll_map[col_d])) IF Lower(Left(ls_colType[col_d], 4)) = 'char' THEN Value = ls_value ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'long' & Or Lower(Left(ls_colType[col_d], 3)) = 'int' & Or Lower(Left(ls_colType[col_d], 3)) = 'num' & Or Lower(Left(ls_colType[col_d], 5)) = 'ulong' THEN Value = Long(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'deci' & Or Lower(Left(ls_colType[col_d], 4)) = 'real' THEN Value = Dec(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'date' THEN Value = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 12))) END IF arg_dw.SetItem(row_d, col_d, Value) NEXT ext: NEXT Destroy ds_col30 ///////////////////////////////////// // // li_count = arg_dw.ImportClipboard(2) //导入数据 (从第几行开始导入) Clipboard("") excelserver.quit() excelserver.DisconnectObject() Destroy excelserver FOR i = 1 To arg_dw.RowCount( ) // arg_dw.Object.repeat[i] = 0 NEXT arg_dw.AcceptText( ) RETURN 1 ELSE MessageBox('提示','没有指定导入文件!', Information!, OK! ) RETURN -1 END IF 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_uqty[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=dw_child.Object.u_inwaremx_packqty[i] ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i] dec_rebate = dw_child.Object.u_inwaremx_rebate[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_uqty[i] = dec_tmp END IF NEXT dw_child.AcceptText() ext: RETURN rslt end function public function integer wf_check_planprice (ref string arg_msg);Int rslt = 1 Long i Long llk_mtrlid Decimal dec_planprice,i_lmbuyprice dw_child.AcceptText() SELECT top 1 planprice INTO :i_lmbuyprice FROM u_mtrldef Where mtrlid = :llk_mtrlid; FOR i = 1 To dw_child.RowCount() dec_planprice = 0 i_lmbuyprice = 0 llk_mtrlid= dw_child.Object.u_inwaremx_mtrlid[i] dec_planprice = dw_child.Object.u_inwaremx_uprice[i] SELECT top 1 planprice INTO :i_lmbuyprice FROM u_mtrldef Where mtrlid = :llk_mtrlid; IF IsNull(i_lmbuyprice) THEN i_lmbuyprice = 0 IF IsNull(dec_planprice) THEN dec_planprice = 0 IF dec_planprice > i_lmbuyprice THEN arg_msg = arg_msg + '第'+ String(i)+'行超出计划价'+ string(i_lmbuyprice,'#,##0.####')+ ' 是否继续保存?~r ' END IF NEXT IF arg_msg <> '' THEN rslt = 0 END IF RETURN rslt end function public subroutine wf_enamt_facechg ();IF ii_enamt_notax_edit = 0 THEN //录入不含税单价 为 false dw_child.Modify('u_inwaremx_uprice_notax.protect = 1~t u_inwaremx_uprice_notax.Color = "0~trgb(0,0,0)"') dw_child.Modify('u_inwaremx_uprice_notax_t.Color = "0~trgb(0,0,0)"') ELSEIF ii_enamt_notax_edit = 1 THEN dw_child.Modify('u_inwaremx_uprice_notax.protect = 0~t u_inwaremx_uprice_notax.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_inwaremx_uprice_notax_t.Color = "0~trgb(0,0,255)"') END IF end subroutine public subroutine wf_ue_f7 (s_mtrldef_buytask_array s_inscust); IF Not dw_edit_mode THEN RETURN Long child_row,ls_sptid,ls_j child_row = dw_child.GetRow() Int li_statusflag,li_woodcodeflag,li_pcodeflag String arg_msg s_mtrldef_array arg_s_mtrldef dw_uc.AcceptText() dw_child.AcceptText() uo_custdef uo_cust uo_cust = Create uo_custdef uo_cust.commit_transaction = sqlca ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF ls_sptid <= 0 THEN MessageBox("提示","请先选择供应商", Information!, OK! ) RETURN END IF //仓库 Long ll_storageid Int li_if_cus_mtrlware Long ll_cusid String ls_cuscode, ls_cusname String ls_plancode Decimal ld_tax ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ll_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox("提示","查询仓库是否使用客户库存失败", Information!, OK! ) RETURN END IF IF li_if_cus_mtrlware = 1 THEN //ll_cusid = arg_cusid IF uo_cust.getinfo(ll_cusid,arg_msg) = 1 THEN ls_cuscode = uo_cust.s_cust.cuscode ls_cusname = uo_cust.s_cust.Name END IF ELSE //ll_cusid = 0 END IF s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = local_retrieve_all s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 s_tranf8.d_long = ls_sptid //IF Not IsValid(w_inware_buytask_ch) THEN // OpenWithParm(w_inware_buytask_ch,s_tranf8) // // s_mtrldef_buytask_array s_inscust // s_inscust = Message.PowerObjectParm //接受返回结构 dw_child.SetRedraw(False) FOR ls_j = 1 To UpperBound(s_inscust.buytaskid) IF s_inscust.buytaskid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_inwaremx_relid[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_uc.Object.u_inware_relint_1[dw_uc.GetRow()] = s_inscust.banktypeid[ls_j] // IF dw_uc.Object.part[dw_uc.GetRow()] = '' Or dw_uc.Object.part[dw_uc.GetRow()] = s_inscust.relcode[ls_j] THEN // dw_uc.Object.part[dw_uc.GetRow()] = s_inscust.relcode[ls_j] // ELSE // dw_uc.Object.part[dw_uc.GetRow()] = '' // END IF //明细表 dw_child.Object.u_inwaremx_ifrel[child_row] = 1 dw_child.Object.u_inwaremx_relid[child_row] = s_inscust.buytaskid[ls_j] dw_child.Object.u_inwaremx_relprintid[child_row] = s_inscust.printid[ls_j] 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_buytask_taskcode[child_row] = s_inscust.buytaskcode[ls_j] dw_child.Object.u_inwaremx_relcode[child_row] = s_inscust.buytaskcode[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_inwaremx_uprice[child_row] = s_inscust.uprice[ls_j] dw_child.Object.u_inwaremx_rebate[child_row] = s_inscust.rebate[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_inwaremx_unit[child_row] = s_inscust.mxunit[ls_j] dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate[ls_j] dw_child.Object.u_inwaremx_mxdscrp[child_row] = s_inscust.dscrp[ls_j] dw_child.Object.u_inwaremx_mxdscrp2[child_row] = s_inscust.dscrp2[ls_j] dw_child.Object.u_inwaremx_mxdscrp3[child_row] = s_inscust.dscrp3[ls_j] dw_child.Object.u_inwaremx_mxdscrp4[child_row] = s_inscust.dscrp4[ls_j] dw_child.Object.u_inwaremx_bootqty[child_row] = s_inscust.qty[ls_j] dw_child.Object.u_inwaremx_uqty[child_row] = s_inscust.uqty[ls_j] dw_child.Object.u_inwaremx_buyqty[child_row] = s_inscust.uqty[ls_j] dw_child.Object.u_inwaremx_addqty[child_row] = s_inscust.addqty[ls_j] dw_child.Object.u_buytask_relcode[child_row] = s_inscust.relcode[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_inwaremx_sptmtrlname[child_row] = s_inscust.sptmtrlname[ls_j] ls_plancode = f_get_newplancode(ll_storageid) dw_child.Object.u_inwaremx_plancode[child_row] = ls_plancode IF s_inscust.plancode[ls_j] <> '' then dw_child.Object.u_inwaremx_plancode[child_row] = s_inscust.plancode[ls_j] 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.tax[ls_j] <> 0 THEN dw_child.Object.u_inwaremx_tax[child_row] = s_inscust.tax[ls_j] ELSE IF f_find_tax(ls_sptid,'u_spt',ld_tax) = 0 THEN ld_tax = 0 ELSE dw_child.Object.u_inwaremx_tax[child_row] = ld_tax END IF END IF IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-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_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag IF li_if_cus_mtrlware = 1 THEN dw_child.Object.u_inwaremx_if_mtrlware[child_row] = 1 dw_child.Object.u_cust_cuscode[child_row] = s_inscust.cuscode[ls_j] dw_child.Object.u_cust_name[child_row] = s_inscust.cusname[ls_j] dw_child.Object.u_inwaremx_sptid_cusid[child_row] = s_inscust.cusid[ls_j] END IF //获取当前库存 Decimal ld_wareqty String ls_msg ld_wareqty = 0 IF wf_get_wareqty(s_inscust.mtrlid[ls_j],s_inscust.mtrlcode[ls_j],ld_wareqty,ls_msg) = 0 THEN MessageBox('提示',ls_msg, Information!, OK! ) END IF dw_child.Object.wareqty[child_row] = ld_wareqty wf_cmpl_amt(child_row) END IF NEXT dw_child.SetRedraw(True) dw_child.SetColumn('u_inwaremx_uqty') This.TriggerEvent('ue_allowedit') //END IF Destroy uo_cust end subroutine on w_inware_buy.create int iCurrent call super::create this.ddlb_scid=create ddlb_scid this.st_3=create st_3 this.st_2=create st_2 this.cbx_enamt_edit=create cbx_enamt_edit this.ddlb_status=create ddlb_status this.cbx_packqty_cmpl=create cbx_packqty_cmpl this.cbx_enamt_notax_edit=create cbx_enamt_notax_edit this.cbx_all=create cbx_all iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_scid this.Control[iCurrent+2]=this.st_3 this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.cbx_enamt_edit this.Control[iCurrent+5]=this.ddlb_status this.Control[iCurrent+6]=this.cbx_packqty_cmpl this.Control[iCurrent+7]=this.cbx_enamt_notax_edit this.Control[iCurrent+8]=this.cbx_all end on on w_inware_buy.destroy call super::destroy destroy(this.ddlb_scid) destroy(this.st_3) destroy(this.st_2) destroy(this.cbx_enamt_edit) destroy(this.ddlb_status) destroy(this.cbx_packqty_cmpl) destroy(this.cbx_enamt_notax_edit) destroy(this.cbx_all) end on event retrieve_pageretr;Boolean cb_nextpage_enabled,cb_retrieveall_enabled Boolean 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 //childdw.retrieve() dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,cur_flag,cur_secflag,sys_user_spttype) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.TriggerEvent(RowFocusChanged!) END IF wf_flagstatus_rf() THIS.TriggerEvent('retrieve_childdw') //THIS.TriggerEvent('retrieve_fjnum')//改成单据功能手动刷新 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 obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( inwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( inwarecode LIKE "'+trim(sle_usual_query.text)+'" )' END IF end if dw_pageretr.setfilter(obj_expr) dw_pageretr.SetRedraw(False) dw_pageretr.filter() if dw_pageretr.rowcount()>=1 then dw_pageretr.selectrow(0,false) dw_pageretr.selectrow(1,true) dw_pageretr.SetRow(1) dw_pageretr.triggerevent(rowfocuschanged!) end if dw_pageretr.SetRedraw(TRUE) 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 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_buy 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 = 13 //uc dw前7列可以编辑 child_column_int = 28 //子dw前8列可以编辑 uo_ware = Create uo_inware_buy uo_ware.commit_transaction = sqlca uo_sptprice = Create uo_spt_price IF sys_option_buy_rateedit = 1 THEN dw_child.Modify ("u_inwaremx_rate_t.color=16711680") dw_child.Modify ("u_inwaremx_rate.color=16711680") dw_child.Modify ("u_inwaremx_rate.protect=0") ELSE dw_child.Modify ("u_inwaremx_rate.protect=1") END IF s_hide_col s_col,s_null s_col.col_1 = 'u_inwaremx_fprice' s_col.col_2 = 'u_inwaremx_rebate' s_col.col_3 = 'u_inwaremx_price' s_col.col_4 = 'u_inwaremx_uamt' s_col.col_5 = 'u_inwaremx_uprice' s_col.col_6 = 'u_inwaremx_uamt_tax' s_col.col_7 = 'u_inwaremx_bsamt' s_col.col_8 = 'u_inwaremx_bsamt_tax' s_col.col_9 = 'u_inwaremx_tax' s_col.col_10 = 'u_inwaremx_uprice_notax' s_col.col_11 = 'fprice_notax' s_col.col_12 = 'uamt_notax' f_hide_col(121,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_dftsptprice s_col_dftsptprice.col_1 = 'u_inwaremx_dftsptprice' f_hide_col(1462,dw_child,s_col_dftsptprice) IF f_power_ind(124) Or f_power_ind(1769) THEN string a dw_child.modify("u_inwaremx_uprice.Color = ~"0~~t if(u_inwaremx_uprice * u_inwaremx_rebate > u_inwaremx_dftsptprice ,rgb(255,0,0),rgb(0,0,255))~"") END IF end event event refresh_interface;call super::refresh_interface;wf_flagstatus_rf() ddlb_status.Enabled = NOT dw_edit_mode cbx_enamt_edit.Enabled = NOT dw_edit_mode cbx_packqty_cmpl.Enabled = NOT dw_edit_mode cbx_enamt_notax_edit.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 dw_edit_mode THEN IF flag = 1 AND secflag = 0 THEN dw_uc.Modify('storageid.protect=1 ~n u_spt_sptcode.protect=1') dw_child.Modify('u_inwaremx_ifrel.protect=1 ~n u_inwaremx_relcode.protect=1 ~n u_mtrldef_mtrlcode.protect=1 ~n u_inwaremx_uqty.protect=1 ~n u_inwaremx_status.protect=1 ~n u_inwaremx_woodcode.protect=1 ~n u_inwaremx_pcode.protect=1 ~n u_inwaremx_addqty.protect=1 ~n u_inwaremx_unit.protect=1 ~n u_inwaremx_plancode.protect=1') cb_xm.Enabled = FALSE ELSE dw_uc.Modify('storageid.protect=0 ~n u_spt_sptcode.protect=0') // dw_child.Modify('u_inwaremx_ifrel.protect=0 ~n u_inwaremx_relcode.protect=0 ~n u_mtrldef_mtrlcode.protect=0 ~n u_inwaremx_uqty.protect=0 ~n u_inwaremx_status.protect=0 ~n u_inwaremx_woodcode.protect=0 ~n u_inwaremx_pcode.protect=0 ~n u_inwaremx_addqty.protect=0 ~n u_inwaremx_unit.protect=0 ~n u_inwaremx_plancode.protect=0') dw_child.Modify('u_inwaremx_ifrel.protect=0 ~n u_inwaremx_relcode.protect=0 ~n u_mtrldef_mtrlcode.protect=0 ~n u_inwaremx_uqty.protect=0 ~n u_inwaremx_status.protect=0 ~n u_inwaremx_woodcode.protect=0 ~n u_inwaremx_pcode.protect=0 ~n u_inwaremx_addqty.protect=0 ~n u_inwaremx_unit.protect=0 ') cb_xm.Enabled = TRUE END IF ELSE dw_uc.Modify('storageid.protect=0 ~n u_spt_sptcode.protect=0') dw_child.Modify('u_inwaremx_ifrel.protect=0 ~n u_inwaremx_relcode.protect=0 ~n u_mtrldef_mtrlcode.protect=0 ~n u_inwaremx_uqty.protect=0 ~n u_inwaremx_status.protect=0 ~n u_inwaremx_woodcode.protect=0 ~n u_inwaremx_pcode.protect=0 ~n u_inwaremx_addqty.protect=0 ~n u_inwaremx_unit.protect=0 ~n u_inwaremx_plancode.protect=0') END IF IF ii_enamt_edit = 0 THEN dw_child.Modify('u_inwaremx_uamt.protect = 1~t u_inwaremx_uamt.Color = 0') dw_child.Modify('u_inwaremx_uamt_t.Color = 0') ELSE dw_child.Modify('u_inwaremx_uamt.protect = 0~t u_inwaremx_uamt.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_inwaremx_uamt_t.Color = "0~trgb(0,0,255)"') END IF IF sys_option_outware_if_buyqty = 0 THEN dw_child.Modify('u_inwaremx_buyqty.protect = 1~t u_inwaremx_buyqty.Color = 0') dw_child.Modify('u_inwaremx_buyqty_t.Color = 0') ELSE dw_child.Modify('u_inwaremx_buyqty.protect = 0~t u_inwaremx_buyqty.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_inwaremx_buyqty_t.Color = "0~trgb(0,0,255)"') END IF IF sys_power_issuper Or Not f_power_ind(1828) THEN //492 限制折扣 dw_child.Modify('u_inwaremx_uprice.protect=0 ') ELSE dw_child.Modify("u_inwaremx_uprice.protect = ~"0~~t if(u_inwaremx_ifrel = 1 ,1,0)~"") END IF end event event close;call super::close;destroy uo_ware destroy uo_sptprice wf_del_tempfilepathname() end event event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用 IF Not dw_edit_mode THEN RETURN Long child_row,ls_null Long ll_storageid = 0 Long ls_sptid,ls_mtrlid Dec ls_lastprice,ls_rebate,ld_tax Long chc = 1,ls_j String ls_plancode String ls_con_name String ls_sptmtrlname,ls_sptmtrlcode,ls_sptmtrlmode SetNull(ls_null) dw_uc.AcceptText() dw_child.AcceptText() s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = False s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] IF ll_storageid = 0 Or IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库', Information!, OK! ) RETURN END IF child_row = dw_child.GetRow() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) Or ls_sptid = 0 THEN This.TriggerEvent("ue_f9") END IF dw_uc.AcceptText() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF Not IsValid(w_mtrldef_edit) THEN s_edit_index_tran s_ch_tran s_ch_tran.if_retrieve_all = False s_ch_tran.work_mode = 1 s_ch_tran.arg_pkid = 0 s_ch_tran.arg_string_code = '' s_ch_tran.b_long = 2 s_ch_tran.c_long = ll_storageid s_ch_tran.d_long = ls_sptid s_ch_tran.if_select_all = True 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] 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] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]//供应商物料别名 ls_mtrlid =S_INSCUST.mtrlid[ls_j] Select isnull(sptmtrlcode,''), isnull(sptmtrlname,''), isnull(sptmtrlmode,'') Into :ls_sptmtrlcode, :ls_sptmtrlname, :ls_sptmtrlmode From u_sptmtrlname Where mtrlid= :ls_mtrlid and sptid= :ls_sptid ; dw_child.Object.u_sptmtrlname_sptmtrlname[child_row] = ls_sptmtrlname dw_child.Object.u_sptmtrlname_sptmtrlcode[child_row] = ls_sptmtrlcode dw_child.Object.u_sptmtrlname_sptmtrlmode[child_row] =ls_sptmtrlmode //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 f_find_tax(ls_sptid,'u_spt',ld_tax) = 0 then ld_tax = 0 ELSE dw_child.Object.u_inwaremx_tax[child_row] = ld_tax END IF 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 Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate String arg_msg,ls_status,ls_woodcode,ls_pcode String ls_1stunit ls_status = dw_child.Object.u_inwaremx_status[child_row] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[child_row] ls_pcode = dw_child.Object.u_inwaremx_pcode[child_row] ls_1stunit = '' //dw_child.Object.u_inwaremx_unit[child_row] IF cur_editfocus = 1 THEN IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,s_inscust.mtrlid[ls_j],ls_1stunit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN Int Mtrlorigin SELECT u_mtrldef.Mtrlorigin INTO :Mtrlorigin FROM u_mtrldef Where mtrlid = :s_inscust.mtrlid[ls_j]; IF sqlca.SQLCode <> 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = 0 ELSE IF Mtrlorigin > 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = s_inscust.lmbuyprice[ls_j] ELSE dw_child.Object.u_inwaremx_uprice[child_row] = 0 END IF END IF dw_child.Object.u_inwaremx_rebate[child_row] = 1 IF s_inscust.unit_buy[ls_j] = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit[ls_j] ELSE dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate_buy[ls_j] dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit_buy[ls_j] END IF ELSE dw_child.Object.u_inwaremx_uprice[child_row] = ls_1stnewcost IF ls_1stzqrate = 0 THEN dw_child.Object.u_inwaremx_rebate[child_row] = 1 ELSE dw_child.Object.u_inwaremx_rebate[child_row] = ls_1stzqrate END IF dw_child.Object.u_inwaremx_rate[child_row] = ls_1strate dw_child.Object.u_inwaremx_unit[child_row] = ls_1stunit END IF ELSE IF dw_child.Object.u_inwaremx_unit[child_row] = '' THEN IF s_inscust.unit_buy[ls_j] = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit[ls_j] ELSE dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate_buy[ls_j] dw_child.Object.u_inwaremx_unit[child_row] = s_inscust.unit_buy[ls_j] END IF END IF END IF Decimal ld_wareqty String ls_msg ld_wareqty = 0 IF wf_get_wareqty(s_inscust.mtrlid[ls_j],s_inscust.mtrlcode[ls_j],ld_wareqty,ls_msg) = 0 THEN MessageBox('提示',ls_msg, Information!, OK! ) END IF dw_child.Object.wareqty[child_row] = ld_wareqty dw_child.AcceptText( ) //String ls_sptmtrlname IF uo_sptprice.uf_getmtrlname(ls_sptid,s_inscust.mtrlid[ls_j],ls_sptmtrlname,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_sptmtrlname[child_row] = ls_sptmtrlname 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] wf_cmpl_amt(child_row) END IF NEXT keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab This.TriggerEvent('ue_allowedit') END IF dw_child.SetRedraw(True) dw_child.SetFocus() 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(ll_scid,uc_relid) dw_child.SetRedraw (TRUE) ELSE dw_child.Reset() END IF end event event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认] IF Not dw_edit_mode THEN RETURN Long uc_row uc_row = dw_uc.GetRow() IF uc_row = 0 THEN MessageBox('提示','请选定进仓单!', Information!, OK! ) RETURN END IF dw_uc.AcceptText() IF Not IsValid(W_spt_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 = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()])) IF sys_spt_hideinfo = 0 THEN OpenWithParm(W_spt_edit,s_ch_tran) //调用 ELSE OpenWithParm(W_spt_ch,s_ch_tran) //调用 END IF S_spt S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.sptid > 0 THEN //正常返回值则可以取以下值 //重置dw_child 返回0不更换供应商 IF wf_change_sptid(S_INSCUST.sptid) = 0 THEN RETURN dw_uc.SetRedraw(False) dw_uc.Object.sptid[uc_row] = S_INSCUST.sptid dw_uc.Object.u_spt_name[uc_row] = S_INSCUST.Name dw_uc.Object.u_spt_sptcode[uc_row] = S_INSCUST.sptcode IF S_INSCUST.dftbanktypeid > 0 THEN dw_uc.Object.u_inware_relint_1[uc_row] = S_INSCUST.dftbanktypeid END IF IF S_INSCUST.dftmoneyid > 0 THEN dw_uc.Object.u_inware_relint_3[uc_row] = S_INSCUST.dftmoneyid dw_uc.Object.u_inware_mrate[uc_row] = f_get_mrate(S_INSCUST.dftmoneyid) END IF dw_uc.SetRedraw(True) dw_uc.SetColumn("indate") END IF END IF end event event ue_viewprint;call super::ue_viewprint;IF NOT (f_power_ind(107) or f_power_ind(455)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF LONG LS_ROW LS_ROW=dw_pageretr.getrow() IF LS_ROW<=0 THEN MESSAGEBOX('错误','没有打印目标单据!', StopSign!, OK! ) RETURN END IF if sys_option_auditprint = 1 then if dw_pageretr.object.flag[ls_row] <> 1 then MESSAGEBOX('错误','目标单据还未审核,不能打印!', StopSign!, OK! ) RETURN END IF 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('错误','目标单据还未审核,不能打印!', StopSign!, OK! ) RETURN END IF END IF ls_prmsg.obj_dwNAME = ls_newname ELSE ls_prmsg.obj_dwNAME = 'dw_rp_inware_buy_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=cur_scid 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,cur_scid,dw_pageretr.object.inwareid[LS_ROW],'','',arg_msg,true) string ls_taskcode ls_taskcode = dw_pageretr.Object.inwarecode[dw_pageretr.GetRow()] IF f_billevent_trigger (403, 1, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF end event event ue_f7;call super::ue_f7; IF Not dw_edit_mode THEN RETURN Long child_row,ls_sptid,ls_j child_row = dw_child.GetRow() Int li_statusflag,li_woodcodeflag,li_pcodeflag String arg_msg string ls_handtype s_mtrldef_array arg_s_mtrldef dw_uc.AcceptText() dw_child.AcceptText() uo_custdef uo_cust uo_cust = Create uo_custdef uo_cust.commit_transaction = sqlca ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF ls_sptid <= 0 THEN MessageBox("提示","请先选择供应商", Information!, OK! ) RETURN END IF //仓库 Long ll_storageid Int li_if_cus_mtrlware Long ll_cusid,ll_sptid,ls_mtrlid String ls_cuscode, ls_cusname String ls_plancode Decimal ld_tax String ls_sptmtrlname,ls_sptmtrlcode,ls_sptmtrlmode ll_storageid = dw_uc.Object.storageid[dw_uc.GetRow()] SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ll_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox("提示","查询仓库是否使用客户库存失败", Information!, OK! ) RETURN END IF IF li_if_cus_mtrlware = 1 THEN //ll_cusid = arg_cusid IF uo_cust.getinfo(ll_cusid,arg_msg) = 1 THEN ls_cuscode = uo_cust.s_cust.cuscode ls_cusname = uo_cust.s_cust.Name END IF ELSE //ll_cusid = 0 END IF s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = local_retrieve_all s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 s_tranf8.d_long = ls_sptid IF Not IsValid(w_inware_buytask_ch) THEN OpenWithParm(w_inware_buytask_ch,s_tranf8) s_mtrldef_buytask_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 dw_child.SetRedraw(False) FOR ls_j = 1 To UpperBound(s_inscust.buytaskid) IF s_inscust.buytaskid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_inwaremx_relid[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_uc.Object.u_inware_relint_1[dw_uc.GetRow()] = s_inscust.banktypeid[ls_j] // IF dw_uc.Object.part[dw_uc.GetRow()] = '' Or dw_uc.Object.part[dw_uc.GetRow()] = s_inscust.relcode[ls_j] THEN // dw_uc.Object.part[dw_uc.GetRow()] = s_inscust.relcode[ls_j] // ELSE // dw_uc.Object.part[dw_uc.GetRow()] = '' // END IF //明细表 dw_child.Object.u_inwaremx_ifrel[child_row] = 1 dw_child.Object.u_inwaremx_relid[child_row] = s_inscust.buytaskid[ls_j] dw_child.Object.u_inwaremx_relprintid[child_row] = s_inscust.printid[ls_j] 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_buytask_taskcode[child_row] = s_inscust.buytaskcode[ls_j] dw_child.Object.u_inwaremx_relcode[child_row] = s_inscust.buytaskcode[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_inwaremx_uprice[child_row] = s_inscust.uprice[ls_j] dw_child.Object.u_inwaremx_rebate[child_row] = s_inscust.rebate[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_inwaremx_unit[child_row] = s_inscust.mxunit[ls_j] dw_child.Object.u_inwaremx_rate[child_row] = s_inscust.rate[ls_j] dw_child.Object.u_inwaremx_mxdscrp[child_row] = s_inscust.dscrp[ls_j] dw_child.Object.u_inwaremx_mxdscrp2[child_row] = s_inscust.dscrp2[ls_j] dw_child.Object.u_inwaremx_mxdscrp3[child_row] = s_inscust.dscrp3[ls_j] dw_child.Object.u_inwaremx_mxdscrp4[child_row] = s_inscust.dscrp4[ls_j] dw_child.Object.u_inwaremx_bootqty[child_row] = s_inscust.qty[ls_j] dw_child.Object.u_inwaremx_uqty[child_row] = s_inscust.uqty[ls_j] dw_child.Object.u_inwaremx_buyqty[child_row] = s_inscust.uqty[ls_j] dw_child.Object.u_inwaremx_addqty[child_row] = s_inscust.addqty[ls_j] dw_child.Object.u_buytask_relcode[child_row] = s_inscust.relcode[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_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] dw_child.Object.u_saletask_taskcode[child_row] = s_inscust.saletaskcode[ls_j] dw_child.Object.u_saletask_relcode[child_row] = s_inscust.salerelcode[ls_j] ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()]//供应商物料别名 ls_mtrlid = s_inscust.mtrlid[ls_j] Select isnull(sptmtrlcode,''), isnull(sptmtrlname,''), isnull(sptmtrlmode,'') Into :ls_sptmtrlcode, :ls_sptmtrlname, :ls_sptmtrlmode From u_sptmtrlname Where mtrlid= :ls_mtrlid and sptid= :ll_sptid ; dw_child.Object.u_sptmtrlname_sptmtrlname[child_row] = ls_sptmtrlname dw_child.Object.u_sptmtrlname_sptmtrlcode[child_row] = ls_sptmtrlcode dw_child.Object.u_sptmtrlname_sptmtrlmode[child_row] =ls_sptmtrlmode dw_child.Object.u_inwaremx_sptmtrlname[child_row] = s_inscust.sptmtrlname[ls_j] dw_child.Object.u_buytask_dscrp[child_row] = s_inscust.buytask_dscrp[ls_j] IF s_inscust.plancode[ls_j] = '' THEN ls_plancode = f_get_newplancode(ll_storageid) dw_child.Object.u_inwaremx_plancode[child_row] = ls_plancode ELSE dw_child.Object.u_inwaremx_plancode[child_row] = s_inscust.plancode[ls_j] 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.tax[ls_j] <> 0 THEN dw_child.Object.u_inwaremx_tax[child_row] = s_inscust.tax[ls_j] ELSE IF f_find_tax(ls_sptid,'u_spt',ld_tax) = 0 THEN ld_tax = 0 ELSE dw_child.Object.u_inwaremx_tax[child_row] = ld_tax END IF END IF IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ls_handtype = "" ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] ls_handtype = arg_s_mtrldef.handtype[1] END IF dw_child.Object.u_mtrldef_handtype[child_row] = ls_handtype dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag IF li_if_cus_mtrlware = 1 THEN dw_child.Object.u_inwaremx_if_mtrlware[child_row] = 1 dw_child.Object.u_cust_cuscode[child_row] = s_inscust.cuscode[ls_j] dw_child.Object.u_cust_name[child_row] = s_inscust.cusname[ls_j] dw_child.Object.u_inwaremx_sptid_cusid[child_row] = s_inscust.cusid[ls_j] END IF //获取当前库存 Decimal ld_wareqty String ls_msg ld_wareqty = 0 IF wf_get_wareqty(s_inscust.mtrlid[ls_j],s_inscust.mtrlcode[ls_j],ld_wareqty,ls_msg) = 0 THEN MessageBox('提示',ls_msg, Information!, OK! ) END IF dw_child.Object.wareqty[child_row] = ld_wareqty wf_cmpl_amt(child_row) END IF NEXT dw_child.SetRedraw(True) dw_child.SetColumn('u_inwaremx_uqty') This.TriggerEvent('ue_allowedit') END IF Destroy uo_cust end event event ue_print;call super::ue_print;IF NOT (f_power_ind(107) or f_power_ind(455)) THEN MessageBox('提示',sys_msg_pow, 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 sys_option_auditprint = 1 then if dw_pageretr.object.flag[dw_pageretr.getrow()] <> 1 then MESSAGEBOX('错误','目标单据还未审核,不能打印!', Information!, OK! ) RETURN END IF end if IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('错误','目标单据还未审核,不能打印!', StopSign!, OK! ) RETURN END IF END IF ls_prmsg.obj_dwNAME = ls_newname ELSE ls_prmsg.obj_dwNAME = 'dw_rp_inware_buy_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=cur_scid 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, Information!, 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,cur_scid,dw_pageretr.object.inwareid[dw_pageretr.getrow()],'','',arg_msg,true) end event event resize;call super::resize;long w_width,w_height //w_width = 3600 //w_height = 2300 // // //if newwidth < w_width then this.width = w_width //if newheight < w_height then this.height = w_height // // //dw_child.width=this.width - (w_width - 3547) //dw_child.height=this.height - (w_height - 880) // //cb_add.y=this.height - (w_height - 2030) //cb_edit.y=this.height - (w_height - 2030) //cb_delet.y=this.height - (w_height - 2030) //cb_addzy.y=this.height - (w_height - 2030) //cb_add_xm.y=this.height - (w_height - 2030) //cb_dele_xm.y=this.height - (w_height - 2030) //cb_exit.y=this.height - (w_height - 2030) //cb_auditing.y=this.height - (w_height - 2030) //cb_cancelauditing.y=this.height - (w_height - 2030) //cb_copy.y=this.height - (w_height - 2030) //cb_paste.y=this.height - (w_height - 2030) //cb_csecauditing.y=this.height - (w_height - 2030) //cb_secauditing.y=this.height - (w_height - 2030) // //cbx_1.y=this.height - (w_height - 2144) // // end event event ue_f10;call super::ue_f10;String ls_1stunit,arg_msg,ls_status,ls_woodcode,ls_pcode Decimal rtn_price,rtn_zqrate,rtn_rate Long ls_mtrlid,ls_sptid IF NOT IsValid(w_unit_ch) THEN IF dw_child.GetRow() < 1 THEN RETURN dw_uc.AcceptText() ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) OR ls_sptid = 0 THEN THIS.TriggerEvent("ue_f9") END IF dw_child.AcceptText() ls_mtrlid = dw_child.Object.u_inwaremx_mtrlid[dw_child.GetRow()] OpenWithParm(w_unit_ch,ls_mtrlid) s_unit s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 IF s_inscust.unit <> '' THEN dw_child.Object.u_inwaremx_unit[dw_child.GetRow()] = s_inscust.unit dw_child.Object.u_inwaremx_rate[dw_child.GetRow()] = s_inscust.rate ls_1stunit = s_inscust.unit ls_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] ls_status = dw_child.Object.u_inwaremx_status[dw_child.GetRow()] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[dw_child.GetRow()] ls_pcode = dw_child.Object.u_inwaremx_pcode[dw_child.GetRow()] IF uo_sptprice.uf_getmtrlsptprice(ls_sptid,ls_mtrlid,ls_1stunit,ls_status,ls_woodcode,ls_pcode,0,rtn_price,rtn_zqrate,rtn_rate,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_uprice[dw_child.GetRow()] = rtn_price dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] = rtn_zqrate END IF dw_child.SetColumn( 'u_inwaremx_uqty') END IF 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(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 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('error!',arg_msg) 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_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_uqty[child_row] = s_input.qty dw_child.Object.u_inwaremx_buyqty[child_row] = s_input.qty END IF END IF end event event ue_addmx;Long uc_row,ll_flag uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据', Information!, OK! ) RETURN END IF ll_flag = dw_uc.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能增加明细内容', Information!, OK! ) RETURN END IF this.triggerevent('ue_f8') dw_child.SetFocus() end event event ue_deletemx;Long uc_row,ll_flag uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据', Information!, OK! ) RETURN END IF ll_flag = dw_uc.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能增加明细内容', Information!, OK! ) RETURN END IF IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_child.GETROW()=0 THEN MESSAGEBOX('提示','请选择删除的行对象!', Information!, OK! ) RETURN END IF dw_child.DeleteRow (0) dw_child.TriggerEvent (rowfocuschanged!) end event event ue_copyrow;Long uc_row,ll_flag uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据', Information!, OK! ) RETURN END IF ll_flag = dw_uc.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能增加明细内容', Information!, OK! ) RETURN END IF long ll_childrow ll_childrow = dw_child.GETROW() IF ll_childrow=0 THEN MESSAGEBOX('提示','请选择复制对象!', Information!, OK! ) RETURN END IF dw_child.RowsCopy (ll_childrow,ll_childrow,Primary!,ds_copypaste,1,Primary!) ds_copypaste.RowsCopy (1,1,Primary!,dw_child,dw_child.rowcount() + 1,Primary!) ds_copypaste.reset() dw_child.selectrow(0,false) dw_child.setrow(dw_child.rowcount()) dw_child.scrolltorow(dw_child.rowcount()) dw_child.selectrow(dw_child.rowcount(),true) end event event ue_insertmx;Long uc_row,ll_flag uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据', Information!, OK! ) RETURN END IF ll_flag = dw_uc.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能增加明细内容', Information!, OK! ) RETURN END IF long ll_childrow,li_row ll_childrow = dw_child.getrow() li_row = dw_child.insertrow(ll_childrow) dw_child.selectrow(0,false) dw_child.setrow(li_row) dw_child.scrolltorow(li_row) dw_child.selectrow(li_row,true) end event event ue_rpt_print;call super::ue_rpt_print;IF NOT (f_power_ind(107) or f_power_ind(455)) THEN MessageBox('提示',sys_msg_pow, 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 = '采购收货单' 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, Information!, OK! ) RETURN END IF uo_print.ds_print() //**更新打印次料 printnum = message.doubleparm f_update_printnum('u_inware',printnum,cur_scid,dw_pageretr.object.inwareid[row],'','',arg_msg,true) end event event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF NOT (f_power_ind(107) or f_power_ind(455)) THEN MessageBox('提示',sys_msg_pow, 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('错误','目标单据还未审核,不能打印!', StopSign!, 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) //**更新打印次料 string arg_msg printnum = message.doubleparm f_update_printnum('u_inware',printnum,cur_scid,dw_pageretr.object.inwareid[row],'','',arg_msg,true) end event type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_buy end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_buy end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_buy integer x = 187 integer y = 188 integer width = 549 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_buy integer x = 2985 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_buy integer width = 320 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_buy integer x = 1819 integer y = 300 integer width = 1723 integer height = 1204 string dataobject = "dw_inware_buy_index" end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf() wf_check_billfj() if dw_edit_mode then return if currentrow <=0 then dw_child.reset() return end if this.selectrow(0,false) this.selectrow(currentrow,true) dw_uc.setrow(currentrow) dw_uc.scrolltorow (currentrow) if not dw_edit_mode then parent.triggerevent('retrieve_childdw') end event type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_buy integer y = 208 string text = "编号含" end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_buy integer x = 3136 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_buy integer y = 300 integer width = 1819 integer height = 1212 string dataobject = "dw_inware_buy_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(dw_child.RowCount()) dw_child.SetColumn ('u_inwaremx_ifrel') RETURN 1 ELSEIF dw_uc.GetColumnName ( ) = 'u_spt_sptcode' And Key = KeyEnter! THEN String ls_code,ls_name,ls_find_code Long ls_sptid Long cnt = 0 Boolean if_find = False Long dftbanktypeid, dftmoneyid dw_uc.AcceptText() ls_code = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()])) SELECT u_spt.sptid, u_spt.name, u_spt.sptcode, dftbanktypeid,dftmoneyid INTO :ls_sptid,:ls_name,:ls_code,:dftbanktypeid,:dftmoneyid FROM u_spt Where ( sptcode = :ls_code Or Name = :ls_code ) and inuse = 1; IF sqlca.SQLCode <> 0 THEN IF Pos(Trim(ls_code),'%') = 0 THEN ls_find_code = '%'+ Trim(ls_code) + '%' ELSE ls_find_code = Trim(ls_code) END IF SELECT count(*) INTO :cnt FROM u_spt Where ( sptcode Like :ls_find_code Or Name Like :ls_find_code ) and inuse = 1; IF sqlca.SQLCode <> 0 THEN Parent.TriggerEvent('ue_f9') RETURN 1 END IF IF cnt <> 1 THEN Parent.TriggerEvent('ue_f9') RETURN 1 ELSE SELECT u_spt.sptid, u_spt.sptcode, u_spt.name, dftbanktypeid,dftmoneyid INTO :ls_sptid,:ls_code,:ls_name,:dftbanktypeid,:dftmoneyid FROM u_spt Where ( sptcode Like :ls_find_code Or Name Like :ls_find_code ) and inuse = 1; IF sqlca.SQLCode <> 0 THEN Parent.TriggerEvent('ue_f9') RETURN 1 ELSE if_find = True END IF END IF ELSE if_find = True END IF IF if_find THEN //重置dw_child wf_change_sptid(ls_sptid) dw_uc.SetRedraw(False) dw_uc.Object.sptid[dw_uc.GetRow()] = ls_sptid dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ls_code dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_name dw_uc.Object.u_inware_relint_1[dw_uc.GetRow()] = dftbanktypeid dw_uc.Object.u_inware_relint_3[dw_uc.GetRow()] = dftmoneyid dw_uc.Object.u_inware_mrate[dw_uc.GetRow()] = f_get_mrate( dftmoneyid) dw_uc.SetRedraw(True) dw_uc.SetColumn("indate") 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 event event dw_uc::doubleclicked;IF dw_edit_mode and row >0 THEN if dwo.name='u_spt_sptcode' then parent.triggerevent('ue_f9') END IF end event event dw_uc::itemchanged;call super::itemchanged;if not dw_edit_mode then return dw_uc.accepttext() if dw_uc.getrow() <= 0 then return IF dwo.Name = 'storageid' THEN dw_child.Reset() PARENT.TriggerEvent("insert_childrow") elseif dwo.name = 'u_inware_relint_3' then long ll_moneyid ll_moneyid = dw_uc.object.u_inware_relint_3[dw_uc.getrow()] dw_uc.setredraw(false) dw_uc.object.u_inware_mrate[dw_uc.getrow()]=f_get_mrate(ll_moneyid) dw_uc.setredraw(true) END IF //long ll_storageid,ll_if_plancode //string st // //IF pos(dwo.Name , 'storageid') > 0 THEN // // ll_storageid = long(data) // select if_plancode // into :ll_if_plancode // from u_storage // where storageid = :ll_storageid; // // if ll_if_plancode = 0 then // dw_child.modify('u_inwaremx_plancode.protect = 1') // end if // // dw_child.Reset() // PARENT.TriggerEvent("insert_childrow") //END IF end event event dw_uc::clicked;call super::clicked; IF row <= 0 THEN RETURN IF dwo.Name = 'p_dview' THEN Parent.TriggerEvent('ue_add_dscrp') END IF IF dw_edit_mode THEN IF dwo.Name = 'p_p' THEN Parent.TriggerEvent('ue_f9') ELSEIF dwo.Name = 'p_money' THEN Parent.TriggerEvent('ue_ch_money') ELSEIF dwo.Name = 'p_banktype' THEN Parent.TriggerEvent('ue_ch_banktype') END IF END IF end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_buy end type type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_buy integer y = 1220 integer width = 3543 integer height = 796 string dataobject = "dw_inwaremx_buy_edit" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_unit_buy,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype Long ls_mtrlid,ll_sptid,ls_taskid,ls_orderid,ll_storageid Dec ls_lmbuyprice,ls_planprice Dec ls_lastprice,ls_rebate,ld_rate_buy String ls_buytaskcode String ls_prdpackcode Decimal ls_packqty,ls_nofinishqty Long i_mtrlid,i_sptid String i_mtrlcode,i_status,i_woodcode,i_pcode Decimal i_price,i_zqrate s_mtrldef_array arg_s_mtrldef String ls_sptmtrlname Long child_row Long ls_null Int li_statusflag,li_woodcodeflag,li_pcodeflag 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 ll_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] IF IsNull(ll_sptid) OR ll_sptid = 0 THEN PARENT.TriggerEvent("ue_f9") END IF IF KeyDown(keydownarrow!) THEN Long li_row IF dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE IF KeyDown(keyenter!) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN IF sys_option_pos_jsbarcode <> '' THEN ls_mtrlcode = sys_option_pos_jsbarcode GOTO find_mtrl END IF IF dw_child.GetColumnName() = 'u_mtrldef_mtrlcode' THEN dw_child.AcceptText() child_row = dw_child.GetRow() ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row] ls_buytaskcode = dw_child.Object.u_inwaremx_relcode[child_row] IF dw_child.Object.u_inwaremx_ifrel[child_row] = 1 THEN SELECT u_mtrldef.mtrlid, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.unit_buy, u_mtrldef.rate_buy, u_mtrldef.planprice, u_mtrldef.mtrlmode, u_mtrldef.prdpackcode, u_mtrldef.packqty , u_buytask.taskid , u_buytaskmx.qty - u_buytaskmx.consignedqty, u_buytaskmx.orderid, u_mtrldef.statusflag, u_mtrldef.woodcodeflag, u_mtrldef.pcodeflag, u_mtrldef.mtrltype INTO :ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_unit_buy, :ld_rate_buy,:ls_planprice, :ls_mtrlmode,:ls_prdpackcode,:ls_packqty,:ls_taskid, :ls_nofinishqty,:ls_orderid, :li_statusflag,:li_woodcodeflag,:li_pcodeflag,:ls_mtrltype FROM u_mtrldef,u_buytaskmx,u_buytask WHERE ( u_mtrldef.mtrlid = u_buytaskmx.mtrlid ) AND ( u_buytask.taskcode = :ls_buytaskcode ) AND ( u_mtrldef.mtrlcode = :ls_mtrlcode ) AND ( u_buytask.taskid = u_buytaskmx.taskid ) AND ( u_buytask.scid = u_buytaskmx.scid ) And ( u_buytask.status = 1 ); IF sqlca.SQLCode = 100 THEN dw_child.Object.u_inwaremx_relid[child_row] = 0 PARENT.TriggerEvent('ue_f7') RETURN 1 END IF ELSE find_mtrl: IF f_find_mtrl(ls_mtrlcode,-1,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_lmbuyprice = arg_s_mtrldef.lmbuyprice[1] ls_unit_buy = arg_s_mtrldef.unit_buy[1] ld_rate_buy = arg_s_mtrldef.rate_buy[1] ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1] ls_mtrltype = arg_s_mtrldef.mtrltype[1] ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1] li_statusflag = arg_s_mtrldef.statusflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] END IF END IF dw_child.Object.u_inwaremx_sptid_cusid[child_row] = ls_orderid dw_child.Object.u_inwaremx_relid[child_row] = ls_taskid dw_child.Object.u_inwaremx_mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag dw_child.Object.u_inwaremx_status[child_row] = arg_s_mtrldef.status[1] dw_child.Object.u_inwaremx_woodcode[child_row] = arg_s_mtrldef.woodcode[1] dw_child.Object.u_inwaremx_pcode[child_row] = arg_s_mtrldef.pcode[1] string ls_plancode ls_plancode = f_get_newplancode(ll_storageid) dw_child.Object.u_inwaremx_plancode[child_row] = ls_plancode Decimal ld_wareqty String ls_msg ld_wareqty = 0 IF wf_get_wareqty(ls_mtrlid,ls_mtrlmode,ld_wareqty,ls_msg) = 0 THEN MessageBox('提示',ls_msg, Information!, OK! ) END IF dw_child.Object.wareqty[child_row] = ld_wareqty sys_option_pos_jsbarcode = '' Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate String arg_msg String ls_1stunit,ls_status,ls_woodcode,ls_pcode ls_status = dw_child.Object.u_inwaremx_status[child_row] ls_woodcode = dw_child.Object.u_inwaremx_woodcode[child_row] ls_pcode = dw_child.Object.u_inwaremx_pcode[child_row] ls_1stunit = '' //dw_child.Object.u_inwaremx_unit[child_row] IF cur_editfocus = 1 THEN IF uo_sptprice.uf_getmtrlsptprice(ll_sptid,ls_mtrlid,ls_1stunit,ls_status,ls_woodcode,ls_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN Int Mtrlorigin SELECT u_mtrldef.Mtrlorigin INTO :Mtrlorigin FROM u_mtrldef Where mtrlid = :ls_mtrlid; IF sqlca.SQLCode <> 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = 0 ELSE IF Mtrlorigin > 0 THEN dw_child.Object.u_inwaremx_uprice[child_row] = ls_lmbuyprice ELSE dw_child.Object.u_inwaremx_uprice[child_row] = 0 END IF END IF dw_child.Object.u_inwaremx_rebate[child_row] = 1 IF ls_unit_buy = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = ls_unit ELSE dw_child.Object.u_inwaremx_rate[child_row] = ld_rate_buy dw_child.Object.u_inwaremx_unit[child_row] = ls_unit_buy END IF ELSE dw_child.Object.u_inwaremx_uprice[child_row] = ls_1stnewcost IF ls_1stzqrate = 0 THEN dw_child.Object.u_inwaremx_rebate[child_row] = 1 ELSE dw_child.Object.u_inwaremx_rebate[child_row] = ls_1stzqrate END IF dw_child.Object.u_inwaremx_rate[child_row] = ls_1strate dw_child.Object.u_inwaremx_unit[child_row] = ls_1stunit END IF ELSE IF dw_child.Object.u_inwaremx_unit[child_row] = '' THEN IF ls_unit_buy = '' THEN dw_child.Object.u_inwaremx_rate[child_row] = 1 dw_child.Object.u_inwaremx_unit[child_row] = ls_unit ELSE dw_child.Object.u_inwaremx_rate[child_row] = ld_rate_buy dw_child.Object.u_inwaremx_unit[child_row] = ls_unit_buy END IF END IF END IF THIS.AcceptText( ) IF uo_sptprice.uf_getmtrlname(ll_sptid,ls_mtrlid,ls_sptmtrlname,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_sptmtrlname[child_row] = ls_sptmtrlname END IF PARENT.TriggerEvent('ue_allowedit') IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'u_inwaremx_rebate' THEN dw_child.AcceptText() dw_uc.AcceptText() i_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] i_mtrlid = dw_child.Object.u_inwaremx_mtrlid[dw_child.GetRow()] i_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()] i_price = dw_child.Object.u_inwaremx_uprice[dw_child.GetRow()] i_zqrate = dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] i_status = dw_child.Object.u_inwaremx_status[dw_child.GetRow()] i_woodcode = dw_child.Object.u_inwaremx_woodcode[dw_child.GetRow()] i_pcode = dw_child.Object.u_inwaremx_pcode[dw_child.GetRow()] ls_unit = dw_child.Object.u_inwaremx_unit[dw_child.GetRow()] IF uo_sptprice.uf_check_price_save(0,i_sptid,i_mtrlid,i_mtrlcode,ls_unit,i_status,i_woodcode,i_pcode,i_price * i_zqrate,arg_msg) = 0 THEN MessageBox("提示",arg_msg, Information!, OK! ) dw_child.SetFocus() dw_child.SetColumn("u_inwaremx_uprice") RETURN 1 ELSE dw_child.SetFocus() dw_child.SetColumn("u_inwaremx_plancode") // keybd_event ( 9, 0, 0 , 0 ) // 按下tab // keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'u_inwaremx_plancode' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") RETURN 1 ELSEIF dw_child.GetColumnName() = "u_inwaremx_status" OR dw_child.GetColumnName() = "u_inwaremx_woodcode" OR dw_child.GetColumnName() = "u_inwaremx_pcode" THEN dw_child.AcceptText() dw_uc.AcceptText() i_sptid = dw_uc.Object.sptid[dw_uc.GetRow()] i_mtrlid = dw_child.Object.u_inwaremx_mtrlid[dw_child.GetRow()] i_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()] i_price = dw_child.Object.u_inwaremx_uprice[dw_child.GetRow()] i_zqrate = dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] i_status = dw_child.Object.u_inwaremx_status[dw_child.GetRow()] i_woodcode = dw_child.Object.u_inwaremx_woodcode[dw_child.GetRow()] i_pcode = dw_child.Object.u_inwaremx_pcode[dw_child.GetRow()] ls_1stunit = dw_child.Object.u_inwaremx_unit[dw_child.GetRow()] ls_unit = dw_child.Object.u_mtrldef_unit[dw_child.GetRow()] // dw_child.Object.u_inwaremx_unit[child_row] IF uo_sptprice.uf_getmtrlsptprice(i_sptid,i_mtrlid,ls_1stunit,i_status,i_woodcode,i_pcode,0,ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_uprice[dw_child.GetRow()] = ls_1stnewcost IF ls_1stzqrate = 0 THEN dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] = 1 ELSE dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] = ls_1stzqrate END IF dw_child.Object.u_inwaremx_rate[dw_child.GetRow()] = ls_1strate dw_child.Object.u_inwaremx_unit[dw_child.GetRow()] = ls_1stunit ELSE dw_child.Object.u_inwaremx_uprice[dw_child.GetRow()] = 0 dw_child.Object.u_inwaremx_rebate[dw_child.GetRow()] = 1 END IF THIS.AcceptText() IF uo_sptprice.uf_getmtrlname(i_sptid,i_mtrlid,ls_sptmtrlname,arg_msg) = 1 THEN dw_child.Object.u_inwaremx_sptmtrlname[dw_child.GetRow()] = ls_sptmtrlname END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab 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::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 THEN IF row > 0 THEN CHOOSE CASE dwo.Name CASE 'u_inwaremx_uqty','u_inwaremx_formula' Parent.TriggerEvent('ue_cmpl_qty') CASE 'u_inwaremx_unit' Parent.TriggerEvent('ue_f10') CASE 'u_inwaremx_addqty' Parent.TriggerEvent('ue_f11') CASE 'u_inwaremx_sptid_cusid', 'u_cust_cuscode', 'u_cust_name' Parent.TriggerEvent('ue_ch_cust') CASE 'u_inwaremx_status' , 'u_inwaremx_woodcode', 'u_inwaremx_pcode' string name name =dwo.name PARENT.trigger event ue_view_status(row,name) CASE ELSE IF dw_child.Object.u_inwaremx_ifrel[row] = 1 THEN Parent.TriggerEvent('ue_f7') ELSE Parent.TriggerEvent('ue_f8') END IF Parent.TriggerEvent('ue_get_maxprice') END CHOOSE ELSE Parent.TriggerEvent('ue_f8') END IF END IF end event event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN This.AcceptText() IF dwo.Name = 'u_inwaremx_ifrel' THEN IF This.Object.u_inwaremx_ifrel[row] = 0 THEN dw_child.Object.u_inwaremx_relid[row] = 0 dw_child.Object.u_buytask_taskcode[row] = '' dw_child.Object.u_inwaremx_relcode[row] = '' END IF ELSEIF dwo.Name = 'u_inwaremx_buyqty' THEN String ls_protect ls_protect = This.Describe( 'u_inwaremx_uqty.protect') IF ls_protect = '0' THEN This.Object.u_inwaremx_uqty[row] = This.Object.u_inwaremx_buyqty[row] wf_cmpl_amt(row) END IF ELSEIF dwo.Name = 'u_inwaremx_uqty' Or dwo.Name = 'u_inwaremx_uamt' Or dwo.Name = 'u_inwaremx_uprice' Or dwo.Name = 'u_inwaremx_rebate' Or dwo.Name = 'u_inwaremx_uprice_notax' Or dwo.Name = 'u_inwaremx_tax' THEN wf_cmpl_amt(row) ELSEIF dwo.Name = 'u_inwaremx_packqty' THEN 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_buyqty[row] = lde_packqty * lde_packqty_single / lde_rate This.Object.u_inwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate //This.Object.u_inwaremx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate END IF END IF end event event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText() //IF row > 0 THEN // dw_child.AcceptText() // // //由金额计算单价 // IF sys_option_outware_if_buyqty = 0 THEN // IF cbx_enamt_edit.Checked THEN // IF dw_child.Object.u_inwaremx_uamt[row] <> 0 THEN // IF dw_child.Object.u_inwaremx_rebate[row] <> 0 And dw_child.Object.u_inwaremx_uqty[row] <> 0 THEN // dw_child.Object.u_inwaremx_uprice[row] = dw_child.Object.u_inwaremx_uamt[row] / dw_child.Object.u_inwaremx_rebate[row] / dw_child.Object.u_inwaremx_uqty[row] // END IF // END IF // ELSE // dw_child.Object.u_inwaremx_uamt[row] = Round(dw_child.Object.u_inwaremx_uprice[row]*dw_child.Object.u_inwaremx_rebate[row]*dw_child.Object.u_inwaremx_uqty[row],2) // END IF // ELSE // IF cbx_enamt_edit.Checked THEN // IF dw_child.Object.u_inwaremx_uamt[row] <> 0 THEN // IF dw_child.Object.u_inwaremx_rebate[row] <> 0 And dw_child.Object.u_inwaremx_uqty[row] <> 0 THEN // dw_child.Object.u_inwaremx_uprice[row] = dw_child.Object.u_inwaremx_uamt[row] / dw_child.Object.u_inwaremx_rebate[row] / dw_child.Object.u_inwaremx_buyqty[row] // END IF // END IF // ELSE // dw_child.Object.u_inwaremx_uamt[row] = Round(dw_child.Object.u_inwaremx_uprice[row]*dw_child.Object.u_inwaremx_rebate[row]*dw_child.Object.u_inwaremx_buyqty[row],2) // END IF // END IF //END IF end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_buy end type type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_buy end type type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_buy end type event cb_add::clicked;IF Not (f_power_ind(99) Or f_power_ind(372)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF String arg_msg = '' Long uc_row,pagerert_row Long relid_pageretr,reld_uc,j, i Int rslt_chk string ll_errorprintid s_inwaremx s_mx IF Not dw_edit_mode THEN IF wf_check_print(arg_msg) = 0 THEN MessageBox('提示',arg_msg, Information!, OK! ) RETURN END IF END IF 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 IF dw_uc.Object.u_inware_relint_1[uc_row] = 0 THEN MessageBox('提示','请选择结算方式', Information!, OK! ) dw_uc.SetFocus() dw_uc.SetColumn("u_inware_relint_1") RETURN END IF IF dw_uc.Object.u_inware_relint_3[uc_row] = 0 THEN MessageBox('提示','请选择币种', Information!, OK! ) dw_uc.SetFocus() dw_uc.SetColumn("u_inware_relint_3") RETURN END IF IF dw_uc.Object.u_inware_otheramt[uc_row] <> 0 And Not Len(String(dw_uc.Object.dscrp[uc_row])) > 0 THEN MessageBox('提示','请在备注栏注明扣减费用!', Information!, OK! ) dw_uc.SetFocus() dw_uc.SetColumn("dscrp") RETURN END IF rslt_chk = wf_check_part( dw_uc.Object.u_inware_scid[uc_row], dw_uc.Object.inwareid[uc_row], dw_uc.Object.part[uc_row],arg_msg) IF rslt_chk = 0 Or rslt_chk = 2 THEN MessageBox('系统提示',arg_msg) RETURN ELSEIF rslt_chk = 3 THEN IF MessageBox('询问',arg_msg,question!,yesno!) = 2 THEN RETURN END IF //由金额计算单价 IF cbx_enamt_edit.Checked THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_inwaremx_uamt[i] <> 0 THEN IF sys_option_outware_if_buyqty = 0 THEN IF dw_child.Object.u_inwaremx_rebate[i] <> 0 And dw_child.Object.u_inwaremx_uqty[i] <> 0 THEN dw_child.Object.u_inwaremx_uprice[i] = dw_child.Object.u_inwaremx_uamt[i] / dw_child.Object.u_inwaremx_rebate[i] / dw_child.Object.u_inwaremx_uqty[i] dw_child.Object.u_inwaremx_uprice_notax[i] = dw_child.Object.u_inwaremx_uprice[i] / ( 1 + dw_child.Object.u_inwaremx_tax[i] ) //不含税单价=单价/(1+税率) END IF ELSE IF dw_child.Object.u_inwaremx_rebate[i] <> 0 And dw_child.Object.u_inwaremx_buyqty[i] <> 0 THEN dw_child.Object.u_inwaremx_uprice[i] = dw_child.Object.u_inwaremx_uamt[i] / dw_child.Object.u_inwaremx_rebate[i] / dw_child.Object.u_inwaremx_buyqty[i] dw_child.Object.u_inwaremx_uprice_notax[i] = dw_child.Object.u_inwaremx_uprice[i] / ( 1 + dw_child.Object.u_inwaremx_tax[i] ) //不含税单价=单价/(1+税率) END IF END IF END IF NEXT END IF //输入不含税价 IF cbx_enamt_notax_edit.Checked THEN FOR i = 1 To dw_child.RowCount() wf_cmpl_amt(i) NEXT END IF ll_errorprintid = '' FOR j = 1 To dw_child.RowCount() IF Not f_power_ind(128) 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_uqty[j] > 0 THEN MessageBox('提示','用户权限限制,请选择订单,第'+String(j)+'行', Information!, OK! ) RETURN END IF END IF IF dw_child.Object.u_inwaremx_ifrel[j] = 1 And dw_child.Object.u_inwaremx_uqty[j] < 0 THEN MessageBox('提示','收货单要输入正数', Information!, OK! ) RETURN END IF IF dw_child.Object.u_inwaremx_uprice[j] = 0 THEN ll_errorprintid = ll_errorprintid + ',' + String(j) // IF MessageBox ("询问",'明细第'+String(j)+'行存在单价为0,是否继续?',question!,yesno! ) = 2 THEN RETURN // END IF IF dw_child.Object.u_inwaremx_unit[j] = '' THEN dw_child.Object.u_inwaremx_unit[j] = dw_child.Object.u_mtrldef_unit[j] dw_child.Object.u_inwaremx_rate[j] = 1 END IF NEXT IF ll_errorprintid <> '' THEN ll_errorprintid = right(ll_errorprintid,len(ll_errorprintid)-1) IF MessageBox ("询问",'明细第'+ll_errorprintid+'行存在单价为0,是否继续?',question!,yesno! ) = 2 THEN RETURN END IF IF wf_check_qtyandaddqty(arg_msg) = 0 THEN MessageBox('提示',arg_msg + ',不能保存!',Information!,OK!) RETURN END IF //限价模式 选了计划价 询问 IF sys_option_buylimit_ifbj = 4 THEN IF wf_check_planprice(arg_msg) = 0 THEN IF MessageBox('询问',arg_msg,question!,yesno!) = 2 THEN RETURN END IF END IF //276 采购收货单保存时,供应商名称自动填写到“配置”里 IF sys_option_inwarebuy_autospt = 1 THEN String ls_sptname ls_sptname = Trim(dw_uc.Object.u_spt_name[uc_row] ) FOR i = 1 To dw_child.RowCount() dw_child.Object.u_inwaremx_status[i] = ls_sptname NEXT dw_child.AcceptText() 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.sptid = dw_uc.Object.sptid[uc_row] uo_ware.otheramt = dw_uc.Object.u_inware_otheramt[uc_row] uo_ware.relint_1 = dw_uc.Object.u_inware_relint_1[uc_row] uo_ware.relid = dw_uc.Object.u_inware_relid[uc_row] uo_ware.thflag = 0 uo_ware.relint_3 = dw_uc.Object.u_inware_relint_3[uc_row] uo_ware.mrate = dw_uc.Object.u_inware_mrate[uc_row] uo_ware.viewdate = dw_uc.Object.viewdate[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.buyqty = dw_child.Object.u_inwaremx_buyqty[i] s_mx.uqty = dw_child.Object.u_inwaremx_uqty[i] s_mx.addqty = dw_child.Object.u_inwaremx_addqty[i] s_mx.packqty = dw_child.Object.u_inwaremx_packqty[i] s_mx.uprice = dw_child.Object.u_inwaremx_uprice[i] s_mx.tax = dw_child.Object.u_inwaremx_tax[i] s_mx.rebate = dw_child.Object.u_inwaremx_rebate[i] s_mx.mxdscrp = dw_child.Object.u_inwaremx_mxdscrp[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 = '' s_mx.sptid = dw_child.Object.u_inwaremx_sptid_cusid[i] s_mx.unit = dw_child.Object.u_inwaremx_unit[i] s_mx.rate = dw_child.Object.u_inwaremx_rate[i] 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.uprice_notax = dw_child.Object.u_inwaremx_uprice_notax[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.uamt_tax = dw_child.Object.u_inwaremx_uamt_tax[i] 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('提示','保存操作成功!') //write ini f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.storageid[dw_uc.GetRow()])) f_SetProfileString (sys_empid,dw_uc.DataObject, "dft_banktype",String(dw_uc.Object.u_inware_relint_1[dw_uc.GetRow()])) f_SetProfileString (sys_empid,dw_uc.DataObject, "moneyid",String(dw_uc.Object.u_inware_relint_3[dw_uc.GetRow()])) // Long ll_row ll_row = dw_pageretr.GetRow() dw_pageretr.SelectRow(0,False) dw_pageretr.SelectRow(ll_row,True) wf_refresh_curuc(cur_scid,uo_ware.inwareid) //刷新uc String ls_taskcode ls_taskcode = dw_pageretr.Object.inwarecode[dw_pageretr.GetRow()] IF f_billevent_trigger (403, 2, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF ELSE IF uo_ware.newbegin(cur_scid,1,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_banktype,ls_moneyid IF sys_option_hide_ware = 1 THEN ls_storageid = '11' ELSE ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0') IF f_find_storageid(ls_storageid) = '' THEN ls_storageid = '0' END IF END IF ls_banktype = f_ProfileString (sys_empid,dw_uc.DataObject, "dft_banktype",'0') ls_moneyid = f_ProfileString (sys_empid,dw_uc.DataObject, "moneyid",'11') dw_uc.Object.u_inware_relint_3[dw_uc.GetRow()] = Long(ls_moneyid) dw_uc.Object.u_inware_mrate[dw_uc.GetRow()] = f_get_mrate(Long(ls_moneyid)) dw_uc.Object.storageid[dw_uc.GetRow()] = Long(ls_storageid) dw_uc.Object.u_inware_relint_1[dw_uc.GetRow()] = Long(ls_banktype) dw_uc.Object.inrep[dw_uc.GetRow()] = publ_operator dw_uc.Object.u_inware_scid[dw_uc.GetRow()] = cur_scid dw_uc.Object.viewdate[dw_uc.GetRow()] = relativedate(today(), 1 - day(today())) IF sys_option_hide_ware = 1 THEN dw_uc.SetColumn("indate") ELSE dw_uc.SetColumn("storageid") END IF dw_uc.SetRedraw(True) cur_editfocus = 1 // wf_lock_plancode(long(ls_storageid)) ELSE Parent.TriggerEvent("retrieve_childdw") cur_editfocus = 0 END IF // end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_buy end type event cb_edit::clicked;IF Not (f_power_ind(99) OR f_power_ind(372)) THEN MessageBox('提示',sys_msg_pow, 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],1,arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF this.triggerevent('ue_allowedit') // wf_lock_plancode(ll_storageid) END IF CALL SUPER::Clicked IF dw_edit_mode THEN cur_editfocus = 2 ELSE cur_editfocus = 0 END IF end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_buy end type event cb_delet::clicked;call super::clicked;IF Not (f_power_ind(592) OR f_power_ind(584)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF String arg_msg = '' IF dw_edit_mode THEN RETURN 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('error!',arg_msg) 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_buy end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF NOT dw_edit_mode THEN menustr = "Text=增加备注~tEvent=ue_addzy" menustr += "|" + "Text=修改备注~tEvent=ue_editzy" menustr += "|" + "Text=修改相关号~tEvent=ue_mod_relcode" menustr += "|" + "Text=修改结算方式~tEvent=ue_mod_banktype" menustr += "|" + "Text=修改优惠款~tEvent=ue_mod_otheramt" menustr += "|" + "Text=-" menustr += "|" + "Text=复制单据~tEvent=ue_bill_copy" menustr += "|" + "Text=-" menustr += "|" + "Text=查看附件~tEvent=ue_fj_view" menustr += "|" + "Text=添加附件~tEvent=ue_fj_edit" menustr += "|" + "Text=刷新附件数量~tEvent=retrieve_fjnum" menustr += "|" + "Text=-" menustr += "|" + "Text=辅助建立报价单~tEvent=ue_create_spt_price_change" menustr += "|" + "Text=-" menustr += "|" + "Text=确认~tEvent=ue_priceaudit" menustr += "|" + "Text=反确认~tEvent=ue_cpriceaudit" menustr += "|" + "Text=-" menustr += "|" + "Text=全选~tEvent=ue_all_choice" menustr += "|" + "Text=全不选~tEvent=ue_allnot_choice" menustr += "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit" menustr += "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit" menustr += "|" + "Text=批删除(选中的)~tEvent=ue_all_delete" menustr += "|" + "Text=批财撤(选中的)~tEvent=ue_all_c_secaudit" menustr += "|" + "Text=-" //menustr += "|" + "Text=辅助建立客户收款结算单~tEvent=ue_create_bmstamt" menustr += "|" + "Text=辅助建立付款结算单~tEvent=ue_create_bmstamt" ELSE menustr += "|" + "Text=辅助计算~tEvent=ue_cpml_qty" menustr += "|" + "Text=辅助计算辅数~tEvent=ue_cmpl_addqty" menustr += "|" + "Text=-" menustr += "|" + "Text=粘贴单据~tEvent=ue_bill_paste" END IF 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_buy end type event cb_auditing::clicked;call super::clicked;String ls_taskcode String ls_msg = '' long rslt = 1 IF dw_edit_mode THEN RETURN IF Not KeyDown(KeyControl!) THEN String arg_msg = '' Long pagerert_row ls_msg = '审核' 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 sys_option_hide_ware = 0 THEN IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN IF Not (f_power_ind(66) Or f_power_ind(103)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF //检查是否超订单数进仓 IF wf_check_over(arg_msg) = 0 THEN MessageBox('提示',arg_msg, Information!, OK!) RETURN END IF ls_msg = '仓库审核' IF uo_ware.auditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext ELSE ls_taskcode = dw_pageretr.Object.inwarecode[dw_pageretr.GetRow()] IF f_billevent_trigger (403, 3, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF END IF ELSEIF dw_pageretr.Object.flag[pagerert_row] = 1 And dw_pageretr.Object.u_inware_secflag[pagerert_row] = 0 THEN IF Not (f_power_ind(813) ) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF ls_msg = '财务审核' IF uo_ware.secauditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF ELSE IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN IF Not (f_power_ind(813) ) THEN MessageBox('提示',sys_msg_pow,Information!,OK!) RETURN END IF IF uo_ware.auditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware.secauditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF END IF ext: IF rslt = 0 THEN MessageBox('错误',arg_msg,StopSign!,OK!) ELSE MessageBox('提示',ls_msg+'成功!',Information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_inware_scid[pagerert_row],dw_pageretr.Object.inwareid[pagerert_row]) END IF ELSE IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",question!,yesno! ) = 2 THEN RETURN Long ll_i,ll_billid, ll_scid Int li_flag,li_secflag Long ll_suc,ll_fail // Int ll_flag,ll_secflag dw_pageretr.AcceptText() li_flag = dw_pageretr.Object.flag[dw_pageretr.GetRow()] li_secflag = dw_pageretr.Object.u_inware_secflag[dw_pageretr.GetRow()] Open(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) IF li_flag = 0 THEN IF Not (f_power_ind(66) Or f_power_ind(103)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF 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] ll_scid = dw_pageretr.Object.u_inware_scid[ll_i] ls_taskcode = dw_pageretr.Object.inwarecode[ll_i] IF uo_ware.getinfo(ll_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++ IF f_billevent_trigger (403, 3, ls_taskcode, arg_msg) = 0 THEN ls_msg += arg_msg + '~r~n' END IF w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT Close(w_sys_wait_jdt) MessageBox('提示','仓库批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail) + ls_msg, Information!, OK! ) ELSEIF li_flag = 1 And li_secflag = 0 THEN IF Not (f_power_ind(813) ) THEN MessageBox('提示',sys_msg_pow, Information!, OK!) RETURN END IF 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] li_secflag = dw_pageretr.Object.u_inware_secflag[ll_i] If (li_flag = 0 And li_secflag = 0) Or li_secflag = 1 THEN CONTINUE ll_billid = dw_pageretr.Object.inwareid[ll_i] ll_scid = dw_pageretr.Object.u_inware_scid[ll_i] IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN ll_fail++ CONTINUE END IF IF uo_ware.secauditing(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)) END IF Parent.TriggerEvent('retrieve_pageretr') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_buy end type event cb_xm::clicked;is_mx_menustr = '' IF dw_edit_mode THEN // is_mx_menustr = is_mx_menustr + "|" + "Text=仓审后修改单价~tEvent=ue_mod_price" // is_mx_menustr += "|" + "Text=-" 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=批设数量为0~tEvent=ue_cmpl_set0" 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" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=明细标题与execl标题对应关系设置~tEvent=ue_set_dytitle" is_mx_menustr += "|" + "Text=从execl导入到订单明细~tEvent=ue_insert_execltodw" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=计算税率~tEvent=ue_cmpl_tax" is_mx_menustr += "|" + "Text=按第一行批设税率~tEvent=ue_set_tax" ELSE is_mx_menustr += "|" + "Text=仓审后修改单价~tEvent=ue_mod_price" IF sys_option_outware_if_buyqty = 1 THEN is_mx_menustr += "|" + "Text=仓审后修改收货数量~tEvent=ue_mod_buyqty" END IF END IF CALL Super::Clicked // w_dytitle_inwarebuy end event type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_buy end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_buy end type type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_buy end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_buy end type event cb_auditing_cancel::clicked;call super::clicked;IF dw_edit_mode THEN RETURN String ls_code,ls_opemp,ls_outpart String arg_msg = '' Long pagerert_row,ls_id Long rslt = 1 String ls_msg 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) RETURN END IF ls_msg = "撤审" IF sys_option_hide_ware = 0 THEN IF dw_pageretr.Object.flag[pagerert_row] = 1 And dw_pageretr.Object.u_inware_secflag[pagerert_row] = 0 THEN IF Not (f_power_ind(877) Or f_power_ind(878)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF ls_msg = '仓库撤审' IF uo_ware.c_auditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF ELSEIF dw_pageretr.Object.u_inware_secflag[pagerert_row] = 1 And dw_pageretr.Object.flag[pagerert_row] = 1 THEN IF Not (f_power_ind(881) ) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF ls_msg = '财务撤审' IF uo_ware.c_secauditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF ELSE IF dw_pageretr.Object.u_inware_secflag[pagerert_row] = 1 THEN IF Not (f_power_ind(881) ) THEN MessageBox('提示',sys_msg_pow,Information!,OK!) RETURN END IF IF uo_ware.c_secauditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware.c_auditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF END IF ext: IF rslt = 0 THEN MessageBox('错误',arg_msg,StopSign!,OK!) ELSE MessageBox('提示',ls_msg+'成功!',Information!,OK!) //日志 ls_code = dw_pageretr.Object.inwarecode[pagerert_row] ls_opemp = dw_pageretr.Object.u_inware_opemp[pagerert_row] ls_outpart = dw_pageretr.Object.part[pagerert_row] f_setsysoplog('采购收货单',ls_msg+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True) //-- 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_buy end type type p_help from w_publ_1ton_share_detail`p_help within w_inware_buy end type type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_buy end type type p_other from w_publ_1ton_share_detail`p_other within w_inware_buy end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_buy end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_buy end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_buy end type type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_buy end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_buy end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_buy end type type ddlb_scid from uo_ddlb_scid within w_inware_buy integer x = 919 integer y = 192 integer width = 549 integer height = 1120 integer taborder = 20 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 st_3 from statictext within w_inware_buy integer x = 1481 integer y = 208 integer width = 192 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_2 from statictext within w_inware_buy integer x = 741 integer y = 208 integer width = 192 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 cbx_enamt_edit from checkbox within w_inware_buy integer x = 3214 integer y = 12 integer width = 795 integer height = 80 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_enamt_edit = 1 ELSE ii_enamt_edit = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit)) //parent.triggerevent("ue_allowedit") IF ii_enamt_edit = 0 THEN dw_child.Modify('u_inwaremx_uamt.protect = 1~t u_inwaremx_uamt.Color = 0') dw_child.Modify('u_inwaremx_uamt_t.Color = 0') ELSE dw_child.Modify('u_inwaremx_uamt.protect = 0~t u_inwaremx_uamt.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_inwaremx_uamt_t.Color = "0~trgb(0,0,255)"') END IF end event event constructor;this.backcolor = 14215660 ii_enamt_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",'0')) IF ii_enamt_edit = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF end event type ddlb_status from uo_ddlb_status within w_inware_buy integer x = 1664 integer y = 192 integer height = 812 integer taborder = 30 boolean bringtotop = true string item[] = {"[全部]","待仓审","待财审","已审核"} end type event selectionchanged;call super::selectionchanged;PARENT.TriggerEvent('retrieve_pageretr') end event event uof_getvalue;IF this.text = "[全部]" THEN cur_flag = -1 cur_secflag = -1 //ELSEIF this.text = "待确认" THEN // cur_flag = -1 // cur_secflag = -1 ELSEIF this.text = "待仓审" THEN cur_flag = 0 cur_secflag = -1 ELSEIF this.text = "待财审" THEN cur_flag = 1 cur_secflag = 0 ELSEIF this.text = "已审核" THEN cur_flag = 1 cur_secflag = 1 END IF end event type cbx_packqty_cmpl from checkbox within w_inware_buy integer x = 3209 integer y = 96 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 cbx_enamt_notax_edit from checkbox within w_inware_buy integer x = 3822 integer y = 92 integer width = 535 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_enamt_notax_edit = 1 ELSE ii_enamt_notax_edit = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",String(ii_enamt_notax_edit)) wf_enamt_facechg() end event event constructor;this.backcolor = 14215660 ii_enamt_notax_edit = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",'0')) IF ii_enamt_notax_edit = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF wf_enamt_facechg() // end event type cbx_all from checkbox within w_inware_buy integer x = 2149 integer y = 196 integer width = 219 integer height = 64 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;Int i If This.Checked = True Then For i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.ch[i] = 1 Next Else For i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.ch[i] = 0 Next End If end event event constructor; this.y = p_msg.y this.x = ddlb_status.x + ddlb_status.width + 20 end event