$PBExportHeader$w_outware_sale.srw forward global type w_outware_sale from w_publ_1ton_share_detail end type type ddlb_scid from uo_ddlb_scid within w_outware_sale end type type st_3 from statictext within w_outware_sale end type type st_2 from statictext within w_outware_sale end type type st_msg from statictext within w_outware_sale end type type cbx_ifmtrlware from checkbox within w_outware_sale end type type cbx_enamt_edit from checkbox within w_outware_sale end type type ddlb_status from uo_ddlb_status within w_outware_sale end type type cb_fhmx from commandbutton within w_outware_sale end type type cb_fymx from commandbutton within w_outware_sale end type type cb_bjmx from commandbutton within w_outware_sale end type type dw_bjmx from u_dw_rbtnfilter within w_outware_sale end type type dw_fymx from u_dw_rbtnfilter within w_outware_sale end type type cbx_packqty_cmpl from checkbox within w_outware_sale end type type cbx_enamt_notax_edit from checkbox within w_outware_sale end type type cb_scanbill from commandbutton within w_outware_sale end type type cbx_zk from checkbox within w_outware_sale end type type cb_new_scanbill from commandbutton within w_outware_sale end type type st_cusbalc from statictext within w_outware_sale end type type st_cusbalc_sign from statictext within w_outware_sale end type type cbx_all from checkbox within w_outware_sale end type end forward global type w_outware_sale from w_publ_1ton_share_detail integer width = 4581 integer height = 2780 string title = "销售发货单" boolean maxbox = true windowstate windowstate = maximized! long ls_powerid = 24665208 boolean if_chkmtrlinfo = true event insert_childrow ( ) event ue_priceaudit ( ) event ue_cpriceaudit ( ) event ue_importseleprice ( ) event ue_cmpdi ( ) event ue_di ( ) event ue_importcusseleprice_his ( ) event ue_importcusseleprice ( ) event ue_cmpdi_all ( ) event ue_di_auto ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_cmpl_addqty ( ) event ue_cmpl_qty ( ) event ue_p_cmpl_qty ( ) event ue_cmpl_status_qty ( ) event ue_view_mxdscrp ( ) event ue_p_formula_set ( ) event ue_view_mxdscrp2 ( ) event ue_ch_station ( ) event ue_ch_outrepdef ( ) event ue_ch_banktype ( ) event ue_ch_money ( ) event ue_csecpriceaudit ( ) event ue_secpriceaudit ( ) event ue_ch_dscrp ( ) event ue_ch_rel_address ( ) event ue_add_fymx ( ) event insert_childrow_fymx ( ) event ue_importlmsaleprice ( ) event ue_ch_outtype ( ) event ue_add_addqty ( ) event ue_di_auto_del ( ) event ue_ch_mtrlware ( ) event ue_all_choice ( ) event ue_allnot_choice ( ) event ue_all_audit ( ) event ue_allnot_audit ( ) event ue_all_delete ( ) event ue_p_rebate ( ) event ue_fj_edit_mx ( ) event ue_fj_mx_add ( ) event ue_fj_mx_add_p ( ) event ue_fj_view_mx ( ) event ue_ch_dscrp2 ( ) event ue_ch_dscrp3 ( ) event ue_view_status ( long arg_row, string arg_status ) event ue_view_mxdscrp3 ( ) event ue_view_mxdscrp4 ( ) event ue_cmpl_set0 ( ) event ue_importcusseleprice_buchong ( ) event ue_retrieve_fifo_cbmx ( ) event ue_show_fifo_cbmx ( ) event ue_ch_relstr_3 ( ) event ue_set_tax ( ) event ue_show_his_pricemx ( ) event ue_retrieve_his_pricemx ( ) event ue_mx_cmplnoallocqty ( ) event ue_choose_mtrlware_plancode ( ) event ue_create_bmstamt ( ) event ue_bill_mod ( ) event ue_cmpl_price ( ) event ue_setprice_forformula ( ) event retrieve_fjnum ( ) event ue_all_c_secaudit ( integer arg ) event ue_cmpl_tax ( ) event ue_mod_outdate ( ) event ue_price_mod ( ) event ue_outware_choose ( ) event ue_setqty_forformula ( ) event ue_setqty_forformula_1 ( ) event ue_setprice_forformula_1 ( ) ddlb_scid ddlb_scid st_3 st_3 st_2 st_2 st_msg st_msg cbx_ifmtrlware cbx_ifmtrlware cbx_enamt_edit cbx_enamt_edit ddlb_status ddlb_status cb_fhmx cb_fhmx cb_fymx cb_fymx cb_bjmx cb_bjmx dw_bjmx dw_bjmx dw_fymx dw_fymx cbx_packqty_cmpl cbx_packqty_cmpl cbx_enamt_notax_edit cbx_enamt_notax_edit cb_scanbill cb_scanbill cbx_zk cbx_zk cb_new_scanbill cb_new_scanbill st_cusbalc st_cusbalc st_cusbalc_sign st_cusbalc_sign cbx_all cbx_all end type global w_outware_sale w_outware_sale type variables uo_outware_sale uo_ware uo_ljfieb uo_fieb uo_cusprice uo_cus_price long cur_scid //分店ID long cur_scid_arr[] int cur_editfocus=0 //1:新建2:修改 string cur_outrepcode='' //当前供销编号 long cur_flag= -1 //-1:全部,0仓库未审,1仓库已审核 long cur_secflag= -1 //-1:全部,0财务未审 long cur_priceflag= -1 //-1:全部,0未确认 long flag= 0 long secflag= 0 long priceflag = 0 string ol_cdw_str = '' long ifmtrlware = 0 int ii_enamt_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 int ii_enamt_edit_1 = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 int ii_enamt_notax_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 int ii_packqty_cmpl = 0 //信用额管理 Int cur_cusrepamtflag = 0 String cur_cusrepamtstr = '' string cur_cusrepamtstr_show = '' //非编辑状态下 显示信息 long ins_dw_select = 0 long fy_column_int = 4 // 费用明细可修改的列数 string old_rep_select=''//保留原有下拉sql end variables forward prototypes public function integer wf_flagstatus_rf () public function integer wf_refresh_curuc (long arg_scid, long arg_wareid) public subroutine wf_check_billfj () public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg) public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg) public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg) public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg) public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg) public function integer wf_refresh_interface () public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg) public subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid) public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid) public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg) public function integer wf_get_price (long arg_row) public function integer wf_get_mtrlwareid (long arg_row) public function integer wf_lock_child () public subroutine wf_ue_f7 (s_saletask_ch s_saletask) public function integer wf_set_outwaremx_bk (long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg) public function integer wf_set_outwaremx (long arg_scid, long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg) public function integer wf_set_outware_itemmx (integer arg_scid, long arg_taskid) public function integer wf_change_cusid (long arg_cusid) public function integer wf_get_cusid (ref long arg_cusid) public subroutine wf_cusprice_mtrlware (ref s_mtrlware_noalloc_array ins_rt_stru) public subroutine wf_cusprice_in (s_mtrlware_noalloc_array ins_rt_stru) public subroutine wf_cusprice_mtrl (ref s_mtrldef_array ins_rt_stru) public subroutine wf_cusprice_in (s_mtrldef_array ins_rt_stru) public function integer wf_check_qtyandaddqty (ref string arg_msg) public function integer wf_enamt_facechg () public function integer wf_ck_taobao (string arg_outwarecode) public subroutine wf_check_ware (long arg_scid, long arg_billid) public function string wf_check_sys_option_check_scanqty () public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg) public subroutine wf_set_barcode () public subroutine wf_cmpl_amt (long row) public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid) public subroutine wf_set_decimal_place () public function decimal wf_sum_mxamt () public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid) public subroutine wf_price (integer arg_row) public function integer wf_autoaddmx_rp (s_edit_index_tran arg_s_tran, ref string arg_msg) end prototypes event insert_childrow();long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('u_mtrldef_mtrlcode') end event event ue_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_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],True,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] IF f_billevent_trigger (104, 4, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF MessageBox('提示','确认成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) end event event ue_cpriceaudit();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) return END IF IF NOT f_power_ind(1779) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg Long pagerert_row 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_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.u_outware_outwareid[pagerert_row] ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] f_setsysoplog('销售发货单','反确认,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox('提示','反确认成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) end event event ue_importseleprice();IF NOT dw_edit_mode THEN MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!) RETURN END IF Long ls_row,ls_cusid,ls_mtrlid String ls_cuscode,ls_cusname,arg_msg Long uc_row Decimal obj_price ,obj_rebate,obj_rate String err_str = '' Boolean if_exist_price = TRUE Long ll_pricelistid,ll_moneyid String ls_status,ls_pcode,ls_woodcode,ls_unit s_pricelist_ch s_pricelist ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF //直接查询价格表 // IF MessageBox (publ_operator,"是否直接选择价格表?",Question!,YesNo! ) = 2 THEN RETURN Open(w_sale_price_list_ch) s_pricelist = Message.PowerObjectParm IF s_pricelist.pricelistid <= 0 THEN RETURN ll_pricelistid = s_pricelist.pricelistid IF wf_get_pricelist_price(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN MessageBox('提示',arg_msg,information!,OK!) RETURN END IF //FOR ls_row = 1 TO dw_child.RowCount() // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row] // ls_status = dw_child.Object.u_outwaremx_status[ls_row] // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row] // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row] // // IF sys_option_price_if_status = 0 THEN // ls_status = '' // ls_pcode = '' // ls_woodcode = '' // END IF // // SELECT u_sale_price_mx.price // INTO :obj_price // FROM u_sale_price_mx // WHERE (u_sale_price_mx.pricelistid = :s_pricelist.pricelistid) AND // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND // ( u_sale_price_mx.status = :ls_status ) AND // ( u_sale_price_mx.pcode = :ls_pcode ) AND // ( u_sale_price_mx.woodcode = :ls_woodcode ) AND // ( u_sale_price_mx.unit = :ls_unit); // IF sqlca.SQLCode <> 0 THEN // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n" // ELSE // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price // END IF //NEXT // // //IF err_str <> '' THEN // MessageBox('提示',err_str,information!,OK!) //END IF end event event ue_cmpdi();Long ll_mtrlid,ll_storageid String ls_status_uc,arg_msg,arg_lsg Long uc_row,child_row Decimal ld_ref_qty dw_uc.AcceptText() uc_row = dw_pageretr.GetRow() child_row = dw_child.GetRow() if uc_row <= 0 then return if child_row <= 0 then return ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row] ls_status_uc = dw_child.Object.u_outwaremx_status[child_row] IF ll_storageid <= 0 THEN MessageBox('提示','请选择仓库',information!,OK!) RETURN END IF IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status_uc,ld_ref_qty,arg_lsg,arg_msg) = 0 THEN MessageBox('错误','计算失败,'+arg_msg,stopsign!,OK!) ELSE MessageBox('提示',arg_lsg,information!,OK!) END IF end event event ue_di();Long ll_row Long ll_mtrlwareid IF Not f_power_ind(288) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ll_row = dw_child.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请选择资料',information!,OK!) RETURN END IF ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[ll_row] 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.e_string = '装' s_tran_open.f_long = ll_mtrlwareid OpenWithParm(w_dismantle_install,s_tran_open) end event event ue_importcusseleprice_his();// //导入客户历史售价 Long ls_row,ls_cusid,ls_mtrlid String ls_cuscode,ls_cusname,arg_msg Long uc_row Decimal obj_price ,obj_rebate,obj_rate String err_str = '' Boolean if_exist_price = TRUE Long ls_pricelistid,ll_moneyid String ls_status,ls_pcode,ls_woodcode,ls_unit s_pricelist_ch s_pricelist uc_row = dw_uc.GetRow() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.u_outware_cusid[uc_row] ls_cuscode = dw_uc.Object.u_cust_cuscode[uc_row] ls_cusname = dw_uc.Object.u_cust_name[uc_row] IF dw_child.RowCount() <= 0 THEN MessageBox('提示',"请选择产品!",information!,OK!) RETURN END IF FOR ls_row = 1 TO dw_child.RowCount() ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row] ls_status = dw_child.Object.u_outwaremx_status[ls_row] ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row] ls_unit = dw_child.Object.u_outwaremx_unit[ls_row] IF f_getmtrlcusprice(ll_moneyid,ls_mtrlid,ls_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,obj_price,obj_rebate,obj_rate,arg_msg) <> 1 THEN err_str = err_str + "导入客户["+ls_cuscode+ls_cusname+"]的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的最新售价失败,或没有最新售价! ~n " ELSE dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price //dw_child.Object.u_outwaremx_rebate[ls_row] = obj_rebate dw_child.Object.u_outwaremx_rate[ls_row] = obj_rate END IF NEXT IF err_str <> '' THEN MessageBox('错误',err_str,stopsign!,OK!) END IF end event event ue_importcusseleprice(); //查询客户价格表 //如果客户无价格表则提示是否直接查询价格表 Long ls_row,ls_cusid,ls_mtrlid String ls_cuscode,ls_cusname,arg_msg Long uc_row Decimal obj_price ,obj_rebate,obj_rate String err_str = '' Boolean if_exist_price = TRUE Long ll_pricelistid,ll_moneyid String ls_status,ls_pcode,ls_woodcode,ls_unit s_pricelist_ch s_pricelist uc_row = dw_uc.GetRow() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.u_outware_cusid[uc_row] SELECT u_cust.pricelistid INTO :ll_pricelistid FROM u_cust Where u_cust.cusid = :ls_cusid; IF sqlca.SQLCode <> 0 OR ll_pricelistid <= 0 THEN if_exist_price = FALSE END IF IF if_exist_price = FALSE THEN IF MessageBox('询问',"当前客户的计划售价尚未设定!是否查询价格列表?",Question!,YesNo!) = 2 THEN RETURN Open(w_sale_price_list_ch) s_pricelist = Message.PowerObjectParm IF s_pricelist.pricelistid <= 0 THEN RETURN ll_pricelistid = s_pricelist.pricelistid END IF IF wf_get_pricelist_price(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN MessageBox('提示',arg_msg,information!,OK!) RETURN END IF //FOR ls_row = 1 TO dw_child.RowCount() // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row] // ls_status = dw_child.Object.u_outwaremx_status[ls_row] // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row] // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row] // // IF sys_option_price_if_status = 0 THEN // ls_status = '' // ls_pcode = '' // ls_woodcode = '' // END IF // // // IF if_exist_price THEN //查询客户价格表 // IF Not (IsNull(ls_mtrlid) OR ls_mtrlid = 0 ) THEN // SELECT u_sale_price_mx.price // INTO :obj_price // FROM u_sale_price_list ,u_cust,u_sale_price_mx // WHERE (u_sale_price_list.pricelistid = u_cust.pricelistid) AND // (u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid) AND // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND // ( u_cust.cusid = :ls_cusid ) AND // ( u_sale_price_mx.status = :ls_status ) AND // ( u_sale_price_mx.pcode = :ls_pcode ) AND // ( u_sale_price_mx.woodcode = :ls_woodcode ) and // ( u_sale_price_mx.unit = :ls_unit); // IF sqlca.SQLCode <> 0 THEN // err_str = err_str + "当前客户的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n" // ELSE // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price // END IF // END IF // ELSE //查询价格列表 // SELECT u_sale_price_mx.price // INTO :obj_price // FROM u_sale_price_mx // WHERE ( u_sale_price_mx.pricelistid = :s_pricelist.pricelistid ) AND // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND // ( u_sale_price_mx.status = :ls_status ) AND // ( u_sale_price_mx.pcode = :ls_pcode ) AND // ( u_sale_price_mx.woodcode = :ls_woodcode ) and // ( u_sale_price_mx.unit = :ls_unit); // IF sqlca.SQLCode <> 0 THEN // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n" // ELSE // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price // END IF // END IF //NEXT //IF err_str <> '' THEN // MessageBox('错误',err_str,stopsign!,OK!) //END IF // end event event ue_cmpdi_all();Long ll_mtrlid,ll_storageid String ls_status_uc,arg_msg,arg_lsg Long uc_row,child_row Decimal ld_ref_qty dw_uc.AcceptText() uc_row = dw_pageretr.GetRow() child_row = dw_child.GetRow() if uc_row <= 0 then return if child_row <= 0 then return ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row] ls_status_uc = dw_child.Object.u_outwaremx_status[child_row] ll_storageid = -1 IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status_uc,ld_ref_qty,arg_lsg,arg_msg) = 0 THEN MessageBox('错误','计算失败,'+arg_msg,information!,OK!) ELSE MessageBox('提示',arg_lsg,information!,OK!) END IF end event event ue_di_auto();IF sys_option_outware_if_di <> 0 THEN MessageBox('提示','系统选项[084]已设置仓审自动组装,不能手动操作',information!,OK!) RETURN END IF IF Not f_power_ind(288) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF Long ll_row,ll_ucrow, ll_j,ll_i,rslt = 1,it_mxt = 1,i String ls_mtrlcode, ls_plancode,ls_status,ls_woodcode,ls_pcode Long ls_mtrlwareid,ls_mtrlid,ls_storageid Dec ls_noallocqty,ls_planprice,ls_cost,ld_qty,ld_saleqty String arg_msg String ls_outwarecode String ls_reason Long ll_cnt ll_ucrow = dw_uc.GetRow() IF ll_ucrow <= 0 THEN MessageBox('系统提示','请先选择单据') RETURN END IF ls_outwarecode = dw_uc.Object.u_outware_outwarecode[ll_ucrow] ls_reason = '销售发货单:'+ls_outwarecode+'自动组装' ll_row = dw_child.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择资料',information!,OK!) RETURN END IF SELECT count(*) INTO :ll_cnt FROM u_dismantle_install WHERE reason = :ls_reason And billtype = 0; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询单据是否有自动组装失败!',information!,OK!) RETURN END IF IF ll_cnt > 0 THEN MessageBox('系统提示','当前单据已经有自动组装,不能重复组装!',information!,OK!) RETURN END IF s_edit_index_tran s_tran88 s_tran.b_long = dw_uc.Object.u_outware_scid[ll_ucrow] s_tran.c_long = dw_uc.Object.u_outware_outwareid[ll_ucrow] s_tran.c_string = dw_uc.Object.u_outware_outwarecode[ll_ucrow] OpenWithParm(w_outware_sale_mx4di, s_tran) //uo_dismantle_install uo_ware_install //uo_ware_install = Create uo_dismantle_install // //FOR ll_j = 1 To dw_child.RowCount() // ls_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[ll_j] // ld_saleqty = dw_child.Object.u_outwaremx_qty[ll_j] // // SELECT u_mtrlware.mtrlwareid , // u_mtrlware.mtrlid, // u_mtrlware.noallocqty, // u_mtrlware.planprice, // u_mtrlware.storageid, // u_mtrlware.plancode, // u_mtrlware.status, // u_mtrlware.woodcode, // u_mtrlware.pcode, // u_mtrldef.mtrlcode // INTO :ls_mtrlwareid, // :ls_mtrlid, // :ls_noallocqty, // :ls_planprice, // :ls_storageid, // :ls_plancode, // :ls_status, // :ls_woodcode, // :ls_pcode, // :ls_mtrlcode // FROM u_mtrldef, // u_mtrlware // WHERE ( u_mtrldef.mtrlid = u_mtrlware.mtrlid ) // And ( u_mtrlware.mtrlwareid = :ls_mtrlwareid ); // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,查询物料库存信息失败.'+sqlca.SQLErrText // GOTO ext // END IF // // //计算组装结构 // Long ll_SonMtrlid[] // String ls_pf_status[] // Decimal ld_Sonscale[] // String ls_mtrlname,ls_status_find // Decimal ld_noallocqty,ld_allqty,ld_maxqty // // DECLARE cur_pf CURSOR FOR // SELECT u_PrdPF.SonMtrlid, // u_PrdPF.Sonscale, // u_PrdPF.status // FROM u_PrdPF // Where u_PrdPF.mtrlid = :ls_mtrlid; // // OPEN cur_pf; // FETCH cur_pf Into :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; // DO WHILE sqlca.SQLCode = 0 // it_mxt++ // FETCH cur_pf Into :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; // LOOP // it_mxt = it_mxt - 1 // CLOSE cur_pf; // // IF it_mxt = 0 THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,该产品没有建立组装结构,不能计算' // GOTO ext // END IF // // ld_maxqty = 1000000 // FOR ll_i = 1 To it_mxt // SELECT mtrlname INTO :ls_mtrlname // FROM u_mtrldef // Where mtrlid = :ll_SonMtrlid[ll_i]; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,查询产品资料失败,'+sqlca.SQLErrText // GOTO ext // END IF // // IF sys_option_if_color = 1 THEN // ls_status_find = ls_status // ELSE // ls_status_find = ls_pf_status[ll_i] // END IF // // ld_noallocqty = 0 // ld_allqty = 0 // SELECT sum(noallocqty) INTO :ld_noallocqty // FROM u_mtrlware // WHERE storageid = :ls_storageid // AND mtrlid = :ll_SonMtrlid[ll_i] // And status = :ls_status_find; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,查询该产品组装材料'+ls_mtrlname+'的库存资料失败' // GOTO ext // END IF // // ld_allqty = ld_noallocqty/ld_Sonscale[ll_i] // // ld_maxqty = Min(ld_maxqty,ld_allqty) // // IF IsNull(ld_maxqty) THEN ld_maxqty = 0 // NEXT // ld_qty = Truncate ( ld_maxqty, 0 ) // // IF ld_saleqty > ld_qty THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,产品没有足够的组装材料库存~n'+'发货单组装数量:'+String(ld_saleqty,'#,###0.##')+',库存最大可装数:'+String(ld_qty,'#,###0.##') // GOTO ext // END IF // // String mx_status,mx_woodcode,mx_plancode,mx_pcode,mx_mtrlcode // Dec mx_noallocqty,mx_cost // Long mx_mtrlwareid,mx_dxflag,mx_sptid // // IF uo_ware_install.newbegin(0,arg_msg) = 0 THEN //新建 // rslt = 0 // GOTO ext // END IF // // uo_ware_install.billdate = DateTime(Today(),Now()) // 发生时间 // uo_ware_install.rep = publ_operator // 经手人 // uo_ware_install.dscrp = ls_reason //备注 // uo_ware_install.reason = ls_reason // uo_ware_install.storageid = ls_storageid // uo_ware_install.mtrlid = ls_mtrlid // uo_ware_install.mtrlwareid = ls_mtrlwareid // uo_ware_install.status = ls_status // uo_ware_install.plancode = ls_pcode // uo_ware_install.woodcode = ls_woodcode // uo_ware_install.qty = ld_saleqty // uo_ware_install.addqty = 0 // uo_ware_install.price = ls_planprice // uo_ware_install.buildtype = 0 // uo_ware_install.mtrlcode = ls_mtrlcode // // FOR ll_i = 1 To it_mxt // IF sys_option_if_color = 1 THEN // ls_status_find = ls_status // ELSE // ls_status_find = ls_pf_status[ll_i] // END IF // // SELECT mtrlwareid, // status, // woodcode, // plancode, // pcode, // noallocqty, // cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END, // dxflag, // sptid, // mtrlcode // INTO :mx_mtrlwareid, // :mx_status, // :mx_woodcode, // :mx_plancode, // :mx_pcode, // :mx_noallocqty, // :mx_cost, // :mx_dxflag, // :mx_sptid, // :mx_mtrlcode // FROM u_mtrlware,u_mtrldef // WHERE u_mtrlware.mtrlid = u_mtrldef.mtrlid // AND u_mtrlware.mtrlid = :ll_SonMtrlid[ll_i] // AND u_mtrlware.storageid = :ls_storageid // And u_mtrlware.status = :ls_status_find; // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // arg_msg = '第'+String(ll_j)+'行,查询该产品组装材料的库存资料失败>>'+sqlca.SQLErrText // GOTO ext // END IF // // IF uo_ware_install.acceptmx(ll_i,& // ls_storageid,& // mx_mtrlwareid,& // ll_SonMtrlid[ll_i],& // ld_saleqty * ld_Sonscale[ll_i],& // 0,& // mx_cost,& // mx_status,& // mx_plancode,& // mx_woodcode,& // '',& // mx_mtrlcode,& // mx_pcode,& // mx_dxflag,& // mx_sptid,& // arg_msg,& // ld_Sonscale[ll_i]) = 0 THEN // rslt = 0 // GOTO ext // END IF // NEXT // // IF uo_ware_install.Save(arg_msg,False) = 0 THEN // rslt = 0 // GOTO ext // END IF // // IF uo_ware_install.getinfo(uo_ware_install.billid,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // END IF // // IF uo_ware_install.auditing(publ_operator,False,arg_msg) = 0 THEN // rslt = 0 // GOTO ext // END IF //NEXT // // //ext: //IF rslt = 0 THEN // ROLLBACK Using sqlca; // MessageBox('错误',arg_msg,stopsign!,OK!) //ELSEIF rslt = 1 THEN // COMMIT Using sqlca; // MessageBox('提示','自动组装成功',information!,OK!) //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 = 104 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row] s_pic.e_long = dw_pageretr.Object.u_outware_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 = 104 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row] s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) 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_sale) 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_outwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_outwaremx_uqty[i] * ll_value,ll_num) ELSE dw_child.Object.u_outwaremx_addqty[i] = Round(ld_qty * dw_child.Object.u_outwaremx_uqty[i] / ll_value,ll_num) END IF END IF NEXT END IF end event event ue_cmpl_qty();IF dw_child.GetRow() = 0 THEN RETURN Long child_row Long uc_row Long li_cusid,li_mtrlid Decimal ld_cusprice uc_row = dw_uc.GetRow() li_cusid = dw_uc.Object.u_outware_cusid[uc_row] dw_child.AcceptText() child_row = dw_child.GetRow() s_cmpl_qty s_cmpl,s_return s_cmpl.qty = dw_child.Object.u_outwaremx_uqty[child_row] s_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row] s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] s_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] s_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] s_cmpl.pcode = dw_child.Object.u_outwaremx_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_outwaremx_packqty[child_row] s_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] s_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] s_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] s_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] SELECT price INTO :ld_cusprice FROM u_cust INNER JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid WHERE u_sale_price_mx.mtrlid = :li_mtrlid AND u_cust.cusid = :li_cusid; IF SQLCA.SQLCODE <> 0 THEN ld_cusprice = 0 END IF s_cmpl.cusprice = ld_cusprice 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_outwaremx_uqty[child_row] = s_return.qty dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula END IF END IF end event event ue_p_cmpl_qty();IF not dw_edit_mode THEN return 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_outwaremx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_outwaremx_formula[i] s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[i] s_cmpl.price = dw_child.Object.u_outwaremx_enprice[i] s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[i] s_cmpl.status = dw_child.Object.u_outwaremx_status[i] s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_outwaremx_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_outwaremx_uqty[i] = ld_qty dw_child.Object.u_outwaremx_saleqty[i] = ld_qty END IF NEXT ext: if sys_option_outware_if_saleqty = 0 then dw_child.SetColumn('u_outwaremx_uqty') else dw_child.SetColumn('u_outwaremx_saleqty') end if dw_uc.SetRedraw(TRUE) 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_outwaremx_addqty[i] CHOOSE CASE ll_type CASE 0 ls_status = dw_child.Object.u_outwaremx_status[i] CASE 1 ls_status = dw_child.Object.u_outwaremx_woodcode[i] CASE 2 ls_status = dw_child.Object.u_outwaremx_pcode[i] CASE 3 ls_status = dw_child.Object.u_mtrldef_mtrlsectype[i] CASE 4 ls_status = dw_child.Object.u_mtrldef_zxmtrlmode[i] END CHOOSE IF ld_addqty = 0 OR ls_status = '' THEN ELSE ld_qty = 0 IF f_cmpl_status_qty(ld_addqty,ls_status,ld_qty,ls_msg) = 0 THEN MessageBox('错误',ls_msg,stopsign!,OK!) GOTO ext END IF IF ll_flag = 0 THEN dw_child.Object.u_outwaremx_uqty[i] = Round(ld_qty * ll_value,ll_num) ELSE dw_child.Object.u_outwaremx_uqty[i] = Round(ld_qty / ll_value,ll_num) END IF END IF NEXT END IF ext: dw_uc.SetRedraw(TRUE) 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_outwaremx_mxdscrp[dw_child.GetRow()] s_view.Title = '销售发货单明细备注' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_outwaremx_mxdscrp[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_p_formula_set();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定公式', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_child.AcceptText() dw_child.SetRedraw(FALSE) FOR ll_i = 1 TO dw_child.RowCount() IF ll_i = 1 THEN CONTINUE dw_child.Object.u_outwaremx_formula[ll_i] = dw_child.Object.u_outwaremx_formula[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_view_mxdscrp2();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.mxdscrp2[dw_child.GetRow()] s_view.Title = '销售发货单明细备注2' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp2,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.mxdscrp2[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_ch_station();IF dw_edit_mode THEN Long ll_row s_station s_station_2 String arg_msg dw_uc.AcceptText() ll_row = dw_uc.GetRow() IF ll_row <= 0 THEN MessageBox('提示','请先选择客户',information!,OK!) RETURN END IF IF NOT IsValid(w_station_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.if_select_all = FALSE OpenWithParm(w_station_edit,s_ch_tran) //调用 s_station_2 = Message.PowerObjectParm //接受返回结构 IF s_station_2.stationid = 0 THEN RETURN dw_uc.Object.u_outware_relstr_1[ll_row] = s_station_2.stationname dw_uc.Object.u_outware_relstr_2[ll_row] = s_station_2.tele dw_uc.Object.u_outware_relstr_3[ll_row] = s_station_2.address END IF END IF end event event ue_ch_outrepdef();IF NOT IsValid(w_outrepdef_edit_ch) THEN OPEN(w_outrepdef_edit_ch) s_outrepdef s_outrep_ch s_outrep_ch = Message.PowerObjectParm IF s_outrep_ch.outrepname <> '' THEN dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_outrep_ch.outrepname END IF END IF 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 = 0 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_outware_relint_1[dw_uc.GetRow()] = s_ch.banktypeid END IF datawindowchild childdw dw_uc.GetChild("u_outware_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_outware_relint_2[dw_uc.GetRow()] = s_ch.moneyid dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = s_ch.rate END IF datawindowchild childdw dw_uc.GetChild("u_outware_relint_2",childdw) childdw.SetTransObject (sqlca) childdw.Retrieve() END IF end event event ue_csecpriceaudit();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) return END IF IF NOT f_power_ind(1633) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF uo_ware.c_secpriceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row],TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.u_outware_outwareid[pagerert_row] ls_code = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] f_setsysoplog('销售发货单','反回单,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox('提示','反回单成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) end event event ue_secpriceaudit();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) return END IF IF NOT f_power_ind(1632) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF uo_ware.secpriceaudit(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[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_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) end event event ue_ch_dscrp();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_outware_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.u_outware_dscrp[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_ch_rel_address();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] s_view.Title = '客户地址' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp2,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_add_fymx();//用于选择明细内容,被f8[默认]\dw_fymx.doubleclicked调用 IF Not dw_edit_mode THEN RETURN IF dw_uc.GetRow() <= 0 THEN MessageBox('系统提示','请先选择单据') RETURN END IF Long child_row Long ls_cusid,ll_moneyid Decimal ld_mrate Long ls_j s_edit_index_tran s_tran88 child_row = dw_fymx.GetRow() IF Not IsValid(w_itemdef_ch) THEN This.Enabled = False s_tran88.work_mode = 1 Openwithparm(w_itemdef_ch, s_tran88) //调用 This.Enabled = True s_itemdef s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 dw_fymx.SetRedraw(False) IF s_inscust.itemid > 0 THEN //正常返回值则可以取以下值 IF dw_fymx.Find('u_outware_itemmx_itemid = '+String(s_inscust.itemid),1,dw_fymx.RowCount()) > 0 THEN dw_fymx.SetRedraw(True) dw_fymx.SetFocus() RETURN END IF IF dw_fymx.GetRow() > 0 THEN IF dw_fymx.Object.u_outware_itemmx_itemid[child_row] <> 0 THEN child_row = dw_fymx.InsertRow (0) ELSE child_row = dw_fymx.GetRow() END IF ELSE child_row = dw_fymx.InsertRow (0) END IF dw_fymx.Object.u_outware_itemmx_itemid[child_row] = s_inscust.itemid dw_fymx.Object.u_itemdef_itemcode[child_row] = s_inscust.itemcode dw_fymx.Object.u_itemdef_itemname[child_row] = s_inscust.itemname dw_fymx.Object.u_itemdef_itemtype[child_row] = s_inscust.itemtype dw_fymx.Object.u_outware_itemmx_itype[child_row] = s_inscust.itemflag dw_fymx.SetColumn('u_outware_itemmx_amt') END IF dw_fymx.SetRedraw(True) dw_fymx.SetFocus() END IF end event event insert_childrow_fymx();Long li_row li_row = dw_fymx.InsertRow(0) dw_fymx.ScrollToRow(li_row) dw_fymx.SetColumn ('u_itemdef_itemcode') end event event ue_importlmsaleprice();// //导入设定售价 Long ls_row,ls_cusid,ll_mtrlid String ls_cuscode,ls_cusname,arg_msg Long uc_row Decimal obj_price ,obj_rebate,obj_rate String err_str = '' Boolean if_exist_price = True Long ls_pricelistid,ll_moneyid String ls_status,ls_pcode,ls_woodcode,ls_unit uc_row = dw_uc.GetRow() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.u_outware_cusid[uc_row] = 0 Or IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.u_outware_cusid[uc_row] ls_cuscode = dw_uc.Object.u_cust_cuscode[uc_row] ls_cusname = dw_uc.Object.u_cust_name[uc_row] IF dw_child.RowCount() <= 0 THEN MessageBox('提示',"请选择产品!",information!,OK!) RETURN END IF FOR ls_row = 1 To dw_child.RowCount() ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row] SELECT lmsaleprice INTO :obj_price FROM u_mtrldef Where mtrlid = :ll_mtrlid; IF sqlca.SQLCode <> 0 THEN obj_price = 0 END IF obj_rebate = 1 dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price dw_child.Object.u_outwaremx_rebate[ls_row] = obj_rebate NEXT IF err_str <> '' THEN MessageBox('错误',err_str,stopsign!,OK!) END IF end event event ue_ch_outtype();IF Not dw_edit_mode THEN RETURN Long child_row Long ls_outtypeid child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF Not IsValid(w_outtype_edit) THEN Open(w_outtype_edit) ls_outtypeid = Message.DoubleParm datawindowchild childdw dw_child.GetChild("u_outwaremx_outtype",childdw) childdw.SetTransObject (sqlca) IF childdw.Retrieve() = 0 THEN childdw.InsertRow(0) END IF IF ls_outtypeid = 0 THEN RETURN dw_child.Object.u_outwaremx_outtype[child_row] = ls_outtypeid dw_child.SetFocus() END IF end event event ue_add_addqty();IF NOT dw_edit_mode THEN RETURN IF flag = 1 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_outwaremx_mtrlid[child_row] <= 0 THEN RETURN ls_mxdscrp = dw_child.Object.u_outwaremx_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_outwaremx_addqty[child_row] = s_input.addqty IF s_input.addqtystr <> '' THEN dw_child.Object.u_outwaremx_mxdscrp[child_row] = s_input.addqtystr END IF IF s_input.formula <> '' THEN dw_child.Object.u_outwaremx_formula[child_row] = s_input.formula END IF IF s_input.flag = 1 THEN dw_child.Object.u_outwaremx_saleqty[child_row] = s_input.qty dw_child.Object.u_outwaremx_uqty[child_row] = s_input.qty END IF END IF end event event ue_di_auto_del();IF sys_option_outware_if_di <> 0 THEN MessageBox('提示','系统选项[084]已设置仓审自动组装,不能手动操作',information!,OK!) RETURN END IF IF Not f_power_ind(288) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF IF MessageBox('提示','是否确定要删除相应组装单?',question!,YesNo!) = 2 THEN return Long ll_ucrow, ll_j,rslt = 1 String arg_msg String ls_outwarecode String ls_reason Long ll_cnt long ll_billid, ll_billid_arr[] string ls_billcode, ls_billcode_arr[] ll_ucrow = dw_uc.GetRow() IF ll_ucrow <= 0 THEN MessageBox('系统提示','请先选择单据') RETURN END IF ls_outwarecode = dw_uc.Object.u_outware_outwarecode[ll_ucrow] ls_reason = '销售发货单:'+ls_outwarecode+'自动组装' uo_dismantle_install uo_ware_install uo_ware_install = Create uo_dismantle_install //uo_ware_install.sysautobuild = true //读取单据 DECLARE cur_getdi CURSOR FOR SELECT billid , billcode FROM u_dismantle_install WHERE billtype = 0 AND reason = :ls_reason Using sqlca; OPEN cur_getdi; DO WHILE sqlca.SQLCode = 0 FETCH cur_getdi Into :ll_billid, :ls_billcode; IF sqlca.SQLCode <> 0 THEN EXIT ll_cnt++ ll_billid_arr[ll_cnt] = ll_billid ls_billcode_arr[ll_cnt] = ls_billcode LOOP CLOSE cur_getdi; FOR ll_j = 1 To ll_cnt IF uo_ware_install.getinfo(ll_billid_arr[ll_j],arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_install.c_auditing(False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF uo_ware_install.del(ll_billid_arr[ll_j],False,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF NEXT ext: destroy uo_ware_install IF rslt = 0 THEN ROLLBACK Using sqlca; MessageBox('错误',arg_msg,stopsign!,OK!) ELSEIF rslt = 1 THEN COMMIT Using sqlca; MessageBox('提示','删除自动组装成功',information!,OK!) END IF end event event ue_ch_mtrlware();//用于选择订单的库存id\dw_child.doubleclicked调用 If Not dw_edit_mode Then Return If dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 Then Return If flag = 1 Then Return Long child_row,ll_storageid = 0, select_cnt Long ll_moneyid dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] If ll_moneyid = 0 Or IsNull(ll_moneyid) Then MessageBox('提示','请先选择币种',information!,OK!) Return End If ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] If ll_storageid = 0 Or IsNull(ll_storageid) Then MessageBox('提示','请先选择仓库',information!,OK!) Return End If Int li_if_cus_mtrlware,li_inwaretype Select balctype , inwaretype Into :li_if_cus_mtrlware, :li_inwaretype From u_storage Where storageid = :ll_storageid; If sqlca.SQLCode <> 0 Then MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!) Return End If Long ls_null s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = 0 Long chc = 1,ls_j,ll_cusid SetNull(ls_null) ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] If IsNull(ll_cusid) Or ll_cusid = 0 Then This.TriggerEvent("ue_f9") End If child_row = dw_child.GetRow() If child_row <= 0 Then MessageBox('错误','请选择按订单的明细行',stopsign!,OK!) Return End If dw_uc.AcceptText() ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] If li_if_cus_mtrlware = 1 Then s_tranf8.c_long = ll_cusid Else s_tranf8.c_long = -1 End If If li_inwaretype = 3 Then //批号类型 s_tranf8.f_long = 1 Else s_tranf8.f_long = 0 End If If Not IsValid(w_mtrlware_storageid_ch_outware_sale_ml) Then s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.d_long = ll_storageid s_tranf8.e_long = dw_child.Object.u_outwaremx_mtrlid[child_row] s_tranf8.c_string = dw_child.Object.u_outwaremx_status[child_row] s_tranf8.d_string = dw_child.Object.u_outwaremx_woodcode[child_row] s_tranf8.e_string = dw_child.Object.u_outwaremx_pcode[child_row] s_tranf8.f_string = dw_child.Object.u_outwaremx_plancode[child_row] //批号 dw_child.AcceptText() If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) OpenWithParm(w_mtrlware_storageid_ch_outware_sale_ml,s_tranf8) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm For ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) If S_INSCUST.mtrlwareid[ls_j] > 0 Then select_cnt++ If select_cnt > 1 Then //child_row = 0 dw_child.RowsCopy (child_row,child_row,Primary!,dw_child,child_row+1,Primary!) child_row += 1 End If dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] If select_cnt = 1 Then Else dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 //S_INSCUST.noallocqty[ls_j] - S_INSCUST.noauditingqty[ls_j] End If dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j] dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j] dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j] dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] Decimal lde_rate f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate // // //查询单价 // wf_get_price(child_row) // // dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j] // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null // dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null // dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j] End If Next End If If sys_option_outware_if_saleqty = 0 Then dw_child.SetColumn('u_outwaremx_uqty') Else dw_child.SetColumn('u_outwaremx_saleqty') End If dw_child.SetRedraw(True) dw_child.SetFocus() ////////////////////////////////// // end event event ue_all_choice();Long i FOR i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.if_ch[i] = 1 NEXT cbx_all.checked = true end event event ue_allnot_choice();Long i FOR i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.if_ch[i] = 0 NEXT cbx_all.checked = false 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(65) Or f_power_ind(369)) 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.if_ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息 ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i] ll_scid = dw_pageretr.Object.u_outware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] li_secflag = dw_pageretr.Object.secflag[ll_i] ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[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(869) Or f_power_ind(868) ) 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.if_ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在撤审..." //进度信息 ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i] ll_scid = dw_pageretr.Object.u_outware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] li_secflag = dw_pageretr.Object.secflag[ll_i] ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[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(580) Or f_power_ind(583)) 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.if_ch[ll_i] = 0 THEN CONTINUE w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在删除..." //进度信息 ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i] ll_scid = dw_pageretr.Object.u_outware_scid[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] li_secflag = dw_pageretr.Object.secflag[ll_i] ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[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_p_rebate();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 = 2 TO dw_child.RowCount() dw_child.Object.u_outwaremx_rebate[ll_i] = dw_child.Object.u_outwaremx_rebate[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_fj_edit_mx();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') 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,ll_mxrow ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF ll_mxrow = dw_child.GetRow() IF ll_mxrow <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg) RETURN END IF s_pic.f_long = 9104 //销售订单明细 s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row] s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row] s_pic.d_long = dw_child.Object.u_outwaremx_printid[ll_mxrow] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) end event event ue_fj_mx_add();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') 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) RETURN END IF s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row] s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_saletaskmx_fileadd,s_pic) end event event ue_fj_mx_add_p();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF IF NOT f_power_ind(1098,sys_msg_pow) 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) RETURN END IF s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row] s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_saletaskmx_fileadd_p,s_pic) end event event ue_fj_view_mx();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row,ll_mxrow ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN RETURN END IF ll_mxrow = dw_child.GetRow() IF ll_mxrow <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg) RETURN END IF s_pic.f_long = 9104 //销售订单明细 s_pic.f_string = dw_pageretr.Object.u_outware_outwarecode[ls_row] s_pic.g_long = dw_pageretr.Object.u_outware_outwareid[ls_row] s_pic.e_long = dw_pageretr.Object.u_outware_scid[ls_row] s_pic.d_long = dw_child.Object.u_outwaremx_printid[ll_mxrow] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_ch_dscrp2();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] s_view.Title = '销售发货单备注2' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_ch_dscrp3();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] s_view.Title = '销售发货单备注3' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] = s_return.dscrp 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_outwaremx_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_outwaremx_status' THEN IF ll_statusflag<>5 THEN RETURN ELSEIF arg_status = 'u_outwaremx_woodcode' THEN IF ll_woodcodeflag<>5 THEN RETURN ELSEIF arg_status = 'u_outwaremx_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_view_mxdscrp3();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_outwaremx_mxdscrp3[dw_child.GetRow()] s_view.Title = '销售发货单明细备注3' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp2,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_outwaremx_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_outwaremx_mxdscrp4[dw_child.GetRow()] s_view.Title = '销售发货单明细备注4' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp2,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_child.Object.u_outwaremx_mxdscrp4[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_cmpl_set0();// long i for i=1 to dw_child.rowcount() dw_child.object.u_outwaremx_uqty[i]=0 next end event event ue_importcusseleprice_buchong(); //查询客户价格表 //如果客户无价格表则提示是否直接查询价格表 Long ls_row,ls_cusid,ls_mtrlid String ls_cuscode,ls_cusname,arg_msg Long uc_row Decimal obj_price ,obj_rebate,obj_rate String err_str = '' Boolean if_exist_price = TRUE Long ll_pricelistid,ll_moneyid String ls_status,ls_pcode,ls_woodcode,ls_unit s_pricelist_ch s_pricelist uc_row = dw_uc.GetRow() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.u_outware_cusid[uc_row] = 0 OR IsNull(dw_uc.Object.u_outware_cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.u_outware_cusid[uc_row] SELECT u_cust.pricelistid INTO :ll_pricelistid FROM u_cust Where u_cust.cusid = :ls_cusid; IF sqlca.SQLCode <> 0 OR ll_pricelistid <= 0 THEN if_exist_price = FALSE END IF IF if_exist_price = FALSE THEN IF MessageBox('询问',"当前客户的计划售价尚未设定!是否查询价格列表?",Question!,YesNo!) = 2 THEN RETURN Open(w_sale_price_list_ch) s_pricelist = Message.PowerObjectParm IF s_pricelist.pricelistid <= 0 THEN RETURN ll_pricelistid = s_pricelist.pricelistid END IF IF wf_get_pricelist_price_buchong(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN MessageBox('提示',arg_msg,information!,OK!) RETURN END IF //FOR ls_row = 1 TO dw_child.RowCount() // ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ls_row] // ls_status = dw_child.Object.u_outwaremx_status[ls_row] // ls_pcode = dw_child.Object.u_outwaremx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ls_row] // ls_unit = dw_child.Object.u_outwaremx_unit[ls_row] // // IF sys_option_price_if_status = 0 THEN // ls_status = '' // ls_pcode = '' // ls_woodcode = '' // END IF // // // IF if_exist_price THEN //查询客户价格表 // IF Not (IsNull(ls_mtrlid) OR ls_mtrlid = 0 ) THEN // SELECT u_sale_price_mx.price // INTO :obj_price // FROM u_sale_price_list ,u_cust,u_sale_price_mx // WHERE (u_sale_price_list.pricelistid = u_cust.pricelistid) AND // (u_sale_price_mx.pricelistid = u_sale_price_list.pricelistid) AND // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND // ( u_cust.cusid = :ls_cusid ) AND // ( u_sale_price_mx.status = :ls_status ) AND // ( u_sale_price_mx.pcode = :ls_pcode ) AND // ( u_sale_price_mx.woodcode = :ls_woodcode ) and // ( u_sale_price_mx.unit = :ls_unit); // IF sqlca.SQLCode <> 0 THEN // err_str = err_str + "当前客户的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n" // ELSE // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price // END IF // END IF // ELSE //查询价格列表 // SELECT u_sale_price_mx.price // INTO :obj_price // FROM u_sale_price_mx // WHERE ( u_sale_price_mx.pricelistid = :s_pricelist.pricelistid ) AND // ( u_sale_price_mx.mtrlid = :ls_mtrlid ) AND // ( u_sale_price_mx.status = :ls_status ) AND // ( u_sale_price_mx.pcode = :ls_pcode ) AND // ( u_sale_price_mx.woodcode = :ls_woodcode ) and // ( u_sale_price_mx.unit = :ls_unit); // IF sqlca.SQLCode <> 0 THEN // err_str = err_str + "当前价格表的 "+String(dw_child.Object.u_mtrldef_mtrlname[ls_row])+" 的计划售价尚未设定! ~n" // ELSE // dw_child.Object.u_outwaremx_enprice[ls_row] = obj_price // END IF // END IF //NEXT //IF err_str <> '' THEN // MessageBox('错误',err_str,stopsign!,OK!) //END IF // end event event ue_retrieve_fifo_cbmx(); String ls_mtrlcode,ls_mtrlname Long ll_row Long ll_scid Long ll_outwareid Long ll_printid Long ll_mtrlwareid Decimal dec_uqty ll_row = dw_child.GetRow() IF ll_row <= 0 THEN RETURN END IF ll_scid = cur_scid ll_outwareid = dw_child.Object.u_outwaremx_outwareid[ll_row] ll_printid = dw_child.Object.u_outwaremx_printid[ll_row] ll_mtrlwareid= dw_child.Object.u_outwaremx_mtrlwareid[ll_row] dec_uqty = dw_child.Object.u_outwaremx_uqty[ll_row] ls_mtrlname= dw_child.Object.u_mtrldef_mtrlname[ll_row] IF IsValid(w_fifo_mtrlware_cb) THEN w_fifo_mtrlware_cb.WindowState = Normal! w_fifo_mtrlware_cb.cur_scid = ll_scid w_fifo_mtrlware_cb.cur_outwareid = ll_outwareid w_fifo_mtrlware_cb.cur_printid = ll_printid w_fifo_mtrlware_cb.cur_mtrlwareid = ll_mtrlwareid w_fifo_mtrlware_cb.cur_dec_uqty = dec_uqty w_fifo_mtrlware_cb.cur_mtrlname = ls_mtrlname w_fifo_mtrlware_cb.wf_retrieve_cbmx() w_fifo_mtrlware_cb.wf_retrieve_allmtrlware() w_fifo_mtrlware_cb.wf_retrieve_allmtrlware_mx() END IF end event event ue_show_fifo_cbmx(); s_edit_index_tran s_ch_tran //传递参数使用 long ll_row long ll_scid long ll_outwareid long ll_printid long ll_mtrlwareid decimal dec_uqty string ls_mtrlname ll_row = dw_child.GetRow() IF ll_row = 0 THEN RETURN ll_scid = cur_scid ll_outwareid = dw_child.Object.u_outwaremx_outwareid[ll_row] ll_printid = dw_child.Object.u_outwaremx_printid[ll_row] ll_mtrlwareid= dw_child.Object.u_outwaremx_mtrlwareid[ll_row] dec_uqty = dw_child.Object.u_outwaremx_uqty[ll_row] ls_mtrlname= dw_child.Object.u_mtrldef_mtrlname[ll_row] s_ch_tran.b_long=ll_scid //cur_scid s_ch_tran.c_long=ll_outwareid //cur_outwareid s_ch_tran.d_long=ll_printid //cur_printid s_ch_tran.e_long=ll_mtrlwareid //cur_mtrlwareid s_ch_tran.b_decimal=dec_uqty //cur_dec_uqty s_ch_tran.b_string=ls_mtrlname //cur_mtrlname IF IsValid(w_fifo_mtrlware_cb) THEN w_fifo_mtrlware_cb.WindowState = Normal! w_fifo_mtrlware_cb.cur_scid =ll_scid w_fifo_mtrlware_cb.cur_outwareid =ll_outwareid w_fifo_mtrlware_cb.cur_printid = ll_printid w_fifo_mtrlware_cb.cur_mtrlwareid = ll_mtrlwareid w_fifo_mtrlware_cb.cur_dec_uqty = dec_uqty w_fifo_mtrlware_cb.cur_mtrlname = ls_mtrlname w_fifo_mtrlware_cb.wf_retrieve_cbmx() ELSE OpenWithParm(w_fifo_mtrlware_cb,s_ch_tran) END IF end event event ue_ch_relstr_3();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_outware_relstr_3[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.u_outware_relstr_3[dw_uc.GetRow()] = s_return.dscrp END IF 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_outwaremx_tax[i] = dw_child.Object.u_outwaremx_tax[1] wf_cmpl_amt(i) NEXT end event event ue_show_his_pricemx(); s_edit_index_tran s_ch_tran //传递参数使用 long ll_row long ll_scid long ll_outwareid long ll_printid long ll_mtrlwareid decimal dec_uqty string ls_mtrlname long ll_cusid long ll_mtrlid string ls_status,ls_woodcode,ls_pcode,ls_plancode,ls_mtrlcode ll_row = dw_child.GetRow() IF ll_row = 0 THEN RETURN long uc_row uc_row = dw_uc.GetRow() IF uc_row = 0 THEN RETURN ll_scid = cur_scid ll_cusid = dw_uc.Object.u_outware_cusid[uc_row] ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row] ls_status= dw_child.Object.u_outwaremx_status[ll_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row] ls_pcode= dw_child.Object.u_outwaremx_pcode[ll_row] ls_plancode= dw_child.Object.u_outwaremx_plancode[ll_row] ls_mtrlcode= dw_child.Object.u_mtrldef_mtrlcode[ll_row] s_ch_tran.b_long=ll_scid //cur_scid s_ch_tran.c_long=ll_cusid //cur_cusid s_ch_tran.d_long=ll_mtrlid //cur_mtrlid s_ch_tran.b_string=ls_mtrlcode s_ch_tran.c_string=ls_status s_ch_tran.d_string=ls_woodcode s_ch_tran.e_string=ls_pcode s_ch_tran.f_string=ls_plancode IF IsValid(w_outware_sale_show_his_pricemx) THEN w_outware_sale_show_his_pricemx.WindowState = Normal! w_outware_sale_show_his_pricemx.cur_scid =ll_scid w_outware_sale_show_his_pricemx.cur_cusid =ll_cusid w_outware_sale_show_his_pricemx.cur_mtrlid = ll_mtrlid w_outware_sale_show_his_pricemx.cur_status = ls_status w_outware_sale_show_his_pricemx.cur_woodcode = ls_woodcode w_outware_sale_show_his_pricemx.cur_pcode = ls_pcode w_outware_sale_show_his_pricemx.cur_plancode = ls_plancode w_outware_sale_show_his_pricemx.cur_mtrlname = ls_mtrlcode w_outware_sale_show_his_pricemx.wf_retrieve_cbmx() ELSE OpenWithParm(w_outware_sale_show_his_pricemx,s_ch_tran) END IF end event event ue_retrieve_his_pricemx(); s_edit_index_tran s_ch_tran //传递参数使用 long ll_row long ll_scid long ll_outwareid long ll_printid long ll_mtrlwareid decimal dec_uqty string ls_mtrlname long ll_cusid long ll_mtrlid string ls_status,ls_woodcode,ls_pcode,ls_plancode,ls_mtrlcode ll_row = dw_child.GetRow() IF ll_row = 0 THEN RETURN long uc_row uc_row = dw_uc.GetRow() IF uc_row = 0 THEN RETURN ll_scid = cur_scid ll_cusid = dw_uc.Object.u_outware_cusid[uc_row] ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row] ls_status= dw_child.Object.u_outwaremx_status[ll_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row] ls_pcode= dw_child.Object.u_outwaremx_pcode[ll_row] ls_plancode= dw_child.Object.u_outwaremx_plancode[ll_row] ls_mtrlcode= dw_child.Object.u_mtrldef_mtrlcode[ll_row] s_ch_tran.b_long=ll_scid //cur_scid s_ch_tran.c_long=ll_cusid //cur_cusid s_ch_tran.d_long=ll_mtrlid //cur_mtrlid s_ch_tran.b_string=ls_mtrlcode s_ch_tran.c_string=ls_status s_ch_tran.d_string=ls_woodcode s_ch_tran.e_string=ls_pcode s_ch_tran.f_string=ls_plancode IF IsValid(w_outware_sale_show_his_pricemx) THEN w_outware_sale_show_his_pricemx.WindowState = Normal! w_outware_sale_show_his_pricemx.cur_scid =ll_scid w_outware_sale_show_his_pricemx.cur_cusid =ll_cusid w_outware_sale_show_his_pricemx.cur_mtrlid = ll_mtrlid w_outware_sale_show_his_pricemx.cur_status = ls_status w_outware_sale_show_his_pricemx.cur_woodcode = ls_woodcode w_outware_sale_show_his_pricemx.cur_pcode = ls_pcode w_outware_sale_show_his_pricemx.cur_plancode = ls_plancode w_outware_sale_show_his_pricemx.cur_mtrlname = ls_mtrlcode w_outware_sale_show_his_pricemx.wf_retrieve_cbmx() END IF end event event ue_mx_cmplnoallocqty();Long i,j,ll_mtrlid,ll_scid,ll_mtrlwareid,ll_storageid String ls_status,ls_woodcode,ls_pcode Decimal ld_notsaleqty,ld_noallocqty,ld_cqty,ld_qty,ld_mtrlqty string arg_lsg,arg_msg dw_child.AcceptText() dw_child.SetRedraw(False) dw_uc.accepttext( ) IF cur_scid = -1 THEN IF dw_pageretr.GetRow() > 0 THEN ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()] IF IsNull(ll_scid) THEN ll_scid = 0 END IF ELSE ll_scid = cur_scid END IF ll_storageid = dw_uc.object.u_outware_storageid[1] FOR i = 1 To dw_child.RowCount() ll_mtrlwareid = 0 ld_notsaleqty = dw_child.Object.u_outwaremx_uqty[i] ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i] ld_noallocqty = 0 SELECT sum(noallocqty) INTO :ld_noallocqty FROM u_mtrlware,u_storage WHERE u_mtrlware.storageid = u_storage.storageid AND u_mtrlware.scid = :ll_scid AND u_mtrlware.mtrlwareid = :ll_mtrlwareid ; IF sqlca.SQLCode <> 0 THEN ld_noallocqty = 0 END IF IF f_cmp_di_qty(ll_mtrlid,ll_storageid,ls_status,ld_mtrlqty,arg_lsg,arg_msg) = 0 THEN // ls_mesage = ls_mesage + string(ll_mtrlid)+arg_msg ld_mtrlqty =0 else END IF dw_child.Object.mtrlqty[i] = ld_mtrlqty dw_child.Object.noallocqty[i] = ld_noallocqty ld_qty = ld_notsaleqty - ( ld_noallocqty + ld_mtrlqty) if ld_qty < 0 then ld_qty = 0 dw_child.Object.cqty[i] =ld_qty // IF ld_notsaleqty - ld_noallocqty < 0 THEN // dw_child.Object.cqty[i] = 0 // ELSE // // dw_child.Object.cqty[i] = ld_notsaleqty - ld_noallocqty // END IF NEXT dw_child.SetRedraw(True) ////////////////////////////// IF sys_option_outware_if_di <> 0 THEN s_saletask_mtrl mxlist FOR j = 1 To dw_child.RowCount() mxlist.mtrlid[j] = dw_child.Object.u_outwaremx_mtrlid[j] mxlist.qty[j] = dw_child.Object.u_outwaremx_uqty[j] NEXT openwithparm(w_outware_sale_mx4_noallocqty,mxlist)//传入需求数以及物料ID END IF end event event ue_choose_mtrlware_plancode();IF sys_option_saletask_chuange_plancode = 0 THEN RETURN //用于选择订单的库存id\dw_child.doubleclicked调用 IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN IF flag = 1 THEN RETURN Long child_row,ll_storageid = 0, select_cnt Long ll_moneyid dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF ll_storageid = 0 Or IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF Int li_if_cus_mtrlware,li_inwaretype SELECT balctype , inwaretype INTO :li_if_cus_mtrlware, :li_inwaretype FROM u_storage Where storageid = :ll_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!) RETURN END IF Long ls_null s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = 0 Long chc = 1,ls_j,ll_cusid SetNull(ls_null) ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF IsNull(ll_cusid) Or ll_cusid = 0 THEN This.TriggerEvent("ue_f9") END IF child_row = dw_child.GetRow() IF child_row <= 0 THEN MessageBox('错误','请选择按订单的明细行',stopsign!,OK!) RETURN END IF dw_uc.AcceptText() ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF li_if_cus_mtrlware = 1 THEN s_tranf8.c_long = ll_cusid ELSE s_tranf8.c_long = -1 END IF IF li_inwaretype = 3 THEN //批号类型 s_tranf8.f_long = 1 ELSE s_tranf8.f_long = 0 END IF IF Not IsValid(w_mtrlware_ch_plancode_chuange) THEN s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.d_long = ll_storageid s_tranf8.e_long = dw_child.Object.u_outwaremx_mtrlid[child_row] s_tranf8.c_string = dw_child.Object.u_outwaremx_status[child_row] s_tranf8.d_string = dw_child.Object.u_outwaremx_woodcode[child_row] s_tranf8.e_string = dw_child.Object.u_outwaremx_pcode[child_row] s_tranf8.f_string = '' //dw_child.Object.u_outwaremx_plancode[child_row] //批号 dw_child.AcceptText() OpenWithParm(w_mtrlware_ch_plancode_chuange,s_tranf8) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN select_cnt++ dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_child.Object.u_mtrldef_waredscrp[child_row] = S_INSCUST.waredscrp[ls_j] END IF NEXT END IF dw_child.SetRedraw(True) dw_child.SetFocus() end event event ue_create_bmstamt();Long ll_secflag,ll_scid Long ll_mtrlwareid Int i,j s_outware_ch s_outware If Not f_power_ind(1647) 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.secflag[i] If ll_secflag <> 1 Then MessageBox('提示','只能对已财审的单据进行操作',information!,OK!) Return End If s_outware.outwareid = dw_pageretr.Object.u_outware_outwareid[i] s_outware.scid = dw_pageretr.Object.u_outware_scid[i] s_outware.cusid = dw_pageretr.Object.u_outware_cusid[i] s_outware.cuscode = dw_pageretr.Object.u_cust_cuscode[i] s_outware.cusname = dw_pageretr.Object.u_cust_name[i] s_outware.banktypeid = dw_pageretr.Object.u_outware_relint_1[i] s_outware.moneyid = dw_pageretr.Object.u_outware_relint_2[i] s_outware.billcode = dw_pageretr.Object.u_outware_outwarecode[i] s_outware.mrate = dw_pageretr.Object.u_outware_mrate[i] s_outware.billamt = dw_pageretr.Object.billamt[i] s_outware.takeamt = dw_pageretr.Object.takeamt[i] s_outware.balcamt = dw_pageretr.Object.balcamt[i] s_outware.takedate = dw_pageretr.Object.u_outware_outdate[i] s_outware.zqamt = dw_child.Object.compute_17[i] 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 = dw_pageretr.Object.u_outware_cusid[i] s_tran_open.c_long = dw_pageretr.Object.u_outware_scid[i] ll_scid = dw_pageretr.Object.u_outware_scid[i] If Not IsValid(w_bmstamt_edit) Then OpenWithParm(w_bmstamt_edit,s_tran_open) // w_bmstamt_edit.ddlb_scid.uf_selectsc(ll_scid) w_bmstamt_edit.wf_ue_f7(s_outware) End If end event event ue_bill_mod();IF Not (f_power_ind(370,sys_msg_pow)) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN Long uc_row,ll_outwareid,ll_scid Int li_flag,li_secflag,li_priceflag s_edit_index_tran s_open uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_scid = dw_pageretr.Object.u_outware_scid[uc_row] ll_outwareid = dw_pageretr.Object.u_outware_outwareid[uc_row] SELECT flag,secflag,priceflag INTO :li_flag,:li_secflag,:li_priceflag From u_outware Where scid = :ll_scid And outwareid = :ll_outwareid; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询单据审核标记失败,操作取消!') RETURN END IF IF li_flag <> 1 then MessageBox('系统提示','单据未仓审,操作取消!') RETURN END IF IF li_secflag = 1 THEN MessageBox('系统提示','单据已财审,操作取消!') RETURN END IF s_open.b_long = ll_scid s_open.c_long = ll_outwareid OpenWithParm(w_outware_sale_mod,s_open) wf_refresh_curuc(ll_scid,ll_outwareid) end event event ue_cmpl_price();IF dw_child.GetRow() = 0 THEN RETURN Long child_row Long uc_row Long li_cusid,li_mtrlid Decimal ld_cusprice uc_row = dw_uc.GetRow() li_cusid = dw_uc.Object.u_outware_cusid[uc_row] dw_child.AcceptText() child_row = dw_child.GetRow() s_cmpl_qty s_cmpl,s_return s_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row] s_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] s_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] s_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] s_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] s_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] s_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] s_cmpl.pcode = dw_child.Object.u_outwaremx_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.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] s_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] s_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] s_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] SELECT price INTO :ld_cusprice FROM u_cust INNER JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid WHERE u_sale_price_mx.mtrlid = :li_mtrlid AND u_cust.cusid = :li_cusid; IF SQLCA.SQLCODE <> 0 THEN ld_cusprice = 0 END IF s_cmpl.cusprice = ld_cusprice 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_outwaremx_enprice[child_row] = s_return.qty dw_child.Object.u_outwaremx_priceformula[child_row] = s_return.formula END IF END IF end event event ue_setprice_forformula();Long child_row dw_child.AcceptText() for child_row = 1 to dw_child.rowcount() if dw_child.Object.u_outwaremx_priceformula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long cusid,mtrlid mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row] arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 ld_qty = 0 if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then MessageBox('提示',ls_msg, Information!, OK! ) RETURN END IF dw_child.Object.u_outwaremx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if next 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.u_outware_outwarecode[i] ls_filecount = 0 SELECT count(*) INTO :ls_filecount FROM u_file WHERE relcode = :arg_billcode AND scid = 0 AND billtype =104 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(integer arg);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(870) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF for i = 1 to dw_pageretr.rowcount() if dw_pageretr.object.if_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.u_outware_outwarecode[i] + " 正在确认..." //进度信息 IF dw_pageretr.object.if_ch[i] = 1 then rslt = 1 string arg_msg = '',ls_code,ls_opemp,ls_outpart long ll_billid, ll_scid,ls_id Int li_priceflag, li_flag, li_secflag ll_scid = dw_pageretr.Object.u_outware_scid[i] ll_billid = dw_pageretr.Object.u_outware_outwareid[i] li_priceflag = dw_pageretr.Object.u_outware_priceflag[i] li_flag = dw_pageretr.Object.flag[i] li_secflag = dw_pageretr.Object.secflag[i] IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN ll_fail++ ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE ELSE IF li_secflag = 1 THEN IF uo_ware.c_secauditing(True,arg_msg) = 0 THEN ll_fail++ ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE ELSE ll_suc++ ls_code = dw_pageretr.Object.u_outware_outwarecode[i] ls_opemp = dw_pageretr.Object.u_outware_opemp[i] ls_outpart = dw_pageretr.Object.u_outware_part[i] f_setsysoplog('销售发货单','财务撤审,code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True) END IF ELSE arg_msg = '此单据未进行财审,不能财撤' ll_fail++ ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE 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_outwaremx_saleqty[child_row] lde_rebate = dw_child.Object.u_outwaremx_rebate[child_row] lde_enprice = dw_child.Object.u_outwaremx_enprice[child_row] lde_enprice_notax = dw_child.Object.enprice_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_outwaremx_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_outwaremx_enamt_tax[child_row] = lde_taxamt * lde_saleqty //总税金 If lde_enprice <> 0 Then dw_child.Object.enamt[child_row] = Round( lde_enprice * lde_rebate * lde_saleqty, 2) //总金额 dw_child.Object.enamt_notax[child_row] = dw_child.Object.enamt[child_row] - dw_child.Object.u_outwaremx_enamt_tax[child_row] //不含税总金额 dw_child.Object.enprice_notax[child_row] = lde_enprice - lde_taxamt //不含税单价 dw_child.Object.u_outwaremx_tax[child_row] = lde_taxamt / (lde_enprice - lde_taxamt) //税率 elseif lde_enprice_notax <> 0 then dw_child.Object.enamt_notax[child_row] = Round( lde_enprice_notax * lde_rebate * lde_saleqty, 2) //不含税总金额 dw_child.Object.enamt[child_row] = dw_child.Object.enamt_notax[child_row] + dw_child.Object.u_outwaremx_enamt_tax[child_row] //总金额 dw_child.Object.u_outwaremx_enprice[child_row] = lde_enprice_notax + lde_taxamt //单价 dw_child.Object.u_outwaremx_tax[child_row] = lde_taxamt / lde_enprice_notax //税率 End If End If End If end event event ue_mod_outdate();// IF NOT f_power_ind(2003) THEN MessageBox('提示',sys_msg_pow) RETURN END IF IF priceflag = 1 OR flag = 1 THEN IF NOT f_power_ind(1294) THEN //MessageBox('提示','你没有仓审或确认后修改权限!',information!,OK!) MessageBox('提示',sys_msg_pow) RETURN END IF ELSE IF Not (f_power_ind(11) OR f_power_ind(371)) THEN MessageBox('提示',sys_msg_pow) RETURN END IF END IF int row,count = 0 for row = 1 to dw_pageretr.rowcount() if dw_pageretr.object.if_ch[row] = 1 then count++ end if next if count = 0 then MessageBox('提示','请勾选目标单据') return end if open(w_mod_outdate) s_edit_index_tran s_time long i,ll_fail = 0,ll_suc = 0 string arg_msg,ls_msg = '' long ls_outwareid string mod_time s_time = Message.PowerObjectParm if s_time.b_long = 1 then mod_time = string(s_time.b_datetime) for i = 1 to dw_pageretr.rowcount() if dw_pageretr.object.if_ch[i] = 1 then if uo_ware.updatebegin(dw_pageretr.Object.u_outware_scid[i],dw_pageretr.Object.u_outware_outwareid[i],1,arg_msg) = 0 then ll_fail++ ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE end if ls_outwareid = dw_pageretr.Object.u_outware_outwareid[i] update u_outware set outdate = :mod_time where outwareid = :ls_outwareid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; ll_fail++ ls_msg += dw_pageretr.Object.u_outware_outwarecode[i] +','+'失败原因:'+arg_msg+'~r~n' CONTINUE else COMMIT; ll_suc++ END IF end if next 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 if end event event ue_price_mod();IF Not f_power_ind(2013) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF Open(w_outware_sale_mod_price) end event event ue_outware_choose();s_choose s_c OpenWithParm(w_choose_outware,s_c) s_c = Message.PowerObjectParm IF NOT s_c.ifok THEN RETURN cbx_enamt_edit.Checked=s_c.amt_pprice_out cbx_packqty_cmpl.Checked=s_c.packqty_out cbx_enamt_notax_edit.Checked=s_c.notax_price_out cbx_zk.Checked=s_c.zk_out cbx_enamt_edit.TriggerEvent(Clicked!) cbx_packqty_cmpl.TriggerEvent(Clicked!) cbx_enamt_notax_edit.TriggerEvent(Clicked!) cbx_zk.TriggerEvent(Clicked!) end event event ue_setqty_forformula();Long child_row dw_child.AcceptText() for child_row = 1 to dw_child.rowcount() if dw_child.Object.u_outwaremx_formula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long cusid,mtrlid mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row] arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 ld_qty = 0 if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then MessageBox('提示',ls_msg, Information!, OK! ) RETURN END IF dw_child.Object.u_outwaremx_uqty[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if next end event event ue_setqty_forformula_1();Long child_row child_row = dw_child.getrow() dw_child.AcceptText() if dw_child.Object.u_outwaremx_formula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long cusid,mtrlid mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row] arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_formula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 ld_qty = 0 if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then MessageBox('提示',ls_msg, Information!, OK! ) RETURN END IF dw_child.Object.u_outwaremx_uqty[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if end event event ue_setprice_forformula_1();Long child_row child_row = dw_child.getrow() dw_child.AcceptText() if dw_child.Object.u_outwaremx_priceformula[child_row]<>'' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long cusid,mtrlid mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] cusid = dw_uc.Object.u_outware_cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_price[child_row] arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_outwaremx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] arg_cmpl.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 ld_qty = 0 if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then MessageBox('提示',ls_msg, Information!, OK! ) RETURN END IF dw_child.Object.u_outwaremx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if end event public function integer wf_flagstatus_rf ();//wf_flagstatus_rf() Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN IF sys_option_confirmaudit_sale = 1 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 flag = -1 secflag = -1 priceflag = -1 GOTO ext END IF flag = dw_pageretr.Object.flag[pagerert_row] secflag = dw_pageretr.Object.secflag[pagerert_row] priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row] IF dw_edit_mode THEN IF sys_option_confirmaudit_sale = 1 THEN cb_auditing.Text = '确认&F' cb_auditing_cancel.Text = '反确认' ELSE 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 END IF cb_auditing.Enabled = False cb_auditing_cancel.Enabled = False IF cur_editfocus = 1 THEN flag = -1 secflag = -1 priceflag = -1 END IF ELSE IF sys_option_hide_ware = 0 THEN IF sys_option_confirmaudit_sale = 1 THEN IF priceflag = 0 THEN cb_auditing.Text = '确认&F' cb_auditing.Enabled = True cb_auditing_cancel.Text = '反确认' cb_auditing_cancel.Enabled = False ELSEIF priceflag = 1 And flag = 0 THEN cb_auditing.Text = '仓审&F' cb_auditing.Enabled = True cb_auditing_cancel.Text = '反确认' cb_auditing_cancel.Enabled = True 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.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 END IF ELSE IF sys_option_confirmaudit_sale = 1 THEN IF priceflag = 0 THEN cb_auditing.Text = '确认&F' cb_auditing.Enabled = True cb_auditing_cancel.Text = '反确认' cb_auditing_cancel.Enabled = False ELSEIF priceflag = 1 And flag = 0 THEN cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '反确认' cb_auditing.Enabled = True cb_auditing_cancel.Enabled = True ELSE cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' cb_auditing.Enabled = False cb_auditing_cancel.Enabled = True 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 END IF cb_auditing.TriggerEvent('ue_textchange') cb_auditing_cancel.TriggerEvent('ue_textchange') ext: RETURN 0 end function public function integer wf_refresh_curuc (long arg_scid, long arg_wareid);//==================================================================== // Function: wf_refresh_curuc(arg_scid,arg_inwareid) //-------------------------------------------------------------------- // Description: 刷新dw_uc //-------------------------------------------------------------------- // Arguments: // value long arg_scid // value long arg_inwareid //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.11.14 //-------------------------------------------------------------------- // Modify History: // //==================================================================== //wf_refresh_curuc IF arg_wareid <= 0 OR IsNull(arg_wareid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 Long outwareid,cusid DateTime outdate String part,cuscode,cusname String outrep String dscrp,dscrp2,dscrp3 Int planflag Int balcflag String outwarecode DateTime opdate String operator Int li_flag ,li_secflag ,li_priceflag DateTime auditingdate ,secauditingdate ,moddate,pricedate String Auditingrep ,secAuditingrep ,modemp,priceemp String storagename Int thflag Decimal mrate Decimal otheramt Decimal deposit String rel_address String rel_rep String rel_tele, rel_tele1 String rel_fax String relstr_1 String relstr_2, relstr_3 long relint_1 long relint_2 long storageid long ll_printnum datetime secpdate int secpflag string secpemp string transcode string carcode string paytype long typeid datetime viewdate Decimal enamt_tax Long ifenamt_tax SELECT u_outware.outdate, u_outware.outrep, u_outware.part, u_outware.dscrp, u_outware.dscrp2, u_outware.dscrp3, u_outware.outwarecode, u_outware.opdate, u_outware.opemp, u_outware.auditingdate, u_outware.flag, u_outware.auditingrep, u_outware.secauditingdate, u_outware.secflag, u_outware.secauditingrep, u_outware.balcflag, u_outware.cusid, u_cust.cuscode, u_cust.name, u_storage.storagename , u_outware.thflag, u_outware.modemp, u_outware.moddate, u_outware.priceflag, u_outware.priceemp, u_outware.pricedate, u_outware.mrate, u_outware.otheramt, u_outware.deposit, u_outware.rel_address, u_outware.rel_rep, u_outware.rel_tele, u_outware.rel_tele1, u_outware.rel_fax, u_outware.relstr_1, u_outware.relstr_2, u_outware.relstr_3, u_outware.relint_1, u_outware.relint_2, u_outware.storageid, u_outware.printnum, u_outware.secpdate , u_outware.secpflag, u_outware.secpemp, u_outware.transcode, u_outware.carcode, u_outware.paytype, u_outware.typeid, u_outware.viewdate, mxout.enamt_tax, case when mxout.enamt_tax > 0 then 1 else 0 end ifenamt_tax INTO :outdate, :outrep, :part, :dscrp, :dscrp2, :dscrp3, :outwarecode, :opdate, :operator, :Auditingdate, :li_flag, :Auditingrep, :secAuditingdate, :li_secflag, :secAuditingrep, :balcflag, :cusid, :cuscode, :cusname, :storagename, :thflag, :modemp, :moddate, :li_priceflag, :priceemp, :pricedate, :mrate, :otheramt, :deposit, :rel_address, :rel_rep, :rel_tele, :rel_tele1, :rel_fax, :relstr_1, :relstr_2, :relstr_3, :relint_1, :relint_2, :storageid, :ll_printnum, :secpdate , :secpflag, :secpemp, :transcode, :carcode, :paytype, :typeid, :viewdate, :enamt_tax, :ifenamt_tax FROM u_outware INNER JOIN u_cust ON u_outware.cusid = u_cust.cusid INNER JOIN u_storage ON u_outware.StorageID = u_storage.storageid LEFT OUTER JOIN ( SELECT u_outwaremx.scid ,u_outwaremx.outwareid ,sum(enamt_tax) AS enamt_tax FROM u_outwaremx GROUP BY u_outwaremx.scid ,u_outwaremx.outwareid ) AS mxout ON mxout.scid = u_outware.scid AND mxout.outwareid = u_outware.outwareid WHERE ( u_outware.outwareid = :arg_wareid ) AND ( u_outware.scid = :arg_scid); IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!) RETURN 0 END IF dw_pageretr.Object.u_outware_storageid[uc_row] = storageid dw_pageretr.Object.u_outware_scid[uc_row] = arg_scid dw_pageretr.Object.u_outware_outwareid[uc_row] = arg_wareid dw_pageretr.Object.u_outware_outdate[uc_row] = outdate dw_pageretr.Object.u_outware_part[uc_row] = part dw_pageretr.Object.u_outware_outrep[uc_row] = outrep dw_pageretr.Object.u_outware_dscrp[uc_row] = dscrp dw_pageretr.Object.u_outware_dscrp2[uc_row] = dscrp2 dw_pageretr.Object.u_outware_dscrp3[uc_row] = dscrp3 dw_pageretr.Object.u_outware_balcflag[uc_row] = balcflag dw_pageretr.Object.u_outware_outwarecode[uc_row] = outwarecode dw_pageretr.Object.u_outware_opdate[uc_row] = opdate dw_pageretr.Object.u_outware_opemp[uc_row] = operator dw_pageretr.Object.flag[uc_row] = li_flag dw_pageretr.Object.u_outware_Auditingdate[uc_row] = auditingdate dw_pageretr.Object.u_outware_Auditingrep[uc_row] = Auditingrep dw_pageretr.Object.u_outware_cusid[uc_row] = cusid dw_pageretr.Object.u_cust_cuscode[uc_row] = cuscode dw_pageretr.Object.u_cust_name[uc_row] = cusname dw_pageretr.Object.u_storage_storagename[uc_row] = storagename dw_pageretr.Object.u_outware_thflag[uc_row] = thflag dw_pageretr.Object.secflag[uc_row] = li_secflag dw_pageretr.Object.u_outware_secAuditingdate[uc_row] = secauditingdate dw_pageretr.Object.u_outware_secAuditingrep[uc_row] = secAuditingrep dw_pageretr.Object.u_outware_moddate[uc_row] = moddate dw_pageretr.Object.u_outware_modemp[uc_row] = modemp dw_pageretr.Object.u_outware_priceflag[uc_row] = li_priceflag dw_pageretr.Object.u_outware_pricedate[uc_row] = pricedate dw_pageretr.Object.u_outware_priceemp[uc_row] = priceemp dw_pageretr.Object.u_outware_secpflag[uc_row] = secpflag dw_pageretr.Object.u_outware_secpdate[uc_row] = secpdate dw_pageretr.Object.u_outware_secpemp[uc_row] = secpemp dw_pageretr.Object.u_outware_mrate[uc_row] = mrate dw_pageretr.Object.u_outware_otheramt[uc_row] = otheramt dw_pageretr.Object.u_outware_deposit[uc_row] = deposit dw_pageretr.Object.u_outware_rel_address[uc_row] = rel_address dw_pageretr.Object.u_outware_rel_rep[uc_row] = rel_rep dw_pageretr.Object.u_outware_rel_tele[uc_row] = rel_tele dw_pageretr.Object.u_outware_rel_tele1[uc_row] = rel_tele1 dw_pageretr.Object.u_outware_rel_fax[uc_row] = rel_fax dw_pageretr.Object.u_outware_relstr_1[uc_row] = relstr_1 dw_pageretr.Object.u_outware_relstr_2[uc_row] = relstr_2 dw_pageretr.Object.u_outware_relstr_3[uc_row] = relstr_3 dw_pageretr.Object.u_outware_relint_1[uc_row] = relint_1 dw_pageretr.Object.u_outware_relint_2[uc_row] = relint_2 dw_pageretr.Object.u_outware_printnum[uc_row] = ll_printnum dw_pageretr.Object.u_outware_transcode[uc_row] = transcode dw_pageretr.Object.u_outware_carcode[uc_row] = carcode dw_pageretr.Object.u_outware_paytype[uc_row] = paytype dw_pageretr.Object.typeid[uc_row] = typeid dw_pageretr.Object.viewdate[uc_row] = viewdate dw_pageretr.Object.enamt_tax[uc_row] = enamt_tax dw_pageretr.Object.ifenamt_tax[uc_row] = ifenamt_tax dw_pageretr.ResetUpdate() dw_pageretr.SetRedraw(TRUE) dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(TRUE) wf_flagstatus_rf() RETURN 1 end function public subroutine wf_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.u_outware_outwareid[row] ll_scid = dw_pageretr.Object.u_outware_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 = 104 //客户投拆单的 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_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_outware_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, ll_relid, ll_relid_mx 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 = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 To dw_child.RowCount() ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_i] // ll_relid = dw_child.Object.u_outwaremx_outwareid[ll_i] // ll_relid_mx = dw_child.Object.u_outwaremx_printid[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) IF ll_ifpic = 1 and ll_classid > 0 THEN IF arg_str_billlist.bill[i].datawindow = 'dw_xls_outwaremx' AND arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径 FOR ll_j = 1 TO arg_str_billlist.bill[i].ds_data.RowCount() arg_str_billlist.bill[i].ds_data.Object.pic[ll_j] = s_pic.path[ll_j] NEXT END IF END IF NEXT RETURN 1 end function public function integer wf_saletaskmtrltoarr (long arg_scid, long arg_taskid, ref s_saletask_mtrl arg_s_rqmtrl, ref long arg_p_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long arg_p_rqmtrl,ref string arg_msg) //查询合同物料资料 //把物料资料写入数组 Long rslt = 1 Long i //查询合同物料 DECLARE pf_cur CURSOR FOR SELECT u_saletaskmx.mtrlid, u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - ISNULL(uv_outware_sale_noaudit_qty.qty,0), u_saletaskmx.enprice, u_saletaskmx.fprice, u_saletaskmx.rebate, u_saletaskmx.mxdscrp, u_saletaskmx.status, u_saletaskmx.woodcode, u_saletaskmx.pcode, u_saletaskmx.unit, u_saletaskmx.rate, u_saletaskmx.mtrlcuscode, u_saletaskmx.outtype, u_saletaskmx.formula, u_saletaskmx.addqty, convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2, u_saletask.taskdate, u_saletaskmx.printid, u_saletaskmx.taskid, u_saletask.taskcode, u_saletaskmx.plancode, u_saletaskmx.packqty, u_saletaskmx.net_weight, u_saletaskmx.gross_weight, u_saletaskmx.cubage, u_saletaskmx.tax, u_saletaskmx.mxdscrp3, u_saletaskmx.mxdscrp4, u_saletaskmx.priceformula FROM u_saletaskmx LEFT OUTER JOIN uv_outware_sale_noaudit_qty ON u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid , u_mtrldef,u_saletask WHERE u_saletaskmx.mtrlid = u_mtrldef.mtrlid AND ( u_saletaskmx.taskid = :arg_taskid ) AND ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 ) And ( u_saletaskmx.scid = :arg_scid ) and u_saletask.taskid = u_saletaskmx.taskid and u_saletask.scid = u_saletaskmx.scid; OPEN pf_cur; arg_p_rqmtrl = 1 FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl], :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl], :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl], :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl], :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl], :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl], :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl], :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl], :arg_s_rqmtrl.taskdate[arg_p_rqmtrl], :arg_s_rqmtrl.printid[arg_p_rqmtrl], :arg_s_rqmtrl.taskid[arg_p_rqmtrl], :arg_s_rqmtrl.taskcode[arg_p_rqmtrl], :arg_s_rqmtrl.plancode[arg_p_rqmtrl], :arg_s_rqmtrl.packqty[arg_p_rqmtrl], :arg_s_rqmtrl.net_weight[arg_p_rqmtrl], :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl], :arg_s_rqmtrl.cubage[arg_p_rqmtrl], :arg_s_rqmtrl.tax[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl], :arg_s_rqmtrl.priceformula[arg_p_rqmtrl] ; DO WHILE sqlca.SQLCode = 0 arg_p_rqmtrl++ FETCH pf_cur INTO :arg_s_rqmtrl.mtrlid[arg_p_rqmtrl],:arg_s_rqmtrl.qty[arg_p_rqmtrl], :arg_s_rqmtrl.enprice[arg_p_rqmtrl],:arg_s_rqmtrl.fprice[arg_p_rqmtrl], :arg_s_rqmtrl.rebate[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp[arg_p_rqmtrl], :arg_s_rqmtrl.status[arg_p_rqmtrl],:arg_s_rqmtrl.woodcode[arg_p_rqmtrl], :arg_s_rqmtrl.pcode[arg_p_rqmtrl],:arg_s_rqmtrl.unit[arg_p_rqmtrl], :arg_s_rqmtrl.rate[arg_p_rqmtrl],:arg_s_rqmtrl.mtrlcuscode[arg_p_rqmtrl], :arg_s_rqmtrl.outtype[arg_p_rqmtrl],:arg_s_rqmtrl.formula[arg_p_rqmtrl], :arg_s_rqmtrl.addqty[arg_p_rqmtrl],:arg_s_rqmtrl.mxdscrp2[arg_p_rqmtrl], :arg_s_rqmtrl.taskdate[arg_p_rqmtrl], :arg_s_rqmtrl.printid[arg_p_rqmtrl], :arg_s_rqmtrl.taskid[arg_p_rqmtrl], :arg_s_rqmtrl.taskcode[arg_p_rqmtrl], :arg_s_rqmtrl.plancode[arg_p_rqmtrl], :arg_s_rqmtrl.packqty[arg_p_rqmtrl], :arg_s_rqmtrl.net_weight[arg_p_rqmtrl], :arg_s_rqmtrl.gross_weight[arg_p_rqmtrl], :arg_s_rqmtrl.cubage[arg_p_rqmtrl], :arg_s_rqmtrl.tax[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp3[arg_p_rqmtrl], :arg_s_rqmtrl.mxdscrp4[arg_p_rqmtrl], :arg_s_rqmtrl.priceformula[arg_p_rqmtrl] ; LOOP arg_p_rqmtrl = arg_p_rqmtrl - 1 CLOSE pf_cur; RETURN rslt end function public function integer wf_autoaddmx (long arg_scid, long arg_saletaskid, string arg_taskcode, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg);//淘汰 //引入订单 //wf_autoaddmx(arg_saletaskid,arg_storageid,arg_msg) //查询合同物料于数组中 //循环数组 //查询物料库存总额 //查询库存批/插入明细记录 IF Not dw_edit_mode THEN RETURN 0 long rslt = 1 //s_saletask_mtrl arg_s_rqmtrlI //long P_rqmtrl // ////Long lrow,li ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,ins_price,noallocqty,allocqty,r_qty ////Long ins_storageid,count = 0,ins_mtrlwareid = 0,child_llrow ////String ins_prdpackcode,ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode ////Boolean lb_find = True ////Long storageid ////Long mtrlwareid ////String plancode ////Decimal planprice //// ////Date l_rqdate ////l_rqdate = Today() // ////Int li_if_cus_mtrlware,li_noallocflag,li_inwaretype ////Long ls_sptid ////SELECT balctype,noallocflag,inwaretype //// INTO :li_if_cus_mtrlware,:li_noallocflag,:li_inwaretype //// FROM u_storage //// Where storageid = :arg_storageid; ////IF sqlca.SQLCode <> 0 THEN //// arg_msg = '查询仓库是否使用客户库存失败' //// rslt = 0 //// GOTO ext ////END IF //// ////IF li_if_cus_mtrlware = 1 THEN //// ls_sptid = arg_cusid ////ELSE //// ls_sptid = -1 ////END IF // //IF wf_saletaskmtrltoarr(arg_scid,arg_saletaskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // ////FOR li = 1 To P_rqmtrl //// sumqty = 0 //// ins_mtrlcode = '' //// ins_mtrlname = '' //// lb_find = True //// allocqty = 0 //// noallocqty = 0 //// i_qty = 0 //// r_qty = 0 //// //// SELECT u_mtrldef.mtrlcode, //// u_mtrldef.mtrlname, //// u_mtrldef.unit, //// u_mtrldef.mtrlmode, //// u_mtrldef.mtrlsectype, //// u_mtrldef.zxmtrlmode //// INTO :ins_mtrlcode, //// :ins_mtrlname, //// :ins_unit, //// :ins_mtrlmode, //// :ins_mtrlsectype, //// :ins_zxmtrlmode //// FROM u_mtrldef //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li]; //// IF sqlca.SQLCode <> 0 THEN //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText //// rslt = 0 //// GOTO ext //// END IF //// //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty //// INTO :mtrlwaresum_qty //// FROM u_mtrlware //// WHERE u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] //// AND u_mtrlware.storageid = :arg_storageid //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li] //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] //// AND u_mtrlware.scid = :cur_scid //// AND ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 ) //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = ''); //// // and ( (:ifmtrlware = 1 and plancode = :arg_taskcode ) or :ifmtrlware = 0); //// IF sqlca.SQLCode = 0 THEN //// //// ELSEIF sqlca.SQLCode = 100 THEN //// mtrlwaresum_qty = -100000 //// ELSE //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!) //// rslt = 0 //// GOTO ext //// END IF //// //// IF li_noallocflag = 1 And mtrlwaresum_qty = 0 Or mtrlwaresum_qty = -100000 THEN //// IF dw_child.GetRow() <= 0 THEN //// child_llrow = dw_child.InsertRow(0) //// ELSE //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN //// child_llrow = dw_child.InsertRow(0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// END IF //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_taskcode //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0 //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0 //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0 //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0 //// //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// GOTO nextmtrl //// END IF //// //// child_llrow = dw_child.GetRow() //// //// IF mtrlwaresum_qty = 0 THEN //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN //// child_llrow = dw_child.InsertRow (0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// ELSE //// child_llrow = dw_child.InsertRow (0) //// END IF //// //// mtrlwareid = 0 //// plancode = '' //// noallocqty = 0 //// planprice = 0 //// //// SELECT top 1 //// u_mtrlware.mtrlwareid, //// u_mtrlware.plancode, //// u_mtrlware.noallocqty, //// u_mtrlware.planprice //// INTO //// :mtrlwareid, //// :plancode, //// :noallocqty, //// :planprice //// FROM u_mtrlware //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND //// ( u_mtrlware.storageid = :arg_storageid ) AND //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND //// ( u_mtrlware.scid = :cur_scid ) AND //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 ) //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '') //// Order By u_mtrlware.mtrlwareid Desc ; //// IF sqlca.SQLCode = -1 THEN //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText //// MessageBox('提示',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!) //// rslt = 0 //// GOTO ext //// END IF //// //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_taskcode //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li] //// //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// ELSE //// DECLARE pf_cur CURSOR FOR //// SELECT u_mtrlware.storageid, //// u_mtrlware.mtrlwareid, //// u_mtrlware.plancode, //// u_mtrlware.noallocqty, //// u_mtrlware.planprice //// FROM u_mtrlware //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND //// ( u_mtrlware.storageid = :arg_storageid ) AND //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND //// ( u_mtrlware.scid = :cur_scid ) AND //// ( u_mtrlware.sptid = :ls_sptid OR :ls_sptid = -1 ) AND //// ( u_mtrlware.noallocqty > 0) //// AND (plancode = :arg_s_rqmtrlI.plancode[li] OR :arg_s_rqmtrlI.plancode[li] = '') //// Order By u_mtrlware.noallocqty Desc ; //// //// OPEN pf_cur; //// count = 1 //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& //// :ins_qty,:ins_planprice ; //// DO WHILE sqlca.SQLCode = 0 And r_qty < arg_s_rqmtrlI.qty[li] //// count++ //// i_qty = ins_qty //// r_qty = r_qty+i_qty //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] ) //// //// END IF //// //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN //// child_llrow = dw_child.InsertRow (0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// ELSE //// child_llrow = dw_child.InsertRow (0) //// END IF //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_saletaskid //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_taskcode //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li] //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN //// IF li_noallocflag = 0 THEN //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// ELSE //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty //// END IF //// ELSE //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// END IF //// //// //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& //// :ins_qty,:ins_planprice ; //// //// LOOP //// count = count - 1 //// CLOSE pf_cur; //// END IF //// nextmtrl: ////NEXT // // //ext: RETURN rslt end function public function integer wf_saletaskmtrltoarr_salemx (long arg_scid, ref s_saletask_mtrl arg_s_rqmtrl, ref string arg_msg);//wf_saletaskmtrltoarr(long arg_taskid,ref s_saletask_mtrl arg_s_rqmtrl[],ref long i,ref string arg_msg) //查询合同物料资料 //把物料资料写入数组 Long rslt = 1 Long i FOR i = 1 To UpperBound(arg_s_rqmtrl.taskid) SELECT u_saletaskmx.mtrlid, u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty - isnull(uv_outware_sale_noaudit_qty.qty,0), u_saletaskmx.enprice, u_saletaskmx.fprice, u_saletaskmx.rebate, u_saletaskmx.mxdscrp, u_saletaskmx.status, u_saletaskmx.woodcode, u_saletaskmx.pcode, u_saletaskmx.unit, u_saletaskmx.rate, u_saletaskmx.mtrlcuscode, u_saletaskmx.outtype, u_saletaskmx.formula, u_saletaskmx.addqty, convert(text,u_SaleTaskMx.mxdscrp2) as mxdscrp2, u_saletask.taskdate, u_saletaskmx.plancode, u_saletaskmx.packqty, u_saletaskmx.net_weight, u_saletaskmx.gross_weight, u_saletaskmx.cubage, u_saletaskmx.tax, u_saletaskmx.mxdscrp3, u_saletaskmx.mxdscrp4, u_saletaskmx.priceformula INTO :arg_s_rqmtrl.mtrlid[i], :arg_s_rqmtrl.qty[i], :arg_s_rqmtrl.enprice[i], :arg_s_rqmtrl.fprice[i], :arg_s_rqmtrl.rebate[i], :arg_s_rqmtrl.mxdscrp[i], :arg_s_rqmtrl.status[i], :arg_s_rqmtrl.woodcode[i], :arg_s_rqmtrl.pcode[i], :arg_s_rqmtrl.unit[i], :arg_s_rqmtrl.rate[i], :arg_s_rqmtrl.mtrlcuscode[i], :arg_s_rqmtrl.outtype[i], :arg_s_rqmtrl.formula[i], :arg_s_rqmtrl.addqty[i], :arg_s_rqmtrl.mxdscrp2[i], :arg_s_rqmtrl.taskdate[i], :arg_s_rqmtrl.plancode[i], :arg_s_rqmtrl.packqty[i], :arg_s_rqmtrl.net_weight[i], :arg_s_rqmtrl.gross_weight[i], :arg_s_rqmtrl.cubage[i], :arg_s_rqmtrl.tax[i], :arg_s_rqmtrl.mxdscrp3[i], :arg_s_rqmtrl.mxdscrp4[i], :arg_s_rqmtrl.priceformula[i] FROM u_SaleTaskMx INNER JOIN u_SaleTask ON u_SaleTaskMx.TaskID = u_SaleTask.TaskID AND u_SaleTaskMx.scid = u_SaleTask.scid LEFT OUTER JOIN uv_outware_sale_noaudit_qty ON u_SaleTaskMx.scid = uv_outware_sale_noaudit_qty.scid AND u_SaleTaskMx.TaskID = uv_outware_sale_noaudit_qty.relid AND u_SaleTaskMx.printid = uv_outware_sale_noaudit_qty.relprintid WHERE ( u_saletaskmx.scid = :arg_scid ) AND ( u_saletaskmx.taskid = :arg_s_rqmtrl.taskid[i] ) And u_saletaskmx.printid = :arg_s_rqmtrl.printid[i] And ( u_saletaskmx.uSaleQty - u_saletaskmx.consignedqty - u_saletaskmx.stopqty <> 0 ); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询订单明细信息失败!'+sqlca.SQLErrText GOTO ext END IF NEXT ext: RETURN rslt end function public function integer wf_autoaddmx_salemx (long arg_scid, s_saletask_mtrl arg_s_rqmtrli, long arg_storageid, long arg_cusid, long arg_ifzeromtrlware, ref string arg_msg);//淘汰 //引入订单明细 //wf_autoaddmx(arg_taskid,arg_storageid,arg_msg) //查询合同物料于数组中 //循环数组 //查询物料库存总额 //查询库存批/插入明细记录 IF NOT dw_edit_mode THEN RETURN 0 Long li,rslt = 1 ////Long count = 0,child_llrow //// ////Decimal mtrlwaresum_qty,sumqty,i_qty,ins_qty,ins_planprice,noallocqty,allocqty,r_qty ////Long ins_storageid,ins_mtrlwareid = 0 ////String ins_mtrlcode,ins_mtrlname,ins_plancode,ins_unit,ins_mtrlsectype,ins_zxmtrlmode,ins_mtrlmode ////Long mtrlwareid ////String plancode ////Decimal planprice //// ////Boolean lb_find = TRUE // ////Int li_if_cus_mtrlware,li_noallocflag ////Long ll_sptid //// //////客户库存, 未开单库存 ////SELECT balctype, noallocflag //// INTO :li_if_cus_mtrlware, :li_noallocflag //// FROM u_storage //// Where storageid = :arg_storageid; ////IF sqlca.SQLCode <> 0 THEN //// arg_msg = '查询仓库是否使用客户库存失败' //// rslt = 0 //// GOTO ext ////END IF //// ////IF li_if_cus_mtrlware = 1 THEN //// ll_sptid = arg_cusid ////ELSE //// ll_sptid = -1 ////END IF // //IF wf_saletaskmtrltoarr_salemx(arg_scid,arg_s_rqmtrlI,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // //IF wf_set_outwaremx(arg_cusid, arg_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN // rslt = 0 // GOTO ext //END IF // ////FOR li = 1 TO UpperBound(arg_s_rqmtrlI.taskid) //// sumqty = 0 //// ins_mtrlcode = '' //// ins_mtrlname = '' //// lb_find = TRUE //// allocqty = 0 //// noallocqty = 0 //// i_qty = 0 //// r_qty = 0 //// //// SELECT u_mtrldef.mtrlcode, //// u_mtrldef.mtrlname, //// u_mtrldef.unit, //// u_mtrldef.mtrlmode, //// u_mtrldef.mtrlsectype, //// u_mtrldef.zxmtrlmode //// INTO :ins_mtrlcode, //// :ins_mtrlname, //// :ins_unit, //// :ins_mtrlmode, //// :ins_mtrlsectype, //// :ins_zxmtrlmode //// FROM u_mtrldef //// Where u_mtrldef.mtrlid = :arg_s_rqmtrlI.mtrlid[li]; //// IF sqlca.SQLCode <> 0 THEN //// arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText //// rslt = 0 //// GOTO ext //// END IF //// //// SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty //// INTO :mtrlwaresum_qty //// FROM u_mtrlware //// WHERE u_mtrlware.scid = :cur_scid //// AND u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] //// AND u_mtrlware.storageid = :arg_storageid //// AND u_mtrlware.status = :arg_s_rqmtrlI.status[li] //// AND u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] //// AND u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] //// AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = ''); ////// And ( (:ifmtrlware = 1 AND plancode = :arg_s_rqmtrlI.taskcode[li] ) OR :ifmtrlware = 0) ; //// //// IF sqlca.SQLCode = 0 THEN //// //// ELSEIF sqlca.SQLCode = 100 THEN //// mtrlwaresum_qty = -100000 //// ELSE //// arg_msg = '查询库存量失败>'+sqlca.SQLErrText //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,stopsign!,OK!) //// rslt = 0 //// GOTO ext //// END IF //// //// IF li_noallocflag = 1 AND mtrlwaresum_qty = 0 OR mtrlwaresum_qty = -100000 THEN //// IF dw_child.GetRow() <= 0 THEN //// child_llrow = dw_child.InsertRow(0) //// ELSE //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN //// child_llrow = dw_child.InsertRow(0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// END IF //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li] //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li] //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = 0 //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = 0 //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = 0 //// dw_child.Object.u_outwaremx_uqty[child_llrow] = 0 //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// GOTO nextmtrl //// END IF //// //// child_llrow = dw_child.GetRow() //// //// IF mtrlwaresum_qty = 0 THEN //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN //// child_llrow = dw_child.InsertRow (0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// ELSE //// child_llrow = dw_child.InsertRow (0) //// END IF //// //// mtrlwareid = 0 //// plancode = '' //// noallocqty = 0 //// planprice = 0 //// //// SELECT top 1 //// u_mtrlware.mtrlwareid, //// u_mtrlware.plancode, //// u_mtrlware.noallocqty, //// u_mtrlware.planprice //// INTO //// :mtrlwareid, //// :plancode, //// :noallocqty, //// :planprice //// FROM u_mtrlware //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND //// ( u_mtrlware.storageid = :arg_storageid ) AND //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND //// ( u_mtrlware.scid = :cur_scid ) AND //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '') //// Order By u_mtrlware.mtrlwareid Desc ; //// IF sqlca.SQLCode = -1 THEN //// arg_msg = '查询库存信息失败>'+sqlca.SQLErrText //// MessageBox('错误',String(arg_s_rqmtrlI.mtrlid[li] )+'颜色:'+arg_s_rqmtrlI.status[li]+' '+arg_msg,information!,OK!) //// rslt = 0 //// GOTO ext //// END IF //// //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li] //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li] //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = mtrlwareid //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li] //// dw_child.Object.u_outwaremx_storageid[child_llrow] = arg_storageid //// dw_child.Object.u_outwaremx_plancode[child_llrow] = plancode //// dw_child.Object.u_outwaremx_planprice[child_llrow] = planprice //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = 0 //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// ELSE //// DECLARE pf_cur CURSOR FOR //// SELECT u_mtrlware.storageid, //// u_mtrlware.mtrlwareid, //// u_mtrlware.plancode, //// u_mtrlware.noallocqty, //// u_mtrlware.planprice //// FROM u_mtrlware //// WHERE ( u_mtrlware.mtrlid = :arg_s_rqmtrlI.mtrlid[li] ) AND //// ( u_mtrlware.storageid = :arg_storageid ) AND //// ( u_mtrlware.status = :arg_s_rqmtrlI.status[li] ) AND //// ( u_mtrlware.pcode = :arg_s_rqmtrlI.pcode[li] ) AND //// ( u_mtrlware.woodcode = :arg_s_rqmtrlI.woodcode[li] ) AND //// ( u_mtrlware.scid = :cur_scid ) AND //// ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND //// ( u_mtrlware.noallocqty > 0) //// And (plancode = :arg_s_rqmtrlI.plancode[li] Or :arg_s_rqmtrlI.plancode[li] = '') //// Order By u_mtrlware.noallocqty Desc ; //// //// OPEN pf_cur; //// count = 1 //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& //// :ins_qty,:ins_planprice ; //// DO WHILE sqlca.SQLCode = 0 AND r_qty < arg_s_rqmtrlI.qty[li] //// count++ //// i_qty = ins_qty //// r_qty = r_qty+i_qty //// IF r_qty > arg_s_rqmtrlI.qty[li] THEN //// i_qty = ins_qty - ( r_qty - arg_s_rqmtrlI.qty[li] ) //// //// END IF //// //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[child_llrow] <> 0 THEN //// child_llrow = dw_child.InsertRow (0) //// ELSE //// child_llrow = dw_child.GetRow() //// END IF //// ELSE //// child_llrow = dw_child.InsertRow (0) //// END IF //// //// dw_child.Object.u_outwaremx_ifrel[child_llrow] = 1 //// dw_child.Object.u_outwaremx_relid[child_llrow] = arg_s_rqmtrlI.taskid[li] //// dw_child.Object.u_outwaremx_relprintid[child_llrow] = arg_s_rqmtrlI.printid[li] //// dw_child.Object.taskcode[child_llrow] = arg_s_rqmtrlI.taskcode[li] //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_llrow] = ins_mtrlwareid //// dw_child.Object.u_outwaremx_mtrlid[child_llrow] = arg_s_rqmtrlI.mtrlid[li] //// dw_child.Object.u_outwaremx_storageid[child_llrow] = ins_storageid //// dw_child.Object.u_outwaremx_plancode[child_llrow] = ins_plancode //// dw_child.Object.u_outwaremx_planprice[child_llrow] = ins_planprice //// dw_child.Object.u_outwaremx_unit[child_llrow] = arg_s_rqmtrlI.unit[li] //// dw_child.Object.u_outwaremx_enprice[child_llrow] = arg_s_rqmtrlI.enprice[li] //// dw_child.Object.u_outwaremx_fprice[child_llrow] = arg_s_rqmtrlI.fprice[li] //// dw_child.Object.u_outwaremx_rebate[child_llrow] = arg_s_rqmtrlI.rebate[li] //// dw_child.Object.u_mtrldef_mtrlcode[child_llrow] = ins_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_llrow] = ins_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_llrow] = ins_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_llrow] = ins_unit //// dw_child.Object.u_outwaremx_mxdscrp[child_llrow] = arg_s_rqmtrlI.mxdscrp[li] //// dw_child.Object.mxdscrp2[child_llrow] = arg_s_rqmtrlI.mxdscrp2[li] //// dw_child.Object.u_outwaremx_status[child_llrow] = arg_s_rqmtrlI.status[li] //// dw_child.Object.u_outwaremx_woodcode[child_llrow] = arg_s_rqmtrlI.woodcode[li] //// dw_child.Object.u_outwaremx_pcode[child_llrow] = arg_s_rqmtrlI.pcode[li] //// dw_child.Object.u_mtrldef_curware_qty[child_llrow] = ins_qty //// dw_child.Object.u_mtrldef_sumneed_qty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_mtrldef_sumware_qty[child_llrow] = mtrlwaresum_qty //// dw_child.Object.u_mtrldef_mtrlsectype[child_llrow] = ins_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_llrow] = ins_zxmtrlmode //// dw_child.Object.u_outwaremx_mtrlcuscode[child_llrow] = arg_s_rqmtrlI.mtrlcuscode[li] //// dw_child.Object.u_outwaremx_rate[child_llrow] = arg_s_rqmtrlI.rate[li] //// dw_child.Object.u_outwaremx_outtype[child_llrow] = arg_s_rqmtrlI.outtype[li] //// dw_child.Object.u_outwaremx_formula[child_llrow] = arg_s_rqmtrlI.formula[li] //// dw_child.Object.u_outwaremx_addqty[child_llrow] = arg_s_rqmtrlI.addqty[li] //// dw_child.Object.u_mtrldef_taskdate[child_llrow] = arg_s_rqmtrlI.taskdate[li] //// IF ins_qty <= arg_s_rqmtrlI.qty[li] THEN //// IF li_noallocflag = 0 THEN //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// ELSE //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = i_qty //// dw_child.Object.u_outwaremx_uqty[child_llrow] = i_qty //// END IF //// ELSE //// dw_child.Object.u_outwaremx_saleqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// dw_child.Object.u_outwaremx_uqty[child_llrow] = arg_s_rqmtrlI.qty[li] //// END IF //// //// //// FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& //// :ins_qty,:ins_planprice ; //// //// LOOP //// count = count - 1 //// CLOSE pf_cur; //// END IF ////nextmtrl: ////NEXT // // //ext: RETURN rslt end function public function integer wf_refresh_interface ();//wf_refresh_interface IF dw_edit_mode THEN cb_retrieve.Enabled = FALSE cb_delet.Enabled = FALSE cb_print.Enabled = FALSE cb_viewprint.Enabled = FALSE cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = FALSE dw_pageretr.RBUTTON_FILTER_USE = FALSE //右键查询功能开关 dw_pageretr.titleclick_sort_use = FALSE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位 cb_edit.Enabled = TRUE cb_add.Enabled = TRUE // cbx_ifmtrlware.Enabled = TRUE cb_xls.Enabled = FALSE cb_edit.Text = "放弃&E" cb_add.Text = "保存&S" cb_edit.normalpicname = 'Undo.bmp' cb_add.normalpicname = 'Save.bmp' ELSE cb_retrieve.Enabled = TRUE cb_delet.Enabled = TRUE cb_print.Enabled = TRUE cb_viewprint.Enabled = TRUE cb_auditing.Enabled = TRUE cb_auditing_cancel.Enabled = TRUE // cbx_ifmtrlware.Enabled = FALSE cb_add.Enabled = TRUE cb_edit.Enabled = TRUE cb_xls.Enabled = TRUE dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位 cb_edit.Text = "修改&E" cb_add.Text = "新建&S" cb_edit.normalpicname = 'OPEN.bmp' cb_add.normalpicname = 'new.bmp' IF dw_pageretr.GetRow() <= 0 THEN cb_edit.Enabled = FALSE cb_delet.Enabled = FALSE cb_addzy.Enabled = FALSE cb_auditing.Enabled = FALSE END IF END IF IF retrieve_all OR dw_edit_mode THEN cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE em_pagerowno.Enabled = FALSE cb_func.Enabled = FALSE sle_usual_query.Enabled = not dw_edit_mode ELSE cb_nextpage.Enabled = TRUE cb_retrieveall.Enabled = TRUE em_pagerowno.Enabled = TRUE sle_usual_query.Enabled = TRUE cb_func.Enabled = TRUE END IF wf_lock_child() //修改uc_taborder IF dw_edit_mode THEN dw_uc.TriggerEvent("ue_taborder") IF dw_uc.ins_if_nomodify_uc_taborder THEN Long ll_uc_int FOR ll_uc_int = 1 TO uc_column_int dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 ) NEXT END IF ELSE dw_uc.TriggerEvent("ue_taborder_cancel") END IF cb_edit.of_init_draw() cb_add.of_init_draw() cb_edit.of_paint() cb_add.of_paint() cb_add.TriggerEvent('ue_textchange') cb_edit.TriggerEvent('ue_textchange') ll_lastrow = 0 THIS.TriggerEvent('refresh_interface') RETURN 1 end function 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_outware_scid[LS_ROW] Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long ll_classid SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.u_outwaremx_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 subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid);IF NOT f_power_ind(1506) THEN st_cusbalc.Text = '' RETURN END IF IF dw_edit_mode THEN st_cusbalc.Text = '' RETURN END IF IF arg_cusid = 0 THEN RETURN String ls_cusname,ls_moneyname Decimal ld_cus_balcamt,ld_maxmtnum, ld_canamt Decimal ld_notsecaudit_amt,ld_notsecaudit_enamt Decimal ld_notsecaudit_billamt, ldt_cusmaxamt Decimal ld_outrep_balcamt,ld_outrep_maxamt SELECT name INTO :ls_moneyname FROM cw_currency Where moneyid = :arg_moneyid; IF sqlca.SQLCode <> 0 THEN st_cusbalc.Text = '查询币种信息失败' RETURN END IF SELECT u_cust.name, u_cust.maxmtnum , isnull(v_cus_balcamt.cus_balcamt,0) INTO :ls_cusname,:ld_maxmtnum,:ld_cus_balcamt FROM u_cust left OUTER join v_cus_balcamt on u_cust.cusid = v_cus_balcamt.cusid WHERE u_cust.cusid = :arg_cusid AND isnull(v_cus_balcamt.scid,0) = :arg_scid AND IsNull(v_cus_balcamt.moneyid,0) = :arg_moneyid; IF sqlca.SQLCode <> 0 THEN st_cusbalc.Text = '查询客户信息失败' RETURN END IF st_cusbalc.Text = "客户:"+ls_cusname + ' 币种:'+ls_moneyname+'~r~n' IF ld_maxmtnum > 0 THEN IF ld_maxmtnum - ld_cus_balcamt < 0 THEN ld_canamt = 0 ELSE ld_canamt = ld_maxmtnum - ld_cus_balcamt END IF st_cusbalc.Text += '信用额:'+String(ld_maxmtnum,'#,##0.00')+' 欠款:' + String(ld_cus_balcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00') ELSE st_cusbalc.Text += '欠款:'+ String(ld_cus_balcamt,'#,##0.00') END IF IF ld_maxmtnum < ld_cus_balcamt THEN st_cusbalc.TextColor = RGB(255,0,0) ELSE st_cusbalc.TextColor = RGB(0,0,0) END IF // wf_getcusrepamt_info_show(arg_scid,arg_cusid,arg_moneyid) st_cusbalc.Text = ls_cusname+'['+ls_moneyname+'] ' + cur_cusrepamtstr_show end subroutine public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid);Int lst Long i String cstr = '',rstr = '',msg = '' Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt String ls_moneyname Decimal ld_canamt Decimal lde_billamt Decimal ld_mrate Long ll_outwareid //dw_child.accepttext() SELECT name INTO :ls_moneyname FROM cw_currency Where moneyid = :arg_moneyid; IF sqlca.SQLCode <> 0 THEN st_msg.Text = '查询币种信息失败' st_msg.BackColor = RGB(255,255,255) RETURN END IF //本单金额 // IF sys_option_mst_multimoney = 0 THEN // ll_moneyid = f_moneyid_native() // IF ll_moneyid = -1 THEN // MessageBox('系统提示','查询本位币失败') // RETURN // END IF // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()] // ELSE // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()] ld_mrate = 1 // END IF dw_child.AcceptText() //lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()] ////MessageBox('',String(dw_child.Object.enamt_sm[1] )) //IF lde_billamt = 0 THEN lde_billamt = wf_sum_mxamt() //IF lde_billamt < 0 THEN lde_billamt = wf_sum_mxamt() - dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()] //End if //其他单未财审金额 dw_uc.AcceptText() ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()] Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)), sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2)) INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt FROM u_outware,u_outwaremx WHERE u_outware.scid = u_outwaremx.scid AND u_outware.outwareid = u_outwaremx.outwareid AND u_outware.billtype = 1 AND u_outware.secflag = 0 AND u_outware.outwareid <> :ll_outwareid AND u_outware.cusid = :arg_cusid AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 ) And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0); IF sqlca.SQLCode <> 0 THEN ld_notsecaudit_amt = 0 ld_notsecaudit_enamt = 0 END IF SELECT sum(round(u_outware.otheramt,2)), sum(round(u_outware.otheramt * u_outware.mrate,2)) INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt FROM u_outware WHERE u_outware.billtype = 1 AND u_outware.secflag = 0 AND u_outware.outwareid <> :ll_outwareid AND u_outware.cusid = :arg_cusid AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 ) And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0); IF sqlca.SQLCode <> 0 THEN ld_notsecaudit_enotheramt = 0 ld_notsecaudit_otheramt = 0 END IF IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0 IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0 IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0 IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0 IF sys_option_mst_multimoney = 1 THEN ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt ELSE ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt END IF cur_cusrepamtflag = 0 //--------检查信用额 lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt) IF lst < 0 THEN msg = '提示:查询信用额及欠款失败!' st_msg.Text = msg st_msg.BackColor = RGB(255,255,255) cur_cusrepamtflag = -1 cur_cusrepamtstr = msg ELSE //客户欠款 IF arg_cusmaxamt > 0 THEN IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户欠款超信用额! ' ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN cstr = ' 客户欠款平信用额! ' END IF ELSE IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! ' END IF //业务员欠款 IF arg_outrep_maxamt > 0 THEN IF arg_outrep_balcamt > arg_outrep_maxamt THEN rstr = ' 业务员欠款超信用额! ' ELSEIF arg_outrep_balcamt = arg_outrep_maxamt THEN cstr = ' 业务员欠款平信用额! ' END IF ELSE IF arg_outrep_balcamt > arg_outrep_maxamt THEN rstr = ' 业务员有欠款! ' END IF msg = '提示:~r~n~r~n币种:'+ls_moneyname+"~r~n~r~n" IF arg_cusmaxamt > 0 THEN IF arg_cusmaxamt - arg_cusbalcamt < 0 THEN ld_canamt = 0 ELSE ld_canamt = arg_cusmaxamt - arg_cusbalcamt END IF msg += '客户信用额:'+String(arg_cusmaxamt,'#,##0.00')+' 欠款:' + String(arg_cusbalcamt,'#,##0.00') + ' 可用额:' + String(ld_canamt ,'#,##0.00') + cstr + "~r~n~r~n" ELSE msg += '客户欠款:' + String(arg_cusbalcamt,'#,##0.00') + cstr + "~r~n~r~n" END IF //msg += '客户信用额-欠款:'+String(arg_cusmaxamt,'#0.0#')+'-'+String(arg_cusbalcamt,'#0.0#')+'='+String(arg_cusmaxamt - arg_cusbalcamt,'#0.0#')+cstr+"~r~n~r~n" IF arg_outrep_maxamt > 0 THEN IF arg_outrep_maxamt - arg_outrep_balcamt < 0 THEN ld_canamt = 0 ELSE ld_canamt = arg_outrep_maxamt - arg_outrep_balcamt END IF msg += '业务员信用额:'+String(arg_outrep_maxamt,'#,##0.00') +' 欠款'+String(arg_outrep_balcamt,'#,##0.00')+' 可用额:'+String(ld_canamt,'#,##0.00') + rstr ELSE msg += '业务员欠款:'+String(arg_outrep_balcamt,'#,##0.00') + rstr END IF //msg += '业务员信用额-欠款:'+String(arg_outrep_maxamt,'#0.0#')+'-'+String(arg_outrep_balcamt,'#0.0#')+'='+String(arg_outrep_maxamt - arg_outrep_balcamt,'#0.0#')+rstr st_msg.Text = msg cur_cusrepamtstr = msg IF arg_outrep_balcamt >= arg_outrep_maxamt & Or arg_cusbalcamt >= arg_cusmaxamt THEN //有欠款 st_msg.BackColor = RGB(255,200,200) ELSE st_msg.BackColor = RGB(255,255,255) END IF IF arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt > arg_cusmaxamt THEN cur_cusrepamtflag = -1 cur_cusrepamtstr = '客户信用额:'+String(arg_cusmaxamt,'#,##0.00')+' 欠款:' + String(arg_cusbalcamt,'#,##0.00')+' 本单金额:'+ String(lde_billamt,'#,##0.00')+' 其他未财审金额:'+ String(ld_notsecaudit_billamt,'#,##0.00')+'~r~n' cur_cusrepamtstr += '超信用额:'+String(arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt - arg_cusmaxamt,'#,##0.00') ELSE cur_cusrepamtflag = 0 cur_cusrepamtstr = "" END IF END IF st_cusbalc.Text = "" end subroutine public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg);Int rslt = 1 Long ll_row Long ll_pricelistid, ll_moneyid, ll_mtrlid String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname String ls_msg ll_pricelistid = arg_pricelistid ll_moneyid = arg_moneyid IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF s_sale_price_mx s_mx dw_child.AcceptText() FOR ll_row = 1 To dw_child.RowCount() ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row] ls_status = dw_child.Object.u_outwaremx_status[ll_row] ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row] ls_unit = dw_child.Object.u_outwaremx_unit[ll_row] ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row] IF sys_option_price_if_status = 0 THEN ls_status = '' ls_pcode = '' ls_woodcode = '' END IF s_mx.mtrlid = ll_mtrlid s_mx.status = ls_status s_mx.woodcode = ls_woodcode s_mx.pcode = ls_pcode s_mx.unit = ls_unit s_mx.moneyid = ll_moneyid s_mx.pricelistid = ll_pricelistid IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n" rslt = 0 //无标准价格表 或未审核 END IF dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate NEXT IF rslt = 0 THEN arg_msg += "导入价格表售价失败或没有设置售价! ~n " END IF ext: RETURN rslt end function public function integer wf_get_price (long arg_row);IF arg_row <= 0 THEN RETURN 1 IF arg_row > dw_child.RowCount() THEN RETURN 1 Long rslt = 1 Long ll_cusid, ll_moneyid Long ll_i,ll_mtrlid String ls_msg String ls_status,ls_woodcode,ls_pcode, ls_unit String arg_msg Decimal lde_enprice,lde_rebate,lde_rate decimal lde_usaleqty dw_uc.AcceptText() dw_child.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 THEN RETURN 1 ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF ll_cusid = 0 THEN RETURN 1 lde_enprice = 0 lde_rebate = 1 lde_rate = 1 ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row] ls_status = dw_child.Object.u_outwaremx_status[arg_row] ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row] ls_unit = dw_child.Object.u_outwaremx_unit[arg_row] lde_usaleqty = dw_child.Object.u_outwaremx_uqty[arg_row] //IF f_getmtrlcusprice(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_enprice,lde_rebate,lde_rate,arg_msg) <> 1 THEN // lde_enprice = 0 // lde_rebate = 1 //END IF IF f_getmtrlcusprice_qty(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_enprice,lde_rebate,lde_rate,lde_usaleqty,arg_msg) <> 1 THEN lde_enprice = 0 lde_rebate = 1 END IF IF sys_option_price_if_list = 0 AND sys_option_saletask_rebate = 1 THEN lde_rebate = 1 END IF dw_child.Object.u_outwaremx_enprice[arg_row] = lde_enprice dw_child.Object.u_outwaremx_rebate[arg_row] = lde_rebate RETURN rslt end function public function integer wf_get_mtrlwareid (long arg_row);IF arg_row <= 0 THEN RETURN 1 IF arg_row > dw_child.RowCount() THEN RETURN 1 Long rslt = 1 Long ll_cusid Long ll_i,ll_mtrlid, ll_mtrlwareid, ll_storageid,ll_sptid String ls_mtrlcode String ls_msg String ls_status,ls_woodcode,ls_pcode, ls_unit,ls_plancode String arg_msg Decimal lde_price,lde_zqrate,lde_rate dw_child.AcceptText() ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row] ls_status = dw_child.Object.u_outwaremx_status[arg_row] ls_pcode = dw_child.Object.u_outwaremx_pcode[arg_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row] ls_plancode = dw_child.Object.u_outwaremx_plancode[arg_row] ls_unit = dw_child.Object.u_outwaremx_unit[arg_row] ll_sptid = dw_child.Object.u_outwaremx_sptid[arg_row] Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode //客户库存 SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ll_storageid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询仓库是否使用客户库存失败' rslt = 0 END IF IF li_if_cus_mtrlware = 1 And ll_sptid = 0 THEN ll_sptid = ll_cusid END IF IF f_insert_0_mtrlware(ll_mtrlwareid,ll_mtrlid,ls_mtrlcode,ll_storageid,ll_sptid,ls_status,ls_woodcode, ls_pcode,ls_plancode,0,arg_msg) = 0 THEN rslt = 0 ll_mtrlwareid = 0 END IF dw_child.Object.u_outwaremx_mtrlwareid[arg_row] = ll_mtrlwareid RETURN rslt end function public function integer wf_lock_child (); long i if dw_edit_mode then for i = 1 to fy_column_int dw_fymx.SetTabOrder(i, i * 10) next else for i = 1 to fy_column_int dw_fymx.SetTabOrder(i, 0) next end if return super::wf_lock_child() end function public subroutine wf_ue_f7 (s_saletask_ch s_saletask);long rslt = 1 string arg_msg Long ll_storageid Long ll_scid Long ll_taskid String ls_taskcode dw_uc.SetRedraw(False) dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_saletask.cusid dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_saletask.cusname dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_saletask.cuscode dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_saletask.assign_emp dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp dw_uc.Object.u_outware_dscrp2[dw_uc.GetRow()] = s_saletask.dscrp2 dw_uc.Object.u_outware_dscrp3[dw_uc.GetRow()] = s_saletask.dscrp3 dw_uc.Object.u_outware_paytype[dw_uc.GetRow()] = s_saletask.paytype dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_saletask.banktypeid dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = s_saletask.moneyid dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(s_saletask.moneyid) dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_saletask.freight dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_saletask.freight_tele dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_saletask.freight_address dw_uc.Object.u_outware_deposit[dw_uc.GetRow()] = s_saletask.damt dw_uc.Object.u_outware_otheramt[dw_uc.GetRow()] = s_saletask.otheramt dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_saletask.Address dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_saletask.tele dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_saletask.tele1 dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_saletask.fax dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rel_rep dw_uc.Object.u_outware_transcode[dw_uc.GetRow()] = s_saletask.transcode dw_uc.Object.u_outware_carcode[dw_uc.GetRow()] = s_saletask.carcode //dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_saletask.rep dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] ll_taskid = s_saletask.taskid ls_taskcode = s_saletask.taskcode ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF s_saletask.lsflag = 1 THEN dw_uc.Object.u_outware_dscrp[dw_uc.GetRow()] = s_saletask.dscrp2 END IF //String errmsg = '' //wf_autoaddmx(ll_scid,ll_taskid,ls_taskcode,ll_storageid,s_saletask.cusid,s_saletask.if_zeromtrlware,errmsg) //引入订单 //查询合同物料于数组中 //循环数组 //查询物料库存总额 //查询库存批/插入明细记录 s_saletask_mtrl arg_s_rqmtrlI long P_rqmtrl IF wf_saletaskmtrltoarr(ll_scid,ll_taskid,arg_s_rqmtrlI,P_rqmtrl,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF //带出订单明细费用项目dw_cost.Reset() IF wf_set_outware_itemmx(ll_scid,ll_taskid) = 0 THEN rslt = 0 GOTO ext END IF IF wf_set_outwaremx(ll_scid,s_saletask.cusid, ll_storageid, arg_s_rqmtrlI,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF ext: dw_uc.SetRedraw(True) dw_uc.SetColumn("u_outware_rel_address") return end subroutine public function integer wf_set_outwaremx_bk (long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg);//备份用,以后可删 //由订单明细结构插入dw_child //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存; //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存; //li_if_plancode 0:不使用批号; 1:使用批号; //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存 Long i, j, rslt = 1 //Long ll_rowcnt = 0,child_row, count // //Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_mtrlwaresum_qty //Long ll_mtrlwareid = 0 //Decimal i_qty, r_qty //String ls_plancode //Decimal lde_planprice // //String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode // // ////Boolean lb_find = TRUE // //Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode // //Long ll_sptid, ll_sptid_mx // //datastore ds //ds = Create datastore //ds.DataObject = "ds_outware_sale_taskmx" //ds.SetTransObject(sqlca) // ////客户库存, 未开单库存 //SELECT balctype, noallocflag, if_plancode // INTO :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode // FROM u_storage // Where storageid = :arg_storageid; //IF sqlca.SQLCode <> 0 THEN // arg_msg = '查询仓库是否使用客户库存失败' // rslt = 0 // GOTO ext //END IF // ////li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了 // //IF li_if_cus_mtrlware = 1 THEN // ll_sptid = arg_cusid // ll_sptid_mx = ll_sptid //ELSE // ll_sptid = -1 // ll_sptid_mx = 0 //END IF // //FOR i = 1 To UpperBound(arg_mx.taskid) //// sumqty = 0 // ls_mtrlcode = '' // ls_mtrlname = '' //// lb_find = True //// allocqty = 0 // lde_noallocqty = 0 // i_qty = 0 // r_qty = 0 // // SELECT u_mtrldef.mtrlcode, // u_mtrldef.mtrlname, // u_mtrldef.unit, // u_mtrldef.mtrlmode, // u_mtrldef.mtrlsectype, // u_mtrldef.zxmtrlmode // INTO :ls_mtrlcode, // :ls_mtrlname, // :ls_unit, // :ls_mtrlmode, // :ls_mtrlsectype, // :ls_zxmtrlmode // FROM u_mtrldef // Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i]; // IF sqlca.SQLCode <> 0 THEN // arg_msg = '查询物料资料失败[错误物料唯一码]>'+sqlca.SQLErrText // rslt = 0 // GOTO ext // END IF // // SELECT ISNULL(SUM(u_mtrlware.noallocqty), 0) AS sum_qty // INTO :lde_mtrlwaresum_qty // FROM u_mtrlware // WHERE u_mtrlware.mtrlid = :arg_mx.mtrlid[i] // AND u_mtrlware.storageid = :arg_storageid // AND u_mtrlware.status = :arg_mx.status[i] // AND u_mtrlware.pcode = :arg_mx.pcode[i] // AND u_mtrlware.woodcode = :arg_mx.woodcode[i] // AND u_mtrlware.scid = :cur_scid // AND ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) // And (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] ); // IF sqlca.SQLCode = 0 THEN // // ELSEIF sqlca.SQLCode = 100 THEN // lde_mtrlwaresum_qty = -100000 // ELSE // arg_msg = '查询库存量失败>'+sqlca.SQLErrText // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!) // rslt = 0 // GOTO ext // END IF // // //没有库存记录, 且使用未开单库存 // IF li_noallocflag = 1 And lde_mtrlwaresum_qty = 0 Or lde_mtrlwaresum_qty = -100000 THEN // IF dw_child.GetRow() <= 0 THEN // child_row = dw_child.InsertRow(0) // ELSE // IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] > 0 THEN // child_row = dw_child.InsertRow(0) // ELSE // child_row = dw_child.GetRow() // END IF // END IF // // dw_child.Object.u_outwaremx_ifrel[child_row] = 1 // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] // // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0 // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] // dw_child.Object.u_outwaremx_saleqty[child_row] = 0 // dw_child.Object.u_outwaremx_uqty[child_row] = 0 // // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0 // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0 // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] // GOTO nextmtrl // END IF // // child_row = dw_child.GetRow() // // //没有库存记录, 且不使用未开单库存 // IF lde_mtrlwaresum_qty = 0 THEN // IF dw_child.GetRow() > 0 THEN // IF dw_child.Object.u_outwaremx_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 // // ll_mtrlwareid = 0 // ls_plancode = '' // lde_noallocqty = 0 // lde_planprice = 0 // // SELECT top 1 // u_mtrlware.mtrlwareid, // u_mtrlware.plancode, // u_mtrlware.noallocqty, // u_mtrlware.planprice, // u_mtrlware.plancode // INTO // :ll_mtrlwareid, // :ls_plancode, // :lde_noallocqty, // :lde_planprice, // :ls_plancode // FROM u_mtrlware // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND // ( u_mtrlware.storageid = :arg_storageid ) AND // ( u_mtrlware.status = :arg_mx.status[i] ) AND // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND // ( u_mtrlware.scid = :cur_scid ) AND // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] ) // Order By u_mtrlware.mtrlwareid Desc ; // IF sqlca.SQLCode = -1 THEN // arg_msg = '查询库存量失败>'+sqlca.SQLErrText // MessageBox('提示',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,stopsign!,OK!) // rslt = 0 // GOTO ext // END IF // // // dw_child.Object.u_outwaremx_ifrel[child_row] = 1 // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] // // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] // // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i] // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i] // // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] // // dw_child.Object.u_mtrldef_curware_qty[child_row] = 0 // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] // dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0 // // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] // ELSE // DECLARE pf_cur CURSOR FOR // SELECT // u_mtrlware.mtrlwareid, // u_mtrlware.plancode, // u_mtrlware.noallocqty, // u_mtrlware.planprice, // u_mtrlware.plancode // FROM u_mtrlware // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND // ( u_mtrlware.storageid = :arg_storageid ) AND // ( u_mtrlware.status = :arg_mx.status[i] ) AND // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND // ( u_mtrlware.scid = :cur_scid ) AND // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) AND // ( u_mtrlware.noallocqty > 0) // AND (:li_if_plancode = 0 or plancode = :arg_mx.plancode[i] ) // Order By u_mtrlware.noallocqty Desc ; // // OPEN pf_cur; // count = 1 // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,& // :lde_noallocqty,:lde_planprice,:ls_plancode ; // DO WHILE sqlca.SQLCode = 0 And r_qty < arg_mx.qty[i] // count++ // i_qty = lde_noallocqty // r_qty = r_qty+i_qty // IF r_qty > arg_mx.qty[i] THEN // i_qty = lde_noallocqty - ( r_qty - arg_mx.qty[i] ) // END IF // // IF dw_child.GetRow() > 0 THEN // IF dw_child.Object.u_outwaremx_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_outwaremx_ifrel[child_row] = 1 // dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] // dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] // dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] // // dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid // dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] // // IF lde_noallocqty <= arg_mx.qty[i] THEN // IF li_noallocflag = 0 THEN // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i] // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i] // ELSE // dw_child.Object.u_outwaremx_saleqty[child_row] = i_qty // dw_child.Object.u_outwaremx_uqty[child_row] = i_qty // END IF // ELSE // dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i] // dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i] // END IF // // dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid // dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode // dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice // dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] // dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] // dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] // dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] // dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode // dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname // dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode // dw_child.Object.u_mtrldef_unit[child_row] = ls_unit // dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] // dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] // dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] // dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] // dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] // // dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty // dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] // dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_mtrlwaresum_qty // // dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype // dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode // dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] // dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] // dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] // dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] // dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] // dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] // // // FETCH pf_cur INTO :ll_mtrlwareid,:ls_plancode,& // :lde_noallocqty,:lde_planprice,:ls_plancode ; // // LOOP // count = count - 1 // CLOSE pf_cur; // END IF // nextmtrl: //NEXT // // ////FOR i = 1 To UpperBound(arg_mx.taskid) //// ls_mtrlcode = '' //// ls_mtrlname = '' //// //// lde_taskqty_rest = arg_mx.qty[i] //库存单位 //// lde_qty_add = 0 //// //// // lb_find = TRUE //// // i_qty = 0 //// // r_qty = 0 //// //// //// //查找物料资料 //// SELECT u_mtrldef.mtrlcode, //// u_mtrldef.mtrlname, //// u_mtrldef.mtrlmode, //// u_mtrldef.unit, //// u_mtrldef.mtrlsectype, //// u_mtrldef.zxmtrlmode //// INTO :ls_mtrlcode, //// :ls_mtrlname, //// :ls_mtrlmode, //// :ls_unit, //// :ls_mtrlsectype, //// :ls_zxmtrlmode //// FROM u_mtrldef //// Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i]; //// IF sqlca.SQLCode <> 0 THEN //// arg_msg = '查询物料资料失败,错误物料ID['+String(arg_mx.mtrlid[i])+'],~r~n'+sqlca.SQLErrText //// rslt = 0 //// GOTO ext //// END IF //// //// //// //// //// ll_rowcnt = ds.Retrieve(cur_scid, arg_storageid, arg_mx.mtrlid[i],& //// arg_mx.status[i], arg_mx.woodcode[i], arg_mx.pcode[i],& //// ll_sptid, arg_mx.plancode[i]) //// //// FOR j = 1 To ll_rowcnt //// ll_mtrlwareid = ds.Object.mtrlwareid[j] //// ls_plancode = ds.Object.plancode[j] //// //// IF li_noallocflag = 0 THEN //// //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了 //// //lde_noallocqty = ds.Object.noallocqty[j] //// lde_noallocqty = lde_taskqty_rest //// ELSE //// lde_noallocqty = ds.Object.noallocqty[j] - ds.Object.noauditingqty[j] //// END IF //// IF lde_noallocqty <= 0 THEN CONTINUE //// //// IF lde_taskqty_rest > lde_noallocqty THEN //// lde_qty_add = lde_noallocqty //// lde_taskqty_rest -= lde_qty_add //// ELSE //// lde_qty_add = lde_taskqty_rest //// lde_taskqty_rest = 0 //// END IF //// //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位 //// //// IF lde_uqty_add > 0 THEN //// //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_ifrel[child_row] = 1 //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode //// //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx //// //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice //// //// //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] //// dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i] //// //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] //// //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] //// //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] //// END IF //// //IF li_noallocflag = 0 THEN EXIT //不使用为开单库存,显示总出仓数,所以只取一条记录,否则重复数量 //???????? //// IF lde_taskqty_rest = 0 THEN EXIT //// NEXT //// //// //// IF lde_taskqty_rest > 0 THEN //// ll_mtrlwareid = 0 //// ls_plancode = '' //// lde_noallocqty = 0 //// lde_qty_add = lde_taskqty_rest //// lde_uqty_add = lde_qty_add * arg_mx.rate[i] //销售单位 //// //// // SELECT top 1 //// // u_mtrlware.mtrlwareid, //// // u_mtrlware.plancode, //// // u_mtrlware.noallocqty, //// // u_mtrlware.planprice //// // INTO //// // :ll_mtrlwareid, //// // :ls_plancode, //// // :lde_noallocqty, //// // :lde_planprice //// // FROM u_mtrlware //// // WHERE ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) AND //// // ( u_mtrlware.storageid = :arg_storageid ) AND //// // ( u_mtrlware.status = :arg_mx.status[i] ) AND //// // ( u_mtrlware.pcode = :arg_mx.pcode[i] ) AND //// // ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) AND //// // ( u_mtrlware.scid = :cur_scid ) AND //// // ( u_mtrlware.sptid = :ll_sptid OR :ll_sptid = -1 ) //// // And (plancode = :arg_mx.plancode[i] Or :arg_mx.plancode[i] = '') //// // Order By u_mtrlware.mtrlwareid Desc ; //// // IF sqlca.SQLCode = -1 THEN //// // arg_msg = '查询库存信息失败>'+sqlca.SQLErrText //// // MessageBox('错误',String(arg_mx.mtrlid[i] )+'颜色:'+arg_mx.status[i]+' '+arg_msg,information!,OK!) //// // rslt = 0 //// // GOTO ext //// // END IF //// //// IF dw_child.GetRow() > 0 THEN //// IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_ifrel[child_row] = 1 //// dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] //// dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] //// dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] //// //// dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid //// dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid //// dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] //// dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode //// dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname //// dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode //// dw_child.Object.u_mtrldef_unit[child_row] = ls_unit //// dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] //// dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] //// dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] //// dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype //// dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode //// //// dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode //// dw_child.Object.u_outwaremx_sptid[child_row] = ll_sptid_mx //// //// dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice //// //// //// dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add //// dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add //// dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add //// dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] //// //// dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] //// dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] //// //// dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] //// dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] //// dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] //// dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] //// dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] //// //// dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty //// dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] //// dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty //// dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] //// dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] //// dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] //// dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] //// END IF //// ////NEXT //// // //ext: RETURN rslt end function public function integer wf_set_outwaremx (long arg_scid, long arg_cusid, long arg_storageid, s_saletask_mtrl arg_mx, string arg_msg);//由订单明细结构插入dw_child //li_noallocflag 0:不使用未开单库存; 1:使用未开单库存; //li_if_cus_mtrlware 0:不使用客户库存 ; 1:使用客户库存; //sys_option_outware_ifpublware 0:不使用公共库存; 1:使用公共库存 //li_if_plancode 0:不使用批号; 1:使用批号; //如果1.库存使用未开单库存, 按总库存数安排;即发货总数=Min(库存总数,总未完成数); //如果1.库存不使用未开单库存,按总未完成数安排,即发货总数=总未完成数;多出库存部分安排在最后一条库存; //如果1.订单不使用批号;2.库存使用批号,且使用客户库存; 按生产进仓单找对应订单的进仓记录先安排,再按其他订单,该客户库存安排; Long i, j, rslt = 1 Long ll_rowcnt = 0,child_row, count, ll_addmxcnt Decimal lde_taskqty_rest, lde_qty_add, lde_uqty_add, lde_noallocqty, lde_noallocqty_sum Long ll_mtrlwareid = 0 String ls_plancode Decimal lde_planprice String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrlmode,ls_mtrltype,ls_mtrlengname,ls_barcode Boolean lb_find = False Int li_if_cus_mtrlware,li_noallocflag,li_if_plancode Long ll_sptid, ll_sptid_mx String ls_msg s_cmpl_qty arg_cmpl,null_cmpl Decimal ld_qty,ld_LMsaleprice Int li_mtrlid,li_cusid dec ld_cusprice string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode //客户库存, 未开单库存 Select balctype, noallocflag, if_plancode Into :li_if_cus_mtrlware, :li_noallocflag, :li_if_plancode From u_storage Where storageid = :arg_storageid; If sqlca.SQLCode <> 0 Then arg_msg = '查询仓库是否使用客户库存失败' rslt = 0 Goto ext End If //li_noallocflag = 0 , 不使用未开单库存, 即只需要找的一条库存,将订单所有数量都挂在此库存id就可以了 //sys_option_outware_if_di = 0 //销售发货单仓审自动组装 084 Or (li_noallocflag = 1 And sys_option_outware_if_di = 1) If li_if_cus_mtrlware = 1 Then ll_sptid = arg_cusid ll_sptid_mx = ll_sptid Else ll_sptid = -1 ll_sptid_mx = 0 End If For i = 1 To UpperBound(arg_mx.taskid) If arg_mx.taskid[i] = 0 Then Continue lde_noallocqty = 0 li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()]//客户物料名称 Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'') Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode From u_cusmtrlname Where mtrlid= :arg_mx.mtrlid[i] and cusid= :li_cusid ; Select u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.mtrlmode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, u_mtrldef.mtrltype, u_mtrldef.LMsaleprice, u_mtrldef.mtrlengname, u_mtrldef.barcode Into :ls_mtrlcode, :ls_mtrlname, :ls_unit, :ls_mtrlmode, :ls_mtrlsectype, :ls_zxmtrlmode, :ls_mtrltype, :ld_LMsaleprice, :ls_mtrlengname, :ls_barcode From u_mtrldef Where u_mtrldef.mtrlid = :arg_mx.mtrlid[i]; If sqlca.SQLCode <> 0 Then arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'资料失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If Select SUM(u_mtrlware.noallocqty) Into :lde_noallocqty_sum From u_mtrlware Where u_mtrlware.mtrlid = :arg_mx.mtrlid[i] And u_mtrlware.storageid = :arg_storageid And u_mtrlware.status = :arg_mx.status[i] And u_mtrlware.pcode = :arg_mx.pcode[i] And u_mtrlware.woodcode = :arg_mx.woodcode[i] And u_mtrlware.scid = :arg_scid And ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) ) And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] ); If sqlca.SQLCode <> 0 Then lde_noallocqty_sum = 0 End If If IsNull(lde_noallocqty_sum) Then lde_noallocqty_sum = 0 //没有库存记录 或者 不考虑未开单库存? If lde_noallocqty_sum = 0 Then ll_mtrlwareid = 0 ls_plancode = '' lde_noallocqty = 0 lde_planprice = 0 If dw_child.GetRow() > 0 Then If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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 If li_noallocflag = 1 Then //没有库存记录, 且使用未开单库存 dw_child.Object.u_outwaremx_mtrlwareid[child_row] = 0 dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_qty[child_row] = 0 Else //没有库存记录, 且不使用未开单库存, 取 top 1 // // SELECT top 1 mtrlwareid, plancode, noallocqty, planprice // INTO :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice // FROM u_mtrlware // WHERE ( mtrlid = :arg_mx.mtrlid[i] ) // AND ( storageid = :arg_storageid ) // AND ( status = :arg_mx.status[i] ) // AND ( pcode = :arg_mx.pcode[i] ) // AND ( woodcode = :arg_mx.woodcode[i] ) // AND ( scid = :arg_scid ) // AND ( sptid = :ll_sptid OR :ll_sptid = -1 ) // AND (:li_if_plancode = 0 OR plancode = :arg_mx.plancode[i] OR (:sys_option_outware_ifpublware = 1 AND u_mtrlware.sptid = 0) ) // Order By CASE when u_mtrlware.sptid = :ll_sptid THEN 1 ELSE 0 END Desc,mtrlwareid Desc ; // IF sqlca.SQLCode = -1 THEN // arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText // rslt = 0 // GOTO ext // END IF Select top 1 mtrlwareid, plancode, noallocqty, planprice Into :ll_mtrlwareid, :ls_plancode, :lde_noallocqty, :lde_planprice From u_mtrlware Where ( mtrlid = :arg_mx.mtrlid[i] ) And ( storageid = :arg_storageid ) And ( status = :arg_mx.status[i] ) And ( pcode = :arg_mx.pcode[i] ) And ( woodcode = :arg_mx.woodcode[i] ) And ( scid = :arg_scid ) And ( sptid = :ll_sptid Or :ll_sptid = -1 ) And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] ) And (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc,mtrlwareid Desc ; If sqlca.SQLCode = -1 Then arg_msg = '查询物料:'+String(arg_mx.mtrlid[i] )+'库存信息失败,'+sqlca.SQLErrText rslt = 0 Goto ext End If dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid dw_child.Object.u_outwaremx_saleqty[child_row] = arg_mx.qty[i] dw_child.Object.u_outwaremx_uqty[child_row] = arg_mx.qty[i] dw_child.Object.u_outwaremx_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i] End If dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i] dw_child.Object.u_outwaremx_ifrel[child_row] = 1 dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] dw_child.Object.u_outwaremx_plancode[child_row] = arg_mx.plancode[i] // ls_plancode dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i] dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i] dw_child.Object.u_mtrldef_curware_qty[child_row] = 0 dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i] dw_child.Object.u_mtrldef_sumware_qty[child_row] = 0 dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i] dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i] dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i] dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i] dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i] dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname //dw_ //计算单价 If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then arg_cmpl = null_cmpl arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select price Into :ld_cusprice From u_cust Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid Where u_sale_price_mx.mtrlid = :li_mtrlid And u_cust.cusid = :li_cusid; If sqlca.SQLCode <> 0 Then ld_cusprice = 0 End If arg_cmpl.cusprice = ld_cusprice arg_cmpl.num = 2 arg_cmpl.addvalue = 1 arg_cmpl.flag = True ld_qty = 0 If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then arg_msg = arg_msg + "~r~n" + ls_msg rslt = 0 Goto ext End If dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty End If Else //IF lde_noallocqty_sum = 0 THEN 有库存数 lde_taskqty_rest = arg_mx.qty[i] * arg_mx.rate[i] Declare pf_cur Cursor For Select u_mtrlware.mtrlwareid, u_mtrlware.plancode, u_mtrlware.noallocqty, u_mtrlware.planprice From u_mtrlware Where ( u_mtrlware.mtrlid = :arg_mx.mtrlid[i] ) And ( u_mtrlware.scid = :arg_scid ) And ( u_mtrlware.storageid = :arg_storageid ) And ( u_mtrlware.status = :arg_mx.status[i] ) And ( u_mtrlware.pcode = :arg_mx.pcode[i] ) And ( u_mtrlware.woodcode = :arg_mx.woodcode[i] ) And ( u_mtrlware.sptid = :ll_sptid Or :ll_sptid = -1 Or (:sys_option_outware_ifpublware = 1 And u_mtrlware.sptid = 0) ) And ( u_mtrlware.noallocqty > 0) And (:li_if_plancode = 0 Or plancode = :arg_mx.plancode[i] ) Order By Case when u_mtrlware.sptid = :ll_sptid Then 1 Else 0 End Desc, u_mtrlware.noallocqty Desc ; Open pf_cur; count = 1 Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ; Do While sqlca.SQLCode = 0 count++ If lde_taskqty_rest <= lde_noallocqty Then lde_qty_add = lde_taskqty_rest Else lde_qty_add = lde_noallocqty End If lde_taskqty_rest -= lde_qty_add lde_uqty_add = lde_qty_add / arg_mx.rate[i] If dw_child.GetRow() > 0 Then If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_ifrel[child_row] = 1 dw_child.Object.u_outwaremx_relid[child_row] = arg_mx.taskid[i] dw_child.Object.u_outwaremx_relprintid[child_row] = arg_mx.printid[i] dw_child.Object.taskcode[child_row] = arg_mx.taskcode[i] dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ll_mtrlwareid dw_child.Object.u_outwaremx_storageid[child_row] = arg_storageid dw_child.Object.u_outwaremx_mtrlid[child_row] = arg_mx.mtrlid[i] dw_child.Object.u_outwaremx_saleqty[child_row] = lde_uqty_add dw_child.Object.u_outwaremx_uqty[child_row] = lde_uqty_add dw_child.Object.u_outwaremx_qty[child_row] = lde_qty_add dw_child.Object.u_outwaremx_addqty[child_row] = arg_mx.addqty[i] dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode dw_child.Object.u_outwaremx_planprice[child_row] = lde_planprice dw_child.Object.u_outwaremx_rate[child_row] = arg_mx.rate[i] dw_child.Object.u_outwaremx_unit[child_row] = arg_mx.unit[i] dw_child.Object.u_outwaremx_enprice[child_row] = arg_mx.enprice[i] dw_child.Object.u_outwaremx_fprice[child_row] = arg_mx.fprice[i] dw_child.Object.u_outwaremx_rebate[child_row] = arg_mx.rebate[i] dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.u_mtrldef_mtrltype[child_row] = ls_mtrltype dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode dw_child.Object.u_mtrldef_lmsaleprice[child_row] = ld_LMsaleprice dw_child.Object.u_mtrldef_mtrlengname[child_row] = ls_mtrlengname dw_child.Object.u_mtrldef_barcode[child_row] = ls_barcode dw_child.Object.u_outwaremx_status[child_row] = arg_mx.status[i] dw_child.Object.u_outwaremx_woodcode[child_row] = arg_mx.woodcode[i] dw_child.Object.u_outwaremx_pcode[child_row] = arg_mx.pcode[i] dw_child.Object.u_outwaremx_mxdscrp[child_row] = arg_mx.mxdscrp[i] dw_child.Object.mxdscrp2[child_row] = arg_mx.mxdscrp2[i] dw_child.Object.u_outwaremx_mxdscrp3[child_row] = arg_mx.mxdscrp3[i] //新加 dw_child.Object.u_outwaremx_mxdscrp4[child_row] = arg_mx.mxdscrp4[i] //新加 dw_child.Object.u_mtrldef_curware_qty[child_row] = lde_noallocqty dw_child.Object.u_mtrldef_sumneed_qty[child_row] = arg_mx.qty[i] * arg_mx.rate[i] dw_child.Object.u_mtrldef_sumware_qty[child_row] = lde_noallocqty_sum dw_child.Object.u_outwaremx_mtrlcuscode[child_row] = arg_mx.mtrlcuscode[i] dw_child.Object.u_outwaremx_outtype[child_row] = arg_mx.outtype[i] dw_child.Object.u_outwaremx_formula[child_row] = arg_mx.formula[i] dw_child.Object.u_mtrldef_taskdate[child_row] = arg_mx.taskdate[i] dw_child.Object.u_outwaremx_net_weight[child_row] = arg_mx.net_weight[i] dw_child.Object.u_outwaremx_gross_weight[child_row] = arg_mx.gross_weight[i] dw_child.Object.u_outwaremx_cubage[child_row] = arg_mx.cubage[i] dw_child.Object.u_outwaremx_tax[child_row] = arg_mx.tax[i] dw_child.Object.u_outwaremx_priceformula[child_row] = arg_mx.priceformula[i] dw_child.Object.u_outwaremx_packqty[child_row] = arg_mx.packqty[i] dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlname //计算单价 If arg_mx.priceformula[i] <> '' and dw_child.Object.u_outwaremx_ifrel[child_row] = 0 Then arg_cmpl = null_cmpl arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select price Into :ld_cusprice From u_cust Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid Where u_sale_price_mx.mtrlid = :li_mtrlid And u_cust.cusid = :li_cusid; If sqlca.SQLCode <> 0 Then ld_cusprice = 0 End If arg_cmpl.cusprice = ld_cusprice arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.addvalue = 1 arg_cmpl.flag = True ld_qty = 0 If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then arg_msg = arg_msg + "~r~n" + ls_msg rslt = 0 Goto ext End If dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty End If If lde_taskqty_rest <= 0 Then Exit //跳出循环 Fetch pf_cur Into :ll_mtrlwareid,:ls_plancode, :lde_noallocqty,:lde_planprice ; Loop count = count - 1 Close pf_cur; If lde_taskqty_rest > 0 Then //如果还有未分配的数 If li_noallocflag = 0 Then //不使用未开单库存, 将剩余数安排在最后一条记录 If count > 0 And child_row > 0 Then lde_qty_add = lde_taskqty_rest lde_taskqty_rest -= lde_qty_add lde_uqty_add = lde_qty_add / arg_mx.rate[i] dw_child.Object.u_outwaremx_saleqty[child_row] = dw_child.Object.u_outwaremx_saleqty[child_row] + lde_uqty_add dw_child.Object.u_outwaremx_uqty[child_row] = dw_child.Object.u_outwaremx_uqty[child_row] + lde_uqty_add dw_child.Object.u_outwaremx_qty[child_row] = dw_child.Object.u_outwaremx_qty[child_row] + lde_qty_add End If End If End If End If Next //计算明细库存数和不足数 This.TriggerEvent('ue_mx_cmplnoallocqty') ext: Return rslt end function public function integer wf_set_outware_itemmx (integer arg_scid, long arg_taskid); Long i, j, rslt = 1 Long ll_rowcnt = 0,child_row, count, ll_addmxcnt,ll_itemid String ls_itemcode,ls_itemname,ls_itemtype dw_fymx.Reset() datastore dw_itemmx dw_itemmx = Create datastore dw_itemmx.DataObject = 'dw_saletask_itemmx_edit_1' dw_itemmx.SetTransObject(sqlca) dw_itemmx.Retrieve(arg_scid,arg_taskid) FOR i = 1 To dw_itemmx.RowCount() child_row = dw_fymx.InsertRow (0) dw_fymx.Object.u_outware_itemmx_scid[child_row] = dw_itemmx.Object.u_saletask_itemmx_scid[i] dw_fymx.Object.u_outware_itemmx_itemid[child_row] = dw_itemmx.Object.u_saletask_itemmx_itemid[i] dw_fymx.Object.u_outware_itemmx_amt[child_row] = dw_itemmx.Object.u_saletask_itemmx_amt[i] - abs(dw_itemmx.Object.u_saletask_itemmx_amtyfh[i]) dw_fymx.Object.u_outware_itemmx_mxdscrp[child_row] = dw_itemmx.Object.u_saletask_itemmx_mxdscrp[i] dw_fymx.Object.u_outware_itemmx_saletaskid[child_row] = dw_itemmx.Object.u_saletask_itemmx_saletaskid[i] dw_fymx.Object.u_outware_itemmx_saletaskprintid[child_row] = dw_itemmx.Object.u_saletask_itemmx_printid[i] dw_fymx.Object.u_outware_itemmx_itype[child_row] = dw_itemmx.Object.u_saletask_itemmx_itype[i] dw_fymx.Object.u_outware_itemmx_printid[child_row] = i NEXT dw_fymx.AcceptText() FOR i = 1 To dw_fymx.RowCount() ll_itemid = dw_fymx.Object.u_outware_itemmx_itemid[i] SELECT Top 1 itemcode,itemname,itemtype Into :ls_itemcode,:ls_itemname,:ls_itemtype From u_itemdef Where u_itemdef.itemid = :ll_itemid; dw_fymx.Object.u_itemdef_itemcode[i] = ls_itemcode dw_fymx.Object.u_itemdef_itemname[i] = ls_itemname dw_fymx.Object.u_itemdef_itemtype[i] = ls_itemtype NEXT Destroy dw_itemmx RETURN rslt end function public function integer wf_change_cusid (long arg_cusid);Long rslt = 1,ll_row,i Long ll_mtrlcus,ll_scid = 0,ll_outwareid = 0,ll_mtrlwareid = 0 Boolean for_buytask = False //是否按订单 s_mtrlware_noalloc_array INS_RT_STRU s_mtrldef_array S_INSCUST2 ll_row = dw_uc.GetRow() ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()] ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()] IF ll_row <= 0 THEN RETURN rslt IF dw_uc.Object.u_outware_cusid[ll_row] > 0 And dw_uc.Object.u_outware_cusid[ll_row] <> arg_cusid THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_relid[i] <> 0 THEN for_buytask = True EXIT END IF NEXT FOR i = 1 To dw_child.RowCount() ll_mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i] SELECT top 1 u_mtrlware.sptid INTO :ll_mtrlcus FROM u_outwaremx INNER join u_mtrlware on u_outwaremx.scid = u_mtrlware.scid AND u_outwaremx.mtrlwareid = u_mtrlware.mtrlwareid WHERE u_outwaremx.scid = :ll_scid AND u_outwaremx.outwareid = :ll_outwareid And u_outwaremx.mtrlwareid = :ll_mtrlwareid ; IF ll_mtrlcus <> 0 THEN for_buytask = True EXIT END IF NEXT IF for_buytask = True THEN //按订单 IF MessageBox('询问','由于发货单按订单收货 或者 使用客户库存,更换客户会删除全部明细,是否继续?',question!,yesno!) = 2 THEN rslt = 0 RETURN rslt END IF dw_child.Reset() This.TriggerEvent("insert_childrow") ELSE //不按订单 IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料 wf_cusprice_mtrlware(INS_RT_STRU) wf_cusprice_in(INS_RT_STRU) ELSE wf_cusprice_mtrl(S_INSCUST2) wf_cusprice_in(S_INSCUST2) END IF END IF END IF RETURN rslt end function public function integer wf_get_cusid (ref long arg_cusid);Long ll_cusid ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF IsNull(ll_cusid) Or ll_cusid = 0 THEN This.TriggerEvent("ue_f9") ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF IsNull(ll_cusid) Or ll_cusid = 0 THEN MessageBox('提示','请先选择客户',information!,OK!) RETURN 0 END IF END IF arg_cusid = ll_cusid RETURN 1 end function public subroutine wf_cusprice_mtrlware (ref s_mtrlware_noalloc_array ins_rt_stru);datastore dw_mtrlwaremx Long i,ls_i,chC,ll_mtrlwareid[] //s_mtrlware_noalloc_array INS_RT_STRU wf_cusprice_mtrlware dw_mtrlwaremx = Create datastore dw_mtrlwaremx.DataObject = 'dw_mtrlware_noalloc_storageid_ch_cusprice' dw_mtrlwaremx.SetTransObject(sqlca) FOR i = 1 To dw_child.RowCount() ll_mtrlwareid[i] = dw_child.Object.u_outwaremx_mtrlwareid[i] NEXT dw_mtrlwaremx.Retrieve(ll_mtrlwareid) FOR i = 1 To dw_mtrlwaremx.RowCount() dw_mtrlwaremx.SelectRow(i,True) NEXT FOR ls_i = 1 To dw_mtrlwaremx.RowCount() IF dw_mtrlwaremx.IsSelected(ls_i) THEN chC++ INS_RT_STRU.mtrlwareid[chC] = dw_mtrlwaremx.Object.mtrlwareid[ls_i] INS_RT_STRU.mtrlid[chC] = dw_mtrlwaremx.Object.mtrlid[ls_i] INS_RT_STRU.u_mtrldef_mtrlcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlcode[ls_i] INS_RT_STRU.u_mtrldef_mtrlname[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlname[ls_i] INS_RT_STRU.u_mtrldef_mtrlmode[chC] = dw_mtrlwaremx.Object.mtrlmode[ls_i] INS_RT_STRU.u_mtrldef_unit[chC] = dw_mtrlwaremx.Object.u_mtrldef_unit[ls_i] INS_RT_STRU.u_mtrldef_prdpackcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_prdpackcode[ls_i] INS_RT_STRU.u_mtrldef_packqty[chC] = dw_mtrlwaremx.Object.u_mtrldef_packqty[ls_i] INS_RT_STRU.noallocqty[chC] = dw_mtrlwaremx.Object.noallocqty[ls_i] INS_RT_STRU.cost[chC] = dw_mtrlwaremx.Object.cost[ls_i] INS_RT_STRU.planprice[chC] = dw_mtrlwaremx.Object.planprice[ls_i] INS_RT_STRU.storageid[chC] = dw_mtrlwaremx.Object.storageid[ls_i] INS_RT_STRU.plancode[chC] = dw_mtrlwaremx.Object.plancode[ls_i] INS_RT_STRU.status[chC] = dw_mtrlwaremx.Object.u_mtrlware_status[ls_i] INS_RT_STRU.sptid[chC] = dw_mtrlwaremx.Object.u_mtrlware_sptid[ls_i] INS_RT_STRU.dxflag[chC] = dw_mtrlwaremx.Object.u_mtrlware_dxflag[ls_i] INS_RT_STRU.noauditingqty[chC] = dw_mtrlwaremx.Object.noauditingqty[ls_i] INS_RT_STRU.woodcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_woodcode[ls_i] INS_RT_STRU.pcode[chC] = dw_mtrlwaremx.Object.u_mtrlware_pcode[ls_i] INS_RT_STRU.u_mtrldef_mtrlsectype[chC] = dw_mtrlwaremx.Object.u_mtrldef_mtrlsectype[ls_i] INS_RT_STRU.u_mtrldef_zxmtrlmode[chC] = dw_mtrlwaremx.Object.u_mtrldef_zxmtrlmode[ls_i] INS_RT_STRU.sptcode[chC] = dw_mtrlwaremx.Object.sptcode[ls_i] INS_RT_STRU.sptname[chC] = dw_mtrlwaremx.Object.sptname[ls_i] INS_RT_STRU.noallocaddqty[chC] = dw_mtrlwaremx.Object.noallocaddqty[ls_i] INS_RT_STRU.noauditingaddqty[chC] = dw_mtrlwaremx.Object.noauditingaddqty[ls_i] INS_RT_STRU.wareamt[chC] = dw_mtrlwaremx.Object.wareamt[ls_i] INS_RT_STRU.barcode[chC] = dw_mtrlwaremx.Object.u_mtrldef_barcode[ls_i] IF IsNull(INS_RT_STRU.noauditingqty[chC]) THEN INS_RT_STRU.noauditingqty[ls_i] = 0 IF IsNull(INS_RT_STRU.noauditingaddqty[chC]) THEN INS_RT_STRU.noauditingaddqty[ls_i] = 0 END IF NEXT Destroy dw_mtrlwaremx end subroutine public subroutine wf_cusprice_in (s_mtrlware_noalloc_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用 Long i IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN //IF flag = 1 THEN RETURN Long child_row,ins_storageid = 0,cnt_childdw Long ll_moneyid Long ls_null Long chc = 1,ls_j,ll_custid Decimal lde_rate s_edit_index_tran s_tranf8 //传递参数使用 SetNull(ls_null) dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF wf_get_cusid(ll_custid) = 0 THEN RETURN END IF dw_uc.AcceptText() dw_child.AcceptText() child_row = dw_child.GetRow() IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料 ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF ins_storageid = 0 Or IsNull(ins_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF Int li_if_cus_mtrlware SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ins_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!) RETURN END IF //ll_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] //初始化参数 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = 0 IF li_if_cus_mtrlware = 1 THEN s_tranf8.c_long = ll_custid ELSE s_tranf8.c_long = -1 END IF IF Not IsValid(w_mtrlware_storageid_ch) THEN s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.d_long = ins_storageid IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) // OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = ins_rt_stru FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN FOR i = 1 To dw_child.RowCount() IF S_INSCUST.mtrlwareid[ls_j] = dw_child.Object.u_outwaremx_mtrlwareid[i] THEN child_row = i EXIT END IF NEXT dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] IF sys_option_outware_Sale_ware = 0 THEN // dw_child.Object.u_outwaremx_saleqty[child_row] = 0 // dw_child.Object.u_outwaremx_uqty[child_row] = 0 // dw_child.Object.u_outwaremx_addqty[child_row] = 0 ELSEIF sys_option_outware_Sale_ware = 1 THEN dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j] ELSE dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j] END IF dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j] dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j] dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j] dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null END IF NEXT END IF ELSE END IF IF sys_option_outware_if_saleqty = 0 THEN dw_child.SetColumn('u_outwaremx_uqty') ELSE dw_child.SetColumn('u_outwaremx_saleqty') END IF dw_child.SetRedraw(True) dw_child.SetFocus() ////////////////////////////////// // end subroutine public subroutine wf_cusprice_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) if dw_child.RowCount() > 0 then FOR i = 1 To dw_child.RowCount() IF sys_option_hide_ware = 0 THEN //隐藏仓库 ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i] ELSE ll_mtrl[i] = dw_child.Object.u_outwaremx_mtrlid[i] END IF NEXT end if 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_cusprice_in (s_mtrldef_array ins_rt_stru);//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用 Long i IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN //IF flag = 1 THEN RETURN Long child_row,ins_storageid = 0,cnt_childdw Long ll_moneyid Long ls_null Long chc = 1,ls_j,ll_custid Decimal lde_rate s_edit_index_tran s_tranf8 //传递参数使用 SetNull(ls_null) dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF wf_get_cusid(ll_custid) = 0 THEN RETURN END IF dw_uc.AcceptText() dw_child.AcceptText() child_row = dw_child.GetRow() IF sys_option_hide_ware = 0 THEN //如果隐藏仓库的,直接选物料 ELSE IF Not IsValid(W_mtrldef_edit) THEN //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.if_select_all = True //多选 s_tranf8.b_long = -1 //选采购 s_tranf8.c_long = -1 IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) // OpenWithParm(W_mtrldef_edit,s_tranf8) //调用 s_mtrldef_array S_INSCUST2 S_INSCUST2 = ins_rt_stru //接受返回结构 FOR ls_j = 1 To UpperBound(S_INSCUST2.mtrlid) IF S_INSCUST2.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_mtrlwareid[child_row] = 0 dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j] dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_addqty[child_row] = 0 dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = 0 dw_child.Object.u_outwaremx_plancode[child_row] = '' //dw_child.Object.u_outwaremx_dxflag[child_row] = 0 dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j] dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j] f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null END IF NEXT END IF END IF IF sys_option_outware_if_saleqty = 0 THEN dw_child.SetColumn('u_outwaremx_uqty') ELSE dw_child.SetColumn('u_outwaremx_saleqty') END IF dw_child.SetRedraw(True) dw_child.SetFocus() ////////////////////////////////// // end subroutine 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_outwaremx_mtrlid[i] dec_qty = dw_child.Object.u_outwaremx_uqty[i] dec_addqty = dw_child.Object.u_outwaremx_addqty[i] ls_status = dw_child.Object.u_outwaremx_status[i] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[i] ls_pcode = dw_child.Object.u_outwaremx_pcode[i] ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] ls_mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[i] dec_danpackqty=dw_child.Object.u_mtrldef_packqty[i] dec_packqty=dw_child.Object.u_outwaremx_packqty[i] dec_rebate = dw_child.Object.u_outwaremx_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_outwaremx_uqty[i] = dec_tmp END IF NEXT dw_child.AcceptText() ext: RETURN rslt end function public function integer wf_enamt_facechg ();//IF ii_enamt_edit = 0 THEN //金额计算单价 为 false // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0') // dw_child.Modify('enamt_t.Color = 0') // // // // //ELSEIF ii_enamt_edit = 1 THEN // // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"') // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"') // // // //END IF IF cbx_enamt_edit.Checked = True Or cbx_zk.Checked = True THEN dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"') dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"') ELSE dw_child.Modify('enamt.protect = 1~t enamt.Color = 0') dw_child.Modify('enamt_t.Color = 0') END IF IF ii_enamt_notax_edit = 0 THEN //录入不含税单价 为 false dw_child.Modify('enprice_notax.protect = 1~t enprice_notax.Color = "0~trgb(0,0,0)"') dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,0)"') dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额 ELSEIF ii_enamt_notax_edit = 1 THEN dw_child.Modify('enprice_notax.protect = 0~t enprice_notax.Color = "0~trgb(0,0,255)"') dw_child.Modify('enprice_notax_t.Color = "0~trgb(0,0,255)"') dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额 END IF RETURN 1 end function public function integer wf_ck_taobao (string arg_outwarecode);Int rslt = 1 Long cnt String ls_msg IF Mid(sys_pwrstr,1794,1) = '0' THEN rslt = 1 GOTO ext END IF SELECT count(*) INTO :cnt FROM u_outwaremx INNER JOIN u_outware ON u_outwaremx.scid = u_outware.scid AND u_outwaremx.outwareid = u_outware.outwareid INNER JOIN u_SaleTaskMx ON u_outwaremx.relid = u_SaleTaskMx.TaskID AND u_outwaremx.scid = u_SaleTaskMx.scid AND u_outwaremx.relprintid = u_SaleTaskMx.printid INNER JOIN u_SaleTask ON u_SaleTaskMx.scid = u_SaleTask.scid AND u_SaleTaskMx.TaskID = u_SaleTask.TaskID INNER JOIN eb_saletask_import ON u_SaleTask.TaskCode = eb_saletask_import.taskcode LEFT OUTER JOIN tb_trade ON eb_saletask_import.tid = tb_trade.tid WHERE (tb_trade.status NOT IN ('TRADE_FINISHED', 'WAIT_BUYER_CONFIRM_GOODS')) And u_outware.outwarecode = :arg_outwarecode; IF sqlca.SQLCode <> 0 THEN ls_msg = '查询发货单淘宝已发货标志失败,操作取消。~n'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF cnt > 0 THEN ls_msg = '发货单淘宝未发货,操作取消。' rslt = 0 GOTO ext END IF ext: IF rslt = 0 THEN MessageBox('提示',ls_msg) END IF RETURN rslt end function public subroutine wf_check_ware (long arg_scid, long arg_billid);IF sys_option_outware_ware_check = 0 THEN RETURN LONG CNT //IF THEN select count(*) into :cnt from (select scid, outwareid, mtrlid, status, pcode, woodcode from u_outwaremx group by scid, outwareid, mtrlid, status, pcode, woodcode) as u_outwaremx inner join u_mtrldef on u_mtrldef.mtrlid = u_outwaremx.mtrlid left outer join u_mtrldef_maxminqty on u_mtrldef_maxminqty.mtrlid = u_outwaremx.mtrlid and u_mtrldef_maxminqty.status = u_outwaremx.status and u_mtrldef_maxminqty.woodcode = u_outwaremx.woodcode and u_mtrldef_maxminqty.pcode = u_outwaremx.pcode left outer join (select mtrlid, status, pcode, woodcode, sum(noallocqty) as noallocqty from u_mtrlware group by mtrlid, status, pcode, woodcode) as u_mtrlware_a on u_mtrldef_maxminqty.mtrlid = u_mtrlware_a.mtrlid and u_mtrldef_maxminqty.status = u_mtrlware_a.status and u_mtrldef_maxminqty.woodcode = u_mtrlware_a.woodcode and u_mtrldef_maxminqty.pcode = u_mtrlware_a.pcode where u_outwaremx.scid = :arg_scid and u_outwaremx.outwareid = :arg_billid and ( isnull(u_mtrlware_a.noallocqty,0) - isnull(u_mtrldef_maxminqty.minqty,0)<=0); IF CNT>0 THEN s_edit_index_tran s_tran1 s_tran1.c_long = arg_scid s_tran1.d_long = arg_billid OPENWITHPARM(w_check_ware,s_tran1) END IF //END IF end subroutine public function string wf_check_sys_option_check_scanqty ();string arg_msg long i FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_uqty[i] <> dw_child.Object.u_outwaremx_scanqty[i] THEN arg_msg = arg_msg + '第' + String(i) + '~n ' END IF NEXT IF arg_msg <> '' THEN arg_msg='系统选项267,销售发货单,销售退货单 扫描数不等于出仓数不能审核,~n' END IF RETURN arg_msg end function public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg); Int rslt = 1 Long ll_row Long ll_pricelistid, ll_moneyid, ll_mtrlid String ls_status,ls_pcode,ls_woodcode,ls_unit, ls_mtrlname String ls_msg ll_pricelistid = arg_pricelistid ll_moneyid = arg_moneyid IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN rslt = 0 GOTO ext END IF s_sale_price_mx s_mx dw_child.AcceptText() FOR ll_row = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_enprice[ll_row] <> 0 THEN CONTINUE ll_mtrlid = dw_child.Object.u_outwaremx_mtrlid[ll_row] ls_status = dw_child.Object.u_outwaremx_status[ll_row] ls_pcode = dw_child.Object.u_outwaremx_pcode[ll_row] ls_woodcode = dw_child.Object.u_outwaremx_woodcode[ll_row] ls_unit = dw_child.Object.u_outwaremx_unit[ll_row] ls_mtrlname = dw_child.Object.u_mtrldef_mtrlname[ll_row] IF sys_option_price_if_status = 0 THEN ls_status = '' ls_pcode = '' ls_woodcode = '' END IF s_mx.mtrlid = ll_mtrlid s_mx.status = ls_status s_mx.woodcode = ls_woodcode s_mx.pcode = ls_pcode s_mx.unit = ls_unit s_mx.moneyid = ll_moneyid s_mx.pricelistid = ll_pricelistid IF uo_cus_price.uof_get_pricelist_price(s_mx, ls_msg) = 0 THEN arg_msg += "行:"+String(ll_row)+", "+ls_mtrlname+" ~n" rslt = 0 //无标准价格表 或未审核 END IF dw_child.Object.u_outwaremx_enprice[ll_row] = s_mx.price dw_child.Object.u_outwaremx_rebate[ll_row] = s_mx.rebate //dw_child.Object.u_saletaskmx_rate[ll_row] = obj_rate NEXT IF rslt = 0 THEN arg_msg += "导入价格表售价失败或没有设置售价! ~n " END IF ext: RETURN rslt end function public subroutine wf_set_barcode ();long i,ll_mtrlid string ls_barcode dw_child.accepttext() for i=1 to dw_child.rowcount() ll_mtrlid=0 ls_barcode='' ll_mtrlid=dw_child.object.u_outwaremx_mtrlid[i] select barcode into :ls_barcode from u_mtrldef where mtrlid=:ll_mtrlid; dw_child.object.u_mtrldef_barcode[i]=ls_barcode next end subroutine public subroutine wf_cmpl_amt (long row);IF row <= 0 THEN RETURN IF row > dw_child.RowCount() THEN RETURN dw_child.AcceptText() Decimal lde_saleqty, lde_rebate, lde_tax, lde_enamt, lde_enamt_tax, lde_enamt_notax IF sys_option_outware_if_saleqty = 0 THEN lde_saleqty = dw_child.Object.u_outwaremx_uqty[row] ELSE lde_saleqty = dw_child.Object.u_outwaremx_saleqty[row] END IF lde_rebate = dw_child.Object.u_outwaremx_rebate[row] lde_tax = dw_child.Object.u_outwaremx_tax[row] //由金额计算单价 IF cbx_enamt_edit.Checked THEN IF dw_child.Object.enamt[row] <> 0 THEN IF lde_rebate <> 0 And lde_saleqty <> 0 THEN dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2) dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row] dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax) END IF END IF ELSEIF cbx_enamt_notax_edit.Checked THEN // 录入不含税单价 dw_child.Object.enamt_notax[row] = dw_child.Object.enprice_notax[row] * lde_saleqty //录入的是不含税单价 单价 * 数量=金额 IF dw_child.Object.enamt_notax[row] <> 0 THEN IF lde_rebate <> 0 And lde_saleqty <> 0 THEN dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2) dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row] dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty IF dw_child.Object.enprice_notax[row] = 0 THEN dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax) END IF END IF END IF ELSEIF cbx_zk.Checked THEN //录入金额计算折扣 IF dw_child.Object.u_outwaremx_enprice[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN dw_child.Object.u_outwaremx_rebate[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_enprice[row] / dw_child.Object.u_outwaremx_saleqty[row] END IF ELSE dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*lde_rebate*lde_saleqty, 2) dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*lde_rebate*lde_saleqty*lde_tax/(1+lde_tax), 2) dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row] dw_child.Object.enprice_notax[row] = dw_child.Object.u_outwaremx_enprice[row] / (1 + lde_tax) END IF CHOOSE CASE sys_option_outware_sale_amt_round CASE 0 //分 dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 2) CASE 1 dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 1) CASE 2 dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row], 0) CASE 3 dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 10, 2) * 10 CASE 4 dw_child.Object.enamt[row] = Round(dw_child.Object.enamt[row] / 100, 2) * 100 END CHOOSE //20180103 // //由金额计算单价 //IF cbx_enamt_edit.Checked THEN // IF Not cbx_enamt_notax_edit.Checked THEN // IF dw_child.Object.enamt[row] <> 0 THEN // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2) // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row] // END IF // END IF // // // ELSE // IF dw_child.Object.enamt_notax[row] <> 0 THEN // IF lde_rebate <> 0 And lde_saleqty <> 0 THEN // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2) // dw_child.Object.enamt[row] = dw_child.Object.u_outwaremx_enamt_tax[row] + dw_child.Object.enamt_notax[row] // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty // // dw_child.Object.u_outwaremx_enamt_tax[row] = Round(dw_child.Object.enamt[row]*lde_tax/(1+lde_tax), 2) // // dw_child.Object.enamt_notax[row] = dw_child.Object.enamt[row] - dw_child.Object.u_outwaremx_enamt_tax[row] // END IF // END IF // END IF //20180103 //IF sys_option_outware_if_saleqty = 0 THEN // IF cbx_enamt_edit.Checked THEN // IF dw_child.Object.enamt[row] <> 0 THEN // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_uqty[row] // END IF // END IF // ELSE // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_uqty[row], 2) // END IF //ELSE // IF cbx_enamt_edit.Checked THEN //// if dw_child.GetColumnName() = 'u_outwaremx_enprice' or dw_child.GetColumnName() = 'u_outwaremx_rebate' then //// dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_saleqty[row], 2) //// else // IF dw_child.Object.enamt[row] <> 0 THEN // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_saleqty[row] <> 0 THEN // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_saleqty[row] // END IF // END IF //// end if // ELSE // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_saleqty[row], 2) // END IF //END IF // // // end subroutine public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid);Int lst long i String cstr = '',rstr = '',msg = '' Decimal arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt String ls_moneyname Decimal ld_canamt Decimal lde_billamt Decimal ld_mrate Long ll_outwareid //dw_child.accepttext() SELECT name INTO :ls_moneyname FROM cw_currency Where moneyid = :arg_moneyid; IF sqlca.SQLCode <> 0 THEN st_msg.Text = '查询币种信息失败' st_msg.BackColor = RGB(255,255,255) RETURN END IF //本单金额 // IF sys_option_mst_multimoney = 0 THEN // ll_moneyid = f_moneyid_native() // IF ll_moneyid = -1 THEN // MessageBox('系统提示','查询本位币失败') // RETURN // END IF // ld_mrate = dw_pageretr.Object.u_outware_mrate[dw_pageretr.GetRow()] // ELSE // ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()] ld_mrate = 1 // END IF lde_billamt = dw_child.Object.enamt_sm[1] * ld_mrate - dw_uc.Object.u_outware_otheramt[dw_uc.getrow()] //其他单未财审金额 dw_uc.AcceptText() ll_outwareid = dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()] Decimal ld_notsecaudit_amt, ld_notsecaudit_enamt, ld_notsecaudit_billamt, ld_notsecaudit_otheramt, ld_notsecaudit_enotheramt SELECT sum(round(u_outwaremx.saleqty * u_outwaremx.price,2)), sum(round(u_outwaremx.saleqty * u_outwaremx.enprice * u_outwaremx.rebate,2)) INTO :ld_notsecaudit_amt,:ld_notsecaudit_enamt FROM u_outware,u_outwaremx WHERE u_outware.scid = u_outwaremx.scid AND u_outware.outwareid = u_outwaremx.outwareid AND u_outware.billtype = 1 AND u_outware.secflag = 0 AND u_outware.cusid = :arg_cusid AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 ) And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0); IF sqlca.SQLCode <> 0 THEN ld_notsecaudit_amt = 0 ld_notsecaudit_enamt = 0 END IF SELECT sum(round(u_outware.otheramt,2)), sum(round(u_outware.otheramt * u_outware.mrate,2)) INTO :ld_notsecaudit_enotheramt,:ld_notsecaudit_otheramt FROM u_outware WHERE u_outware.billtype = 1 AND u_outware.secflag = 0 AND u_outware.cusid = :arg_cusid AND (:sys_option_scid_msttake_mstpay = 1 AND u_outware.scid = :arg_scid OR :sys_option_scid_msttake_mstpay = 0 ) And (:sys_option_mst_multimoney = 1 And u_outware.relint_2 = :arg_moneyid Or :sys_option_mst_multimoney = 0); IF sqlca.SQLCode <> 0 THEN ld_notsecaudit_enotheramt = 0 ld_notsecaudit_otheramt = 0 END IF IF IsNull(ld_notsecaudit_amt) THEN ld_notsecaudit_amt = 0 IF IsNull(ld_notsecaudit_enamt) THEN ld_notsecaudit_enamt = 0 IF IsNull(ld_notsecaudit_otheramt) THEN ld_notsecaudit_otheramt = 0 IF IsNull(ld_notsecaudit_enotheramt) THEN ld_notsecaudit_enotheramt = 0 IF sys_option_mst_multimoney = 1 THEN ld_notsecaudit_billamt = ld_notsecaudit_enamt - ld_notsecaudit_enotheramt ELSE ld_notsecaudit_billamt = ld_notsecaudit_amt - ld_notsecaudit_otheramt END IF cur_cusrepamtflag = 0 //--------检查信用额 lst = f_getcusrepamt_info(arg_scid,arg_cusid,arg_moneyid,arg_cusbalcamt,arg_cusmaxamt,arg_outrep_balcamt,arg_outrep_maxamt) //IF lst < 0 THEN // msg = '提示:查询信用额及欠款失败!' // st_msg.Text = msg // st_msg.BackColor = RGB(255,255,255) // // cur_cusrepamtflag = -1 // cur_cusrepamtstr = msg //ELSE // //客户欠款 // IF arg_cusmaxamt > 0 THEN // IF arg_cusbalcamt > arg_cusmaxamt THEN // cstr = ' 客户欠款超信用额! ' // ELSEIF arg_cusbalcamt = arg_cusmaxamt THEN // cstr = ' 客户欠款平信用额! ' // END IF // ELSE // IF arg_cusbalcamt > arg_cusmaxamt THEN cstr = ' 客户有欠款! ' // END IF // //end if // cur_cusrepamtstr_show = '' //非编辑状态下 显示信息 cur_cusrepamtstr_show='信用额度-欠款-未财审金额:'+'~r~n' + '(' + String(arg_cusmaxamt,'###0.00') + ')' + ' - ' + '(' + String(arg_cusbalcamt,'###0.00') + ')' + ' - ' + '(' + String(ld_notsecaudit_billamt,'###0.00') + ')' + ' = ' + String(arg_cusmaxamt - arg_cusbalcamt - ld_notsecaudit_billamt ,'###0.00') If arg_cusmaxamt - arg_cusbalcamt - ld_notsecaudit_billamt >= 0 Then st_cusbalc_sign.Visible = False Else st_cusbalc_sign.Visible = True End If end subroutine public subroutine wf_set_decimal_place ();Long i IF sys_option_outware_price_amt_round = 99 THEN RETURN //设置单价保留位数 dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() CHOOSE CASE sys_option_outware_price_amt_round CASE 0 dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0') ) CASE 1 dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.#') ) CASE 2 dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.##') ) CASE 3 dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.###') ) CASE 4 dw_child.Object.u_outwaremx_enprice[i] = Dec(String(dw_child.Object.u_outwaremx_enprice[i],'#,##0.####') ) END CHOOSE NEXT dw_child.AcceptText() //设置单价保留位数 end subroutine public function decimal wf_sum_mxamt ();// dw_child.AcceptText() Long i Decimal dec_sum dec_sum = 0 FOR i = 1 To dw_child.RowCount() dec_sum = dec_sum + Dec(dw_child.Object.u_outwaremx_uqty[i]) * Dec(dw_child.Object.u_outwaremx_enprice[i]) * Dec(dw_child.Object.u_outwaremx_rebate[i]) NEXT IF IsNull(dec_sum) THEN dec_sum = 0 RETURN dec_sum end function public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid);//// decimal cusprice SELECT u_sale_price_mx.price INTO :cusprice from u_cust left join u_sale_price_mx on u_cust.pricelistid = u_sale_price_mx.pricelistid where mtrlid = :arg_mtrlid and cusid = :arg_cusid order by u_sale_price_mx.sys_changetime desc; IF sqlca.SQLCode <> 0 THEN cusprice = 0 END IF return cusprice end function public subroutine wf_price (integer arg_row);s_cmpl_qty arg_cmpl,null_cmpl decimal ld_cusprice,ld_qty int li_mtrlid,li_cusid string ls_msg if li_mtrlid = 0 or li_cusid = 0 then return arg_cmpl = null_cmpl arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[arg_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[arg_row] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[arg_row] arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[arg_row] arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[arg_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[arg_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[arg_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[arg_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[arg_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[arg_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[arg_row] li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select price Into :ld_cusprice From u_cust Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid Where u_sale_price_mx.mtrlid = :li_mtrlid And u_cust.cusid = :li_cusid; If sqlca.SQLCode <> 0 Then ld_cusprice = 0 End If arg_cmpl.cusprice = ld_cusprice arg_cmpl.num = 2 arg_cmpl.addvalue = 1 arg_cmpl.flag = True ld_qty = 0 If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then MessageBox('提示',ls_msg, information!, OK! ) Return End If dw_child.Object.u_outwaremx_enprice[arg_row] = ld_qty end subroutine public function integer wf_autoaddmx_rp (s_edit_index_tran arg_s_tran, ref string arg_msg);IF Not dw_edit_mode THEN RETURN 0 long cusid,storageid,scid string Name,cuscode,bsntype,freight,freight_tele,freight_address,Address,tele,tele1,faxno,rep,custype int rslt = 1 ,i,child_llrow scid = arg_s_tran.c_long long uc_row cusid = arg_s_tran.g_long storageid = arg_s_tran.f_long select Name, cuscode, freight, freight_tele, freight_address, Address, tele, tele1, faxno, rep, custype into :Name, :cuscode, :freight, :freight_tele, :freight_address, :Address, :tele, :tele1, :faxno, :rep, :custype from u_cust where cusid = :cusid; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询客户资料失败>'+sqlca.SQLErrText rslt = 0 GOTO ext END IF uc_row = dw_uc.rowcount() uc_row = dw_uc.getrow() dw_uc.Object.u_outware_cusid[uc_row] = cusid dw_uc.Object.u_cust_name[uc_row] = Name dw_uc.Object.u_cust_cuscode[uc_row] = cuscode dw_uc.Object.u_outware_outrep[uc_row] = custype dw_uc.Object.u_outware_relstr_1[uc_row] = freight dw_uc.Object.u_outware_relstr_2[uc_row] = freight_tele dw_uc.Object.u_outware_relstr_3[uc_row] = freight_address dw_uc.Object.u_outware_rel_address[uc_row] = Address dw_uc.Object.u_outware_rel_tele[uc_row] = tele dw_uc.Object.u_outware_rel_tele1[uc_row] = tele1 dw_uc.Object.u_outware_rel_fax[uc_row] = faxno dw_uc.Object.u_outware_rel_rep[uc_row] = rep dw_uc.Object.u_outware_storageid[uc_row] = storageid // s_saletask_mtrl s_saletask for i = 1 to upperbound(arg_s_tran.arr_long) s_saletask.TaskID[i] = arg_s_tran.arr_long[i] s_saletask.printid[i] = arg_s_tran.arr_long2[i] s_saletask.mtrlid[i] = arg_s_tran.arr_long3[i] s_saletask.TaskCode[i] = arg_s_tran.arr_string[i] next IF wf_saletaskmtrltoarr_salemx(scid,s_saletask,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF wf_set_outwaremx(scid,cusid, storageid, s_saletask,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF ext: return rslt end function on w_outware_sale.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.st_msg=create st_msg this.cbx_ifmtrlware=create cbx_ifmtrlware this.cbx_enamt_edit=create cbx_enamt_edit this.ddlb_status=create ddlb_status this.cb_fhmx=create cb_fhmx this.cb_fymx=create cb_fymx this.cb_bjmx=create cb_bjmx this.dw_bjmx=create dw_bjmx this.dw_fymx=create dw_fymx this.cbx_packqty_cmpl=create cbx_packqty_cmpl this.cbx_enamt_notax_edit=create cbx_enamt_notax_edit this.cb_scanbill=create cb_scanbill this.cbx_zk=create cbx_zk this.cb_new_scanbill=create cb_new_scanbill this.st_cusbalc=create st_cusbalc this.st_cusbalc_sign=create st_cusbalc_sign 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.st_msg this.Control[iCurrent+5]=this.cbx_ifmtrlware this.Control[iCurrent+6]=this.cbx_enamt_edit this.Control[iCurrent+7]=this.ddlb_status this.Control[iCurrent+8]=this.cb_fhmx this.Control[iCurrent+9]=this.cb_fymx this.Control[iCurrent+10]=this.cb_bjmx this.Control[iCurrent+11]=this.dw_bjmx this.Control[iCurrent+12]=this.dw_fymx this.Control[iCurrent+13]=this.cbx_packqty_cmpl this.Control[iCurrent+14]=this.cbx_enamt_notax_edit this.Control[iCurrent+15]=this.cb_scanbill this.Control[iCurrent+16]=this.cbx_zk this.Control[iCurrent+17]=this.cb_new_scanbill this.Control[iCurrent+18]=this.st_cusbalc this.Control[iCurrent+19]=this.st_cusbalc_sign this.Control[iCurrent+20]=this.cbx_all end on on w_outware_sale.destroy call super::destroy destroy(this.ddlb_scid) destroy(this.st_3) destroy(this.st_2) destroy(this.st_msg) destroy(this.cbx_ifmtrlware) destroy(this.cbx_enamt_edit) destroy(this.ddlb_status) destroy(this.cb_fhmx) destroy(this.cb_fymx) destroy(this.cb_bjmx) destroy(this.dw_bjmx) destroy(this.dw_fymx) destroy(this.cbx_packqty_cmpl) destroy(this.cbx_enamt_notax_edit) destroy(this.cb_scanbill) destroy(this.cbx_zk) destroy(this.cb_new_scanbill) destroy(this.st_cusbalc) destroy(this.st_cusbalc_sign) destroy(this.cbx_all) end on event retrieve_pageretr;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled = cb_nextpage.Enabled cb_retrieveall_enabled = cb_retrieveall.Enabled cb_func_enabled = cb_func.Enabled cb_nextpage.Enabled = False cb_retrieveall.Enabled = False cb_func.Enabled = False //只显未自已管的仓库 datawindowchild childdw String new_sqlstr,modify_str dw_uc.SetTransObject (sqlca) dw_uc.GetChild("u_outware_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 ///////////// // Int li_option_outrep, li_option_area,li_option_opemp string ls_option_opemp IF sys_power_issuper THEN li_option_outrep = 0 ELSE li_option_outrep = sys_option_outrep END IF IF sys_power_issuper THEN li_option_area = 0 ELSE li_option_area = sys_option_cusarea END IF IF sys_power_issuper or f_power_ind(369) or f_power_ind(868) or f_power_ind(370) or f_power_ind(870) THEN li_option_opemp = 0 // ls_option_opemp = publ_operator ELSE li_option_opemp = sys_option_opemp_sale ls_option_opemp = publ_operator END IF long ll_row ll_row = dw_pageretr.getrow() dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_scid_arr,sys_user_storageid,sys_showsaledata_mindt,cur_flag,cur_secflag,sys_areaid,li_option_area,sys_user_outrep, li_option_outrep, cur_priceflag,ls_option_opemp,li_option_opemp) IF dw_pageretr.RowCount() > 0 and ll_row = 1 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 //childdw.retrieve() end event event 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+'( u_outware_outwarecode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( u_outware_outwarecode 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;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_outware.outwarecode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_outware.outwarecode 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_outware_sale 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) int rtncode // 保留联系人初始sql DataWindowChild dw_child_dddw rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw) old_rep_select = Lower(dw_child_dddw.GetSQLSelect()) 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 = 27 //uc dw前7列可以编辑 child_column_int = 31 //子dw前18列可以编辑 uo_ware = CREATE uo_outware_sale uo_ware.commit_transaction = sqlca IF sys_option_outwaresale_rateedit = 1 THEN dw_child.Modify ("u_outwaremx_rate_t.color=16711680") dw_child.Modify ("u_outwaremx_rate.color=16711680") dw_child.Modify ("u_outwaremx_rate.protect=0") ELSE dw_child.Modify ("u_outwaremx_rate.protect=1") END IF if sys_option_hide_ware = 1 then dw_child.Modify ("u_outwaremx_status_t.color=16711680") dw_child.Modify ("u_outwaremx_status.color=16711680") dw_child.Modify ("u_outwaremx_status.protect=0") dw_child.Modify ("u_outwaremx_woodcode_t.color=16711680") dw_child.Modify ("u_outwaremx_woodcode.color=16711680") dw_child.Modify ("u_outwaremx_woodcode.protect=0") dw_child.Modify ("u_outwaremx_pcode_t.color=16711680") dw_child.Modify ("u_outwaremx_pcode.color=16711680") dw_child.Modify ("u_outwaremx_pcode.protect=0") ELSE dw_child.Modify ("u_outwaremx_status.protect=1") dw_child.Modify ("u_outwaremx_woodcode.protect=1") dw_child.Modify ("u_outwaremx_pcode.protect=1") end if uo_fieb = create uo_ljfieb uo_fieb.commit_transaction = sys_email_sqlca uo_cus_price = CREATE uo_cusprice s_hide_col s_col, s_null s_col = s_null s_col.col_1 = 'billamt' f_hide_col(122,dw_uc,s_col) //隐藏销售价 s_col = s_null s_col.col_1 = 'u_outwaremx_enprice' s_col.col_2 = 'u_outwaremx_rebate' s_col.col_3 = 'u_outwaremx_tax' s_col.col_4 = 'enamt' s_col.col_5 = 'u_outwaremx_enamt_tax' s_col.col_6 = 'u_outwaremx_fprice' s_col.col_7 = 'u_outwaremx_bsamt' s_col.col_8 = 'u_outwaremx_bsamt_tax' s_col.col_9 = 'u_outwaremx_price' s_col.col_10 = 'u_outwaremx_otherprice' f_hide_col(122,dw_child,s_col) //隐藏销售价 s_col = s_null s_col.col_1 = 'u_outwaremx_ware_fprice' s_col.col_2 = 'enamt2' s_col.col_3 = 'u_outwaremx_dftsaleprice' s_col.col_4 = 'enamt_notax' s_col.col_5 = 'enamt2o' s_col.col_6 = 'enprice_notax' s_col.col_7 = 'z_h_price' s_col.col_8 = 'z_h_amt' f_hide_col(122,dw_child,s_col) //隐藏销售价 s_col = s_null s_col.col_1 = 'gpamt' f_hide_col(843,dw_child,s_col) //隐藏销售毛利 s_col = s_null s_col.col_1 = 'u_outwaremx_cost' s_col.col_2 = 'u_outwaremx_costamt' f_hide_col(490,dw_child,s_col) //隐藏 出仓成本价 s_col = s_null s_col.col_2 = 'u_outwaremx_cost_notax' f_hide_col(123,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) //if sys_option_outware_if_saleqty = 0 then // dw_child.modify( "u_outwaremx_uqty_t.text = '数量'") // dw_child.modify( "destroy u_outwaremx_saleqty ") //else // dw_child.modify( "u_outwaremx_uqty_t.text = '出仓数量'") // dw_child.modify( "u_outwaremx_saleqty.visible = 1 ") //end if //String arg_msg //IF s_tran.e_long = 1 And UpperBound(s_tran.arr_long) > 0 THEN // cb_add.TriggerEvent(Clicked!) // wf_autoaddmx_rp(s_tran,arg_msg) //END IF end event event refresh_interface;call super::refresh_interface;ddlb_status.Enabled = Not dw_edit_mode ddlb_scid.Enabled = Not dw_edit_mode cbx_enamt_edit.Enabled = Not dw_edit_mode cbx_enamt_notax_edit.Enabled = Not dw_edit_mode cbx_packqty_cmpl.Enabled = Not dw_edit_mode cbx_zk.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 st_msg.X = dw_pageretr.X st_msg.Y = dw_pageretr.Y st_msg.Width = dw_pageretr.Width st_msg.Height = dw_pageretr.Height st_msg.Visible = dw_edit_mode IF Not dw_edit_mode THEN st_msg.Text = '' END IF wf_flagstatus_rf() String ls_sqlstr //编缉状态明细不选择 IF dw_edit_mode THEN dw_child.SelectRow(0,False) END IF IF Not dw_edit_mode THEN cur_editfocus = 0 Long ls_sit = 0 //后面还有对金额的分权限处理 wf_enamt_facechg() //IF ii_enamt_edit = 0 THEN // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0') // dw_child.Modify('enamt_t.Color = 0') //ELSE // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"') // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"') //END IF //973-限制销售价,折扣(只能按价格表、报价、限价,不能手动录入) //866-仓审后修改单价 //销售数量使用 IF sys_option_outware_if_saleqty = 0 THEN //不分离 dw_child.Modify('u_outwaremx_saleqty.protect = 1~t u_outwaremx_saleqty.Color = 0') dw_child.Modify('u_outwaremx_saleqty_t.Color = 0') ELSE dw_child.Modify('u_outwaremx_saleqty.protect = 0~t u_outwaremx_saleqty.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_outwaremx_saleqty_t.Color = "0~trgb(0,0,255)"') END IF IF Not dw_edit_mode THEN dw_child.Modify('u_mtrldef_sumneed_qty.visible=0 ~n u_mtrldef_sumware_qty.visible=0 ~n u_mtrldef_curware_qty.visible=0') ELSE dw_child.Modify('u_mtrldef_sumneed_qty_t.visible=1 ~n u_mtrldef_sumware_qty_t.visible=1 ~n u_mtrldef_curware_qty_t.visible=1') dw_child.Modify('u_mtrldef_sumneed_qty.visible=1 ~n u_mtrldef_sumware_qty.visible=1 ~n u_mtrldef_curware_qty.visible=1') ls_sit = Long(dw_child.Describe('u_outwaremx_mxdscrp.X'))+Long(dw_child.Describe('u_outwaremx_mxdscrp.width')) dw_child.Modify('u_mtrldef_curware_qty.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('u_mtrldef_curware_qty.X'))+Long(dw_child.Describe('u_mtrldef_curware_qty.width')) dw_child.Modify('u_mtrldef_sumware_qty.x='+String(ls_sit)) ls_sit = Long(dw_child.Describe('u_mtrldef_sumware_qty.X'))+Long(dw_child.Describe('u_mtrldef_sumware_qty.width')) dw_child.Modify('u_mtrldef_sumneed_qty.x='+String(ls_sit)) END IF IF dw_edit_mode THEN IF cur_editfocus = 1 Or cur_editfocus = 0 THEN //新建 or 非编辑 dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0') dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0') cb_xm.Enabled = True ELSE //修改 IF sys_option_confirmaudit_sale = 1 THEN IF priceflag = 1 THEN dw_uc.Modify('u_outware_storageid.protect=1 ~n u_cust_cuscode.protect=1 ~n u_outware_relint_2.protect=1 ~n u_outware_mrate.protect=1') IF flag = 0 THEN dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=1') ELSEIF flag = 1 And secflag = 0 THEN dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=1 ~n u_outwaremx_addqty.protect=1 ~n u_outwaremx_ifrel.protect=1 ~n u_outwaremx_outtype.protect=1') IF Not f_power_ind(866) THEN dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ') END IF END IF cb_xm.Enabled = False ELSE dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0') dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0') cb_xm.Enabled = True END IF ELSE IF flag = 1 And secflag = 0 THEN dw_uc.Modify('u_outware_storageid.protect=1 ~n u_cust_cuscode.protect=1 ~n u_outware_relint_2.protect=1 ~n u_outware_mrate.protect=1') dw_child.Modify('u_mtrldef_mtrlcode.protect=1 ~n u_outwaremx_uqty.protect=1 ~n u_outwaremx_addqty.protect=1 ~n u_outwaremx_ifrel.protect=1 ~n u_outwaremx_outtype.protect=1') IF Not f_power_ind(866) THEN dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n ') END IF cb_xm.Enabled = False ELSE dw_uc.Modify('u_outware_storageid.protect=0 ~n u_cust_cuscode.protect=0 ~n u_outware_relint_2.protect=0 ~n u_outware_mrate.protect=0') dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n u_outwaremx_ifrel.protect=0 ~n u_outwaremx_outtype.protect=0') cb_xm.Enabled = True END IF END IF END IF ELSE dw_uc.Modify('u_outware_storageid.protect=0') dw_child.Modify('u_mtrldef_mtrlcode.protect=0 ~n u_outwaremx_uqty.protect=0 ~n u_outwaremx_addqty.protect=0 ~n ') END IF IF sys_power_issuper Or Not f_power_ind(973) THEN IF sys_power_issuper Or Not f_power_ind(1710) THEN IF ii_enamt_edit = 0 THEN // dw_child.Modify('u_outwaremx_enprice.protect=0 ~n u_outwaremx_rebate.protect=0 ') dw_child.Modify('u_outwaremx_enprice.protect=0 ') //973 限制单价 ELSE dw_child.Modify('u_outwaremx_enprice.protect=1 ') // IF ii_enamt_notax_edit = 0 THEN // dw_child.Modify('enamt.protect=0 ~n ') // ELSE // // dw_child.Modify('enamt_notax.protect=0 ~n ') // END IF END IF ELSE dw_child.Modify('u_outwaremx_enprice.protect=1 ') // IF ii_enamt_edit = 0 THEN // dw_child.Modify('u_outwaremx_enprice.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n u_outwaremx_rebate.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0) "') // ELSE // // IF ii_enamt_notax_edit = 0 THEN // dw_child.Modify('enamt.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ') // ELSE // // dw_child.Modify('enamt_notax.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)" ~n ') // END IF // END IF END IF ELSE // dw_child.Modify('u_outwaremx_enprice.protect=1 ~n u_outwaremx_rebate.protect=1 ~n enamt.protect=1 ~n enamt_notax.protect=1 ~n ') dw_child.Modify('u_outwaremx_enprice.protect=1 ') END IF IF sys_power_issuper Or Not f_power_ind(492) THEN //492 限制折扣 dw_child.Modify('u_outwaremx_rebate.protect=0 ') ELSE dw_child.Modify('u_outwaremx_rebate.protect=1 ') END IF IF sys_power_issuper Or not f_power_ind(1710) THEN //1710 销售订单限制单价 dw_child.Modify('u_outwaremx_enprice.protect=0 ') ELSE dw_child.Modify('u_outwaremx_enprice.protect="0~tif (u_outwaremx_ifrel =1 , 1 ,0)"') END IF IF sys_option_packqty_sale = 0 THEN dw_child.Modify('u_outwaremx_packqty.protect=1 ') ELSE dw_child.Modify('u_outwaremx_packqty.protect=0 ') END IF end event event close;call super::close;destroy uo_ware destroy uo_fieb DESTROY uo_cus_price wf_del_tempfilepathname() end event event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用 If Not dw_edit_mode Then Return If dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 Then Return //IF flag = 1 THEN RETURN Long child_row,ll_storageid = 0,cnt_childdw Long ll_moneyid Long ls_null Long chc = 1,ls_j,ll_custid Decimal lde_rate,ld_tax String ls_msg s_cmpl_qty arg_cmpl,null_cmpl Decimal ld_qty Int li_mtrlid,li_cusid Dec ld_cusprice string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode s_edit_index_tran s_tranf8 //传递参数使用 SetNull(ls_null) dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] If ll_moneyid = 0 Or IsNull(ll_moneyid) Then MessageBox('提示','请先选择币种',information!,OK!) Return End If If wf_get_cusid(ll_custid) = 0 Then Return End If dw_uc.AcceptText() dw_child.AcceptText() child_row = dw_child.GetRow() If sys_option_hide_ware = 0 Then //如果隐藏仓库的,直接选物料 ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] If ll_storageid = 0 Or IsNull(ll_storageid) Then MessageBox('提示','请先选择仓库',information!,OK!) Return End If Int li_if_cus_mtrlware Select balctype Into :li_if_cus_mtrlware From u_storage Where storageid = :ll_storageid; If sqlca.SQLCode <> 0 Then MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!) Return End If //初始化参数 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = 0 If li_if_cus_mtrlware = 1 Then ///////////// // s_tranf8.c_long = ll_custid Else s_tranf8.c_long = -1 End If If Not IsValid(w_mtrlware_storageid_ch) Then s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.d_long = ll_storageid If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm For ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) If S_INSCUST.mtrlwareid[ls_j] > 0 Then If dw_child.GetRow() > 0 Then If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] If sys_option_outware_Sale_ware = 0 Then dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_addqty[child_row] = 0 ElseIf sys_option_outware_Sale_ware = 1 Then dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j] Else dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j] End If dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j] dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j] dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j] dw_child.Object.u_mtrldef_mtrltype[child_row] = S_INSCUST.u_mtrldef_mtrltype[ls_j] dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j] dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j] dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j] dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j] f_find_unitrate(S_INSCUST.mtrlid[ls_j], S_INSCUST.u_mtrldef_unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] String ls_priceformula s_mtrldef_array arg_s_mtrldef If f_find_mtrl(S_INSCUST.u_mtrldef_mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 Then ls_priceformula = '' Else ls_priceformula = arg_s_mtrldef.priceformula[1] IF arg_s_mtrldef.saleunit[1] = 1 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_buy[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_buy[1] ELSEIF arg_s_mtrldef.saleunit[1] = 2 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_scll[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_scll[1] ELSEIF arg_s_mtrldef.saleunit[1] = 3 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef.unit_sale[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef.rate_sale[1] END IF End If dw_child.Object.u_outwaremx_priceformula[child_row] = ls_priceformula wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null dw_child.Object.u_mtrldef_handtype[child_row] = S_INSCUST.u_mtrldef_handtype[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j] li_mtrlid=S_INSCUST.mtrlid[ls_j] //客户物料名称 li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'') Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode From u_cusmtrlname Where mtrlid= :li_mtrlid and cusid= :li_cusid ; dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode //计算单价 If ls_priceformula <> '' Then arg_cmpl = null_cmpl arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select price Into :ld_cusprice From u_cust Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid Where u_sale_price_mx.mtrlid = :li_mtrlid And u_cust.cusid = :li_cusid order by u_sale_price_mx.sys_changetime desc; If sqlca.SQLCode <> 0 Then ld_cusprice = 0 End If arg_cmpl.cusprice = ld_cusprice arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.addvalue = 1 arg_cmpl.flag = True ld_qty = 0 If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then MessageBox('提示',ls_msg, information!, OK! ) Return End If dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty End If If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then ld_tax = 0 Else dw_child.Object.u_outwaremx_tax[child_row] = ld_tax End If End If Next End If Else If Not IsValid(W_mtrldef_edit) Then //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.work_mode = 1 //0-单纯编辑模式 1-选择\编辑模式 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.if_select_all = True //多选 s_tranf8.b_long = -1 //选采购 s_tranf8.c_long = -1 If dw_child.GetRow() > 0 Then s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) OpenWithParm(W_mtrldef_edit,s_tranf8) //调用 s_mtrldef_array S_INSCUST2 S_INSCUST2 = Message.PowerObjectParm //接受返回结构 For ls_j = 1 To UpperBound(S_INSCUST2.mtrlid) If S_INSCUST2.mtrlid[ls_j] > 0 Then //正常返回值则可以取以下值 If dw_child.GetRow() > 0 Then If dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] <> 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_outwaremx_mtrlwareid[child_row] = 0 dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST2.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST2.mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST2.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST2.mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST2.unit[ls_j] dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_addqty[child_row] = 0 dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST2.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = 0 dw_child.Object.u_outwaremx_plancode[child_row] = '' //dw_child.Object.u_outwaremx_dxflag[child_row] = 0 dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST2.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST2.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST2.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST2.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST2.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST2.mtrlengname[ls_j]// dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST2.barcode[ls_j] dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST2.unit[ls_j] f_find_unitrate(S_INSCUST2.mtrlid[ls_j], S_INSCUST2.unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate s_mtrldef_array arg_s_mtrldef_1 If f_find_mtrl(S_INSCUST2.mtrlcode[ls_j],-1,arg_s_mtrldef_1) <> 0 Then IF arg_s_mtrldef_1.saleunit[1] = 1 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_buy[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_buy[1] ELSEIF arg_s_mtrldef_1.saleunit[1] = 2 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_scll[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_scll[1] ELSEIF arg_s_mtrldef_1.saleunit[1] = 3 THEN dw_child.Object.u_outwaremx_unit[child_row] = arg_s_mtrldef_1.unit_sale[1] dw_child.Object.u_outwaremx_rate[child_row] = arg_s_mtrldef_1.rate_sale[1] END IF End If wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null li_mtrlid=S_INSCUST2.mtrlid[ls_j] //客户物料名称 li_cusid=dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'') Into :ls_cusmtrlmode, :ls_cusmtrlname, :ls_cusmtrlcode From u_cusmtrlname Where mtrlid= :li_mtrlid and cusid= :li_cusid ; dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode If f_find_tax(ll_custid,'u_cust',ld_tax) = 0 Then ld_tax = 0 Else dw_child.Object.u_outwaremx_tax[child_row] = ld_tax End If dw_child.Object.u_outwaremx_priceformula[child_row] = S_INSCUST2.priceformula[ls_j] //计算单价 If S_INSCUST2.priceformula[ls_j] <> '' Then arg_cmpl = null_cmpl arg_cmpl.qty = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.formula = dw_child.Object.u_outwaremx_priceformula[child_row] arg_cmpl.addqty = dw_child.Object.u_outwaremx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_outwaremx_enprice[child_row] arg_cmpl.rebate = dw_child.Object.u_outwaremx_rebate[child_row] arg_cmpl.status = dw_child.Object.u_outwaremx_status[child_row] arg_cmpl.woodcode = dw_child.Object.u_outwaremx_woodcode[child_row] arg_cmpl.pcode = dw_child.Object.u_outwaremx_pcode[child_row] arg_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[child_row] arg_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[child_row] li_mtrlid = dw_child.Object.u_outwaremx_mtrlid[child_row] li_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] Select price Into :ld_cusprice From u_cust Inner JOIN u_sale_price_mx ON u_sale_price_mx.Pricelistid = u_cust.Pricelistid Where u_sale_price_mx.mtrlid = :li_mtrlid And u_cust.cusid = :li_cusid order by u_sale_price_mx.sys_changetime desc; If sqlca.SQLCode <> 0 Then ld_cusprice = 0 End If arg_cmpl.cusprice = ld_cusprice arg_cmpl.num = 2 arg_cmpl.addvalue = 1 arg_cmpl.flag = True ld_qty = 0 If f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 Then MessageBox('提示',ls_msg, information!, OK! ) Return End If dw_child.Object.u_outwaremx_enprice[child_row] = ld_qty End If End If Next End If End If If sys_option_outware_if_saleqty = 0 Then If ii_packqty_cmpl = 1 Then dw_child.SetColumn('u_outwaremx_packqty') Else dw_child.SetColumn('u_outwaremx_uqty') End If // dw_child.SetColumn('u_outwaremx_uqty') Else dw_child.SetColumn('u_outwaremx_saleqty') 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_outware_scid[row] uc_relid = dw_pageretr.Object.u_outware_outwareid[row] dw_child.SetRedraw (False) dw_child.Retrieve(ll_scid,uc_relid) dw_child.SetRedraw (True) dw_fymx.SetRedraw (False) dw_fymx.Retrieve(ll_scid,uc_relid) dw_fymx.SetRedraw (True) dw_bjmx.SetRedraw (False) dw_bjmx.Retrieve(ll_scid,uc_relid) dw_bjmx.SetRedraw (True) this.TriggerEvent('ue_retrieve_his_pricemx') ELSE dw_child.Reset() dw_fymx.Reset() dw_bjmx.Reset() END IF end event event ue_f9;call super::ue_f9;IF Not dw_edit_mode THEN RETURN Long child_row child_row = dw_uc.GetRow() IF child_row = 0 THEN MessageBox('提示','请选定出仓单!',information!,OK!) RETURN END IF Long ll_ori_cusid Long ll_scid, ll_moneyid String ls_address ll_ori_cusid = dw_uc.Object.u_outware_cusid[child_row] 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_uc.AcceptText() s_ch_tran.arg_string_code = Trim(dw_uc.Object.u_cust_cuscode[child_row]) OpenWithParm(W_cust_edit,s_ch_tran) //调用 s_custom S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 Long li_ifrel,ll_i IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值 // IF S_INSCUST.cusid <> ll_ori_cusid And ll_ori_cusid <> 0 THEN // FOR ll_i = 1 To dw_child.RowCount() // IF dw_child.Object.u_outwaremx_relid[ll_i] > 0 THEN // li_ifrel = 1 // EXIT // END IF // NEXT // // IF li_ifrel = 1 THEN // IF MessageBox('询问','客户将要改变,明细内容已有原客户的订单内容,是否断续?',Question!,YesNo!) = 2 THEN // RETURN // ELSE // FOR ll_i = 1 To dw_child.RowCount() // dw_child.Object.u_outwaremx_ifrel[ll_i] = 0 // dw_child.Object.u_outwaremx_relid[ll_i] = 0 // dw_child.Object.u_outwaremx_relcode[ll_i] = '' // NEXT // END IF // END IF // END IF //重置dw_child IF wf_change_cusid(S_INSCUST.cusid) = 0 THEN RETURN dw_uc.SetRedraw(False) dw_uc.Object.u_outware_cusid[child_row] = S_INSCUST.cusid dw_uc.Object.u_cust_name[child_row] = S_INSCUST.Name dw_uc.Object.u_cust_cuscode[child_row] = S_INSCUST.cuscode dw_uc.Object.u_outware_outrep[child_row] = S_INSCUST.bsntype dw_uc.Object.u_outware_relstr_1[child_row] = S_INSCUST.freight dw_uc.Object.u_outware_relstr_2[child_row] = S_INSCUST.freight_tele dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address dw_uc.Object.u_outware_rel_address[child_row] = S_INSCUST.Address dw_uc.Object.u_outware_rel_tele[child_row] = S_INSCUST.tele dw_uc.Object.u_outware_rel_tele1[child_row] = S_INSCUST.tele1 dw_uc.Object.u_outware_rel_fax[child_row] = S_INSCUST.faxno dw_uc.Object.u_outware_rel_rep[child_row] = S_INSCUST.rep IF S_INSCUST.banktypeid > 0 THEN dw_uc.Object.u_outware_relint_1[child_row] = S_INSCUST.banktypeid END IF IF Len(S_INSCUST.freight_address) > 0 THEN dw_uc.Object.u_outware_relstr_3[child_row] = S_INSCUST.freight_address ELSE SELECT Address Into :ls_address From u_station Where stationname = :S_INSCUST.freight; dw_uc.Object.u_outware_relstr_3[child_row] = ls_address END IF dw_uc.SetRedraw(True) ll_scid = dw_uc.Object.u_outware_scid[child_row] ll_moneyid = dw_uc.Object.u_outware_relint_2[child_row] wf_getcusrepamt_info(ll_scid,S_INSCUST.cusid,ll_moneyid) dw_uc.SetColumn("u_outware_rel_address") END IF END IF end event event ue_f7;call super::ue_f7;//引入销售订单 IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN Long ll_storageid Long ll_scid Long ll_taskid String ls_taskcode long ll_cusid dw_uc.AcceptText() ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] IF sys_option_hide_ware = 0 THEN ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF ll_storageid = 0 Or IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF END IF s_saletask_find s_find s_find.scid = ll_scid s_find.areaid = sys_areaid s_find.cusid= dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] //THIS.Enabled = FALSE IF Not IsValid(w_saletask_ch) THEN s_saletask_ch s_saletask OpenWithParm(w_saletask_ch,s_find) s_saletask = Message.PowerObjectParm IF s_saletask.taskid > 0 THEN wf_ue_f7(s_saletask) if IsNull(s_saletask.relcode) or s_saletask.relcode = '' then dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.taskcode else dw_uc.Object.u_outware_part[dw_uc.GetRow()] = s_saletask.relcode end if END IF END IF //THIS.Enabled = TRUE end event event ue_viewprint;call super::ue_viewprint;//IF Not (f_power_ind(18) or f_power_ind(472)) THEN IF Not (f_power_ind(18) ) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF s_print_msg ls_prmsg ls_prmsg.retr_pram_falg = 15 IF dw_pageretr.RowCount() = 0 THEN MessageBox('提示','没有可打印的单据!',information!,OK!) RETURN END IF IF sys_option_confirmprint_sale = 1 THEN IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN MessageBox('提示','单据还未确认,不能打印!',information!,OK!) RETURN END IF END IF IF sys_option_auditprint_sale = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF IF sys_option_print_one = 1 THEN IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!) RETURN END IF END IF If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!') Return End If End If long ll_scid, ll_outwareid, ll_cusid, ll_moneyid ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()] ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()] ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()] ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()] IF sys_option_cusrepamt_limit = 2 THEN wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr) 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('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF ls_prmsg.obj_dwNAME = ls_newname ELSE ls_prmsg.obj_dwNAME = 'dw_rp_outware_sale_edit' END IF ls_prmsg.tag_text = '销售发货单' ls_prmsg.filter_string = '' ls_prmsg.pagech_flag = 0 ls_prmsg.retr_scid = ll_scid ls_prmsg.retr_pramnmb = ll_outwareid 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_outware',printnum,ll_scid,ll_outwareid,'','',arg_msg,TRUE) wf_refresh_curuc(ll_scid,ll_outwareid) string ls_code ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()] IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF end event event ue_print;call super::ue_print;//--直接打印 IF Not (f_power_ind(18) ) 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_confirmprint_sale = 1 THEN IF dw_pageretr.Object.u_outware_priceflag[dw_pageretr.GetRow()] <> 1 THEN MessageBox('提示','单据还未确认,不能打印!',information!,OK!) RETURN END IF END IF IF sys_option_auditprint_sale = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] <> 1 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF IF sys_option_print_one = 1 THEN IF dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 THEN MessageBox('提示','根据系统选项275设置,发货单只能打印一次!',information!,OK!) RETURN END IF END IF If f_power_ind(2002,sys_msg_pow) And Not sys_power_issuper Then If dw_pageretr.Object.u_outware_printnum[dw_pageretr.GetRow()] > 0 Then MessageBox('系统提示','目标单据已打印,你当前权限不能重复打印单据!') Return End If End If long ll_scid, ll_outwareid, ll_cusid, ll_moneyid ll_scid = dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()] ll_outwareid = dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()] ll_cusid = dw_pageretr.Object.u_outware_cusid[dw_pageretr.GetRow()] ll_moneyid = dw_pageretr.Object.u_outware_relint_2[dw_pageretr.GetRow()] IF sys_option_cusrepamt_limit = 2 THEN wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr) RETURN END IF END IF LS_PRMSG.retr_pram_falg = 15 IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_pageretr.Object.flag[dw_pageretr.GetRow()] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_outware_sale_edit' END IF LS_PRMSG.TAG_TEXT = '销售单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = ll_scid LS_PRMSG.retr_pramnmb = ll_outwareid LS_PRMSG.rowcnt = dw_child.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF uo_print.FACT_PRINT_MSG = LS_PRMSG String arg_msg IF uo_print.uof_print_begin(arg_msg) = 0 THEN MessageBox("错误",arg_msg,stopsign!,OK!) RETURN END IF uo_print.ds_print() IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF f_update_printnum('u_outware',1,ll_scid,ll_outwareid,'','',arg_msg,TRUE) wf_refresh_curuc(ll_scid,ll_outwareid) string ls_code ls_code = dw_pageretr.Object.u_outware_outwarecode[dw_pageretr.GetRow()] IF f_billevent_trigger (104, 1, ls_code, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF end event event ue_addzy;call super::ue_addzy;IF Not (f_power_ind(699) OR f_power_ind(766)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF IF dw_edit_mode THEN RETURN 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_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row],ls_str,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN ELSE MessageBox('提示','添加备注操作成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row]) END IF end event event resize;call super::resize;st_msg.width = this.width - (3600 - 1170) st_cusbalc.width = this.width / 2 cb_fhmx.Y = dw_uc.Y + dw_uc.Height cb_fymx.Y = cb_fhmx.Y cb_bjmx.Y = cb_fhmx.Y cb_scanbill.Y= cb_fhmx.Y cb_new_scanbill.y= cb_fhmx.Y dw_child.X = 0 dw_child.Y = cb_fhmx.Y + cb_fhmx.Height dw_child.Width = this.workspacewidth() - dw_child.X dw_child.Height = THIS.workspaceheight() - dw_child.Y dw_fymx.x = 0 dw_fymx.y = dw_child.Y dw_fymx.width = dw_child.width dw_fymx.height = dw_child.height dw_bjmx.x = 0 dw_bjmx.y = dw_child.Y dw_bjmx.width = dw_child.width dw_bjmx.height = dw_child.height end event event ue_f12;call super::ue_f12;IF NOT IsValid(w_unit_ch) THEN IF dw_child.GetRow() < 1 THEN RETURN Long ls_mtrlid //,ls_cusid,ls_moneyid // String ls_1stunit,arg_msg,ls_status,ls_woodcode,ls_pcode // Decimal rtn_price,rtn_zqrate,rtn_rate // ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] // ls_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] // // IF IsNull(ls_cusid) OR ls_cusid = 0 THEN // THIS.TriggerEvent("ue_f9") // END IF ls_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] // ls_status = dw_child.Object.u_outwaremx_status[dw_child.GetRow()] // ls_woodcode = dw_child.Object.u_outwaremx_woodcode[dw_child.GetRow()] // ls_pcode = dw_child.Object.u_outwaremx_pcode[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_outwaremx_unit[dw_child.GetRow()] = s_inscust.unit dw_child.Object.u_outwaremx_rate[dw_child.GetRow()] = s_inscust.rate wf_get_price(dw_child.GetRow()) END IF END IF end event event ue_addmx;IF Not dw_edit_mode THEN RETURN Long uc_row,ll_flag,ll_priceflag uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据',information!,OK!) RETURN END IF dw_uc.AcceptText() IF ins_dw_select = 0 THEN ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] IF ll_priceflag = 1 THEN MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!) RETURN END IF ll_flag = dw_pageretr.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能增加明细内容',information!,OK!) RETURN END IF This.TriggerEvent('ue_f8') dw_child.SetFocus() ELSE This.TriggerEvent('ue_add_fymx') dw_fymx.SetFocus() END IF end event event ue_deletemx;IF Not dw_edit_mode THEN RETURN Long uc_row,ll_flag,ll_priceflag uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据',information!,OK!) RETURN END IF ll_flag = dw_pageretr.Object.flag[uc_row] IF ll_flag = 1 THEN MessageBox('提示','单据已仓审,不能删除明细内容',information!,OK!) RETURN END IF ll_priceflag = dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] IF ll_priceflag = 1 THEN MessageBox('提示','单据已确认,不能删除明细内容',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF ins_dw_select = 0 THEN IF dw_child.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!',information!,OK!) RETURN END IF dw_child.DeleteRow (0) dw_child.TriggerEvent (RowFocusChanged!) ELSE IF dw_fymx.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!') RETURN END IF dw_fymx.DeleteRow (dw_fymx.GetRow() ) IF dw_fymx.RowCount() = 0 THEN dw_fymx.InsertRow(0) dw_fymx.TriggerEvent (RowFocusChanged!) END IF end event event ue_copyrow;Long uc_row,ll_flag,ll_priceflag uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据',information!,OK!) RETURN END IF ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()] IF ll_priceflag = 1 THEN MessageBox('提示','单据已确认,不能复制明细内容',information!,OK!) RETURN END IF ll_flag = dw_pageretr.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,ll_priceflag uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请先选择单据',information!,OK!) RETURN END IF ll_priceflag = dw_uc.object.u_outware_priceflag[dw_uc.GetRow()] IF ll_priceflag = 1 THEN MessageBox('提示','单据已确认,不能增加明细内容',information!,OK!) RETURN END IF ll_flag = dw_pageretr.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_before_open;call super::ue_before_open;dw_fymx.SetTransObject(sqlca) dw_bjmx.SetTransObject(sqlca) IF sys_option_allow_edit_outrep = 1 THEN dw_uc.Modify( 'b_1.visible = '+'"1"') END IF end event event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(18) ) 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('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF s_rpt_print_msg s_print s_print.retr_pram_falg = 15 s_print.rpid = ls_msgprintid_rpt s_print.retr_flag = TRUE s_print.tag_text = THIS.Title s_print.rpname = ls_rpname s_print.retr_scid = dw_pageretr.Object.u_outware_scid[row] s_print.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row] s_print.rowcnt = dw_child.RowCount() OpenWithParm(w_rpt_preview,s_print) //**更新打印次料 String arg_msg printnum = Message.DoubleParm f_update_printnum('u_outware',printnum,dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()],'','',arg_msg,TRUE) end event event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(18) ) 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 = THIS.Title LS_PRMSG.rpname = ls_rpname LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.rpid = ls_msgprintid_rpt LS_PRMSG.retr_scid = dw_pageretr.Object.u_outware_scid[row] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_outware_outwareid[row] LS_PRMSG.rowcnt = dw_child.RowCount() uo_print.FACT_PRINT_MSG = LS_PRMSG String arg_msg IF uo_print.uof_print_begin(arg_msg) = 0 THEN MessageBox("错误",arg_msg,stopsign!,OK!) RETURN END IF uo_print.ds_print() //**更新打印次料 printnum = Message.DoubleParm f_update_printnum('u_outware',printnum,dw_pageretr.Object.u_outware_scid[dw_pageretr.GetRow()],dw_pageretr.Object.u_outware_outwareid[dw_pageretr.GetRow()],'','',arg_msg,TRUE) end event event ue_allowedit;call super::ue_allowedit; IF sys_option_packqty_sale = 0 THEN dw_child.Modify("u_outwaremx_packqty.protect = 1") ELSE dw_child.Modify("u_outwaremx_packqty.protect = 0") END IF end event event ue_send_ljfieb;call super::ue_send_ljfieb;IF Not f_power_ind(3152) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN RETURN IF sys_email_sqlca.DBHandle() = 0 THEN MessageBox('Error','电子商务数据库连接失败,请检查') RETURN END IF IF MessageBox('询问','是否确认要发送单据给客户?',question!,yesno!) = 2 THEN RETURN Long ll_scid,ll_outwareid String ls_taskcode Long ll_row Int li_ifecomm String arg_summary,arg_postscript,arg_remark String arg_msg ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要发送的单据') RETURN END IF ll_scid = dw_pageretr.Object.u_outware_scid[ll_row] ll_outwareid = dw_pageretr.Object.u_outware_outwareid[ll_row] SELECT u_cust.ifecomm INTO :li_ifecomm FROM u_outware INNER JOIN u_cust ON u_outware.cusid = u_cust.cusid WHERE u_outware.scid = :ll_scid And u_outware.outwareid = :ll_outwareid Using sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询销售发货单相关客户通信信息失败,请检查设置,'+sqlca.SQLErrText) RETURN END IF IF li_ifecomm = 0 THEN MessageBox('系统提示','客户没有使用电子商务,不能发送单据') RETURN END IF s_packet_ljfieb s_pack,s_return OpenWithParm(w_dscrp_edit_ljfieb,s_pack) s_return = Message.PowerObjectParm if s_return.returnflag <> 1 then return arg_postscript = s_return.postscript arg_remark = s_return.remark IF uo_fieb.send_outware(ll_scid,ll_outwareid,arg_postscript,arg_remark,arg_msg,True) = 0 THEN MessageBox('Erorr',arg_msg) RETURN END IF MessageBox('系统提示','提交成功!') end event event ue_f11;call super::ue_f11;//引入销售发货历史, 用于选择明细内容 IF Not dw_edit_mode THEN RETURN IF flag = 1 THEN RETURN Long child_row,ins_storageid = 0,cnt_childdw Long ll_moneyid decimal ld_tax dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN ins_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF ins_storageid = 0 Or IsNull(ins_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF Int li_if_cus_mtrlware SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ins_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询仓库是否使用客户库存失败',stopsign!,OK!) RETURN END IF Long ls_null s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = 0 Long chc = 1,ls_j,ls_custid SetNull(ls_null) ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF IsNull(ls_custid) Or ls_custid = 0 THEN This.TriggerEvent("ue_f9") END IF child_row = dw_child.GetRow() cnt_childdw = dw_child.RowCount() dw_uc.AcceptText() ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF li_if_cus_mtrlware = 1 THEN //是否客户库存 s_tranf8.c_long = ls_custid ELSE s_tranf8.c_long = -1 END IF IF Not IsValid(w_mtrlware_storageid_ch_2) THEN s_tranf8.if_retrieve_all = False //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.d_long = ins_storageid s_tranf8.e_long = ls_custid dw_child.AcceptText() IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) OpenWithParm(w_mtrlware_storageid_ch_2,s_tranf8) s_mtrlware_noalloc_array S_INSCUST S_INSCUST = Message.PowerObjectParm FOR ls_j = 1 To UpperBound(S_INSCUST.mtrlwareid) IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN IF dw_child.GetRow() > 0 THEN IF dw_child.Object.u_outwaremx_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 string ls_cusmtrlcode,ls_cusmtrlname,ls_cusmtrlmode//客户物料名称 long ls_cusid,ls_mtrlid ls_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] ls_mtrlid =S_INSCUST.mtrlid[ls_j] Select isnull(cusmtrlcode,''), isnull(cusmtrlname,''), isnull(cusmtrlmode,'') Into :ls_cusmtrlcode, :ls_cusmtrlname, :ls_cusmtrlmode From u_cusmtrlname Where mtrlid= :ls_mtrlid and cusid= :ls_cusid ; dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] =ls_cusmtrlmode dw_child.Object.u_outwaremx_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_child.Object.u_outwaremx_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] IF sys_option_outware_Sale_ware = 0 THEN dw_child.Object.u_outwaremx_saleqty[child_row] = 0 dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_addqty[child_row] = 0 ELSEIF sys_option_outware_Sale_ware = 1 THEN dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j]- S_INSCUST.noauditingqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j]- S_INSCUST.noauditingaddqty[ls_j] ELSE dw_child.Object.u_outwaremx_saleqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_uqty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_outwaremx_addqty[child_row] = S_INSCUST.noallocaddqty[ls_j] END IF dw_child.Object.u_outwaremx_planprice[child_row] = S_INSCUST.planprice[ls_j] dw_child.Object.u_outwaremx_storageid[child_row] = S_INSCUST.storageid[ls_j] dw_child.Object.u_outwaremx_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_child.Object.u_outwaremx_dxflag[child_row] = S_INSCUST.dxflag[ls_j] dw_child.Object.u_outwaremx_status[child_row] = S_INSCUST.status[ls_j] dw_child.Object.u_outwaremx_woodcode[child_row] = S_INSCUST.woodcode[ls_j] dw_child.Object.u_outwaremx_pcode[child_row] = S_INSCUST.pcode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.u_mtrldef_zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.u_mtrldef_mtrlsectype[ls_j] dw_child.Object.u_mtrldef_lmsaleprice[child_row] = S_INSCUST.lmsaleprice[ls_j] //查询单位 dw_child.Object.u_outwaremx_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] decimal lde_rate f_find_unitrate(s_inscust.mtrlid[ls_j], s_inscust.u_mtrldef_unit[ls_j], lde_rate) dw_child.Object.u_outwaremx_rate[child_row] = lde_rate //查询单价 wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = S_INSCUST.noallocqty[ls_j] dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null // dw_child.SetColumn('u_outwaremx_uqty') dw_child.Object.u_outwaremx_net_weight[child_row] = S_INSCUST.u_mtrldef_net_weight[ls_j] dw_child.Object.u_outwaremx_gross_weight[child_row] = S_INSCUST.u_mtrldef_gross_weight[ls_j] dw_child.Object.u_outwaremx_cubage[child_row] = S_INSCUST.u_mtrldef_cubage[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = S_INSCUST.u_mtrldef_mtrlengname[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = S_INSCUST.barcode[ls_j] if f_find_tax(ls_custid,'u_cust',ld_tax) = 0 then ld_tax = 0 else dw_child.Object.u_outwaremx_tax[child_row] = ld_tax end if END IF NEXT END IF IF sys_option_outware_if_saleqty = 0 THEN dw_child.SetColumn('u_outwaremx_uqty') ELSE dw_child.SetColumn('u_outwaremx_saleqty') END IF dw_child.SetRedraw(True) dw_child.SetFocus() ////////////////////////////////// // end event event ue_f10;call super::ue_f10;//引入销售订单明细 IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_priceflag[dw_uc.GetRow()] = 1 Or dw_uc.Object.flag[dw_uc.GetRow()] = 1 THEN RETURN Int rslt = 1 String arg_msg Long ll_scid Long ll_storageid Long ls_taskid Long ll_cusid String ls_taskcode String errmsg dw_uc.AcceptText() ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] ll_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF ll_storageid = 0 Or IsNull(ll_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF IF ll_cusid = 0 Or IsNull(ll_cusid) THEN MessageBox('提示','请先选择客户',information!,OK!) RETURN END IF s_saletask_find s_find s_find.scid = ll_scid s_find.areaid = sys_areaid s_find.cusid = ll_cusid //s_find.if_retrieve_all = local_retrieve_all //THIS.Enabled = FALSE IF Not IsValid(w_saletask_outware_ch) THEN s_saletask_mtrl s_saletask OpenWithParm(w_saletask_outware_ch,s_find) s_saletask = Message.PowerObjectParm IF UpperBound(s_saletask.taskid ) > 0 THEN // wf_autoaddmx_salemx(ll_scid, s_saletask, ll_storageid, ll_cusid, s_saletask.if_zeromtrlware, errmsg) IF wf_saletaskmtrltoarr_salemx(ll_scid,s_saletask,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF IF wf_set_outwaremx(ll_scid,ll_cusid, ll_storageid, s_saletask,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF END IF //THIS.Enabled = TRUE ext: dw_uc.SetColumn("u_outware_rel_address") dw_uc.SetRedraw(True) RETURN end event type cb_func from w_publ_1ton_share_detail`cb_func within w_outware_sale end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_outware_sale integer x = 2560 integer taborder = 230 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_outware_sale integer x = 183 integer width = 503 boolean autohscroll = true end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_outware_sale integer x = 2981 integer taborder = 190 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_outware_sale integer x = 2738 integer y = 36 integer width = 251 integer taborder = 180 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_outware_sale integer x = 2825 integer y = 300 integer width = 754 integer height = 1324 integer taborder = 90 string dataobject = "dw_outware_sale_index" string old_dwobject = "0" string curdw_colfilter = "0" end type event dw_pageretr::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) st_cusbalc.Text = '' st_cusbalc_sign.visible = false IF NOT dw_edit_mode THEN PARENT.TriggerEvent('retrieve_childdw_uc') PARENT.TriggerEvent('retrieve_childdw') END IF IF if_ChkMtrlInfo THEN Parent.TriggerEvent('ue_mtrl_info_retr') END IF Long ll_scid,ll_cusid, ll_moneyid IF NOT dw_edit_mode AND currentrow > 0 THEN ll_scid = THIS.Object.u_outware_scid[currentrow] ll_cusid = THIS.Object.u_outware_cusid[currentrow] ll_moneyid = THIS.Object.u_outware_relint_2[currentrow] wf_cusbalc(ll_scid,ll_cusid,ll_moneyid) END IF IF if_ChkMtrlInfo THEN Parent.TriggerEvent('ue_mtrl_info_retr') END IF end event type st_1 from w_publ_1ton_share_detail`st_1 within w_outware_sale end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_outware_sale integer x = 3131 integer taborder = 220 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_outware_sale integer width = 2752 integer height = 1420 integer taborder = 170 string dataobject = "dw_outware_sale_edit" end type event dw_uc::dwnkey;Parent.TriggerEvent('user_key') Long li_option_outrep IF Key = KeyDownArrow! THEN RETURN 1 IF dw_edit_mode THEN IF dw_uc.GetColumnName ( ) = 'u_outware_dscrp' And Key = KeyEnter! THEN dw_child.SetFocus() dw_child.ScrollToRow(dw_child.RowCount()) dw_child.SetColumn ('u_mtrldef_mtrlcode') RETURN 1 ELSEIF dw_uc.GetColumnName ( ) = 'u_cust_cuscode' And Key = KeyEnter! THEN s_custom s_cus String ls_code // String ls_code,ls_name,ls_custype,ls_find_code // String ls_freight,ls_freight_tele // String ls_rel_address,ls_rel_tele,ls_rel_fax,ls_rel_rep Long ls_cusid,ll_ori_cusid // Long cnt = 0 // Boolean if_find = False // Int li_banktypeid,li_ifrel,ll_i String ls_ori_cuscode Long ll_scid, ll_moneyid dw_uc.AcceptText() ls_code = Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()]) ll_ori_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] ls_ori_cuscode = dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] IF f_find_cust(ls_code, s_cus) = 0 THEN Parent.TriggerEvent('ue_f9') RETURN 1 END IF // if_find = True // // // IF if_find THEN //重置dw_child IF wf_change_cusid(s_cus.cusid) = 0 THEN RETURN dw_uc.SetRedraw(False) dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = s_cus.cusid dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = s_cus.cuscode dw_uc.Object.u_cust_name[dw_uc.GetRow()] = s_cus.Name dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = s_cus.custype dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = s_cus.freight dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = s_cus.freight_tele dw_uc.Object.u_outware_relstr_3[dw_uc.GetRow()] = s_cus.freight_address dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = s_cus.Address dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = s_cus.tele dw_uc.Object.u_outware_rel_tele1[dw_uc.GetRow()] = s_cus.tele1 dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = s_cus.faxno dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = s_cus.rep IF s_cus.banktypeid > 0 THEN dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = s_cus.banktypeid END IF dw_uc.SetRedraw(True) dw_uc.AcceptText() ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] wf_getcusrepamt_info(ll_scid,s_cus.cusid,ll_moneyid) dw_uc.SetColumn("u_outware_rel_address") // dw_child.Reset() // Parent.TriggerEvent("insert_childrow") RETURN 1 // END IF // IF sys_power_issuper THEN // li_option_outrep = 0 // ELSE // li_option_outrep = sys_option_outrep // END IF // // // // SELECT u_cust.cusid, // u_cust.name, // u_cust.custype, // u_cust.cuscode, // u_cust.freight, // u_cust.freight_tele, // u_cust.address, // u_cust.tele, // u_cust.faxno, // u_cust.rep, // u_cust.banktypeid // INTO :ls_cusid,:ls_name,:ls_custype,:ls_code, // :ls_freight,:ls_freight_tele, // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep,:li_banktypeid // FROM u_cust // Where ( cuscode = :ls_code Or Name = :ls_code ) and // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0')); // 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_cust // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code ) and // ( :li_option_outrep = 0 OR (u_cust.custype IN (:sys_user_outrepstr) or :sys_user_outrepstr='0')); // IF sqlca.SQLCode <> 0 THEN // Parent.TriggerEvent('ue_f9') // RETURN 1 // END IF // IF cnt <> 1 THEN // Parent.TriggerEvent('ue_f9') // RETURN 1 // END IF // // SELECT u_cust.cusid, // u_cust.cuscode, // u_cust.name, // u_cust.custype, // u_cust.freight, // u_cust.freight_tele, // u_cust.address, // u_cust.tele, // u_cust.faxno, // u_cust.rep // INTO :ls_cusid,:ls_code,:ls_name,:ls_custype, // :ls_freight,:ls_freight_tele, // :ls_rel_address,:ls_rel_tele,:ls_rel_fax,:ls_rel_rep // FROM u_cust // Where ( cuscode Like :ls_find_code Or Name Like :ls_find_code ); // IF sqlca.SQLCode <> 0 THEN // Parent.TriggerEvent('ue_f9') // RETURN 1 // END IF // // END IF // if_find = True // // // IF if_find THEN // // //重置dw_child // wf_change_cusid(ls_cusid) // // dw_uc.SetRedraw(False) // dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] = ls_cusid // dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()] = ls_code // dw_uc.Object.u_cust_name[dw_uc.GetRow()] = ls_name // dw_uc.Object.u_outware_outrep[dw_uc.GetRow()] = ls_custype // dw_uc.Object.u_outware_relstr_1[dw_uc.GetRow()] = ls_freight // dw_uc.Object.u_outware_relstr_2[dw_uc.GetRow()] = ls_freight_tele // dw_uc.Object.u_outware_rel_address[dw_uc.GetRow()] = ls_rel_address // dw_uc.Object.u_outware_rel_tele[dw_uc.GetRow()] = ls_rel_tele // dw_uc.Object.u_outware_rel_fax[dw_uc.GetRow()] = ls_rel_fax // dw_uc.Object.u_outware_rel_rep[dw_uc.GetRow()] = ls_rel_rep // IF li_banktypeid > 0 THEN // dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = li_banktypeid // END IF // dw_uc.SetRedraw(True) // // ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] // ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] // // wf_getcusrepamt_info(ll_scid,ls_cusid,ll_moneyid) // // dw_uc.SetColumn("u_outware_rel_address") // dw_child.Reset() // Parent.TriggerEvent("insert_childrow") // RETURN 1 // END IF ELSE IF Key = KeyEnter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF end event event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN IF dwo.Name = 'u_outware_storageid' THEN dw_child.Reset() PARENT.TriggerEvent("insert_childrow") ELSEIF dwo.Name = 'u_outware_relint_2' THEN Long ll_moneyid,ll_scid,ll_cusid dw_uc.accepttext() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] dw_uc.SetRedraw(FALSE) dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(ll_moneyid) dw_uc.SetRedraw(TRUE) ll_scid = dw_uc.Object.u_outware_scid[dw_uc.GetRow()] ll_cusid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid) elseif dwo.name = 'u_outware_rel_rep' then if data <> '' then string ll_officetel,ll_handtel long ls_cusid ls_cusid = dw_uc.object.u_outware_cusid[row] select officetel,handtel into :ll_officetel,:ll_handtel from u_cust_rep where repname = :data and cusid = :ls_cusid; if sqlca.sqlcode = 0 then dw_uc.object.u_outware_rel_tele[row] = ll_officetel dw_uc.object.u_outware_rel_tele1[row] = ll_handtel end if select tele,tele1 into :ll_officetel,:ll_handtel from u_cust where cusid = :ls_cusid and rep = :data; if sqlca.sqlcode = 0 then dw_uc.object.u_outware_rel_tele[row] = ll_officetel dw_uc.object.u_outware_rel_tele1[row] = ll_handtel end if end if END IF end event event dw_uc::doubleclicked;IF dw_edit_mode AND row > 0 THEN IF dwo.Name = 'u_cust_cuscode' OR dwo.Name = 'u_cust_name' THEN PARENT.TriggerEvent('ue_f9') END IF 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_ch_dscrp') ELSEIF dwo.Name = 'p_dview2' THEN Parent.TriggerEvent('ue_ch_dscrp2') ELSEIF dwo.Name = 'p_dview3' THEN Parent.TriggerEvent('ue_ch_dscrp3') ELSEIF dwo.Name = 'p_dview4' THEN Parent.TriggerEvent('ue_ch_rel_address') ELSEIF dwo.Name = 'p_dview5' THEN Parent.TriggerEvent('ue_ch_station') ELSEIF dwo.Name = 'p_relstr_3' THEN Parent.TriggerEvent('ue_ch_relstr_3') END IF IF Not dw_edit_mode THEN RETURN IF dw_uc.Object.u_outware_thflag[row] = 1 THEN RETURN IF dwo.Name = 'p_b' Or dwo.Name = 'choicesaletask_t' THEN Parent.TriggerEvent('ue_f7') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_c' Or dwo.Name = 'choicesaletaskmx_t' THEN Parent.TriggerEvent('ue_f10') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_d' Or dwo.Name = 'choicesalehis_t' THEN Parent.TriggerEvent('ue_f11') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_ware' Or dwo.Name = 'choiceware_t' THEN Parent.TriggerEvent('ue_f8') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_p' THEN Parent.TriggerEvent('ue_f9') ELSEIF dwo.Name = 'p_emp' THEN Parent.TriggerEvent('ue_ch_outrepdef') 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 event event dw_uc::constructor;call super::constructor;this.object.p_emp.visible = (sys_option_allow_edit_outrep = 1) end event event dw_uc::ue_dwndropdown;IF Not dw_edit_mode THEN RETURN String ls_col_pz,ls_col_mtrlid String ls_pz_ch String ls_col_value Long ll_col_value String ls_data_type Long ll_row,ll_mtrlid ll_row = This.GetRow() IF ll_row > 0 THEN ls_col_pz = This.GetColumnName( ) ls_data_type = dw_child.Describe(ls_col_pz+".ColType") IF Left(Lower(ls_data_type),4 ) = "char" THEN ls_col_value = This.GetItemString(ll_row,ls_col_pz) ELSEIF Left(Lower(ls_data_type),4) = "long" THEN ll_col_value = This.GetItemNumber(ll_row,ls_col_pz) END IF if ls_col_pz = 'u_outware_rel_rep' then int rtncode string ls_sql long ls_cusid ls_cusid = dw_uc.object.u_outware_cusid[dw_uc.getrow()] DataWindowChild dw_child_dddw rtncode = dw_uc.GetChild("u_outware_rel_rep",dw_child_dddw) dw_child_dddw.SetTransObject(SQLCA) ls_sql = old_rep_select ls_sql = ls_sql + " or cusid = "+string(ls_cusid); dw_child_dddw.SetSQLSelect(ls_sql) dw_child_dddw.Retrieve() end if This.SetItem(ll_row,ls_col_pz,ls_pz_ch) END IF end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_outware_sale end type type dw_child from w_publ_1ton_share_detail`dw_child within w_outware_sale integer y = 1964 integer width = 3543 integer height = 748 integer taborder = 40 string dataobject = "dw_outwaremx_sale_edit" boolean minbox = true string old_dwobject = "0" string curdw_colfilter = "0" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') //THIS.TriggerEvent('user_key') IF NOT dw_edit_mode THEN RETURN IF flag = 1 THEN RETURN String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_mtrlsectype,ls_zxmtrlmode,ls_mtrltype String ls_plancode,ls_status,ls_woodcode,ls_pcode Long ls_mtrlwareid,ls_mtrlid,ls_storageid,ll_moneyid Dec ls_noallocqty,ls_noauditingqty,ls_planprice,ls_cost,ls_lmsaleprice s_mtrlware_noalloc_array arg_s_mtrlware Long child_row Long ls_null String arg_msg Long ls_custid,ls_sptid Decimal ls_1stnewprice,ls_1stzqrate,ls_1strate SetNull(ls_null) IF dw_edit_mode THEN dw_uc.AcceptText() ll_moneyid = dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF ls_storageid = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] IF ls_storageid = 0 OR IsNull(ls_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF Int li_if_cus_mtrlware SELECT balctype INTO :li_if_cus_mtrlware FROM u_storage Where storageid = :ls_storageid; IF sqlca.SQLCode <> 0 THEN MessageBox('提示','查询仓库是否使用客户库存失败',information!,OK!) RETURN END IF ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] IF IsNull(ls_custid) OR ls_custid = 0 THEN THIS.TriggerEvent("ue_f9") ls_custid = dw_uc.Object.u_outware_cusid[dw_uc.GetRow()] 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 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] IF li_if_cus_mtrlware = 1 THEN ls_sptid = ls_custid ELSE ls_sptid = -1 END IF IF f_find_mtrlware(ls_mtrlcode,ls_storageid,ls_sptid,arg_s_mtrlware) = 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 ELSE ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1] ls_mtrlid = arg_s_mtrlware.mtrlid[1] ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1] ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1] ls_unit = arg_s_mtrlware.u_mtrldef_unit[1] ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1] ls_planprice = arg_s_mtrlware.planprice[1] ls_noallocqty = arg_s_mtrlware.noallocqty[1] ls_storageid = arg_s_mtrlware.storageid[1] ls_plancode = arg_s_mtrlware.plancode[1] ls_noauditingqty = arg_s_mtrlware.noauditingqty[1] ls_lmsaleprice = arg_s_mtrlware.lmsaleprice[1] ls_status = arg_s_mtrlware.status[1] ls_woodcode = arg_s_mtrlware.woodcode[1] ls_pcode = arg_s_mtrlware.pcode[1] ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1] ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1] ls_mtrltype = arg_s_mtrlware.u_mtrldef_mtrltype[1] END IF dw_child.Object.u_outwaremx_mtrlwareid[child_row] = ls_mtrlwareid dw_child.Object.u_outwaremx_mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.u_outwaremx_uqty[child_row] = 0 dw_child.Object.u_outwaremx_planprice[child_row] = ls_planprice dw_child.Object.u_outwaremx_storageid[child_row] = ls_storageid dw_child.Object.u_outwaremx_plancode[child_row] = ls_plancode dw_child.Object.u_outwaremx_status[child_row] = ls_status dw_child.Object.u_outwaremx_woodcode[child_row] = ls_woodcode dw_child.Object.u_outwaremx_pcode[child_row] = ls_pcode 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_outwaremx_unit[child_row] = ls_unit //导入单价 wf_get_price(child_row) dw_child.Object.u_mtrldef_curware_qty[child_row] = ls_noallocqty dw_child.Object.u_mtrldef_sumneed_qty[child_row] = ls_null dw_child.Object.u_mtrldef_sumware_qty[child_row] = ls_null 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_outwaremx_rebate' AND dw_child.GetRow() = dw_child.RowCount() THEN // Long i_mtrlid // String i_mtrlcode // Decimal i_price,i_zqrate // Int i_thflag = 0 // dw_child.AcceptText() // // i_mtrlid = dw_child.Object.u_outwaremx_mtrlid[dw_child.GetRow()] // i_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()] // i_price = dw_child.Object.u_outwaremx_fprice[dw_child.GetRow()] // i_zqrate = dw_child.Object.u_outwaremx_rebate[dw_child.GetRow()] // // 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_outwaremx_mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_priceformula' THEN PARENT.TriggerEvent("ue_setprice_forformula_1") RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_outwaremx_formula' THEN PARENT.TriggerEvent("ue_setqty_forformula_1") RETURN 1 ELSE IF Key = KeyEnter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF END IF END IF end event event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN This.AcceptText() IF row > 0 THEN IF dw_child.Object.u_outwaremx_relid[row] > 0 THEN ELSE IF dwo.Name = 'u_outwaremx_uqty' And sys_option_price_if_list = 1 and (dw_child.Object.u_outwaremx_enprice[row]=0 or isnull(dw_child.Object.u_outwaremx_enprice[row])) THEN //价格表增加数量下限,数量上  wf_get_price(row) END IF END IF END IF IF dwo.Name = 'u_outwaremx_ifrel' THEN IF This.Object.u_outwaremx_ifrel[row] = 0 THEN dw_child.Object.u_outwaremx_relid[row] = 0 dw_child.Object.taskcode[row] = '' END IF ELSEIF dwo.Name = 'u_outwaremx_saleqty' THEN String ls_protect ls_protect = This.Describe( 'u_outwaremx_uqty.protect') IF ls_protect = '0' THEN This.Object.u_outwaremx_uqty[row] = This.Object.u_outwaremx_saleqty[row] wf_cmpl_amt(row) END IF ELSEIF dwo.Name = 'u_outwaremx_uqty' Or dwo.Name = 'enamt' Or dwo.Name = 'enamt_notax' Or dwo.Name = 'u_outwaremx_enprice' Or dwo.Name = 'u_outwaremx_rebate' Or dwo.Name = 'enprice_notax' Or dwo.Name = 'u_outwaremx_tax' THEN // MessageBox('',String(dwo.Name)) wf_cmpl_amt(row) ELSEIF dwo.Name = 'u_outwaremx_packqty' THEN Long ll_mtrlid Decimal lde_packqty_single, lde_packqty, lde_rate IF ii_packqty_cmpl = 1 THEN ll_mtrlid = This.Object.u_outwaremx_mtrlid[row] lde_packqty_single = f_get_packqty(ll_mtrlid) lde_packqty = This.Object.u_outwaremx_packqty[row] lde_rate = This.Object.u_outwaremx_rate[row] IF lde_rate = 0 THEN lde_rate = 1 This.Object.u_outwaremx_qty[row] = lde_packqty * lde_packqty_single This.Object.u_outwaremx_uqty[row] = lde_packqty * lde_packqty_single / lde_rate This.Object.u_outwaremx_saleqty[row] = lde_packqty * lde_packqty_single / lde_rate END IF END IF end event event dw_child::doubleclicked;long i IF dw_edit_mode And row > 0 THEN IF dwo.Name = 'u_outwaremx_addqty' THEN Parent.TriggerEvent('ue_add_addqty') ELSEIF dwo.Name = 'u_outwaremx_outtype' THEN Parent.TriggerEvent('ue_ch_outtype') ELSEIF dwo.Name = 'u_outwaremx_unit' THEN Parent.TriggerEvent('ue_f12') ELSEIF dwo.Name = 'u_outwaremx_formula' Or dwo.Name = 'u_outwaremx_uqty' THEN Parent.TriggerEvent('ue_cmpl_qty') ELSEIF dwo.Name = 'u_outwaremx_priceformula' THEN Parent.TriggerEvent('ue_cmpl_price') ELSEIF dwo.name = 'u_outwaremx_status' or dwo.name = 'u_outwaremx_woodcode' or dwo.name = 'u_outwaremx_pcode' then string name name =dwo.name PARENT.trigger event ue_view_status(row,name) ELSEIF dwo.Name = 'u_outwaremx_mxdscrp' THEN Parent.TriggerEvent('ue_view_mxdscrp') RETURN ELSEIF dwo.Name = 'mxdscrp2' THEN Parent.TriggerEvent('ue_view_mxdscrp2') RETURN ELSEIF dwo.Name = 'u_outwaremx_mxdscrp3' THEN Parent.TriggerEvent('ue_view_mxdscrp3') RETURN ELSEIF dwo.Name = 'u_outwaremx_mxdscrp4' THEN Parent.TriggerEvent('ue_view_mxdscrp4') RETURN ELSEIF dwo.Name = 'u_outwaremx_plancode' THEN Parent.TriggerEvent('ue_choose_mtrlware_plancode') RETURN ELSE IF this.Object.u_outwaremx_ifrel[row] = 1 THEN //选订单 IF this.Object.u_outwaremx_relid[row] = 0 THEN Parent.TriggerEvent('ue_f7') //选订单 ELSE Parent.TriggerEvent('ue_ch_mtrlware') //选库存 END IF ELSE //选库存 Parent.TriggerEvent('ue_f8') END IF Parent.TriggerEvent('ue_setprice_forformula') wf_set_barcode() END IF for i = 1 to dw_child.rowcount() round(dw_child.Object.u_outwaremx_enprice[i],sys_option_outware_price_amt_round) next END IF end event event dw_child::itemfocuschanged;call super::itemfocuschanged;dw_child.AcceptText() end event event dw_child::losefocus;call super::losefocus;//long row //row = this.getrow() //IF row > 0 THEN // dw_child.AcceptText() // // //由金额计算单价 // IF cbx_enamt_edit.Checked THEN // IF dw_child.Object.enamt[row] <> 0 THEN // IF dw_child.Object.u_outwaremx_rebate[row] <> 0 And dw_child.Object.u_outwaremx_uqty[row] <> 0 THEN // dw_child.Object.u_outwaremx_enprice[row] = dw_child.Object.enamt[row] / dw_child.Object.u_outwaremx_rebate[row] / dw_child.Object.u_outwaremx_uqty[row] // END IF // END IF // ELSE // dw_child.Object.enamt[row] = Round(dw_child.Object.u_outwaremx_enprice[row]*dw_child.Object.u_outwaremx_rebate[row]*dw_child.Object.u_outwaremx_uqty[row], 2) // END IF // //END IF end event event dw_child::rowfocuschanged;call super::rowfocuschanged;Parent.TriggerEvent('ue_retrieve_fifo_cbmx') Parent.TriggerEvent('ue_retrieve_his_pricemx') end event event dw_child::ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN String ls_col_pz,ls_col_mtrlid String ls_pz_ch String ls_col_value String ls_data_type Long ll_row,ll_mtrlid long statusflag s_pzwin_open arg_s_win ll_row = THIS.GetRow() IF ll_row > 0 THEN ls_col_mtrlid = THIS.Describe("#1.Name") IF NOT Pos(Lower(ls_col_mtrlid),'mtrlid') > 0 THEN RETURN ll_mtrlid = THIS.GetItemNumber(ll_row,ls_col_mtrlid) ls_col_pz = THIS.GetColumnName( ) ls_data_type = dw_child.Describe(ls_col_pz+".ColType") IF Pos(Lower(ls_data_type),"char") > 0 THEN ls_col_value = THIS.GetItemString(ll_row,ls_col_pz) END IF arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y arg_s_win.arg_col = ls_col_pz arg_s_win.arg_mtrlid = ll_mtrlid arg_s_win.arg_col_value = ls_col_value ls_pz_ch = f_mtrl_pz(arg_s_win) IF isnull(ls_pz_ch) THEN RETURN THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch) IF ls_col_pz = 'u_outwaremx_status' Or ls_col_pz = 'u_outwaremx_woodcode' Or ls_col_pz = 'u_outwaremx_pcode' THEN IF ll_row > 0 THEN if isnull(This.Object.u_mtrldef_statusflag[ll_row]) then select statusflag into :statusflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then return end if else statusflag = This.Object.u_mtrldef_statusflag[ll_row] end if IF statusflag = 2 or statusflag = 4 THEN wf_get_price(ll_row) END IF return 1 END IF END IF END IF end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_outware_sale integer x = 1915 integer taborder = 60 end type type cb_print from w_publ_1ton_share_detail`cb_print within w_outware_sale integer x = 1723 integer taborder = 70 end type type cb_add from w_publ_1ton_share_detail`cb_add within w_outware_sale event ue_cmpl_qty ( ) integer taborder = 240 end type event cb_add::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_outwaremx_uqty[child_row] //s_cmpl.formula = dw_child.Object.u_outwaremx_formula[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 THEN // dw_child.Object.u_outwaremx_uqty[child_row] = s_return.qty // dw_child.Object.u_outwaremx_formula[child_row] = s_return.formula // END IF //END IF // end event event cb_add::clicked;IF Not (f_power_ind(11) Or f_power_ind(371)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg = '' Long uc_row,pagerert_row Long relid_pageretr,reld_uc,i Long ll_printid,ll_outwareid,ll_scid, ll_cusid, ll_moneyid Int li_flag,li_secflag,li_priceflag Decimal ld_packqty Decimal lde_billamt, lde_mrate String ls_taskcode s_outwaremx s_mx s_outware_itemmx s_item IF dw_edit_mode THEN dw_uc.AcceptText() dw_child.AcceptText() dw_fymx.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF Not dw_uc.Object.u_outware_outdate[uc_row] > DateTime(2000-01-01,Now()) THEN MessageBox('提示','不合理发生时间',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_outware_outrep") RETURN END IF IF Not Len(String(dw_uc.Object.u_outware_outrep[uc_row])) > 0 THEN MessageBox('提示','请填写业务员',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_outware_outrep") RETURN END IF IF dw_uc.Object.u_outware_relint_1[uc_row] = 0 THEN MessageBox('提示','请选择结算方式',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_outware_relint_1") RETURN END IF IF dw_uc.Object.u_outware_relint_2[uc_row] = 0 THEN MessageBox('提示','请选择币种',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_outware_relint_2") RETURN END IF //处理一次数量 IF sys_option_outware_if_saleqty = 0 THEN //不分离 FOR i = 1 To dw_child.RowCount() dw_child.Object.u_outwaremx_saleqty[i] = dw_child.Object.u_outwaremx_uqty[i] NEXT ELSE END IF //由金额计算单价 IF cbx_enamt_edit.Checked THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.enamt[i] <> 0 THEN IF dw_child.Object.u_outwaremx_rebate[i] <> 0 And dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN dw_child.Object.u_outwaremx_enprice[i] = dw_child.Object.enamt[i] / dw_child.Object.u_outwaremx_rebate[i] / dw_child.Object.u_outwaremx_uqty[i] 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 //由金额计算折扣 IF cbx_zk.Checked THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.enamt[i] <> 0 THEN IF dw_child.Object.u_outwaremx_enprice[i] > 0 THEN ELSE MessageBox('提示','第' + String(i) + '行请输入单价') RETURN END IF IF dw_child.Object.u_outwaremx_enprice[i] <> 0 And dw_child.Object.u_outwaremx_saleqty[i] <> 0 THEN dw_child.Object.u_outwaremx_rebate[i] = dw_child.Object.enamt[i] / dw_child.Object.u_outwaremx_enprice[i] / dw_child.Object.u_outwaremx_saleqty[i] END IF END IF NEXT END IF //检查库存ID, 生成0库存 // IF sys_option_hide_ware = 1 THEN FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_mtrlwareid[i] = 0 THEN IF dw_child.Object.u_outwaremx_uqty[i] <> 0 THEN wf_get_mtrlwareid(i) END IF END IF NEXT // END IF // IF Not sys_power_issuper And f_power_ind(978) THEN arg_msg = '' FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN IF dw_child.Object.u_outwaremx_outtype[i] > 0 And sys_option_saletask_price = 1 THEN ELSE IF dw_child.Object.u_outwaremx_enprice[i] = 0 THEN arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',单价为零!~n ' END IF END IF END IF END IF NEXT IF arg_msg <> '' THEN MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!) RETURN END IF END IF IF Not f_power_ind(520) THEN arg_msg = '' FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN IF dw_child.Object.u_outwaremx_uqty[i] > 0 THEN IF dw_child.Object.u_outwaremx_outtype[i] = 0 THEN //一般发货 If (dw_child.Object.u_outwaremx_ifrel[i] = 1 & And dw_child.Object.u_outwaremx_relid[i] = 0) & Or dw_child.Object.u_outwaremx_ifrel[i] = 0 THEN arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',请选择订单!~n ' END IF END IF END IF END IF NEXT IF arg_msg <> '' THEN MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!) RETURN END IF END IF ll_scid = dw_uc.Object.u_outware_scid[uc_row] ll_outwareid = dw_uc.Object.u_outware_outwareid[uc_row] ll_cusid = dw_uc.Object.u_outware_cusid[uc_row] ll_moneyid = dw_uc.Object.u_outware_relint_2[uc_row] IF sys_option_cusrepamt_limit = 1 THEN wf_getcusrepamt_info(ll_scid,ll_cusid,ll_moneyid) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项080限制~r~n'+cur_cusrepamtstr) RETURN 0 END IF END IF //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量 IF wf_check_qtyandaddqty(arg_msg) = 0 THEN MessageBox('提示',arg_msg + ',不能保存!',information!,OK!) RETURN END IF //系统选项280 设置单价小数位数 wf_set_decimal_place() uo_ware.outdate = dw_uc.Object.u_outware_outdate[uc_row] // 发生时间 uo_ware.outrep = dw_uc.Object.u_outware_outrep[uc_row] // 经手人 uo_ware.part = dw_uc.Object.u_outware_part[uc_row] //相关部门 uo_ware.dscrp = dw_uc.Object.u_outware_dscrp[uc_row] //备注 uo_ware.dscrp2 = dw_uc.Object.u_outware_dscrp2[uc_row] //备注 uo_ware.dscrp3 = dw_uc.Object.u_outware_dscrp3[uc_row] //备注 uo_ware.cusid = dw_uc.Object.u_outware_cusid[uc_row] uo_ware.storageid = dw_uc.Object.u_outware_storageid[uc_row] uo_ware.relid = dw_uc.Object.u_outware_relid[uc_row] uo_ware.relint_1 = dw_uc.Object.u_outware_relint_1[uc_row] //结算方式 uo_ware.relint_2 = dw_uc.Object.u_outware_relint_2[uc_row] //币种 uo_ware.relstr_1 = dw_uc.Object.u_outware_relstr_1[uc_row] uo_ware.relstr_2 = dw_uc.Object.u_outware_relstr_2[uc_row] uo_ware.relstr_3 = dw_uc.Object.u_outware_relstr_3[uc_row] uo_ware.mrate = dw_uc.Object.u_outware_mrate[uc_row] uo_ware.thflag = 0 uo_ware.otheramt = dw_uc.Object.u_outware_otheramt[uc_row] uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row] uo_ware.rel_address = dw_uc.Object.u_outware_rel_address[uc_row] uo_ware.rel_tele = dw_uc.Object.u_outware_rel_tele[uc_row] uo_ware.rel_tele1 = dw_uc.Object.u_outware_rel_tele1[uc_row] uo_ware.rel_fax = dw_uc.Object.u_outware_rel_fax[uc_row] uo_ware.rel_rep = dw_uc.Object.u_outware_rel_rep[uc_row] uo_ware.deposit = dw_uc.Object.u_outware_deposit[uc_row] uo_ware.transcode = dw_uc.Object.u_outware_transcode[uc_row] uo_ware.carcode = dw_uc.Object.u_outware_carcode[uc_row] uo_ware.paytype = dw_uc.Object.u_outware_paytype[uc_row] uo_ware.typeid = dw_uc.Object.u_outware_typeid[uc_row] uo_ware.viewdate = dw_uc.Object.u_outware_viewdate[uc_row] // 预收款时间 IF ll_outwareid > 0 THEN SELECT flag,secflag,priceflag INTO :li_flag,:li_secflag,:li_priceflag FROM u_outware WHERE scid = :ll_scid And outwareid = :ll_outwareid; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询销售单审核标记失败',stopsign!,OK!) RETURN END IF END IF ll_printid = 0 dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_outwaremx_mtrlwareid[i] > 0 THEN IF li_priceflag = 0 And li_flag = 0 THEN ll_printid ++ ELSE ll_printid = dw_child.Object.u_outwaremx_printid[i] END IF s_mx.mtrlwareid = dw_child.Object.u_outwaremx_mtrlwareid[i] s_mx.saleqty = dw_child.Object.u_outwaremx_saleqty[i] s_mx.qty = dw_child.Object.u_outwaremx_uqty[i] s_mx.addqty = dw_child.Object.u_outwaremx_addqty[i] s_mx.tax = dw_child.Object.u_outwaremx_tax[i] s_mx.fprice = dw_child.Object.u_outwaremx_enprice[i] s_mx.rebate = dw_child.Object.u_outwaremx_rebate[i] s_mx.mxdscrp = dw_child.Object.u_outwaremx_mxdscrp[i] s_mx.printid = ll_printid s_mx.ifrel = dw_child.Object.u_outwaremx_ifrel[i] s_mx.relid = dw_child.Object.u_outwaremx_relid[i] s_mx.relprintid = dw_child.Object.u_outwaremx_relprintid[i] s_mx.relid2 = 0 s_mx.olmtrlid = 0 s_mx.packqty = dw_child.Object.u_outwaremx_packqty[i] s_mx.outtype = dw_child.Object.u_outwaremx_outtype[i] s_mx.unit = dw_child.Object.u_outwaremx_unit[i] s_mx.rate = dw_child.Object.u_outwaremx_rate[i] s_mx.mtrlcuscode = dw_child.Object.u_outwaremx_mtrlcuscode[i] s_mx.formula = dw_child.Object.u_outwaremx_formula[i] s_mx.mxdscrp2 = dw_child.Object.mxdscrp2[i] s_mx.net_weight = dw_child.Object.u_outwaremx_net_weight[i] s_mx.gross_weight = dw_child.Object.u_outwaremx_gross_weight[i] s_mx.cubage = dw_child.Object.u_outwaremx_cubage[i] s_mx.mxdscrp3 = dw_child.Object.u_outwaremx_mxdscrp3[i] s_mx.mxdscrp4 = dw_child.Object.u_outwaremx_mxdscrp4[i] s_mx.enprice_notax = dw_child.Object.enprice_notax[i] //不含税单价 s_mx.priceformula = dw_child.Object.u_outwaremx_priceformula[i] s_mx.enamt_tax = dw_child.Object.u_outwaremx_enamt_tax[i] s_mx.status = dw_child.Object.u_outwaremx_status[i] s_mx.woodcode = dw_child.Object.u_outwaremx_woodcode[i] s_mx.pcode = dw_child.Object.u_outwaremx_pcode[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.createmxmx(arg_msg) <> 1 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF FOR i = 1 To dw_fymx.RowCount() IF dw_fymx.Object.u_outware_itemmx_itemid[i] > 0 THEN s_item.printid = i s_item.itemid = dw_fymx.Object.u_outware_itemmx_itemid[i] s_item.amt = dw_fymx.Object.u_outware_itemmx_amt[i] s_item.mxdscrp = dw_fymx.Object.u_outware_itemmx_mxdscrp[i] s_item.saletaskid = dw_fymx.Object.u_outware_itemmx_saletaskid[i] s_item.saletaskprintid = dw_fymx.Object.u_outware_itemmx_saletaskprintid[i] s_item.itype = dw_fymx.Object.u_outware_itemmx_itype[i] IF uo_ware.acceptmx_item(s_item, arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF END IF NEXT IF uo_ware.Save(True,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF // MessageBox(publ_operator,'保存操作成功!') //write ini f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.u_outware_storageid[dw_uc.GetRow()])) f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",String(dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()])) f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",String(dw_uc.Object.u_outware_relint_1[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(ll_scid,uo_ware.outwareid) //刷新uc ls_taskcode = dw_uc.Object.u_outware_outwarecode[uc_row] IF f_billevent_trigger (104, 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 cur_editfocus = 1 flag = -1 secflag = -1 END IF CALL Super::Clicked //read ini IF dw_edit_mode THEN dw_fymx.Reset() Parent.TriggerEvent("insert_childrow") String ls_storageid,ls_moneyid,ls_banktypeid IF sys_option_hide_ware = 1 THEN ls_storageid = '11' ELSE ls_storageid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ddlb_storageid",'0') IF f_find_storageid(ls_storageid) = '' THEN ls_storageid = '0' END IF END IF ls_moneyid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "moneyid",'0') ls_banktypeid = f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "banktypeid",'0') dw_uc.SetRedraw(False) dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] = Long(ls_storageid) dw_uc.Object.u_outware_relint_2[dw_uc.GetRow()] = Long(ls_moneyid) dw_uc.Object.u_outware_mrate[dw_uc.GetRow()] = f_get_mrate(Long(ls_moneyid)) dw_uc.Object.u_outware_relint_1[dw_uc.GetRow()] = Long(ls_banktypeid) dw_uc.Object.u_outware_scid[dw_uc.GetRow()] = cur_scid dw_uc.Object.u_outware_viewdate[dw_uc.GetRow()] = relativedate(today(), 1 - day(today())) IF sys_option_hide_ware = 0 THEN dw_uc.SetColumn("u_outware_storageid") ELSE dw_uc.SetColumn("u_cust_cuscode") END IF dw_uc.SetRedraw(True) ELSE Parent.TriggerEvent("retrieve_childdw") END IF // end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_outware_sale integer taborder = 100 end type event cb_edit::clicked;IF priceflag = 1 OR flag = 1 THEN IF NOT f_power_ind(1294) THEN //MessageBox('提示','你没有仓审或确认后修改权限!',information!,OK!) MessageBox('提示',sys_msg_pow) RETURN END IF ELSE IF Not (f_power_ind(11) OR f_power_ind(371)) THEN MessageBox('提示',sys_msg_pow) RETURN END IF END IF String arg_msg = '' Long uc_row,ll_flag uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF NOT dw_edit_mode THEN IF uo_ware.updatebegin(dw_pageretr.Object.u_outware_scid[uc_row],dw_pageretr.Object.u_outware_outwareid[uc_row],1,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF cur_editfocus = 2 ELSE cur_editfocus = 0 END IF CALL SUPER::Clicked THIS.TriggerEvent('refresh_interface') end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_outware_sale integer taborder = 110 end type event cb_delet::clicked;call super::clicked;if not (f_power_ind(580) or f_power_ind(583)) 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_outware_scid[uc_row],dw_pageretr.object.u_outware_outwareid[uc_row],arg_msg,true)=0 then messagebox('错误',arg_msg,stopsign!,OK!) else //日志 long ls_id string ls_code ls_id=dw_pageretr.object.u_outware_outwareid[uc_row] ls_code=dw_pageretr.object.u_outware_outwarecode[uc_row] f_setsysoplog('销售发货单','删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true) //-- messagebox('提示','删除单据'+string(dw_pageretr.object.u_outware_outwarecode[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_outware_sale integer x = 1221 end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF dw_edit_mode THEN menustr = menustr + "|" + "Text=导入单价~tEvent=ue_importseleprice" menustr = menustr + "|" + "Text=补充导入单价~tEvent=ue_importcusseleprice_buchong" menustr = menustr + "|" + "Text=导入客户单价~tEvent=ue_importcusseleprice" IF sys_option_price_if_list = 3 THEN //取设定售价, 1时只能取价格表 menustr = menustr + "|" + "Text=导入设定售价~tEvent=ue_importlmsaleprice" END IF IF sys_option_price_if_list = 0 THEN //取销售历史, 1时只能取价格表 menustr = menustr + "|" + "Text=导入客户历史售价~tEvent=ue_importcusseleprice_his" END IF menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=辅助计算辅数~tEvent=ue_cmpl_addqty" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=粘贴单据~tEvent=ue_bill_paste" ELSE menustr = "Text=增加备注~tEvent=ue_addzy" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=确认~tEvent=ue_priceaudit" menustr = menustr + "|" + "Text=反确认~tEvent=ue_cpriceaudit" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=回单~tEvent=ue_secpriceaudit" menustr = menustr + "|" + "Text=反回单~tEvent=ue_csecpriceaudit" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=计算(所属仓库)可装数~tEvent=ue_cmpdi" menustr = menustr + "|" + "Text=计算(全部仓库)可装数~tEvent=ue_cmpdi_all" menustr = menustr + "|" + "Text=辅助建立拆装单~tEvent=ue_di" menustr = menustr + "|" + "Text=自动组装~tEvent=ue_di_auto" menustr = menustr + "|" + "Text=删除自动组装~tEvent=ue_di_auto_del" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=复制单据~tEvent=ue_bill_copy" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view" menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit" menustr = menustr + "|" + "Text=刷新列表附件数~tEvent=retrieve_fjnum" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=全选~tEvent=ue_all_choice" menustr = menustr + "|" + "Text=全不选~tEvent=ue_allnot_choice" menustr = menustr + "|" + "Text=批仓审核(选中的)~tEvent=ue_all_audit" menustr = menustr + "|" + "Text=批仓撤审(选中的)~tEvent=ue_allnot_audit" menustr = menustr + "|" + "Text=批删除(选中的)~tEvent=ue_all_delete" menustr = menustr + "|" + "Text=批财撤(选中的)~tEvent=ue_all_c_secaudit" menustr = menustr + "|" + "Text=批修改销售时间(选中的)~tEvent=ue_mod_outdate" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=辅助建立客户收款结算单~tEvent=ue_create_bmstamt" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=仓审后修改结算方式~tEvent=ue_bill_mod" menustr = menustr + "|" + "Text=按物料批修改单价~tEvent=ue_price_mod" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=界面属性选项设置方案~tEvent=ue_outware_choose" 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_outware_sale integer taborder = 120 string text = "仓审&F" end type event cb_auditing::clicked;call super::clicked;IF dw_edit_mode THEN RETURN String ls_taskcode,ls_outwarecode String ls_msg = '' Long rslt = 1 Int li_priceflag, li_flag, li_secflag Long ll_i,ll_billid, ll_scid,ll_peg IF Not KeyDown(KeyControl!) THEN String arg_msg = '',ls_code Long pagerert_row,ls_id pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row] ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row] li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row] li_flag = dw_pageretr.Object.flag[pagerert_row] li_secflag = dw_pageretr.Object.secflag[pagerert_row] ls_outwarecode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] ls_msg = '审核' IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN ls_msg = '确认' IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF sys_option_confirmaudit_sale = 1 And li_priceflag = 0 THEN IF Not f_power_ind(491) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF IF uo_ware.priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] IF f_billevent_trigger (104, 4, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF ELSE IF sys_option_hide_ware = 0 THEN IF li_flag = 0 THEN IF Not (f_power_ind(65) Or f_power_ind(369)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF //系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审 IF sys_option_check_scanqty = 1 THEN ls_msg = wf_check_sys_option_check_scanqty() IF ls_msg <> '' THEN MessageBox('NO',ls_msg) RETURN END IF END IF //检查淘宝发货标记yyx20151118 IF wf_ck_taobao(ls_outwarecode) = 0 THEN RETURN END IF //检查淘宝发货标记yyx20151118_end ls_msg = '仓库审核' IF uo_ware.auditing(True,arg_msg) = 0 THEN rslt = 0 GOTO ext ELSE ll_peg = 1 END IF ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] IF f_billevent_trigger (104, 3, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF ELSEIF li_flag = 1 And li_secflag = 0 THEN IF Not (f_power_ind(137) Or f_power_ind(370)) 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 ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[pagerert_row] IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF END IF ELSE IF dw_pageretr.Object.flag[pagerert_row] = 0 THEN IF Not (f_power_ind(137) Or f_power_ind(370)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF //检查淘宝发货标记yyx20151118 IF wf_ck_taobao(ls_outwarecode) = 0 THEN RETURN END IF //检查淘宝发货标记yyx20151118_end 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 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_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) IF ll_peg = 1 THEN wf_check_ware(ll_scid,ll_billid) END IF END IF ELSE Int li_type Long ll_suc,ll_fail dw_pageretr.AcceptText() li_flag = dw_pageretr.Object.flag[dw_pageretr.GetRow()] li_secflag = dw_pageretr.Object.secflag[dw_pageretr.GetRow()] IF li_flag = 0 And li_secflag = 0 THEN li_type = 0 ls_msg = '审核' IF Not (f_power_ind(65) Or f_power_ind(369)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ELSEIF li_flag = 1 And li_secflag = 0 THEN li_type = 1 ls_msg = '财审' IF Not (f_power_ind(137) Or f_power_ind(370)) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ELSE RETURN END IF IF MessageBox ("询问","是否确定要批"+ls_msg+"列表中未"+ls_msg+"的单据?",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 ll_i = 1 To dw_pageretr.RowCount() w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_outware_outwarecode[ll_i] + " 正在审核..." //进度信息 ll_billid = dw_pageretr.Object.u_outware_outwareid[ll_i] ll_scid = dw_pageretr.Object.u_outware_scid[ll_i] ls_taskcode = dw_pageretr.Object.u_outware_outwarecode[ll_i] li_flag = dw_pageretr.Object.flag[ll_i] li_secflag = dw_pageretr.Object.secflag[ll_i] IF li_type = 0 THEN //仓审 IF li_flag = 1 THEN CONTINUE 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 (104, 3, ls_taskcode, arg_msg) = 0 THEN ls_msg = ls_msg + arg_msg + '~r~n' END IF ELSEIF li_type = 1 THEN //财审 IF li_flag = 0 Or li_secflag = 1 THEN CONTINUE 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++ IF f_billevent_trigger (104, 5, ls_taskcode, arg_msg) = 0 THEN ls_msg = ls_msg + arg_msg + '~r~n' END IF END IF w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT Close(w_sys_wait_jdt) MessageBox('提示','批'+ls_msg+'审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail) + ls_msg,information!,OK!) Parent.TriggerEvent('retrieve_pageretr') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_outware_sale integer x = 1472 integer taborder = 140 end type event cb_xm::clicked;// is_mx_menustr = '' Long ll_storageid,uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN END IF ll_storageid = dw_pageretr.Object.u_outware_storageid[uc_row] Long li_if_fifo = 0 SELECT if_fifo INTO :li_if_fifo FROM u_storage Where storageid = :ll_storageid Using sqlca; IF dw_edit_mode THEN is_mx_menustr += "|" + "Text=批设定折扣~tEvent=ue_p_rebate" 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=计算税率~tEvent=ue_cmpl_tax" is_mx_menustr += "|" + "Text=按第一行批设税率~tEvent=ue_set_tax" ELSE IF li_if_fifo = 1 THEN is_mx_menustr += "|" + "Text=查看成本组成明细~tEvent=ue_show_fifo_cbmx" is_mx_menustr += "|" + "Text=查看销售历史价格~tEvent=ue_show_his_pricemx" END IF is_mx_menustr += "|" + "Text=计算明细库存数量和不足数量~tEvent=ue_mx_cmplnoallocqty" END IF CALL Super::Clicked end event type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_outware_sale integer taborder = 50 end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_outware_sale integer x = 2107 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_outware_sale integer x = 2409 integer taborder = 160 end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_outware_sale integer width = 192 end type event cb_auditing_cancel::clicked;call super::clicked;IF dw_edit_mode THEN RETURN String arg_msg = '',ls_code,ls_opemp,ls_outpart Long pagerert_row,ls_id Long rslt = 1 String ls_msg Int li_priceflag, li_flag, li_secflag Long ll_i,ll_billid, ll_scid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_outware_scid[pagerert_row] ll_billid = dw_pageretr.Object.u_outware_outwareid[pagerert_row] li_priceflag = dw_pageretr.Object.u_outware_priceflag[pagerert_row] li_flag = dw_pageretr.Object.flag[pagerert_row] li_secflag = dw_pageretr.Object.secflag[pagerert_row] ls_msg = "撤审" IF sys_option_confirmaudit_sale = 1 And li_priceflag = 1 And li_flag = 0 THEN ls_msg = '反确认' IF MessageBox ("询问","是否确定要"+This.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN IF uo_ware.getinfo(ll_scid,ll_billid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF sys_option_hide_ware = 0 THEN //两级审 IF li_secflag = 1 THEN IF Not f_power_ind(870) 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 ELSEIF li_flag = 1 And li_secflag = 0 THEN IF Not (f_power_ind(869) Or f_power_ind(868) ) 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 li_priceflag = 1 And li_flag = 0 THEN IF sys_option_confirmaudit_sale = 1 THEN IF Not f_power_ind(1779) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ls_msg = '反确认' IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF END IF END IF ELSE IF li_secflag = 1 THEN IF Not f_power_ind(870) 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 ELSEIF li_priceflag = 1 And li_flag = 0 THEN IF sys_option_confirmaudit_sale = 1 THEN IF Not f_power_ind(491) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ls_msg = '反确认' IF uo_ware.c_priceaudit(ll_scid,ll_billid,True,arg_msg) = 0 THEN rslt = 0 GOTO ext END IF 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.u_outware_outwarecode[pagerert_row] ls_opemp = dw_pageretr.Object.u_outware_opemp[pagerert_row] ls_outpart = dw_pageretr.Object.u_outware_part[pagerert_row] f_setsysoplog('销售发货单',ls_msg+',code:'+ls_code+',相关号码:'+ls_outpart+',建立人:'+ls_opemp,arg_msg,True) //-- wf_refresh_curuc(dw_pageretr.Object.u_outware_scid[pagerert_row],dw_pageretr.Object.u_outware_outwareid[pagerert_row]) END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_outware_sale integer x = 4174 end type type p_help from w_publ_1ton_share_detail`p_help within w_outware_sale integer x = 4361 end type type p_encl from w_publ_1ton_share_detail`p_encl within w_outware_sale integer x = 4265 end type event p_encl::clicked;call super::clicked;//m_Dfc_Control_PopupMenu dmPopupMenu //String menustr // // //menustr = "Text=添加附件~tEvent=ue_fj_edit" //menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view" //menustr = menustr + "|" + "Text=-" //menustr = menustr + "|" + "Text=添加明细附件~tEvent=ue_fj_edit_mx" //menustr = menustr + "|" + "Text=查看明细附件~tEvent=ue_fj_view_mx" ////menustr = menustr + "|" + "Text=产品附件另存为明细附件~tEvent=ue_fj_mx_add_p" //menustr = menustr + "|" + "Text=-" //menustr = menustr + "|" + "Text=打开副本~tEvent=ue_copyself" // // // //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 p_other from w_publ_1ton_share_detail`p_other within w_outware_sale integer x = 4457 end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_outware_sale end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_outware_sale end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_outware_sale end type type r_bar from w_publ_1ton_share_detail`r_bar within w_outware_sale end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_outware_sale end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_outware_sale end type type ddlb_scid from uo_ddlb_scid within w_outware_sale integer x = 827 integer y = 188 integer width = 489 integer height = 468 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_outware_sale integer x = 1330 integer y = 204 integer width = 137 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_outware_sale integer x = 704 integer y = 204 integer width = 123 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_msg from statictext within w_outware_sale integer x = 2377 integer y = 432 integer width = 1170 integer height = 892 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 15793151 boolean border = true borderstyle borderstyle = styleraised! boolean focusrectangle = false end type type cbx_ifmtrlware from checkbox within w_outware_sale boolean visible = false integer x = 3168 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 ifmtrlware = 1 else ifmtrlware = 0 end if f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",String(ifmtrlware)) end event event constructor;this.backcolor = 14215660 ifmtrlware = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "ifmtrlware",'0')) IF ifmtrlware = 1 THEN THIS.Checked = TRUE ELSE THIS.Checked = FALSE END IF end event type cbx_enamt_edit from checkbox within w_outware_sale boolean visible = false integer x = 3214 integer y = 44 integer width = 617 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_edit = 1 this.weight = 700 this.textcolor = 255 ELSE ii_enamt_edit = 0 // cbx_enamt_notax_edit.checked = false this.weight = 400 this.textcolor = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit)) wf_enamt_facechg() //IF ii_enamt_edit = 0 THEN // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0') // dw_child.Modify('enamt_t.Color = 0') //ELSE // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"') // dw_child.Modify('enamt_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 this.weight = 700 this.textcolor = 255 cbx_zk.Checked = FALSE ELSE THIS.Checked = FALSE // cbx_enamt_notax_edit.enabled = FALSE this.weight = 400 this.textcolor = 0 END IF wf_enamt_facechg() end event type ddlb_status from uo_ddlb_status within w_outware_sale integer x = 1458 integer y = 188 integer width = 370 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 cur_priceflag = -1 ELSEIF this.text = "待确认" THEN cur_flag = -1 cur_secflag = -1 cur_priceflag = 0 ELSEIF this.text = "待仓审" THEN cur_flag = 0 cur_secflag = -1 cur_priceflag = -1 ELSEIF this.text = "待财审" THEN cur_flag = 1 cur_secflag = 0 cur_priceflag = -1 ELSEIF this.text = "已审核" THEN cur_flag = 1 cur_secflag = 1 cur_priceflag = -1 END IF end event type cb_fhmx from commandbutton within w_outware_sale integer x = 37 integer y = 1840 integer width = 315 integer height = 84 integer taborder = 100 boolean bringtotop = true integer textsize = -9 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "发货明细" end type event clicked;cb_fhmx.Underline = True cb_fymx.Underline = False cb_bjmx.Underline = False cb_fhmx.weight = 700 cb_fymx.weight = 400 cb_bjmx.weight = 400 dw_child.BringToTop = True ins_dw_select = 0 end event type cb_fymx from commandbutton within w_outware_sale integer x = 357 integer y = 1840 integer width = 315 integer height = 84 integer taborder = 110 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "费用明细" end type event clicked;cb_fhmx.Underline = False cb_fymx.Underline = True cb_bjmx.Underline = False cb_fhmx.weight = 400 cb_fymx.weight = 700 cb_bjmx.weight = 400 dw_fymx.BringToTop = True ins_dw_select = 1 end event type cb_bjmx from commandbutton within w_outware_sale integer x = 677 integer y = 1840 integer width = 315 integer height = 84 integer taborder = 120 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "包件明细" end type event clicked;cb_fhmx.Underline = False cb_fymx.Underline = False cb_bjmx.Underline = True cb_fhmx.weight = 400 cb_fymx.weight = 400 cb_bjmx.weight = 700 dw_bjmx.BringToTop = True end event type dw_bjmx from u_dw_rbtnfilter within w_outware_sale integer x = 2565 integer y = 1856 integer taborder = 30 boolean titlebar = true string title = "包件明细" string dataobject = "dw_outwaremx_mx_edit" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true string old_dwobject = "0" string curdw_colfilter = "0" end type event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) end event type dw_fymx from u_dw_rbtnfilter within w_outware_sale integer x = 1929 integer y = 1852 integer taborder = 20 boolean titlebar = true string title = "费用明细" string dataobject = "dw_outware_itemmx_edit" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true string old_dwobject = "0" string curdw_colfilter = "0" end type event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) end event event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN Parent.TriggerEvent('ue_add_fymx') END IF end event event dwnkey;call super::dwnkey;Parent.TriggerEvent('user_key') String ls_itemcode,ls_itemname,ls_itemtype Long ll_itemid Long child_row IF dw_edit_mode THEN IF KeyDown(keydownarrow!) THEN Long li_row IF dw_fymx.GetRow() = dw_fymx.RowCount() THEN Parent.TriggerEvent("insert_childrow_fymx") END IF ELSE IF KeyDown(keyenter!) And Not KeyDown(keycontrol!) And Not KeyDown(keyshift!) THEN IF dw_fymx.GetColumnName() = 'u_itemdef_itemcode' THEN dw_fymx.AcceptText() child_row = dw_fymx.GetRow() ls_itemcode = dw_fymx.Object.u_itemdef_itemcode[child_row] SELECT itemid, itemname, itemtype INTO :ll_itemid, :ls_itemname, :ls_itemtype FROM u_itemdef Where itemcode = :ls_itemcode; IF sqlca.SQLCode <> 0 THEN Parent.TriggerEvent('ue_f11') RETURN END IF dw_fymx.Object.u_itemdef_itemname[child_row] = ls_itemname dw_fymx.Object.u_itemdef_itemtype[child_row] = ls_itemtype dw_fymx.Object.u_outware_itemmx_itemid[child_row] = ll_itemid dw_fymx.accepttext() IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_fymx.GetColumnName( ) = 'u_outware_itemmx_mxdscrp' And dw_fymx.GetRow() = dw_fymx.RowCount() THEN Parent.TriggerEvent("insert_childrow_fymx") RETURN 1 ELSE IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF END IF END IF end event type cbx_packqty_cmpl from checkbox within w_outware_sale boolean visible = false integer x = 3950 integer y = 28 integer width = 690 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 this.textcolor = 255 this.weight = 700 ELSE ii_packqty_cmpl = 0 this.textcolor = 0 this.weight = 400 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 this.weight = 700 this.textcolor = 255 ELSE THIS.Checked = FALSE this.weight = 400 this.textcolor = 0 END IF this.y = cbx_enamt_edit.y this.x = cbx_zk.x + cbx_zk.width + cbx_enamt_notax_edit.width end event type cbx_enamt_notax_edit from checkbox within w_outware_sale boolean visible = false integer x = 3214 integer y = 100 integer width = 539 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 this.weight = 700 this.textcolor = 255 ELSE ii_enamt_notax_edit = 0 this.weight = 400 this.textcolor = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_notax_edit",String(ii_enamt_notax_edit)) wf_enamt_facechg() //IF ii_enamt_notax_edit = 0 THEN // dw_child.Modify('enamt.protect = 1~t enamt.Color = 0') // dw_child.Modify('enamt_t.Color = 0') //ELSE // dw_child.Modify('enamt.protect = 0~t enamt.Color = "0~trgb(0,0,255)"') // dw_child.Modify('enamt_t.Color = "0~trgb(0,0,255)"') //END IF 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 this.weight = 700 this.textcolor = 255 ELSE THIS.Checked = FALSE this.weight = 400 this.textcolor = 0 END IF //wf_enamt_facechg() // this.y = cbx_enamt_edit.y this.x = cbx_enamt_edit.x + cbx_enamt_edit.width + 10 end event type cb_scanbill from commandbutton within w_outware_sale integer x = 997 integer y = 1840 integer width = 384 integer height = 84 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "条码扫描检测" end type event clicked;String em,ls_str Long this_parrow Long i,ll_row,ll_ucrow long ll_scid,ll_outwareid this_parrow = dw_pageretr.GetRow() IF dw_edit_mode THEN MessageBox('NO','请在非编辑状态操作!') return end if IF this_parrow <= 0 THEN MessageBox('NO','请选择单据!') RETURN END IF ll_scid=dw_pageretr.object.u_outware_scid[this_parrow] ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow] s_edit_index_tran s_tran_mod s_tran_mod.b_long = ll_scid s_tran_mod.c_long = ll_outwareid s_tran_mod.d_long = 0 s_tran_mod.c_string = '' OpenWithParm(w_outwaremx_p_scanqty,s_tran_mod) parent.TriggerEvent('retrieve_childdw') //String em,ls_str //Long this_parrow //Long i,ll_row,ll_ucrow //this_parrow = dw_pageretr.GetRow() //IF this_parrow <= 0 THEN // MessageBox('NO','请选择单据!') // RETURN //END IF // //TRY // s_edit_index_tran s_ch_tran //传递参数使用 // // OpenWithParm(w_scanbill,s_ch_tran ) // // // w_scanbill.cb_add.TriggerEvent('clicked') // w_scanbill.cur_thflag = 0 // ll_ucrow = w_scanbill.dw_uc.GetRow() // IF ll_ucrow <= 0 THEN RETURN // w_scanbill.dw_uc.object.billtype[ll_ucrow]=0 //0 表示发货退货 1 表示盘点单 // w_scanbill.dw_uc.object.scid[ll_ucrow]=dw_pageretr.object.u_outware_scid[this_parrow] // w_scanbill.dw_uc.object.outwareid[ll_ucrow]=dw_pageretr.object.u_outware_outwareid[this_parrow] // w_scanbill.dw_uc.object.outwarecode[ll_ucrow]=dw_pageretr.object.u_outware_outwarecode[this_parrow] // // FOR i = 1 To dw_child.RowCount() // w_scanbill.dw_child.Reset() // ll_row = w_scanbill.dw_child.InsertRow(0) // w_scanbill.dw_child.Object.u_outwaremx_mtrlid[ll_row] = dw_child.Object.u_outwaremx_mtrlid[i] // w_scanbill.dw_child.Object.u_mtrldef_mtrlcode[ll_row] = dw_child.Object.u_mtrldef_mtrlcode[i] // w_scanbill.dw_child.Object.u_mtrldef_mtrlname[ll_row] = dw_child.Object.u_mtrldef_mtrlname[i] // w_scanbill.dw_child.Object.u_mtrldef_mtrlmode[ll_row] = dw_child.Object.u_mtrldef_mtrlmode[i] // w_scanbill.dw_child.Object.u_mtrldef_unit[ll_row] = dw_child.Object.u_outwaremx_unit[i] // w_scanbill.dw_child.Object.u_outwaremx_uqty[ll_row] = dw_child.Object.u_outwaremx_uqty[i] // w_scanbill.dw_child.Object.u_scanbillmx_scanqty[ll_row] = 0 // // // NEXT // // // // // //Catch (RuntimeError rrrr) // RETURN //END TRY // // // end event event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审 IF sys_option_check_scanqty = 1 THEN This.Visible = True ELSE This.Visible = False END IF end event type cbx_zk from checkbox within w_outware_sale boolean visible = false integer x = 3922 integer y = 108 integer width = 645 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_edit_1 = 1 this.weight = 700 this.textcolor = 255 ELSE ii_enamt_edit_1 = 0 this.weight = 400 this.textcolor = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",String(ii_enamt_edit_1)) wf_enamt_facechg() //IF THIS.Checked THEN // ii_enamt_edit = 1 // //ELSE // ii_enamt_edit = 0 //// cbx_enamt_notax_edit.checked = false // //END IF // //f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit)) // //wf_enamt_facechg() end event event constructor;This.BackColor = 14215660 Long li_cbx_zk ii_enamt_edit_1 = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit_1",'0')) IF ii_enamt_edit_1 = 1 THEN This.Checked = True this.weight = 700 this.textcolor = 255 ELSE This.Checked = False this.weight =400 this.textcolor = 0 END IF wf_enamt_facechg() this.y = cbx_enamt_edit.y this.x = cbx_enamt_notax_edit.x + cbx_enamt_notax_edit.width + 10 end event type cb_new_scanbill from commandbutton within w_outware_sale integer x = 1385 integer y = 1840 integer width = 384 integer height = 84 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "条码扫描开单" end type event clicked;String em,ls_str Long this_parrow Long i,ll_row,ll_ucrow Long ll_scid,ll_outwareid IF Not dw_edit_mode THEN MessageBox('NO','请在编辑状态操作!') RETURN END IF this_parrow = dw_pageretr.GetRow() IF this_parrow <= 0 THEN MessageBox('NO','请选择单据!') RETURN END IF dw_uc.AcceptText() //ll_scid=dw_pageretr.object.u_outware_scid[this_parrow] //ll_outwareid=dw_pageretr.object.u_outware_outwareid[this_parrow] s_edit_index_tran s_tran_mod //s_tran_mod.b_long = ll_scid s_tran_mod.c_long = dw_uc.Object.u_outware_storageid[dw_uc.GetRow()] //s_tran_mod.d_long = 0 //s_tran_mod.c_string = '' OpenWithParm(w_outwaremx_p_new_scanqty,s_tran_mod) dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() wf_get_price(i) NEXT wf_set_barcode() end event event constructor;//系统选项267销售发货单,销售退货单 扫描数不等于出仓数不能仓审 IF sys_option_check_scanqty = 1 THEN This.Visible = True ELSE This.Visible = False END IF end event type st_cusbalc from statictext within w_outware_sale integer x = 2112 integer y = 188 integer width = 1851 integer height = 92 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_cusbalc_sign from statictext within w_outware_sale boolean visible = false integer x = 1847 integer y = 188 integer width = 261 integer height = 76 boolean bringtotop = true integer textsize = -11 integer weight = 700 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 255 long backcolor = 134217739 string text = "超信用!" boolean focusrectangle = false end type type cbx_all from checkbox within w_outware_sale integer x = 3968 integer y = 196 integer width = 197 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;Int i If This.Checked = True Then For i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.if_ch[i] = 1 Next Else For i = 1 To dw_pageretr.RowCount() dw_pageretr.Object.if_ch[i] = 0 Next End If end event event constructor; this.y = p_msg.y this.x = st_cusbalc.x + st_cusbalc.width +5 end event