$PBExportHeader$w_saletask.srw forward global type w_saletask from w_publ_1ton_share_detail end type type ddlb_scid from uo_ddlb_scid within w_saletask end type type st_2 from statictext within w_saletask end type type st_3 from statictext within w_saletask end type type cbx_quote from checkbox within w_saletask end type type cbx_sc from checkbox within w_saletask end type type cbx_list from checkbox within w_saletask end type type ddlb_status from uo_ddlb_status within w_saletask end type type cb_fhmx from commandbutton within w_saletask end type type cb_tcmx from commandbutton within w_saletask end type type cb_taskmx from commandbutton within w_saletask end type type cb_tsmx from commandbutton within w_saletask end type type cb_edit_tc from commandbutton within w_saletask end type type cb_fymx from commandbutton within w_saletask end type type dw_tsmx from u_dw_rbtnfilter within w_saletask end type type dw_fymx from u_dw_rbtnfilter within w_saletask end type type dw_fhmx from u_dw_rbtnfilter within w_saletask end type type dw_dhmx from u_dw_rbtnfilter within w_saletask end type type dw_ywymx from u_dw_rbtnfilter within w_saletask end type type cbx_enamt_edit from checkbox within w_saletask end type type cbx_1 from checkbox within w_saletask end type type cbx_zk from checkbox within w_saletask end type type ddlb_1 from dropdownlistbox within w_saletask end type type st_4 from statictext within w_saletask end type type cbx_enamt_notax_edit from checkbox within w_saletask end type type st_cusbalc from statictext within w_saletask end type type st_cusbalc_sign from statictext within w_saletask end type type cbx_auto_qty from checkbox within w_saletask end type type st_weishu from statictext within w_saletask end type type ddlb_weishu from dropdownlistbox within w_saletask end type end forward global type w_saletask from w_publ_1ton_share_detail integer width = 5957 integer height = 2992 string title = "销售订单" boolean maxbox = true windowstate windowstate = maximized! long dw_pageretr_w = 52828948 long dw_child_h = 34912024 long dw_child_w = 34817496 boolean if_chkmtrlinfo = true event insert_childrow ( ) event ue_tempstoptask ( ) event ue_stopsaletask ( ) event ue_finishtask ( ) event ue_importseleprice ( ) event ue_ctempstoptask ( ) event ue_importcusseleprice ( ) event ue_importcusseleprice_his ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_add_descp ( ) event ue_add_descp2 ( ) 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_f15 ( ) event ue_view_mxdscrp2 ( ) event ue_add_descp3 ( ) event ue_add_cus_address ( ) event ue_copy_qty ( ) event ue_f18 ( ) event ue_ch_outrepdef ( ) event ue_update_relcode ( ) event ue_fj_edit_mx ( ) event ue_fj_mx_add ( ) event ue_fj_view_mx ( ) event ue_ch_banktype ( ) event ue_ch_money ( ) event ue_send_jd_ljfieb ( ) event ue_redate_ljfieb ( ) event ue_p_tax ( ) event ue_finishtask_cancel ( ) event ue_create_outware_sale ( ) event ue_stopqty ( ) event ue_mod_enprice ( ) event ue_create_oppose_cust ( ) event ue_create_reissue ( ) event ue_view_reissue ( ) event ue_fj_mx_add_p ( ) event ue_add_fymx ( ) event ue_ch_station ( ) event ue_pricelist_update ( ) event ue_create_buytask ( ) event ue_create_taskdamt ( ) event ue_cmpl_otheramt ( ) event ue_stopsaletask_cancel ( ) event insert_childrow_fymx ( ) event ue_p_rebate ( ) event ue_p_saleqty ( ) event ue_add_addqty ( ) event ue_paudit_task ( ) event ue_paudit2_task ( ) event ue_paudit_task_cancel ( ) event ue_paudit1_task ( ) event ue_paudit2_task_cancel ( ) event ue_paudit1_task_cancel ( ) event ue_mx_cmplnoallocqty ( ) event ue_view_status ( long arg_row, string arg_status ) event ue_mx_requiredate ( ) event ue_view_mxdscrp3 ( ) event ue_view_mxdscrp4 ( ) event ue_importseleprice_buchong ( ) event ue_cmpl_price ( ) event ue_p_priceformula_set ( ) event ue_p_cmpl_price ( ) event ue_show_his_pricemx ( ) event ue_retrieve_his_pricemx ( ) event ue_create_inware_cp ( ) event ue_priceaudit ( ) event ue_cpriceaudit ( ) event ue_set_dytitle ( ) event ue_insert_execltodw ( ) event ue_ ( ) event ue_setprice_forformula ( ) event retrieve_fjnum ( ) event ue_cmpl_tax ( ) event ue_p_status ( ) event ue_p_woodcode ( ) event ue_p_pcode ( ) event ue_setqty_forformula ( ) event ue_mx_alter ( ) event ue_saletask_choose ( ) event ue_create_buytask_auto ( ) event ue_setprice_forformula_1 ( ) event ue_setqty_forformula_1 ( ) event ue_copy_needqty ( ) ddlb_scid ddlb_scid st_2 st_2 st_3 st_3 cbx_quote cbx_quote cbx_sc cbx_sc cbx_list cbx_list ddlb_status ddlb_status cb_fhmx cb_fhmx cb_tcmx cb_tcmx cb_taskmx cb_taskmx cb_tsmx cb_tsmx cb_edit_tc cb_edit_tc cb_fymx cb_fymx dw_tsmx dw_tsmx dw_fymx dw_fymx dw_fhmx dw_fhmx dw_dhmx dw_dhmx dw_ywymx dw_ywymx cbx_enamt_edit cbx_enamt_edit cbx_1 cbx_1 cbx_zk cbx_zk ddlb_1 ddlb_1 st_4 st_4 cbx_enamt_notax_edit cbx_enamt_notax_edit st_cusbalc st_cusbalc st_cusbalc_sign st_cusbalc_sign cbx_auto_qty cbx_auto_qty st_weishu st_weishu ddlb_weishu ddlb_weishu end type global w_saletask w_saletask type variables Int cur_status = 0 //当前查询订单状态 // -1 所有 uo_saletask obj_saletask Long cur_scid Long cur_scid_arr[] uo_cusprice uo_cus_price Int cur_cusrepamtflag = 0 //信用额 String cur_cusrepamtstr = '' Long ins_dw_select = 0 Long fy_column_int = 4 // 费用明细可修改的列数 Int ii_enamt_edit = 0 //0:不使用录入,不能编辑; 1:使用录入,可以编辑 int ii_enamt_edit_1 = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 计算折扣 int ii_enamt_notax_edit = 0//0:不使用录入,不能编辑; 1:使用录入,可以编辑 Long tmp_chflag = 1 string cur_cusrepamtstr_show = '' //非编辑状态下 显示信息 string old_rep_select=''//保留原有下拉sql end variables forward prototypes public function integer wf_cusdetail () public function integer wf_statusbtn_fc () public function integer wf_refresh_curuc (long arg_scid, long arg_taskid) 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_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg) public function integer wf_check_relcode (long arg_scid, long arg_taskid, string arg_relcode, ref string arg_msg) 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_lock_child () public function integer wf_check_pz (long arg_mtrlid, string arg_mtrlcode, string arg_status_check, string arg_woodcode_check, string arg_pcode_check, ref string arg_msg) public subroutine wf_cmpl_amt (integer row) public function integer wf_check_qtyandaddqty (ref string arg_msg) public function integer wf_refresh_interface () public function integer wf_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg) public subroutine wf_set_decimal_place () public subroutine wf_getcusrepamt_info (long arg_scid, long arg_cusid, long arg_moneyid) public function integer wf_openfile (datawindow arg_dw) public subroutine wf_enamt_facechg () public subroutine wf_cusbalc (long arg_scid, long arg_cusid, long arg_moneyid) public subroutine wf_getcusrepamt_info_show (long arg_scid, long arg_cusid, long arg_moneyid) public function decimal wf_get_cusprice (integer arg_cusid, integer arg_mtrlid) public function integer wf_formualprice_auto (ref string arg_msg) public function integer wf_formualqty_auto (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_saletaskmx_outtype') end event event ue_tempstoptask();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) return END IF if not f_power_ind(9) 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 MessageBox ("询问","是否确定要对当前订单作暂停操作吗?",Question!,YesNo! ) = 2 THEN RETURN dw_pageretr.accepttext() if obj_saletask.tempstoptask(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.object.taskid[pagerert_row],arg_msg,true)=0 then messagebox('错误',arg_msg,stopsign!,OK!) ELSE messagebox('提示',"订单作暂停操作成功!",information!,OK!) if cur_status <> -1 then dw_uc.deleterow(pagerert_row) else wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.object.taskid[pagerert_row]) end if end if end event event ue_stopsaletask();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF Not f_power_ind(10) 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 MessageBox ("询问","是否确定要对当前订单作终止吗? (终止后订单将归档只读)",Question!,YesNo! ) = 2 THEN RETURN dw_pageretr.AcceptText() IF obj_saletask.stopsaletask(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row],arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示','订单终止操作成功!',information!,OK!) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 6, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row]) END IF END IF end event event ue_finishtask();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF Not f_power_ind(10) 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 MessageBox ("询问","是否确定要对当前销售订单作完成吗? (完成后销售订单将归档只读)",Question!,YesNo! ) = 2 THEN RETURN Long ls_taskid ls_taskid = dw_pageretr.Object.taskid[pagerert_row] IF obj_saletask.finishtask(dw_pageretr.Object.u_saletask_scid[pagerert_row],ls_taskid,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示','销售订单完成操作成功!',information!,OK!) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 5, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row]) END IF END IF 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 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_saletask_moneyid[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 //IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN // MessageBox('提示',arg_msg,information!,OK!) // RETURN //END IF // //dw_child.AcceptText() //FOR ls_row = 1 To dw_child.RowCount() // ls_mtrlid = dw_child.Object.mtrlid[ls_row] // ls_status = dw_child.Object.u_saletaskmx_status[ls_row] // ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] // ls_unit = dw_child.Object.u_saletaskmx_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.mtrlname[ls_row])+" 的客户定价尚未设定! ~n" // ELSE // dw_child.Object.u_saletaskmx_enprice[ls_row] = obj_price // END IF //NEXT // // //IF err_str <> '' THEN // MessageBox('错误',err_str,stopsign!,OK!) //END IF end event event ue_ctempstoptask();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF NOT f_power_ind(9) 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 MessageBox ("询问","是否确定要对当前订单作取消暂停操作吗?",Question!,YesNo! ) = 2 THEN RETURN IF obj_saletask.tempstoptask(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row],arg_msg,TRUE) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示',"订单作取消暂停操作成功!",information!,OK!) IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row]) END IF 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 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_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.cusid[uc_row] = 0 Or IsNull(dw_uc.Object.cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.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 //IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN // MessageBox('提示',arg_msg,information!,OK!) // RETURN //END IF // //s_sale_price_mx s_mx //dw_child.AcceptText() //FOR ls_row = 1 To dw_child.RowCount() // // ls_mtrlid = dw_child.Object.mtrlid[ls_row] // ls_status = dw_child.Object.u_saletaskmx_status[ls_row] // ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] // ls_unit = dw_child.Object.u_saletaskmx_unit[ls_row] // // IF sys_option_price_if_status = 0 THEN // ls_status = '' // ls_pcode = '' // ls_woodcode = '' // END IF // // s_mx.mtrlid = ls_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, arg_msg) = 0 THEN // err_str = err_str + "行:"+string(ls_row)+", "+String(dw_child.Object.mtrlname[ls_row])+" 的导入价格表售价失败或没有设置售价! ~n " //// rslt = 0 //无标准价格表 或未审核 // END IF // // dw_child.Object.u_saletaskmx_enprice[ls_row] = s_mx.price // dw_child.Object.u_saletaskmx_rebate[ls_row] = s_mx.rebate // //dw_child.Object.u_saletaskmx_rate[ls_row] = obj_rate //NEXT // //IF err_str <> '' THEN // MessageBox('错误',err_str,stopsign!,OK!) //END IF 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_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF dw_uc.Object.cusid[uc_row] = 0 OR IsNull(dw_uc.Object.cusid[uc_row]) THEN MessageBox('提示',"请选择销售客户!",information!,OK!) RETURN END IF ls_cusid = dw_uc.Object.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 dw_child.accepttext() FOR ls_row = 1 TO dw_child.RowCount() ls_mtrlid = dw_child.Object.mtrlid[ls_row] ls_status = dw_child.Object.u_saletaskmx_status[ls_row] ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] ls_unit = dw_child.Object.u_saletaskmx_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.mtrlname[ls_row])+" 的最新售价失败,或没有最新售价! ~n " dw_child.Object.u_saletaskmx_enprice[ls_row] = 0 dw_child.Object.u_saletaskmx_rebate[ls_row] = 1 //dw_child.Object.u_saletaskmx_rate[ls_row] = obj_rate ELSE dw_child.Object.u_saletaskmx_enprice[ls_row] = obj_price dw_child.Object.u_saletaskmx_rebate[ls_row] = obj_rebate dw_child.Object.u_saletaskmx_rate[ls_row] = obj_rate END IF NEXT IF err_str <> '' THEN MessageBox('错误',err_str,stopsign!,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 = 102 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_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 = 102 //销售订单的mainID s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_add_descp();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.dscrp[dw_uc.GetRow()] s_view.Title = '销售订单备注' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.dscrp[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_add_descp2();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_saletask_dscrp2[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_saletask_dscrp2[dw_uc.GetRow()] = s_return.dscrp 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.cusid[uc_row] dw_child.AcceptText() child_row = dw_child.GetRow() s_cmpl_qty s_cmpl,s_return s_cmpl.qty = dw_child.Object.usaleqty[child_row] s_cmpl.formula = dw_child.Object.u_saletaskmx_formula[child_row] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[child_row] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[child_row] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[child_row] s_cmpl.status = dw_child.Object.u_saletaskmx_status[child_row] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[child_row] s_cmpl.pcode = dw_child.Object.u_saletaskmx_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_saletaskmx_packqty[child_row] s_cmpl.mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[child_row] s_cmpl.mxdscrp = dw_child.Object.u_saletaskmx_mxdscrp[child_row] s_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[child_row] s_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[child_row] s_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[child_row] li_mtrlid = dw_child.Object.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.usaleqty[child_row] = s_return.qty dw_child.Object.u_saletaskmx_formula[child_row] = s_return.formula END IF END IF end event event ue_p_cmpl_qty();IF dw_child.RowCount() = 0 THEN RETURN Long i String ls_formula String ls_msg String ls_rs String ls_num Decimal ld_addqty Decimal ld_price Decimal ld_rebate decimal ld_qty dw_child.AcceptText() s_cmpl_qty s_cmpl Open(w_cmpl_qty_ch_son) s_cmpl = Message.PowerObjectParm dw_uc.SetRedraw(false) FOR i = 1 TO dw_child.RowCount() ld_qty = 0 IF dw_child.Object.u_saletaskmx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_saletaskmx_formula[i] s_cmpl.status = dw_child.Object.u_saletaskmx_status[i] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[i] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[i] s_cmpl.mtrlmode = dw_child.Object.u_mtrldef_mtrlmode[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.usaleqty[i] = ld_qty END IF NEXT ext: dw_child.SetColumn('usaleqty') 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() 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_saletaskmx_addqty[i] CHOOSE CASE ll_type CASE 0 ls_status = dw_child.Object.u_saletaskmx_status[i] CASE 1 ls_status = dw_child.Object.u_saletaskmx_woodcode[i] CASE 2 ls_status = dw_child.Object.u_saletaskmx_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.usaleqty[i] = Round(ld_qty * ll_value,ll_num) ELSE dw_child.Object.usaleqty[i] = Round(ld_qty / ll_value,ll_num) END IF END IF NEXT END IF ext: 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_saletaskmx_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_saletaskmx_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_saletaskmx_formula[ll_i] = dw_child.Object.u_saletaskmx_formula[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_f15();//选择报价单 //用于选择明细内容,被f8[默认]\dw_child.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,ld_tax String ls_prdpackcode Decimal ld_packqty,ld_net_weight,ld_gross_weight,ld_cubage string ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode s_mtrldef_array arg_s_mtrldef child_row = dw_child.GetRow() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF IsNull(ls_cusid) Or ls_cusid = 0 THEN This.TriggerEvent("ue_f9") RETURN END IF ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox(publ_operator,'请先选择币种') RETURN END IF ld_mrate = dw_uc.Object.u_saletask_mrate[dw_uc.GetRow()] IF Not IsValid(w_quote_mx_ch) THEN s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = This.retrieve_all //是否一次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.c_long = ls_cusid IF cur_scid < 0 THEN s_tranf8.b_long = dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] ELSE s_tranf8.b_long = cur_scid END IF Long ls_j This.Enabled = False OpenWithParm(w_quote_mx_ch,s_tranf8) //调用 This.Enabled = True s_quotemx_arr s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 To UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.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.mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j] dw_child.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j] dw_child.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j] dw_child.Object.usaleqty[child_row] = s_inscust.qty[ls_j] //dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_rate[child_row] = 1 dw_child.Object.u_saletaskmx_addqty[child_row] = s_inscust.addqty[ls_j] dw_child.Object.u_saletaskmx_formula[child_row] = s_inscust.formula[ls_j] dw_child.Object.u_saletaskmx_status[child_row] = s_inscust.status[ls_j] dw_child.Object.u_saletaskmx_pcode[child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_saletaskmx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_saletaskmx_mxdscrp[child_row] = s_inscust.mxdscrp[ls_j] dw_child.Object.u_saletaskmx_net_weight[child_row] = s_inscust.net_weight[ls_j] dw_child.Object.u_saletaskmx_gross_weight[child_row] = s_inscust.gross_weight[ls_j] dw_child.Object.u_saletaskmx_cubage[child_row] = s_inscust.cubage[ls_j] dw_child.Object.u_saletaskmx_mxdscrp2[child_row] = s_inscust.mxdscrp2[ls_j] dw_child.Object.u_saletaskmx_mxdscrp3[child_row] = s_inscust.mxdscrp3[ls_j] dw_child.Object.u_saletaskmx_mxdscrp4[child_row] = s_inscust.mxdscrp4[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.newunit[ls_j] //dw_child.Object.u_SaleTaskMx_priceformula[child_row] = s_inscust.priceformula[ls_j] if f_find_tax(ls_cusid,'u_cust',ld_tax) = 0 then ld_tax = 0 else dw_child.Object.u_saletaskmx_tax[child_row] = ld_tax end if if f_find_cusmtrlname(ls_cusid,s_inscust.mtrlid[ls_j],ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode) = 0 then ls_cusmtrlcode = '' ls_cusmtrlname = '' ls_cusmtrlmode ='' else dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] = ls_cusmtrlmode end if IF ll_moneyid = s_inscust.moneyid[ls_j] THEN dw_child.Object.u_saletaskmx_enprice[child_row] = s_inscust.sumprice_1[ls_j] ELSE IF ld_mrate > 0 THEN //汇率转换 dw_child.Object.u_saletaskmx_enprice[child_row] = s_inscust.sumprice_1[ls_j] / ld_mrate END IF END IF dw_child.Object.u_saletaskmx_rebate[child_row] = s_inscust.rebate[ls_j] END IF NEXT dw_child.SetColumn('usaleqty') This.TriggerEvent('ue_allowedit') dw_child.SetFocus() END IF end event event ue_view_mxdscrp2();s_view_dscrp s_view,s_return String ls_dscrp dw_child.AcceptText() ls_dscrp = dw_child.Object.u_saletaskmx_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.u_saletaskmx_mxdscrp2[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_add_descp3();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_saletask_dscrp3[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_saletask_dscrp3[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_add_cus_address();s_view_dscrp s_view,s_return String ls_dscrp dw_uc.AcceptText() ls_dscrp = dw_uc.Object.u_saletask_cus_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_saletask_cus_address[dw_uc.GetRow()] = s_return.dscrp END IF end event event ue_copy_qty();Long i Decimal lde_rate dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() lde_rate = dw_child.Object.u_saletaskmx_rate[i] IF lde_rate = 0 THEN lde_rate = 1 dw_child.Object.u_saletaskmx_rate[i] = 1 END IF dw_child.Object.u_saletaskmx_orderqty[i] = dw_child.Object.usaleqty[i] * lde_rate NEXT end event event ue_f18();//选择价格表 //用于选择明细内容,被f8[默认]\dw_child.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,ld_tax String ls_prdpackcode Decimal ld_packqty,ld_net_weight,ld_gross_weight,ld_cubage string ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode String ls_priceformula s_mtrldef_array arg_s_mtrldef child_row = dw_child.GetRow() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF IsNull(ls_cusid) OR ls_cusid = 0 THEN THIS.TriggerEvent("ue_f9") RETURN END IF ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox(publ_operator,'请先选择币种') RETURN END IF ld_mrate = dw_uc.Object.u_saletask_mrate[dw_uc.GetRow()] IF NOT IsValid(w_sale_price_list_mxch) THEN s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = THIS.retrieve_all //是否一次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.c_long = ls_cusid IF cur_scid < 0 THEN s_tranf8.b_long = dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] ELSE s_tranf8.b_long = cur_scid END IF s_tranf8.e_long = ll_moneyid Long ls_j Decimal lde_rate THIS.Enabled = FALSE OpenWithParm(w_sale_price_list_mxch,s_tranf8) //调用 THIS.Enabled = TRUE s_salelistmx_arr s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.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.mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] //dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j] dw_child.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j] dw_child.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j] dw_child.Object.u_saletaskmx_status[child_row] = s_inscust.status[ls_j] dw_child.Object.u_saletaskmx_pcode[child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_saletaskmx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_saletaskmx_mxdscrp[child_row] = s_inscust.mxdscrp[ls_j] dw_child.Object.u_saletaskmx_enprice[child_row] = s_inscust.price[ls_j] dw_child.Object.u_saletaskmx_rebate[child_row] = s_inscust.rebate[ls_j] dw_child.Object.u_saletaskmx_net_weight[child_row] = s_inscust.net_weight[ls_j] dw_child.Object.u_saletaskmx_gross_weight[child_row] = s_inscust.gross_weight[ls_j] dw_child.Object.u_saletaskmx_cubage[child_row] = s_inscust.cubage[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN ls_priceformula = '' ELSE ls_priceformula = arg_s_mtrldef.priceformula[1] END IF dw_child.Object.u_SaleTaskMx_priceformula[child_row] = ls_priceformula if f_find_tax(ls_cusid,'u_cust',ld_tax) = 0 then ld_tax = 0 else dw_child.Object.u_saletaskmx_tax[child_row] = ld_tax end if if f_find_cusmtrlname(ls_cusid,s_inscust.mtrlid[ls_j],ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode) = 0 then ls_cusmtrlcode = '' ls_cusmtrlname = '' ls_cusmtrlmode ='' else dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] = ls_cusmtrlmode end if IF f_find_unitrate(s_inscust.mtrlid[ls_j], s_inscust.unit[ls_j], lde_rate) = 1 THEN dw_child.Object.u_saletaskmx_rate[child_row] = lde_rate END IF dw_child.SetColumn('saleqty') END IF NEXT THIS.TriggerEvent('ue_allowedit') dw_child.SetFocus() 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.assign_emp[dw_uc.GetRow()] = s_outrep_ch.outrepname END IF END IF end event event ue_update_relcode();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF NOT f_power_ind(1515) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg = '',LS_STR Long uc_row string ls_relcode s_inputbox S_SREU uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF S_SREU.Title = '请输入新的销售订单相关号' S_SREU.OLD_TEXT = dw_pageretr.object.u_saletask_relcode[uc_row] OpenWithParm(w_inputbox,S_SREU) LS_STR = Message.StringParm IF Trim(LS_STR) = '' OR IsNull(LS_STR) or LS_STR = dw_pageretr.object.u_saletask_relcode[uc_row] THEN RETURN IF obj_saletask.uof_update_relcode(dw_pageretr.Object.u_saletask_scid[uc_row], & dw_pageretr.Object.taskid[uc_row],& LS_STR,arg_msg,TRUE) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN ELSE MessageBox('提示','修改销售订单相关号操作成功!',information!,OK!) wf_refresh_curuc(cur_scid,dw_pageretr.Object.taskid[uc_row]) END IF 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 = 9102 //销售订单明细 s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row] s_pic.d_long = dw_child.Object.u_saletaskmx_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_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 = 9102 //销售订单明细 s_pic.f_string = dw_pageretr.Object.taskcode[ls_row] s_pic.g_long = dw_pageretr.Object.taskid[ls_row] s_pic.e_long = dw_pageretr.Object.u_saletask_scid[ls_row] s_pic.d_long = dw_child.Object.u_saletaskmx_printid[ll_mxrow] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) 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_saletask_banktypeid[dw_uc.GetRow()] = s_ch.banktypeid END IF datawindowchild childdw dw_uc.GetChild("u_saletask_banktypeid",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_saletask_moneyid[dw_uc.GetRow()] = s_ch.moneyid dw_uc.Object.u_saletask_mrate[dw_uc.GetRow()] = s_ch.rate END IF datawindowchild childdw dw_uc.GetChild("u_saletask_moneyid",childdw) childdw.SetTransObject (sqlca) childdw.Retrieve() END IF end event event ue_send_jd_ljfieb();IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不可操作') RETURN END IF IF sys_email_sqlca.DBHandle() = 0 THEN MessageBox('Error','电子商务数据库连接失败,请检查') RETURN END IF uo_ljfieb uo_fieb uo_fieb = create uo_ljfieb uo_fieb.commit_transaction = sys_email_sqlca Long ll_row Long ll_scid,ll_taskid String ls_fiebrelcode 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_saletask_scid[ll_row] ll_taskid = dw_pageretr.Object.taskid[ll_row] ls_fiebrelcode = dw_pageretr.Object.u_saletask_fiebrelcode[ll_row] IF Trim(ls_fiebrelcode) = '' 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_summary = '订单 '+ls_fiebrelcode+' 进度' arg_postscript = s_return.postscript arg_remark = s_return.remark IF uo_fieb.send_buytask_jd(ll_scid,ll_taskid,arg_summary,arg_postscript,arg_remark,arg_msg,True) = 0 THEN MessageBox('Erorr',arg_msg) RETURN END IF destroy uo_fieb messagebox('系统提示','发送进度成功!') end event event ue_redate_ljfieb();IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不可操作') RETURN END IF Long ll_row Long ll_scid,ll_taskid String ls_fiebrelcode ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择要与客户确认交期的订单') RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[ll_row] ll_taskid = dw_pageretr.Object.taskid[ll_row] ls_fiebrelcode = dw_pageretr.Object.u_saletask_fiebrelcode[ll_row] IF Trim(ls_fiebrelcode) = '' THEN MessageBox('系统提示','本销售订单不是引入客户采购订单成生,不能执行交期确认反馈') RETURN END IF s_edit_index_tran s_tran_re s_tran_re.b_long = ll_scid s_tran_re.c_long = ll_taskid openwithparm(w_saletaskmx_redate_ljfieb,s_tran_re) wf_refresh_curuc(ll_scid,ll_taskid) THIS.TriggerEvent('retrieve_childdw') end event event ue_p_tax();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定税率', question!, YesNo!, 1) = 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_saletaskmx_tax[ll_i] = dw_child.Object.u_saletaskmx_tax[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_finishtask_cancel();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF Not f_power_ind(10) 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 MessageBox ("询问","是否确定要取消完成当前销售订单?",Question!,YesNo! ) = 2 THEN RETURN Long ls_taskid ls_taskid = dw_pageretr.Object.taskid[pagerert_row] IF obj_saletask.finishtask_cancel(dw_pageretr.Object.u_saletask_scid[pagerert_row],ls_taskid,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示','销售订单取消完成操作成功!',information!,OK!) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 1, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row]) END IF END IF end event event ue_create_outware_sale();//辅助生成销售发货单 IF Not f_power_ind(267) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF Long ll_storageid IF sys_option_hide_ware = 0 THEN Open(w_order_ml_storage) ll_storageid = Message.DoubleParm IF ll_storageid = 0 THEN RETURN ELSE ll_storageid = 11 END IF Long cnt String ls_msg Long i,j Long ll_scid s_saletask_ch s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF Not (dw_pageretr.Object.u_saletask_status[i] = 1 ) THEN MessageBox('系统提示','当前选定订单非在进行状态!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] s_saletask.taskid = dw_pageretr.Object.taskid[i] s_saletask.taskcode = dw_pageretr.Object.taskcode[i] s_saletask.assign_emp = dw_pageretr.Object.assign_emp[i] s_saletask.cusid = dw_pageretr.Object.u_saletask_cusid[i] s_saletask.cuscode = dw_pageretr.Object.u_cust_cuscode[i] s_saletask.cusname = dw_pageretr.Object.u_cust_name[i] IF dw_pageretr.Object.u_saletask_relcode[i] = '' THEN s_saletask.relcode = dw_pageretr.Object.taskcode[i] ELSE s_saletask.relcode = dw_pageretr.Object.u_saletask_relcode[i] END IF s_saletask.freight = dw_pageretr.Object.u_saletask_freight[i] s_saletask.freight_tele = dw_pageretr.Object.u_saletask_freight_tele[i] s_saletask.moneyid = dw_pageretr.Object.u_saletask_moneyid[i] s_saletask.dscrp = dw_pageretr.Object.dscrp[i] s_saletask.dscrp2 = dw_pageretr.Object.u_saletask_dscrp2[i] s_saletask.dscrp3 = dw_pageretr.Object.dscrp3[i] s_saletask.paytype = dw_pageretr.Object.u_saletask_paytype[i] s_saletask.banktypeid = dw_pageretr.Object.u_saletask_banktypeid[i] s_saletask.freight_address = dw_pageretr.Object.u_saletask_freight_address[i] s_saletask.Address = dw_pageretr.Object.u_saletask_cus_address[i] s_saletask.tele = dw_pageretr.Object.u_saletask_cus_tele[i] s_saletask.tele1 = dw_pageretr.Object.u_saletask_cus_tele1[i] s_saletask.fax = dw_pageretr.Object.u_saletask_cus_fax[i] s_saletask.rep = dw_pageretr.Object.u_cust_rep[i] s_saletask.lsflag = 0 //dw_pageretr.Object.u_cust_lsflag[i] s_saletask.damt = dw_pageretr.Object.u_saletask_damt[i] s_saletask.rel_rep = dw_pageretr.Object.u_saletask_rel_rep[i] s_saletask.transcode = dw_pageretr.Object.u_saletask_transcode[i] //IF cbx_ifzero.Checked = TRUE THEN s_saletask.if_zeromtrlware = 1 //ELSE // s_saletask.if_zeromtrlware = 0 //END IF s_edit_index_tran s_open IF Not IsValid(w_outware_sale) THEN OpenWithParm(w_outware_sale,s_open) w_outware_sale.ddlb_scid.uf_selectsc(ll_scid) w_outware_sale.cb_add.TriggerEvent(Clicked!) w_outware_sale.dw_uc.Object.u_outware_storageid[w_outware_sale.dw_uc.GetRow()] = ll_storageid w_outware_sale.wf_ue_f7(s_saletask) END IF end event event ue_stopqty();IF NOT f_power_ind(1723,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF IF MessageBox ("IF","是否确定修改当前明细的终止数?",Question!,YesNo! ) = 2 THEN RETURN String arg_msg = '' Long childrow,uc_row,cnt uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标订单!') RETURN END IF childrow = dw_child.GetRow() IF childrow <= 0 THEN MessageBox('系统提示','请选定当前明细物料!') RETURN END IF Long ll_scid,ll_taskid,ll_printid ll_scid = dw_pageretr.Object.u_saletask_scid[uc_row] ll_taskid = dw_pageretr.Object.taskid[uc_row] ll_printid = dw_child.Object.u_saletaskmx_printid[childrow] s_edit_index_tran s_inscust_stop s_inscust_stop.b_long = ll_scid s_inscust_stop.c_long = ll_taskid s_inscust_stop.d_long = ll_printid OpenWithParm(w_saletaskmx_stopqty_edit,s_inscust_stop) this.TriggerEvent('retrieve_childdw') wf_refresh_curuc(ll_scid,ll_taskid) end event event ue_mod_enprice();If not f_power_ind(1724,sys_msg_pow) Then MessageBox(publ_operator,sys_msg_pow) Return End If If dw_edit_mode Then Return String arg_msg = '' Long uc_row Long ll_scid,ll_taskid,ll_cusid,ll_moneyid Decimal ld_mrate uc_row = dw_pageretr.GetRow() If uc_row <= 0 Then MessageBox('系统提示','请选定当前目标订单!') Return End If If dw_pageretr.Object.u_saletask_status[uc_row] <> 1 Then MessageBox('系统提示','目标订单不是在进行或状态,操作取消!') Return End If ll_scid = dw_pageretr.Object.u_saletask_scid[uc_row] ll_taskid = dw_pageretr.Object.taskid[uc_row] ll_cusid = dw_pageretr.Object.u_saletask_cusid[uc_row] ll_moneyid = dw_pageretr.Object.u_saletask_moneyid[uc_row] ld_mrate = dw_pageretr.Object.u_saletask_mrate[uc_row] s_edit_index_tran s_open s_open.b_long = ll_scid s_open.c_long = ll_taskid s_open.d_long = ll_cusid s_open.e_long = ll_moneyid s_open.b_decimal = ld_mrate OpenWithParm(w_saletaskmx_mod_enprice,s_open) wf_refresh_curuc(ll_scid,ll_taskid) This.TriggerEvent("retrieve_childdw") end event event ue_create_oppose_cust();//辅助生成客户投诉单 IF Not f_power_ind(268) THEN MessageBox('提示','你没有客户投诉单的使用权限!', Information!, OK! ) RETURN END IF Long cnt String ls_msg Long i,j Long ll_scid s_saletask_mtrl s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF Not (dw_pageretr.Object.u_saletask_status[i] = 1 ) THEN MessageBox('系统提示','当前选定订单非在进行状态!',Information!,OK!) RETURN END IF j = dw_child.GetRow() IF j <= 0 THEN MessageBox('系统提示','请选定当前目标订单明细产品!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] //dw_pageretr s_saletask.scid[1] = dw_pageretr.Object.u_saletask_scid[i] s_saletask.taskid[1] = dw_pageretr.Object.taskid[i] s_saletask.taskcode[1] = dw_pageretr.Object.taskcode[i] s_saletask.cusid[1] = dw_pageretr.Object.u_saletask_cusid[i] s_saletask.cusname[1] = dw_pageretr.Object.u_cust_name[i] //dw_child s_saletask.printid[1] = dw_child.Object.u_saletaskmx_printid[j] s_saletask.mtrlid[1] = dw_child.Object.mtrlid[j] s_saletask.mtrlcode[1] = dw_child.Object.u_mtrldef_mtrlcode[j] s_saletask.mtrlname[1] = dw_child.Object.mtrlname[j] s_saletask.mtrlmode[1] = dw_child.Object.u_mtrldef_mtrlmode[j] s_saletask.qty[1] = dw_child.Object.usaleqty[j] s_edit_index_tran s_open IF Not IsValid(w_oppose_cust) THEN OpenWithParm(w_oppose_cust,s_open) w_oppose_cust.cb_add.TriggerEvent(Clicked!) w_oppose_cust.wf_ue_f10(s_saletask) END IF end event event ue_create_reissue();//辅助生成客户费用单 IF Not f_power_ind(1020) THEN MessageBox('提示','你没有客户费用单的使用权限!', Information!, OK! ) RETURN END IF Long cnt String arg_msg Long i,j Long ll_scid, ll_taskid //s_saletask_mtrl s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF (dw_pageretr.Object.u_saletask_status[i] = 0 ) THEN MessageBox('系统提示','当前选定订单未审核!',Information!,OK!) RETURN END IF //j = dw_child.GetRow() //IF j <= 0 THEN // MessageBox('系统提示','请选定当前目标订单明细产品!',Information!,OK!) // RETURN //END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] ////dw_pageretr //s_saletask.scid[1] = dw_pageretr.Object.u_saletask_scid[i] //s_saletask.taskid[1] = dw_pageretr.Object.taskid[i] //s_saletask.taskcode[1] = dw_pageretr.Object.taskcode[i] // //s_saletask.cusid[1] = dw_pageretr.Object.u_saletask_cusid[i] //s_saletask.cusname[1] = dw_pageretr.Object.u_cust_name[i] // ////dw_child //s_saletask.printid[1] = dw_child.Object.u_saletaskmx_printid[j] //s_saletask.mtrlid[1] = dw_child.Object.mtrlid[j] //s_saletask.mtrlcode[1] = dw_child.Object.u_mtrldef_mtrlcode[j] //s_saletask.mtrlname[1] = dw_child.Object.mtrlname[j] //s_saletask.mtrlmode[1] = dw_child.Object.u_mtrldef_mtrlmode[j] //s_saletask.qty[1] = dw_child.Object.usaleqty[j] s_edit_index_tran s_open IF Not IsValid(w_reissue) THEN OpenWithParm(w_reissue,s_open) w_reissue.ddlb_scid.uf_selectsc(ll_scid) w_reissue.cb_add.TriggerEvent(Clicked!) w_reissue.wf_adduc_saletask(ll_scid, ll_taskid, arg_msg) END IF end event event ue_view_reissue();//查看客户费用单 IF Not f_power_ind(1020) THEN MessageBox('提示','你没有客户费用单的使用权限!', Information!, OK! ) RETURN END IF Long cnt String arg_msg Long i,j Long ll_scid, ll_taskid String ls_taskcode dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF If (dw_pageretr.Object.u_saletask_status[i] = 0 ) THEN MessageBox('系统提示','当前选定订单未审核!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] ls_taskcode = dw_pageretr.Object.taskcode[i] //f_open_win(ll_scid,ls_code) s_edit_index_tran s_open s_open.work_mode = 0 s_open.arg_pkid = 0 s_open.arg_string_code = ls_taskcode s_open.c_long = ll_scid s_open.d_long = 2 s_open.if_retrieve_all = local_retrieve_all //s_tran.d_string = ls_taskcode window openwin OpenWithParm(openwin,s_open,'w_reissue') 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_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_saletask_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_saletask_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_saletask_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_saletask_itemmx_scid[child_row] =cur_scid dw_fymx.Object.u_saletask_itemmx_itype[child_row] =1//方向类型默认为增项 dw_fymx.SetColumn('u_saletask_itemmx_amt') END IF dw_fymx.SelectRow(0,False) dw_fymx.SelectRow(child_row,True) dw_fymx.SetRow(child_row) dw_fymx.SetRedraw(True) dw_fymx.SetFocus() 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_saletask_freight[ll_row] = s_station_2.stationname dw_uc.Object.u_saletask_freight_tele[ll_row] = s_station_2.tele //dw_uc.Object.u_outware_relstr_3[ll_row] = s_station_2.address dw_uc.Object.u_saletask_freight_address[ll_row] = s_station_2.address END IF END IF end event event ue_pricelist_update(); IF Not f_power_ind(1742,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '',LS_STR Long uc_row s_inputbox S_SREU uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标订单!') RETURN END IF IF dw_pageretr.Object.u_saletask_status[uc_row] = 0 THEN MessageBox('系统提示','待审核状态下不能执行本功能!') RETURN END IF s_edit_index_tran s_level s_level.b_long = dw_pageretr.Object.u_saletask_scid[uc_row] s_level.c_long = dw_pageretr.Object.taskid[uc_row] OpenWithParm(w_saletaskmx_update_price_list,s_level) end event event ue_create_buytask();//辅助生成采购订单 IF Not f_power_ind(93) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF Long cnt String ls_msg Long i,j Long ll_scid, ll_taskid s_saletask_ch s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF Not (dw_pageretr.Object.u_saletask_status[i] = 1 ) THEN MessageBox('系统提示','当前选定订单非在进行状态!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] s_saletask.scid = ll_scid s_saletask.taskid = ll_taskid s_saletask.taskcode = dw_pageretr.Object.taskcode[i] s_saletask.assign_emp = dw_pageretr.Object.assign_emp[i] s_saletask.cusid = dw_pageretr.Object.u_saletask_cusid[i] s_saletask.cuscode = dw_pageretr.Object.u_cust_cuscode[i] s_saletask.cusname = dw_pageretr.Object.u_cust_name[i] s_saletask.relcode = dw_pageretr.Object.u_saletask_relcode[i] s_saletask.freight = dw_pageretr.Object.u_saletask_freight[i] s_saletask.freight_tele = dw_pageretr.Object.u_saletask_freight_tele[i] s_saletask.moneyid = dw_pageretr.Object.u_saletask_moneyid[i] s_saletask.dscrp2 = dw_pageretr.Object.u_saletask_dscrp2[i] s_saletask.dscrp = dw_pageretr.Object.dscrp[i] SELECT count(*) INTO :cnt FROM u_saletaskmx WHERE scid = :ll_scid AND taskid = :ll_taskid And needbuyqty - buytaskqty > 0 ; IF sqlca.SQLCode <> 0 THEN cnt = 0 END IF IF cnt = 0 THEN MessageBox('系统提示','没有需采购数,不能建采购订单!',Information!,OK!) RETURN END IF s_edit_index_tran s_open IF Not IsValid(w_buytask) THEN OpenWithParm(w_buytask,s_open) w_buytask.ddlb_scid.uf_selectsc(ll_scid) w_buytask.cb_add.TriggerEvent(Clicked!) w_buytask.dw_uc.Object.u_buytask_billtype[w_buytask.dw_uc.GetRow()] = 1 w_buytask.TriggerEvent('ue_f9') w_buytask.wf_autoaddmx_sale(s_saletask) END IF end event event ue_create_taskdamt();//辅助生成客户费用单 IF Not f_power_ind(1020) THEN MessageBox('提示','你没有客户费用单的使用权限!', Information!, OK! ) RETURN END IF Long cnt String arg_msg Long i,j Long ll_scid, ll_taskid //s_saletask_mtrl s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF (dw_pageretr.Object.u_saletask_status[i] = 0 ) THEN MessageBox('系统提示','当前选定订单未审核!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] s_edit_index_tran s_open IF Not IsValid(w_taskdamt) THEN OpenWithParm(w_taskdamt,s_open) w_taskdamt.ddlb_scid.uf_selectsc(ll_scid) w_taskdamt.cb_add.TriggerEvent(Clicked!) w_taskdamt.wf_adduc_saletask(ll_scid, ll_taskid, arg_msg) END IF end event event ue_cmpl_otheramt();IF Not dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF Long uc_row uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF Decimal lde_msttakeamt Decimal lde_otheramt Long i dw_child.accepttext() FOR i = 1 To dw_child.RowCount() lde_msttakeamt += dw_child.Object.enamt[i] NEXT OpenWithParm(w_saletask_cmpl_otheramt,lde_msttakeamt) lde_otheramt = Message.DoubleParm dw_uc.Object.u_saletask_otheramt[uc_row] = lde_otheramt end event event ue_stopsaletask_cancel();IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF Not f_power_ind(10) 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 MessageBox ("询问","是否确定要取消作终止? ",Question!,YesNo! ) = 2 THEN RETURN dw_pageretr.AcceptText() IF obj_saletask.stopsaletask_cancel(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row],arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示','订单取消终止操作成功!',information!,OK!) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 6, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(dw_pageretr.Object.u_saletask_scid[pagerert_row],dw_pageretr.Object.taskid[pagerert_row]) END IF 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_p_rebate();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定折扣', question!, YesNo!, 1) = 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_saletaskmx_rebate[ll_i] = dw_child.Object.u_saletaskmx_rebate[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_p_saleqty();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定数量', question!, YesNo!, 1) = 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.usaleqty[ll_i] = dw_child.Object.usaleqty[1] NEXT dw_child.SetRedraw(TRUE) 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.mtrlid[child_row] <= 0 THEN RETURN ls_mxdscrp = dw_child.Object.u_saletaskmx_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_saletaskmx_addqty[child_row] = s_input.addqty IF s_input.addqtystr <> '' THEN dw_child.Object.u_saletaskmx_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.usaleqty[child_row] = s_input.qty END IF END IF end event event ue_paudit_task();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(6) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批审核的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批审核?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 0 THEN CONTINUE IF obj_saletask.audit(ll_scid,ll_taskid,publ_operator,arg_msg,False) = 0 THEN ls_msg2 += ls_taskcode+',审核失败,'+arg_msg+'~r~n' CONTINUE END IF IF obj_saletask.salepermit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN ls_msg2 += ls_taskcode+',二审失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',审核成功!'+'~r~n' END IF IF f_billevent_trigger (102, 3, ls_taskcode, arg_msg) = 0 THEN ls_msg2 += ls_taskcode+',触发审核失败,'+arg_msg+'~r~n' END IF IF f_billevent_trigger (102, 4, ls_taskcode, arg_msg) = 0 THEN ls_msg2 += ls_taskcode+',触发终审失败,'+arg_msg+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_paudit2_task();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(1729) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批审核的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批二审?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 4 THEN CONTINUE IF obj_saletask.salepermit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN ls_msg2 += ls_taskcode+',二审失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',二审成功!'+'~r~n' END IF IF f_billevent_trigger (102, 4, ls_taskcode, arg_msg) = 0 THEN ls_msg2 += ls_taskcode+',触发终审失败,'+arg_msg+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_paudit_task_cancel();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(8) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批审核的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批审核?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 1 THEN CONTINUE IF obj_saletask.cancelpermit(ll_scid,ll_taskid,arg_msg,false) = 0 THEN ls_msg2 += ls_taskcode+',二审撤审失败,'+arg_msg+'~r~n' CONTINUE END IF IF obj_saletask.audit_cancel(ll_scid,ll_taskid,arg_msg,true) = 0 THEN ls_msg2 += ls_taskcode+',撤审失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',撤审成功!'+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_paudit1_task();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(6) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批审核的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批审核?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 0 THEN CONTINUE IF obj_saletask.audit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN ls_msg2 += ls_taskcode+',审核失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',审核成功!'+'~r~n' END IF IF f_billevent_trigger (102, 3, ls_taskcode, arg_msg) = 0 THEN ls_msg2 += ls_taskcode+',触发审核失败,'+arg_msg+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_paudit2_task_cancel();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(1730) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批二审撤审的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批二审撤审?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 1 THEN CONTINUE IF obj_saletask.cancelpermit(ll_scid,ll_taskid,arg_msg,true) = 0 THEN ls_msg2 += ls_taskcode+',二审撤审失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',二审撤审成功!'+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_paudit1_task_cancel();IF dw_edit_mode THEN RETURN String arg_msg, ls_msg,ls_msg2 Long i,ch Long ll_scid, ll_taskid Int li_status String ls_taskcode IF Not f_power_ind(8) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ch++ END IF NEXT IF ch = 0 THEN MessageBox('提示','请选定要批审核的订单!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要对已选择的订单批审核?",Question!,YesNo! ) = 2 THEN RETURN FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.ch[i] = 1 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] li_status = dw_pageretr.Object.u_saletask_status[i] ls_taskcode = dw_pageretr.Object.taskcode[i] IF li_status <> 4 THEN CONTINUE IF obj_saletask.audit_cancel(ll_scid,ll_taskid,arg_msg,True) = 0 THEN ls_msg2 += ls_taskcode+',撤审失败,'+arg_msg+'~r~n' CONTINUE END IF ls_msg2 += ls_taskcode+',撤审成功!'+'~r~n' END IF NEXT OpenWithParm(w_message_err,ls_msg2) TriggerEvent('retrieve_pageretr') end event event ue_mx_cmplnoallocqty();Long i,ll_mtrlid String ls_status,ls_woodcode,ls_pcode,ls_plancode Decimal ld_notsaleqty,ld_noallocqty,ld_cqty,ld_mtrlqty,ld_qty,ld_allqty string arg_msg,arg_lsg string ls_mesage = "" dw_child.SetRedraw(False) FOR i = 1 To dw_child.RowCount() ld_notsaleqty=0 ll_mtrlid=0 ls_status='' ls_woodcode='' ls_pcode='' ls_plancode='' ld_notsaleqty = dw_child.Object.usaleqty[i] - dw_child.Object.consignedqty[i] - dw_child.Object.u_saletaskmx_stopqty[i] ll_mtrlid = dw_child.Object.mtrlid[i] ls_status = dw_child.Object.u_saletaskmx_status[i] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[i] ls_pcode = dw_child.Object.u_saletaskmx_pcode[i] ls_plancode = dw_child.Object.u_saletaskmx_plancode[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.mtrlid = :ll_mtrlid and u_mtrlware.status = :ls_status and u_mtrlware.woodcode = :ls_woodcode and u_mtrlware.pcode = :ls_pcode and u_mtrlware.plancode = :ls_plancode And u_storage.inuse = 1; IF sqlca.SQLCode <> 0 THEN ld_noallocqty = 0 END IF ld_allqty = 0 SELECT sum(u_SaleTaskMx.uSaleQty - u_SaleTaskMx.consignedQty - u_SaleTaskMx.stopqty) as allqty Into :ld_allqty FROM u_SaleTaskMx INNER JOIN u_SaleTask ON u_SaleTaskMx.scid = u_SaleTask.scid AND u_SaleTaskMx.TaskID = u_SaleTask.TaskID WHERE u_SaleTask.Status = 1 AND u_SaleTaskMx.MtrlID = :ll_mtrlid AND u_SaleTaskMx.status = :ls_status AND u_SaleTaskMx.woodcode = :ls_woodcode AND u_SaleTaskMx.pcode = :ls_pcode; IF sqlca.SQLCode <> 0 THEN ld_allqty = 0 END IF IF f_cmp_di_qty(ll_mtrlid, -1,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 //dw_child.Object.cqty[i] = ld_notsaleqty - ld_noallocqty IF ISNULL(ld_allqty) THEN ld_allqty = 0 dw_child.Object.allqty[i] = ld_allqty dw_child.Object.allcanuseqty[i] =dw_child.Object.noallocqty[i] - dw_child.Object.allqty[i] NEXT dw_child.SetRedraw(True) //if ls_mesage <> "" then MessageBox('错误',ls_mesage,stopsign!,OK!) 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.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_saletaskmx_status' THEN IF ll_statusflag<>5 and ll_statusflag<>0 THEN RETURN ELSEIF arg_status = 'u_saletaskmx_woodcode' THEN IF ll_woodcodeflag<>5 and ll_woodcodeflag<>0 THEN RETURN ELSEIF arg_status = 'u_saletaskmx_pcode' then IF ll_pcodeflag<>5 and ll_pcodeflag<>0 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_mx_requiredate();IF dw_edit_mode THEN return IF dw_pageretr.getrow()<=0 then messagebox("提示","请选择订单") return end if datetime rq long cnt long ll_scid,ll_taskid cnt = dw_pageretr.getrow() ll_scid = dw_pageretr.object.u_saletask_scid[cnt] ll_taskid = dw_pageretr.object.taskid[cnt] s_edit_index_tran s_tranr //传递参数使用 s_tranr.b_long = ll_scid s_tranr.c_long = ll_taskid openwithparm(w_edit_mx_requiredate,s_tranr) select requiredate into :rq from u_saletask where taskid = :ll_taskid and scid = :ll_scid; dw_uc.object.requiredate[dw_uc.getrow()] = rq dw_pageretr.object.requiredate[cnt] = rq TriggerEvent("retrieve_childdw") //dw_child.retrieve() //s_saletask s_sale //s_sale.scid = dw_pageretr.object.scid[cnt] //s_sale.taskid = dw_pageretr.object.taskid[cnt] 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_saletaskmx_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_saletaskmx_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_saletaskmx_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_saletaskmx_mxdscrp4[dw_child.GetRow()] = s_return.dscrp END IF end event event ue_importseleprice_buchong();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 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_saletask_moneyid[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_buchong(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN MessageBox('提示',arg_msg,information!,OK!) RETURN END IF //IF uo_cus_price.uof_chk_pricelistid(ll_pricelistid, ll_moneyid, arg_msg) = 0 THEN // MessageBox('提示',arg_msg,information!,OK!) // RETURN //END IF // //dw_child.AcceptText() //FOR ls_row = 1 To dw_child.RowCount() // ls_mtrlid = dw_child.Object.mtrlid[ls_row] // ls_status = dw_child.Object.u_saletaskmx_status[ls_row] // ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] // ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] // ls_unit = dw_child.Object.u_saletaskmx_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.mtrlname[ls_row])+" 的客户定价尚未设定! ~n" // ELSE // dw_child.Object.u_saletaskmx_enprice[ls_row] = obj_price // END IF //NEXT // // //IF err_str <> '' THEN // MessageBox('错误',err_str,stopsign!,OK!) //END IF 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.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_saletaskmx_enprice[child_row] s_cmpl.formula = dw_child.Object.u_saletaskmx_priceformula[child_row] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[child_row] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[child_row] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[child_row] s_cmpl.status = dw_child.Object.u_saletaskmx_status[child_row] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[child_row] s_cmpl.pcode = dw_child.Object.u_saletaskmx_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_saletaskmx_mxdscrp[child_row] s_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[child_row] s_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[child_row] s_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[child_row] li_mtrlid = dw_child.Object.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_saletaskmx_enprice[child_row] = s_return.qty dw_child.Object.u_saletaskmx_priceformula[child_row] = s_return.formula END IF END IF end event event ue_p_priceformula_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_saletaskmx_priceformula[ll_i] = dw_child.Object.u_saletaskmx_priceformula[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_p_cmpl_price();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_saletaskmx_priceformula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_saletaskmx_priceformula[i] s_cmpl.status = dw_child.Object.u_saletaskmx_status[i] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[i] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[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_saletaskmx_enprice[i] = ld_qty END IF NEXT ext: dw_child.SetColumn('u_saletaskmx_enprice') dw_uc.SetRedraw(TRUE) 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.cusid[uc_row] ll_mtrlid = dw_child.Object.mtrlid[ll_row] ls_status= dw_child.Object.u_saletaskmx_status[ll_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ll_row] ls_pcode= dw_child.Object.u_saletaskmx_pcode[ll_row] ls_plancode= dw_child.Object.u_saletaskmx_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.cusid[uc_row] ll_mtrlid = dw_child.Object.mtrlid[ll_row] ls_status= dw_child.Object.u_saletaskmx_status[ll_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ll_row] ls_pcode= dw_child.Object.u_saletaskmx_pcode[ll_row] ls_plancode= dw_child.Object.u_saletaskmx_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_create_inware_cp();//辅助生成生产进仓单 IF Not (f_power_ind(376) Or f_power_ind(1054)) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF Long ll_storageid IF sys_option_hide_ware = 0 THEN Open(w_order_ml_storage) ll_storageid = Message.DoubleParm IF ll_storageid = 0 THEN RETURN ELSE ll_storageid = 11 END IF Long cnt String ls_msg Long i,j Long ll_scid, ll_taskid s_saletask_ch s_saletask dw_pageretr.AcceptText() i = dw_pageretr.GetRow() IF i <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF Not (dw_pageretr.Object.u_saletask_status[i] = 1 ) THEN MessageBox('系统提示','当前选定订单非在进行状态!',Information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[i] ll_taskid = dw_pageretr.Object.taskid[i] s_saletask.scid = ll_scid s_saletask.taskid = ll_taskid s_saletask.taskcode = dw_pageretr.Object.taskcode[i] s_saletask.assign_emp = dw_pageretr.Object.assign_emp[i] s_saletask.cusid = dw_pageretr.Object.u_saletask_cusid[i] s_saletask.cuscode = dw_pageretr.Object.u_cust_cuscode[i] s_saletask.cusname = dw_pageretr.Object.u_cust_name[i] s_saletask.relcode = dw_pageretr.Object.u_saletask_relcode[i] s_saletask.freight = dw_pageretr.Object.u_saletask_freight[i] s_saletask.freight_tele = dw_pageretr.Object.u_saletask_freight_tele[i] s_saletask.moneyid = dw_pageretr.Object.u_saletask_moneyid[i] s_saletask.dscrp2 = dw_pageretr.Object.u_saletask_dscrp2[i] s_saletask.dscrp = dw_pageretr.Object.dscrp[i] s_edit_index_tran s_open IF Not IsValid(w_inware_cp) THEN OpenWithParm(w_inware_cp,s_open) w_inware_cp.ddlb_scid.uf_selectsc(ll_scid) w_inware_cp.cb_add.TriggerEvent(Clicked!) String errmsg = '' w_inware_cp.wf_autoaddmx(cur_scid,ll_taskid,s_saletask.taskcode,ll_storageid,s_saletask.cusid,errmsg) w_inware_cp.dw_uc.SetRedraw(True) END IF //SELECT count(*) // INTO :cnt // FROM u_saletaskmx // WHERE scid = :ll_scid // AND taskid = :ll_taskid // And needbuyqty - buytaskqty > 0 ; //IF sqlca.SQLCode <> 0 THEN // cnt = 0 //END IF //IF cnt = 0 THEN // MessageBox('系统提示','没有需采购数,不能建采购订单!',Information!,OK!) // RETURN //END IF // // //s_edit_index_tran s_open //IF Not IsValid(w_buytask) THEN // OpenWithParm(w_buytask,s_open) // // w_buytask.ddlb_scid.uf_selectsc(ll_scid) // w_buytask.cb_add.TriggerEvent(Clicked!) // // w_buytask.dw_uc.Object.u_buytask_billtype[w_buytask.dw_uc.GetRow()] = 1 // w_buytask.TriggerEvent('ue_f9') // w_buytask.wf_autoaddmx_sale(s_saletask) //END IF end event event ue_priceaudit();IF dw_edit_mode THEN RETURN String arg_msg = '', ls_msg Long pagerert_row Long ll_scid, ll_taskid Int li_status String ls_taskcode Boolean lb_audit = False, lb_secaudit = False, lb_commit = True IF Not f_power_ind(1826) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[pagerert_row] ll_taskid = dw_pageretr.Object.taskid[pagerert_row] li_status = dw_pageretr.Object.u_saletask_status[pagerert_row] IF MessageBox ("询问","是否确定要对当前订单确认?",Question!,YesNo! ) = 2 THEN RETURN IF obj_saletask.getinfo(ll_scid,ll_taskid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF obj_saletask.priceaudit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF MessageBox('提示','销售订单确认'+'成功!',information!,OK!) wf_refresh_curuc(ll_scid,ll_taskid) end event event ue_cpriceaudit(); IF dw_edit_mode THEN RETURN String arg_msg = '', ls_msg Long pagerert_row Long ll_scid, ll_taskid Int li_status Boolean lb_secaudit = False, lb_commit = False IF Not f_power_ind(1827) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[pagerert_row] ll_taskid = dw_pageretr.Object.taskid[pagerert_row] li_status = dw_pageretr.Object.u_saletask_status[pagerert_row] IF MessageBox ("询问","是否确定要对当前订单取消确认?",Question!,YesNo! ) = 2 THEN RETURN IF obj_saletask.getinfo(ll_scid,ll_taskid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF obj_saletask.priceaudit_cancel(ll_scid,ll_taskid,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF MessageBox('提示','销售订单反确认'+'成功!',information!,OK!) wf_refresh_curuc(ll_scid,ll_taskid) end event event ue_set_dytitle();Long ll_d_col_count,i,j = 1 String ls_col_name s_dytitle_saletask ss_dytitle_saletask //col_name ll_d_col_count = Long(dw_child.Object.datawindow.Column.Count) FOR i = 1 To ll_d_col_count ls_col_name = dw_child.Describe('#' + String(i) + '.Name') IF Long(dw_child.Describe(ls_col_name + '.TabSequence ')) > 0 THEN ss_dytitle_saletask.col_name[j] = ls_col_name ss_dytitle_saletask.title_name[j] = dw_child.describe(ls_col_name + '_t.Text') j++ END IF NEXT openwithparm(w_dytitle_saletask,ss_dytitle_saletask) end event event ue_insert_execltodw();Long i,ll_cnt,j SELECT count(*) Into :ll_cnt From u_dytitle_saletask; IF ll_cnt = 0 THEN MessageBox('Error','明细标题与execl标题对应关系没有设置,请先执行设置') This.TriggerEvent('ue_set_dytitle') RETURN END IF dw_child.setredraw(false) wf_openfile(dw_child) dw_child.AcceptText() String ls_mtrlcode,ls_unit Long ll_mtrlid String arg_msg For j = dw_child.RowCount() to 1 step -1 ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[j] IF ls_mtrlcode = '' THEN dw_child.deleterow(j) end if Next FOR i = 1 To dw_child.RowCount() ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[i] IF ls_mtrlcode <> '' THEN ll_mtrlid = 0 SELECT mtrlid,unit Into :ll_mtrlid,:ls_unit From u_mtrldef Where mtrlcode = :ls_mtrlcode; IF ll_mtrlid <> 0 THEN dw_child.Object.u_saletaskmx_printid[i] = i dw_child.Object.mtrlid[i] = ll_mtrlid IF dw_child.Object.u_saletaskmx_unit[i] = '' Or IsNull(dw_child.Object.u_saletaskmx_unit[i]) THEN dw_child.Object.u_saletaskmx_unit[i] = ls_unit END IF ELSE arg_msg = arg_msg + ',' +ls_mtrlcode END IF END IF NEXT dw_child.setredraw(true) IF arg_msg <> '' THEN MessageBox('Error',arg_msg + ' 没有定义,请先定义物料') END IF end event event ue_setprice_forformula();Long child_row dw_child.AcceptText() for child_row = 1 to dw_child.rowcount() if dw_child.Object.u_saletaskmx_priceformula[child_row]<>'' then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long mtrlid,cusid mtrlid = dw_child.Object.mtrlid[child_row] cusid = dw_uc.Object.cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_saletaskmx_price[child_row] arg_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_saletaskmx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_saletaskmx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_saletaskmx_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_saletaskmx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_saletaskmx_priceformula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) 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_saletaskmx_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.taskcode[i] ls_filecount = 0 SELECT count(*) INTO :ls_filecount FROM u_file WHERE relcode = :arg_billcode AND scid = 0 AND billtype = 102 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_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.usaleqty[child_row] lde_rebate = dw_child.Object.u_saletaskmx_rebate[child_row] lde_enprice = dw_child.Object.u_saletaskmx_enprice[child_row] lde_enprice_notax = dw_child.Object.u_saletaskmx_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_saletaskmx_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_saletaskmx_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_saletaskmx_enamt_tax[child_row] //不含税总金额 dw_child.Object.u_saletaskmx_enprice_notax[child_row] = lde_enprice - lde_taxamt //不含税单价 dw_child.Object.u_saletaskmx_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_saletaskmx_enamt_tax[child_row] //总金额 dw_child.Object.u_saletaskmx_enprice[child_row] = lde_enprice_notax + lde_taxamt //单价 dw_child.Object.u_saletaskmx_tax[child_row] = lde_taxamt / lde_enprice_notax //税率 End If End If End If end event event ue_p_status();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定'+sys_option_change_status, question!, YesNo!, 1) = 2 THEN RETURN END IF Long ll_i,ll_mtrlid,ll_statusflag ll_mtrlid = dw_child.object.mtrlid[1] if ll_mtrlid = 0 then return select statusflag into :ll_statusflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then return else if ll_statusflag <> 0 then messagebox('提示','第一行明细'+sys_option_change_status+'不是自由选填') return end if end if dw_child.AcceptText() dw_child.SetRedraw(FALSE) FOR ll_i = 2 TO dw_child.RowCount() ll_mtrlid = dw_child.object.mtrlid[ll_i] if ll_mtrlid = 0 then continue select statusflag into :ll_statusflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then continue else if ll_statusflag <> 0 then continue end if dw_child.Object.u_saletaskmx_status[ll_i] = dw_child.Object.u_saletaskmx_status[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_p_woodcode();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定'+sys_option_change_woodcode, question!, YesNo!, 1) = 2 THEN RETURN END IF Long ll_i,ll_mtrlid,ll_woodcodeflag ll_mtrlid = dw_child.object.mtrlid[1] if ll_mtrlid = 0 then return select woodcodeflag into :ll_woodcodeflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then return else if ll_woodcodeflag <> 0 then messagebox('提示','第一行明细'+sys_option_change_woodcode+'不是自由选填') return end if end if dw_child.AcceptText() dw_child.SetRedraw(FALSE) FOR ll_i = 2 TO dw_child.RowCount() ll_mtrlid = dw_child.object.mtrlid[ll_i] if ll_mtrlid = 0 then continue select woodcodeflag into :ll_woodcodeflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then continue else if ll_woodcodeflag <> 0 then continue end if dw_child.Object.u_saletaskmx_woodcode[ll_i] = dw_child.Object.u_saletaskmx_woodcode[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_p_pcode();IF NOT dw_edit_mode THEN RETURN IF MessageBox('提示','是否要确定要批设定'+sys_option_change_pcode, question!, YesNo!, 1) = 2 THEN RETURN END IF Long ll_i,ll_mtrlid,ll_pcodeflag ll_mtrlid = dw_child.object.mtrlid[1] if ll_mtrlid = 0 then return select pcodeflag into :ll_pcodeflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then return else if ll_pcodeflag <> 0 then messagebox('提示','第一行明细'+sys_option_change_pcode+'不是自由选填') return end if end if dw_child.AcceptText() dw_child.SetRedraw(FALSE) FOR ll_i = 2 TO dw_child.RowCount() ll_mtrlid = dw_child.object.mtrlid[ll_i] if ll_mtrlid = 0 then continue select pcodeflag into :ll_pcodeflag from u_mtrldef where mtrlid = :ll_mtrlid; if sqlca.sqlcode <> 0 then continue else if ll_pcodeflag <> 0 then continue end if dw_child.Object.u_saletaskmx_pcode[ll_i] = dw_child.Object.u_saletaskmx_pcode[1] NEXT dw_child.SetRedraw(TRUE) end event event ue_setqty_forformula();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 s_cmpl.addvalue = 1 s_cmpl.num = long(ddlb_weishu.text) dw_uc.SetRedraw(false) FOR i = 1 TO dw_child.RowCount() ld_qty = 0 IF dw_child.Object.u_saletaskmx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_saletaskmx_formula[i] s_cmpl.status = dw_child.Object.u_saletaskmx_status[i] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] s_cmpl.mxdscrp = dw_child.Object.u_saletaskmx_mxdscrp[i] s_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[i] s_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[i] s_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[i] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[i] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[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.usaleqty[i] = ld_qty END IF NEXT ext: dw_child.SetColumn('usaleqty') dw_uc.SetRedraw(TRUE) end event event ue_mx_alter();IF NOT f_power_ind(2055,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF String arg_msg = '' Long childrow,uc_row,cnt uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标订单!') RETURN END IF childrow = dw_child.GetRow() IF childrow <= 0 THEN MessageBox('系统提示','请选定当前明细物料!') RETURN END IF Long ll_scid,ll_taskid,ll_printid ll_scid = dw_pageretr.Object.u_saletask_scid[uc_row] ll_taskid = dw_pageretr.Object.taskid[uc_row] ll_printid = dw_child.Object.u_saletaskmx_printid[childrow] s_edit_index_tran s_inscust_open s_inscust_open.d_long = 1 s_inscust_open.c_long = ll_scid s_inscust_open.arr_long[1] = ll_scid s_inscust_open.arr_long2[1] = ll_taskid s_inscust_open.arr_long3[1] = ll_printid OpenWithParm(w_saletask_altermtrl,s_inscust_open) end event event ue_saletask_choose();s_choose s_c OpenWithParm(w_choose,s_c) s_c = Message.PowerObjectParm IF NOT s_c.ifok THEN RETURN cbx_enamt_edit.Checked=s_c.amt_price cbx_zk.Checked=s_c.amt_zk cbx_enamt_notax_edit.Checked=s_c.notax_price cbx_auto_qty.Checked=s_c.ifauto ddlb_weishu.text=s_c.weishu IF cbx_enamt_edit.Checked=TRUE and cbx_zk.Checked=FALSE THEN cbx_enamt_edit.TriggerEvent(Clicked!) ELSEIF cbx_enamt_edit.Checked=FALSE and cbx_zk.Checked=TRUE THEN cbx_zk.TriggerEvent(Clicked!) ELSE cbx_enamt_edit.TriggerEvent(Clicked!) cbx_zk.TriggerEvent(Clicked!) END IF //cbx_enamt_edit.TriggerEvent(Clicked!) //cbx_zk.TriggerEvent(Clicked!) cbx_enamt_notax_edit.TriggerEvent(Clicked!) cbx_auto_qty.TriggerEvent(Clicked!) ddlb_weishu.TriggerEvent(Clicked!) end event event ue_create_buytask_auto();//辅助生成采购订单 IF Not f_power_ind(93) THEN MessageBox('提示',sys_msg_pow, Information!, OK! ) RETURN END IF Long rslt = 1 Long it_mx = 0 Long cnt,row String arg_msg String ls_msg Long i,j Long ll_scid, ll_taskid Long sptid_arr[] Decimal ld_qty Long ll_storageid uo_buytask obj_task obj_task = Create uo_buytask obj_task.commit_transaction = sqlca uo_spt_price uo_sptprice uo_sptprice = Create uo_spt_price s_saletask_ch s_saletask dw_pageretr.AcceptText() row = dw_pageretr.GetRow() IF dw_pageretr.GetRow() <= 0 THEN MessageBox('系统提示','请选定当前目标订单!',Information!,OK!) RETURN END IF IF Not (dw_pageretr.Object.u_saletask_status[row] = 1 ) THEN MessageBox('系统提示','当前选定订单非在进行状态!',Information!,OK!) RETURN END IF for i = 1 to dw_child.rowcount() IF dw_child.object.u_saletaskmx_needbuyqty[i] - dw_child.object.u_saletaskmx_buytaskqty[i] - dw_child.object.buyqty[i] > 0 THEN cnt++ END IF next IF cnt = 0 then messagebox("提示","没有需要建立采购订单的明细") RETURN END IF //确定供应商 cnt = 0 FOR i = 1 To dw_child.RowCount() IF dw_child.object.u_saletaskmx_needbuyqty[i] - dw_child.object.u_saletaskmx_buytaskqty[i] - dw_child.object.buyqty[i] > 0 THEN IF dw_child.Object.u_mtrldef_dftsptid[i] = 0 THEN messagebox("提示","第"+String(i)+"行:"+"该物料没有默认供应商") RETURN END IF FOR j = 1 To UpperBound(sptid_arr) IF sptid_arr[j] = dw_child.Object.u_mtrldef_dftsptid[i] THEN GOTO nxt END IF NEXT cnt ++ sptid_arr[cnt] = dw_child.Object.u_mtrldef_dftsptid[i] END IF nxt: NEXT ll_scid = dw_pageretr.Object.u_saletask_scid[row] ll_taskid = dw_pageretr.Object.taskid[row] s_saletask.scid = ll_scid s_saletask.taskid = ll_taskid s_saletask.taskcode = dw_pageretr.Object.taskcode[row] Long dftbanktypeid,dftmoneyid String ls_sptcode, ls_sptname FOR i = 1 to upperbound(sptid_arr) //查询默认结算方式,默认币种 SELECT dftbanktypeid,dftmoneyid, sptcode,name INTO :dftbanktypeid,:dftmoneyid, :ls_sptcode, :ls_sptname FROM u_spt Where sptid = :sptid_arr[i] Using sqlca; IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询供应商信息失败,ID['+String(sptid_arr[i])+'],'+sqlca.SQLErrText GOTO ext END IF IF dftbanktypeid = 0 THEN rslt = 0 arg_msg = '供应商编号['+ls_sptcode+']未定义默认结算方式' GOTO ext END IF IF dftmoneyid = 0 THEN rslt = 0 arg_msg = '供应商编号['+ls_sptcode+']未定义默认币种' GOTO ext END IF s_buytaskmx_arr s_buy IF obj_task.newbegin(ll_scid,arg_msg) = 0 THEN // rslt = 0 GOTO ext END IF obj_task.requiredate = DateTime(Today()) obj_task.Assign_emp = publ_operator obj_task.Kind = 0 obj_task.sptid = sptid_arr[i] obj_task.relcode = s_saletask.taskcode obj_task.banktypeid = dftbanktypeid obj_task.train = '' obj_task.billtype = 1 obj_task.moneyid = dftmoneyid obj_task.mrate = f_get_mrate( dftmoneyid) obj_task.dscrp = "销售订单辅助生成" FOR j = 1 To dw_child.RowCount() IF dw_child.object.u_saletaskmx_needbuyqty[j] - dw_child.object.u_saletaskmx_buytaskqty[j] - dw_child.object.buyqty[j] > 0 And sptid_arr[i] = dw_child.Object.u_mtrldef_dftsptid[j] THEN ld_qty = dw_child.object.u_saletaskmx_needbuyqty[j] - dw_child.object.u_saletaskmx_buytaskqty[j] - dw_child.object.buyqty[j] it_mx++ s_buy.MtrlID[it_mx] = dw_child.Object.mtrlid[j] s_buy.mtrlcode[it_mx] = dw_child.Object.u_mtrldef_mtrlcode[j] s_buy.status[it_mx] = dw_child.Object.u_saletaskmx_status[j] s_buy.woodcode[it_mx] = dw_child.Object.u_saletaskmx_woodcode[j] s_buy.pcode[it_mx] = dw_child.Object.u_saletaskmx_pcode[j] s_buy.unit[it_mx] = dw_child.Object.u_mtrldef_unit[j] s_buy.qty[it_mx] = ld_qty s_buy.uqty[it_mx] = ld_qty s_buy.rate[it_mx] = 1 s_buy.relid[it_mx] = s_saletask.taskid s_buy.relprintid[it_mx] = dw_child.Object.u_saletaskmx_printid[j] s_buy.relcode[it_mx] = s_saletask.taskcode f_find_dftstorageid(dw_child.Object.mtrlid[j], ll_storageid) s_buy.storageid[it_mx] = ll_storageid //新的取价模式 Decimal ls_1stnewcost,ls_1stzqrate,ls_1strate,ld_rate String ls_unit ls_unit = s_buy.unit[it_mx] IF uo_sptprice.uof_get_mtrl_buyprice(sptid_arr[i],s_buy.MtrlID[it_mx],ls_unit,& s_buy.status[it_mx],s_buy.woodcode[it_mx],s_buy.pcode[it_mx],0,& ls_1stnewcost,ls_1stzqrate,ls_1strate,arg_msg) = 1 THEN s_buy.uprice[it_mx] = ls_1stnewcost // s_buy.rate[it_mx] = ls_1stzqrate ELSE s_buy.uprice[it_mx] = 0 END IF IF obj_task.acceptmx(0,& 0,& '',& s_buy.MtrlID[it_mx],& s_buy.uqty[it_mx],& 0,& s_buy.uprice[it_mx],& 1,& 0,& dw_child.Object.u_saletaskmx_mxdscrp[j],& s_buy.mtrlcode[it_mx],& arg_msg,& j,& DateTime(Today()),& s_buy.storageid[it_mx],& s_buy.status[it_mx],& s_buy.woodcode[it_mx],& s_buy.pcode[it_mx],& s_buy.unit[it_mx],& s_buy.rate[it_mx],& s_buy.relid[it_mx],& s_buy.relprintid[it_mx],& s_buy.relcode[it_mx],& '',& 0,0,dw_child.Object.u_saletaskmx_plancode[j],& dw_child.Object.u_saletaskmx_mxdscrp2[j],dw_child.Object.u_saletaskmx_mxdscrp3[j],dw_child.Object.u_saletaskmx_mxdscrp4[j]) = 0 THEN rslt = 0 GOTO ext END IF END IF NEXT IF obj_task.savesubmit(publ_operator,arg_msg,False) = 0 THEN rslt = 0 GOTO ext END IF NEXT ext: IF rslt = 0 THEN ROLLBACK Using sqlca; MessageBox("Error",arg_msg) ELSE COMMIT Using sqlca; MessageBox("系统提示","建立采购订单成功") THIS.TriggerEvent('retrieve_childdw') 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_saletaskmx_priceformula[child_row]<>'' then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long mtrlid,cusid mtrlid = dw_child.Object.mtrlid[child_row] cusid = dw_uc.Object.cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_saletaskmx_price[child_row] arg_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_saletaskmx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_saletaskmx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_saletaskmx_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_saletaskmx_mxdscrp[child_row] arg_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[child_row] arg_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[child_row] arg_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[child_row] arg_cmpl.formula = dw_child.Object.u_saletaskmx_priceformula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) 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_saletaskmx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if end event event ue_setqty_forformula_1();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 i = dw_child.getrow() dw_child.AcceptText() s_cmpl_qty s_cmpl s_cmpl.addvalue = 1 s_cmpl.num = long(ddlb_weishu.text) dw_uc.SetRedraw(false) ld_qty = 0 IF dw_child.Object.u_saletaskmx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_saletaskmx_formula[i] s_cmpl.status = dw_child.Object.u_saletaskmx_status[i] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] s_cmpl.mxdscrp = dw_child.Object.u_saletaskmx_mxdscrp[i] s_cmpl.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[i] s_cmpl.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[i] s_cmpl.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[i] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[i] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[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.usaleqty[i] = ld_qty END IF ext: dw_child.SetColumn('usaleqty') dw_uc.SetRedraw(TRUE) end event event ue_copy_needqty();Long i Decimal lde_rate dw_child.AcceptText() FOR i = 1 To dw_child.RowCount() lde_rate = dw_child.Object.u_saletaskmx_rate[i] IF lde_rate = 0 THEN lde_rate = 1 dw_child.Object.u_saletaskmx_rate[i] = 1 END IF dw_child.Object.u_saletaskmx_needbuyqty[i] = dw_child.Object.usaleqty[i] * lde_rate NEXT end event public function integer wf_cusdetail ();////wf_cusdetail // //long ls_row,ls_cusid // //ls_row=dw_uc.getrow() //if ls_row=0 then // messagebox('系统提示','没有选定当前行!') // if isvalid(w_cust_mtrlprice) then close(w_cust_mtrlprice) // return 0 //else // ls_cusid=dw_uc.object.cusid[ls_row] // if isnull(ls_cusid) or ls_cusid<=0 then // messagebox('系统提示','没有选定当前客户,请在编辑状态双击或按F9选择客户!') // if isvalid(w_cust_mtrlprice) then close(w_cust_mtrlprice) // return 0 // end if //end if // //if isvalid(w_cust_mtrlprice) then // Send(Handle(w_cust_mtrlprice), 274, 61728, 0) //else // open(w_cust_mtrlprice) //end if // w_cust_mtrlprice.wf_refresh(ls_cusid) // return 1 end function public function integer wf_statusbtn_fc ();//wf_statusbtn_fc IF dw_edit_mode THEN cb_auditing_cancel.Enabled = False cb_auditing.Enabled = False RETURN 0 END IF Long ls_row, li_status ls_row = dw_pageretr.GetRow() IF Not ls_row > 0 THEN cb_auditing_cancel.Enabled = False cb_auditing.Enabled = False cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' RETURN 0 END IF li_status = dw_pageretr.Object.u_saletask_status[ls_row] CHOOSE CASE li_status CASE 0 cb_auditing_cancel.Enabled = False cb_auditing.Enabled = True cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' CASE 1 cb_auditing_cancel.Enabled = True cb_auditing.Enabled = False IF sys_option_saletask_secaudit = 0 THEN cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' ELSE cb_auditing.Text = '二审&F' cb_auditing_cancel.Text = '二撤' END IF CASE 2 cb_auditing_cancel.Enabled = False cb_auditing.Enabled = False cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' CASE 3 cb_auditing_cancel.Enabled = False cb_auditing.Enabled = False cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' CASE 4 cb_auditing_cancel.Enabled = True cb_auditing.Enabled = True cb_auditing.Text = '二审&F' cb_auditing_cancel.Text = '撤审' CASE 5 cb_auditing_cancel.Enabled = False cb_auditing.Enabled = False cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' CASE ELSE cb_auditing_cancel.Enabled = True cb_auditing.Enabled = True cb_auditing.Text = '审核&F' cb_auditing_cancel.Text = '撤审' END CHOOSE cb_auditing.TriggerEvent('ue_textchange') cb_auditing_cancel.TriggerEvent('ue_textchange') RETURN 0 end function public function integer wf_refresh_curuc (long arg_scid, long arg_taskid);//wf_refresh_curuc Int rslt = 1 IF arg_taskid <= 0 OR IsNull(arg_taskid) THEN rslt = 0 GOTO ext END IF Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN rslt = 0 GOTO ext END IF Int Kind DateTime requiredate String assign_emp String dscrp String dscrp2 String paytype, transcode, carcode String taskcode Long cusid DateTime accomplishdate Int status String operator, modemp, permit_emp,auditemp DateTime opdate, moddate, permit_date,auditdate String last_emp String u_cust_name String u_cust_cuscode Long moneyid Long banktypeid Decimal mrate String relcode Decimal damt Decimal otheramt String cus_address String cus_tele, cus_tele1 String freight String cus_fax String freight_tele DateTime taskdate string dscrp3 string rel_rep dec msttakeamt, takeamt, takedamt, notakeamt string freight_address long priceflag Dec stop_amt SELECT u_saletask.kind, u_saletask.requiredate, u_saletask.assign_emp, u_saletask.dscrp, u_saletask.dscrp2, u_saletask.paytype, u_saletask.transcode, u_saletask.carcode, u_saletask.taskcode, u_saletask.cusid, u_saletask.accomplishdate, u_saletask.status, u_saletask.opemp, u_saletask.opdate, u_saletask.modemp, u_saletask.moddate, u_saletask.permit_emp, u_saletask.permit_date, u_cust.name, u_cust.cuscode, u_saletask.moneyid, u_saletask.banktypeid, u_saletask.mrate, u_saletask.relcode, u_saletask.damt, u_saletask.otheramt, u_saletask.cus_address, u_saletask.cus_tele, u_saletask.cus_tele1, u_saletask.freight, u_saletask.cus_fax, u_saletask.freight_tele, u_saletask.taskdate, u_saletask.dscrp3, u_saletask.rel_rep, u_saletask.msttakeamt , u_saletask.takeamt, u_saletask.takedamt, u_saletask.msttakeamt - u_saletask.takeamt - u_saletask.takedamt as notakeamt, u_saletask.freight_address, priceflag, u_saletask.auditemp, u_saletask.auditdate, u_SaleTaskmx.stop_amt INTO :Kind, :requiredate, :assign_emp, :dscrp, :dscrp2, :paytype, :transcode, :carcode, :taskcode, :cusid, :accomplishdate, :status, :operator, :opdate, :modemp, :moddate, :permit_emp, :permit_date, :u_cust_name, :u_cust_cuscode, :moneyid, :banktypeid, :mrate, :relcode, :damt, :otheramt, :cus_address, :cus_tele, :cus_tele1, :freight, :cus_fax, :freight_tele, :taskdate, :dscrp3, :rel_rep, :msttakeamt, :takeamt, :takedamt, :notakeamt,:freight_address, :priceflag, :auditemp, :auditdate, :stop_amt FROM u_saletask left OUTER join u_cust on ( u_saletask.cusid = u_cust.cusid ) LEFT JOIN ( SELECT scid,taskid ,sum((u_SaleTasKmx.usaleqty - u_SaleTasKmx.stopqty) * u_SaleTasKmx.enprice * u_SaleTasKmx.rebate) AS stop_amt ,sum(u_saletaskmx.enamt_tax) as enamt_tax FROM u_SaleTaskmx GROUP BY scid,taskid ) u_SaleTaskmx ON u_SaleTask.taskid = u_SaleTasKmx.taskid and u_SaleTask.scid = u_SaleTasKmx.scid WHERE ( u_saletask.taskid = :arg_taskid ) And ( u_saletask.scid = :arg_scid ); IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询操作失败(错误订单唯一码)",stopsign!,OK!) rslt = 0 GOTO ext END IF dw_pageretr.Object.u_saletask_scid [uc_row] = arg_scid dw_pageretr.Object.taskid[uc_row] = arg_taskid dw_pageretr.Object.Kind[uc_row] = Kind dw_pageretr.Object.requiredate[uc_row] = requiredate dw_pageretr.Object.assign_emp[uc_row] = assign_emp dw_pageretr.Object.dscrp[uc_row] = dscrp dw_pageretr.Object.u_saletask_dscrp2[uc_row] = dscrp2 dw_pageretr.Object.u_saletask_paytype[uc_row] = paytype dw_pageretr.Object.u_saletask_transcode[uc_row] = transcode dw_pageretr.Object.u_saletask_carcode[uc_row] = carcode dw_pageretr.Object.taskcode[uc_row] = taskcode dw_pageretr.Object.u_saletask_cusid[uc_row] = cusid dw_pageretr.Object.accomplishdate[uc_row] = accomplishdate dw_pageretr.Object.u_saletask_status[uc_row] = status dw_pageretr.Object.u_saletask_opemp[uc_row] = operator dw_pageretr.Object.u_saletask_opdate[uc_row] = opdate dw_pageretr.Object.u_saletask_modemp[uc_row] = modemp dw_pageretr.Object.u_saletask_moddate[uc_row] = moddate dw_pageretr.Object.permit_emp[uc_row] = permit_emp dw_pageretr.Object.u_saletask_permit_date[uc_row] = permit_date dw_pageretr.Object.u_cust_name[uc_row] = u_cust_name dw_pageretr.Object.u_cust_cuscode[uc_row] = u_cust_cuscode dw_pageretr.Object.u_saletask_moneyid[uc_row] = moneyid dw_pageretr.Object.u_saletask_banktypeid[uc_row] = banktypeid dw_pageretr.Object.u_saletask_mrate[uc_row] = mrate dw_pageretr.Object.u_saletask_relcode[uc_row] = relcode dw_pageretr.Object.u_saletask_damt[uc_row] = damt dw_pageretr.Object.u_saletask_otheramt[uc_row] = otheramt dw_pageretr.Object.u_saletask_cus_address[uc_row] = cus_address dw_pageretr.Object.u_saletask_cus_tele[uc_row] = cus_tele dw_pageretr.Object.u_saletask_cus_tele1[uc_row] = cus_tele1 dw_pageretr.Object.u_saletask_freight[uc_row] = freight dw_pageretr.Object.u_saletask_cus_fax[uc_row] = cus_fax dw_pageretr.Object.u_saletask_freight_tele[uc_row] = freight_tele dw_pageretr.Object.u_saletask_taskdate[uc_row] = taskdate dw_pageretr.Object.dscrp3[uc_row] = dscrp3 dw_pageretr.Object.u_saletask_rel_rep[uc_row] = rel_rep dw_pageretr.Object.u_saletask_msttakeamt[uc_row] = msttakeamt dw_pageretr.Object.u_saletask_takeamt[uc_row] = takeamt dw_pageretr.Object.u_saletask_takedamt[uc_row] = takedamt dw_pageretr.Object.notakeamt[uc_row] = notakeamt dw_pageretr.Object.u_saletask_freight_address[uc_row] = freight_address dw_pageretr.Object.u_saletask_priceflag[uc_row] =priceflag dw_pageretr.Object.u_saletask_auditemp[uc_row] =auditemp dw_pageretr.Object.u_saletask_auditdate[uc_row] =auditdate dw_pageretr.Object.stop_amt[uc_row] =stop_amt 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) THIS.PostEvent('retrieve_childdw') ext: wf_statusbtn_fc() RETURN rslt end function public subroutine wf_check_billfj ();String arg_msg Long ll_ConnectionID Long cur_billtype long ll_relid,ll_relid_mx,ll_scid Long ls_filecount = 0 Int rslt = 1 uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long row,uc_relid row = dw_pageretr.GetRow() IF row > 0 THEN ll_relid = dw_pageretr.Object.taskid[row] ll_scid = dw_pageretr.Object.u_saletask_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 = 102 //客户投拆单的 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);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_saletask_scid[LS_ROW] //查询所选模版是否含有图片信息 Long ll_ifpic Long ll_classid SELECT ifpic INTO :ll_ifpic FROM U_XLS_Templates Where id = :ll_xls_Templatesid; IF sqlca.SQLCode <> 0 THEN ll_ifpic = 0 END IF Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype s_xls_pic_list s_pic //结构数组-用于保存图片路径 IF ll_ifpic = 1 THEN //如果含有图片信息,则查询本类型单据需要带出哪类附件 SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF if isnull(ll_classid) then ll_classid = 0 //如果没有明细附件就找 产品资料 if ll_classid = 0 then SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 201); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF end if IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.mtrlid[ll_i] //取该附件类型中的第一个附件. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype FROM u_file WHERE relid = :ll_mtrlid AND classid = :ll_classid AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf' OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg') USING sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN ll_fileid = 0 END IF IF ll_fileid > 0 THEN Pathname = sys_cur_path + ins_fjtemppath + '\' + String(Today(),'yymmdd') + String(Now(),'hhmmss') + '_' + ls_filename + '.' + ls_filetype IF Trim(Pathname) <> '' THEN IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN RETURN 0 END IF IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN RETURN 0 ELSE s_pic.path[ll_i] = Pathname //记录临时文件位置,本窗口退出后删除 wf_addlog_tempfilepathname(Pathname) END IF ELSE s_pic.path[ll_i] = '' END IF ELSE s_pic.path[ll_i] = '' END IF NEXT END IF // END IF ////可选设置/ // arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码 IF sys_option_xls_ifuse_passwd = 1 THEN arg_obj_st.uo_const.pwd = Trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码 Boolean xls_locked xls_locked = Not (sys_option_xls_lock = 1) // Excel 的可选设置 IF arg_obj_st.of_setoption(arg_ationid, xls_locked,TRUE,arg_msg) <> 1 THEN RETURN 0 END IF FOR i = 1 TO arg_str_billlist.count ////可选操作/ // arg_str_billlist.bill[i].ds_data = CREATE datastore // arg_str_billlist.bill[i].ds_data.DataObject = arg_str_billlist.bill[i].datawindow // arg_str_billlist.bill[i].ds_data.SetTransObject(sqlca) //修改点:注意retrieve 参数与上文对应 arg_str_billlist.bill[i].ds_data.Retrieve(ll_scid,ll_id) IF ll_ifpic = 1 and ll_classid > 0 THEN // IF arg_str_billlist.bill[i].datawindow = 'dw_xls_saletaskmx' AND arg_str_billlist.bill[i].ds_data.RowCount() > 0 THEN //设置图片路径 IF pos(arg_str_billlist.bill[i].datawindow , 'dw_xls_saletaskmx') > 0 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 DESTROY ls_uo_fjbt 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_saletask_scid[LS_ROW] Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long ll_classid SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 201); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.mtrlid[ll_i] arg_s_pic.mtrlid[ll_i] = ll_mtrlid //取该附件类型中的第一个附件. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype FROM u_file WHERE relid = :ll_mtrlid AND classid = :ll_classid AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf' OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg') USING sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN ll_fileid = 0 END IF IF ll_fileid > 0 THEN Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype IF Trim(Pathname) <> '' THEN IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN RETURN 0 END IF IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN RETURN 0 ELSE arg_s_pic.path[ll_i] = Pathname //记录临时文件位置,本窗口退出后删除 wf_addlog_tempfilepathname(Pathname) END IF ELSE arg_s_pic.path[ll_i] = '' END IF ELSE arg_s_pic.path[ll_i] = '' END IF NEXT END IF RETURN 1 end function public function integer wf_check_relcode (long arg_scid, long arg_taskid, string arg_relcode, ref string arg_msg);Int rslt = 1 //return 1 - 检查通过 //return 0 - 语法出错 //return 2 - 限制 //return 3 - 询问 Long cnt IF Trim(arg_relcode) = '' THEN IF sys_option_sale_relcode_repeat = 0 THEN rslt = 1 GOTO ext ELSE rslt = 2 arg_msg = '请输入单据相关号' GOTO ext END IF ELSE SELECT count(*) INTO :cnt FROM u_SaleTask WHERE (NOT EXISTS (SELECT * FROM u_saletask u_task WHERE u_task.scid = u_saletask.scid AND u_task.taskid = u_saletask.taskid AND u_task.scid = :arg_scid AND u_task.taskid = :arg_taskid)) And (relcode = :arg_relcode); IF sqlca.SQLCode <> 0 THEN rslt = 0 arg_msg = '查询单据相关号码是否重复失败,'+sqlca.SQLErrText GOTO ext END IF IF cnt > 0 THEN IF sys_option_sale_relcode_repeat = 0 THEN arg_msg = '当前单据的相关号码与已有单据的重复,是否继续保存?' rslt = 3 GOTO ext ELSE rslt = 2 arg_msg = '当前单据的相关号码与已有单据的重复,请修改' GOTO ext END IF END IF END IF ext: RETURN rslt end function public function integer wf_get_pricelist_price (long arg_pricelistid, long arg_moneyid, ref string arg_msg);int rslt = 1 long ls_row long ll_pricelistid, ll_moneyid, ll_mtrlid String ls_status,ls_pcode,ls_woodcode,ls_unit 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 ls_row = 1 To dw_child.RowCount() ll_mtrlid = dw_child.Object.mtrlid[ls_row] ls_status = dw_child.Object.u_saletaskmx_status[ls_row] ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] ls_unit = dw_child.Object.u_saletaskmx_unit[ls_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(ls_row)+", "+String(dw_child.Object.mtrlname[ls_row])+" 的导入价格表售价失败或没有设置售价! ~n " rslt = 0 //无标准价格表 或未审核 END IF dw_child.Object.u_saletaskmx_enprice[ls_row] = s_mx.price dw_child.Object.u_saletaskmx_rebate[ls_row] = s_mx.rebate //dw_child.Object.u_saletaskmx_rate[ls_row] = obj_rate NEXT 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_price,lde_zqrate,lde_rate decimal lde_usaleqty dw_uc.AcceptText() dw_child.AcceptText() ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 THEN RETURN 1 ll_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF ll_cusid = 0 THEN RETURN 1 lde_price = 0 lde_zqrate = 1 lde_rate = 1 ll_mtrlid = dw_child.Object.mtrlid[arg_row] ls_unit = dw_child.Object.u_saletaskmx_unit[arg_row] ls_status = dw_child.Object.u_saletaskmx_status[arg_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[arg_row] ls_pcode = dw_child.Object.u_saletaskmx_pcode[arg_row] lde_usaleqty = dw_child.Object.usaleqty[arg_row] //IF f_getmtrlcusprice(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_price,lde_zqrate,lde_rate,arg_msg) <> 1 THEN // lde_price = 0 // lde_zqrate = 1 //END IF //价格表增加数量下限,数量上限 IF f_getmtrlcusprice_qty(ll_moneyid,ll_mtrlid,ll_cusid,ls_unit,ls_woodcode,ls_status,ls_pcode,0,lde_price,lde_zqrate,lde_rate,lde_usaleqty,arg_msg) <> 1 THEN lde_price = 0 lde_zqrate = 1 END IF dw_child.Object.u_saletaskmx_enprice[arg_row] = lde_price dw_child.Object.u_saletaskmx_rebate[arg_row] = lde_zqrate 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 function integer wf_check_pz (long arg_mtrlid, string arg_mtrlcode, string arg_status_check, string arg_woodcode_check, string arg_pcode_check, ref string arg_msg);Int rslt = 1 Long ll_status_check //配置 Long ll_woodcode_check //配置1 Long ll_pcode_check //配置2 IF arg_mtrlid = 0 THEN rslt = 0 arg_msg = '错误的物料ID' END IF IF IsNull(arg_status_check) THEN arg_status_check = '' IF IsNull(arg_woodcode_check) THEN arg_woodcode_check = '' IF IsNull(arg_pcode_check) THEN arg_pcode_check = '' SELECT status_check,woodcode_check,pcode_check INTO :ll_status_check,:ll_woodcode_check,:ll_pcode_check From u_mtrldef Where u_mtrldef.mtrlid = :arg_mtrlid; IF ll_status_check = 1 And arg_status_check = '' THEN rslt = 0 arg_msg = '根据' + arg_mtrlcode + '的物料定义配置不能为空,请填写配置' END IF IF ll_woodcode_check = 1 And arg_woodcode_check = '' THEN rslt = 0 arg_msg = '根据' + arg_mtrlcode + '的物料定义配置1不能为空,请填写配置1' END IF IF ll_pcode_check = 1 And arg_pcode_check = '' THEN rslt = 0 arg_msg = '根据' + arg_mtrlcode + '的物料定义配置2不能为空,请填写配置2' END IF RETURN rslt end function public subroutine wf_cmpl_amt (integer row);If row <= 0 Then Return If row > dw_child.RowCount() Then Return dw_child.AcceptText() Decimal lde_saleqty, lde_rebate ,lde_tax lde_saleqty = dw_child.Object.usaleqty[row] lde_rebate = dw_child.Object.u_saletaskmx_rebate[row] lde_tax = dw_child.Object.u_saletaskmx_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_saletaskmx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty dw_child.Object.u_saletaskmx_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_saletaskmx_enamt_tax[row] dw_child.Object.u_saletaskmx_enprice_notax[row] = dw_child.Object.u_saletaskmx_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.u_saletaskmx_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_saletaskmx_enamt_tax[row] = Round(dw_child.Object.enamt_notax[row]*lde_tax, 2) dw_child.Object.enamt[row] = dw_child.Object.u_saletaskmx_enamt_tax[row] + dw_child.Object.enamt_notax[row] dw_child.Object.u_saletaskmx_enprice[row] = dw_child.Object.enamt[row] / lde_rebate / lde_saleqty If dw_child.Object.u_saletaskmx_enprice_notax[row] = 0 Then dw_child.Object.u_saletaskmx_enprice_notax[row] = dw_child.Object.u_saletaskmx_enprice[row] / (1 + lde_tax) End If End If End If ElseIf cbx_zk.Checked Then //录入金额计算折扣 If dw_child.Object.u_saletaskmx_enprice[row] <> 0 And lde_saleqty <> 0 Then dw_child.Object.u_saletaskmx_rebate[row] = dw_child.Object.enamt[row] / dw_child.Object.u_saletaskmx_enprice[row] / lde_saleqty End If Else dw_child.Object.enamt[row] = Round(dw_child.Object.u_saletaskmx_enprice[row]*lde_rebate*lde_saleqty, 2) dw_child.Object.u_saletaskmx_enamt_tax[row] = Round(dw_child.Object.u_saletaskmx_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_saletaskmx_enamt_tax[row] dw_child.Object.u_saletaskmx_enprice_notax[row] = dw_child.Object.u_saletaskmx_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 end subroutine public function integer wf_check_qtyandaddqty (ref string arg_msg);Int rslt = 1 Long i Long lk_mtrlid,lk_ifcheckaddqty String ls_strcheckaddqty Decimal dec_qty,dec_addqty,dec_danpackqty,dec_packqty String ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode FOR i = 1 To dw_child.RowCount() lk_mtrlid = dw_child.Object.mtrlid[i] dec_qty = dw_child.Object.usaleqty[i] dec_addqty = dw_child.Object.u_saletaskmx_addqty[i] ls_status = dw_child.Object.u_saletaskmx_status[i] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[i] ls_pcode = dw_child.Object.u_saletaskmx_pcode[i] ls_mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] ls_zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] dec_danpackqty=0 dec_packqty=dw_child.Object.u_saletaskmx_packqty[i] SELECT ifcheckaddqty,strcheckaddqty Into :lk_ifcheckaddqty,:ls_strcheckaddqty From u_mtrldef Where mtrlid = :lk_mtrlid; //如果有填写数量 则 只检查数量和辅数的关系 IF lk_mtrlid > 0 And lk_ifcheckaddqty = 1 And dec_qty <> 0 THEN IF Lower(f_get_tf_addqty(ls_strcheckaddqty,dec_qty,dec_addqty,ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode,dec_danpackqty,dec_packqty)) <> 'true' THEN rslt = 0 arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行不符合该项定义,公式是 ' + ls_strcheckaddqty GOTO ext END IF END IF //如果没有填写数量 则 由辅数计算出数量 Decimal dec_tmp IF lk_mtrlid > 0 And dec_qty = 0 THEN dec_tmp = f_get_cmp_addqty(ls_strcheckaddqty,dec_qty,dec_addqty,ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode,dec_danpackqty,dec_packqty,lk_mtrlid) IF dec_tmp = 0 THEN rslt = 0 arg_msg = '根据物料资料 数量和辅数的关系定义,第' + String(i) + '行由辅数计算出数量为0,请检查资料定义公式是 ' + ls_strcheckaddqty GOTO ext ELSE dw_child.Object.usaleqty[i] = dec_tmp END IF END IF NEXT dw_child.AcceptText() 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.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = FALSE //定位 // dw_child.RBUTTON_FILTER_USE = FALSE //右键查询功能开关 cb_edit.Enabled = TRUE cb_add.Enabled = TRUE cb_xls.Enabled = FALSE cb_edit.Text = "放弃&E" cb_add.Text = "保存&S" cb_edit.normalpicname = 'Undo.bmp' cb_add.normalpicname = 'Save.bmp' ELSE cb_retrieve.Enabled = TRUE cb_delet.Enabled = TRUE cb_print.Enabled = TRUE cb_viewprint.Enabled = TRUE cb_auditing.Enabled = TRUE cb_auditing_cancel.Enabled = TRUE cb_add.Enabled = TRUE cb_edit.Enabled = TRUE cb_xls.Enabled = TRUE dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 // dw_child.titleclick_sort_use = FALSE //单击标题排序功能开关 dw_child.RBUTTON_SETPOSITION_USE = TRUE //定位 // dw_child.RBUTTON_FILTER_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 IF dw_edit_mode THEN sle_usual_query.Enabled = FALSE ELSE sle_usual_query.Enabled = TRUE END IF ELSE cb_nextpage.Enabled = TRUE cb_retrieveall.Enabled = TRUE em_pagerowno.Enabled = TRUE sle_usual_query.Enabled = TRUE cb_func.Enabled = TRUE END IF wf_lock_child() //修改uc_taborder IF dw_edit_mode THEN dw_uc.TriggerEvent("ue_taborder") IF dw_uc.ins_if_nomodify_uc_taborder THEN Long ll_uc_int //messagebox("",uc_column_int) FOR ll_uc_int = 1 TO uc_column_int dw_uc.SetTabOrder (ll_uc_int,ll_uc_int*10 ) NEXT END IF IF sys_option_saletask_requireday_mode = 1 THEN dw_uc.SetTabOrder ('requiredate',0 ) ELSE dw_child.SetTabOrder ('u_saletaskmx_requiredate',0 ) 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_get_pricelist_price_buchong (long arg_pricelistid, long arg_moneyid, ref string arg_msg); Int rslt = 1 Long ls_row Long ll_pricelistid, ll_moneyid, ll_mtrlid String ls_status,ls_pcode,ls_woodcode,ls_unit 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 ls_row = 1 To dw_child.RowCount() IF dw_child.Object.u_saletaskmx_enprice[ls_row] <> 0 THEN CONTINUE ll_mtrlid = dw_child.Object.mtrlid[ls_row] ls_status = dw_child.Object.u_saletaskmx_status[ls_row] ls_pcode = dw_child.Object.u_saletaskmx_pcode[ls_row] ls_woodcode = dw_child.Object.u_saletaskmx_woodcode[ls_row] ls_unit = dw_child.Object.u_saletaskmx_unit[ls_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(ls_row)+", "+String(dw_child.Object.mtrlname[ls_row])+" 的导入价格表售价失败或没有设置售价! ~n " rslt = 0 //无标准价格表 或未审核 END IF dw_child.Object.u_saletaskmx_enprice[ls_row] = s_mx.price dw_child.Object.u_saletaskmx_rebate[ls_row] = s_mx.rebate //dw_child.Object.u_saletaskmx_rate[ls_row] = obj_rate NEXT ext: RETURN rslt end function 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_saletaskmx_enprice[i] = Dec(String(dw_child.Object.u_saletaskmx_enprice[i],'#,##0') ) CASE 1 dw_child.Object.u_saletaskmx_enprice[i] = Dec(String(dw_child.Object.u_saletaskmx_enprice[i],'#,##0.#') ) CASE 2 dw_child.Object.u_saletaskmx_enprice[i] = Dec(String(dw_child.Object.u_saletaskmx_enprice[i],'#,##0.##') ) CASE 3 dw_child.Object.u_saletaskmx_enprice[i] = Dec(String(dw_child.Object.u_saletaskmx_enprice[i],'#,##0.###') ) CASE 4 dw_child.Object.u_saletaskmx_enprice[i] = Dec(String(dw_child.Object.u_saletaskmx_enprice[i],'#,##0.####') ) END CHOOSE NEXT dw_child.AcceptText() //设置单价保留位数 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 Long ll_taskid //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() //其他单未财审金额 dw_uc.AcceptText() ll_outwareid = 0 //dw_uc.Object.u_outware_outwareid[dw_uc.GetRow()] ll_taskid = dw_uc.Object.taskid[dw_uc.GetRow()] IF IsNull(ll_taskid) THEN ll_taskid = 0 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 Decimal ld_notoutwaresale_amt Long ll_scid string ls_taskcode //未发货部分 ld_notoutwaresale_amt = 0 ll_scid = dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] ls_taskcode=dw_uc.Object.taskcode[dw_uc.GetRow()] IF IsNull(ll_scid) THEN ll_scid = 0 if isnull(ls_taskcode) then ls_taskcode='' SELECT sum( (usaleqty - consignedqty ) * enprice * rebate) INTO :ld_notoutwaresale_amt FROM u_saletaskmx INNER join u_saletask on u_saletask.scid = u_saletaskmx.scid AND u_saletask.taskid = u_saletaskmx.taskid WHERE u_saletask.cusid = :arg_cusid AND (u_saletask.taskcode <> :ls_taskcode ); IF sqlca.SQLCode <> 0 THEN ld_notoutwaresale_amt=0 END IF IF IsNull(ld_notoutwaresale_amt) THEN ld_notoutwaresale_amt = 0 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 + ld_notoutwaresale_amt > 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_notoutwaresale_amt,'#,##0.00') + ' 其他未财审发货单金额:'+ String(ld_notsecaudit_billamt,'#,##0.00')+'~r~n' cur_cusrepamtstr += '超信用额:'+String(arg_cusbalcamt + ld_notsecaudit_billamt + lde_billamt + ld_notoutwaresale_amt - arg_cusmaxamt,'#,##0.00') ELSE cur_cusrepamtflag = 0 cur_cusrepamtstr = "" END IF END IF //st_cusbalc.Text = "" end subroutine public function integer wf_openfile (datawindow arg_dw); String str_savename,named,s_grxh Int excelok,li_net Long li_count,i,ll_hang oleobject excelserver excelserver = Create oleobject excelok = excelserver.ConnectToNewObject("excel.application") //检查返回值,以确保已成功地连接到了Excel IF excelok <> 0 THEN MessageBox("提示","连接EXCEL失败,请检查计算机中是否安装了EXCEL!", Information!, OK! ) RETURN -1 END IF li_net = GetFileOpenName("选择文件", str_savename,named,"xls","Excel文件(*.xls),*.xls") IF li_net > 0 THEN IF str_savename = "" THEN RETURN -1 arg_dw.SetTransObject(sqlca) arg_dw.InsertRow(0) arg_dw.Reset() excelserver.workbooks.Open(str_savename) excelserver.activesheet.cells.Copy datastore ds_col30 /////////////建立映射//////////////////// // ds_col30 = Create datastore ds_col30.DataObject = 'dw_col30' ds_col30.ImportClipboard(1) Long ll_s_col_count = 30 Long ll_d_col_count String ls_execltitlename,ls_filtername s_dytitle_filter ss_dytitle_filter[] Long k = 1,m Long li_argcnt = 1 String ls_cmd,ls_arg[] ll_d_col_count = Long(arg_dw.Object.datawindow.Column.Count) Long ll_map[] // 目标表与原表的映射,0为没有映射 String ls_colType[] // 目标表列类型 Long col_d, col_s SELECT Top 1 hang Into :ll_hang From u_dytitle_saletask; FOR col_d = 1 To ll_d_col_count String ls_col_title, ls_col_name ls_col_name = arg_dw.Describe('#' + String(col_d) + '.Name') ls_colType[col_d] = arg_dw.Describe('#' + String(col_d) + '.ColType') ls_col_title = arg_dw.Describe(ls_col_name + '_t.Text') //数据窗口的标题名称 ll_map[col_d] = 0 FOR col_s = 1 To ll_s_col_count String ls_s_title ls_s_title = ds_col30.GetItemString(ll_hang , col_s) //execl表的标题名称 // SELECT execltitlename,filtername Into :ls_execltitlename,:ls_filtername From u_dytitle_saletask Where Name = :ls_col_name; // // if lower(trim(ls_col_title)) = lower(trim(ls_s_title)) then IF Lower(Trim(ls_execltitlename)) = Lower(Trim(ls_s_title)) THEN ll_map[col_d] = col_s IF ls_filtername <> '' THEN //记录过滤 ss_dytitle_filter[k].num = col_s ss_dytitle_filter[k].filtername = ls_filtername k++ END IF EXIT END IF NEXT NEXT // TODO: 人工干预,设置映射 Long row_s, row_d String lk_temp FOR row_s = ll_hang + 1 To ds_col30.RowCount( ) //ll_hang + 1 //过滤 FOR k = 1 To UpperBound(ss_dytitle_filter) lk_temp = String( Trim(ds_col30.GetItemString(row_s, ss_dytitle_filter[k].num))) // ls_cmd = ss_dytitle_filter[k].filtername IF Pos(ls_cmd,',') > 0 THEN //如果是多少个过滤字眼 DO WHILE Len(ls_cmd) > 0 i = Pos( ls_cmd, ",") IF i = 0 THEN i = Len(ls_cmd) + 1 ls_arg[li_argcnt] = Left(ls_cmd, i - 1) li_argcnt = li_argcnt + 1 ls_cmd = Replace(ls_cmd, 1, i, "") LOOP FOR m = 1 To UpperBound(ls_arg) IF Pos(lk_temp,ls_arg[m]) > 0 THEN GOTO ext END IF NEXT ELSE //一个过滤字眼 IF Pos(lk_temp,ss_dytitle_filter[k].filtername) > 0 THEN GOTO ext END IF END IF // NEXT //过滤 row_d = arg_dw.InsertRow(0) FOR col_d = 1 To ll_d_col_count IF ll_map[col_d] = 0 THEN CONTINUE Any Value String ls_value ls_value = Trim(ds_col30.GetItemString(row_s, ll_map[col_d])) IF Lower(Left(ls_colType[col_d], 4)) = 'char' THEN Value = ls_value ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'long' & Or Lower(Left(ls_colType[col_d], 3)) = 'int' & Or Lower(Left(ls_colType[col_d], 3)) = 'num' & Or Lower(Left(ls_colType[col_d], 5)) = 'ulong' THEN Value = Long(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'deci' & Or Lower(Left(ls_colType[col_d], 4)) = 'real' THEN Value = Dec(ls_value) ELSEIF Lower(Left(ls_colType[col_d], 4)) = 'date' THEN Value = DateTime(Date(Left(ls_value, 10)), Time(Mid(ls_value, 12))) END IF arg_dw.SetItem(row_d, col_d, Value) NEXT ext: NEXT Destroy ds_col30 ///////////////////////////////////// // // li_count = arg_dw.ImportClipboard(2) //导入数据 (从第几行开始导入) Clipboard("") excelserver.quit() excelserver.DisconnectObject() Destroy excelserver FOR i = 1 To arg_dw.RowCount( ) // arg_dw.Object.repeat[i] = 0 NEXT arg_dw.AcceptText( ) RETURN 1 ELSE MessageBox('提示','没有指定导入文件!', Information!, OK! ) RETURN -1 END IF end function public subroutine wf_enamt_facechg (); IF ii_enamt_notax_edit = 0 THEN //录入不含税单价 为 false dw_child.Modify('u_saletaskmx_enprice_notax.protect = 1~t u_saletaskmx_enprice_notax.Color = "0~trgb(0,0,0)"') dw_child.Modify('u_saletaskmx_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('u_saletaskmx_enprice_notax.protect = 0~t u_saletaskmx_enprice_notax.Color = "0~trgb(0,0,255)"') dw_child.Modify('u_saletaskmx_enprice_notax_t.Color = "0~trgb(0,0,255)"') dw_child.Modify('enamt_notax.protect =1~t enamt_notax.Color = 0') //现在不录入 不含税金额 END IF end subroutine 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_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_taskid //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_taskid = dw_uc.Object.taskid[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 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 ; IF sqlca.SQLCode <> 0 THEN cusprice = 0 END IF return cusprice end function public function integer wf_formualprice_auto (ref string arg_msg);long rslt = 1 Long child_row dw_child.AcceptText() for child_row = 1 to dw_child.rowcount() if dw_child.Object.u_saletaskmx_priceformula[child_row]<>'' then String ls_msg s_cmpl_qty arg_cmpl decimal ld_qty long mtrlid,cusid mtrlid = dw_child.Object.mtrlid[child_row] cusid = dw_uc.Object.cusid[dw_uc.getrow()] arg_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[child_row] arg_cmpl.price = dw_child.Object.u_saletaskmx_price[child_row] arg_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[child_row] arg_cmpl.packqty = dw_child.Object.u_saletaskmx_packqty[child_row] arg_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[child_row] arg_cmpl.status = dw_child.Object.u_saletaskmx_status[child_row] arg_cmpl.pcode = dw_child.Object.u_saletaskmx_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.formula = dw_child.Object.u_saletaskmx_priceformula[child_row] arg_cmpl.num = sys_option_outware_price_amt_round arg_cmpl.flag = true arg_cmpl.addvalue = 1 arg_cmpl.cusprice = wf_get_cusprice(cusid,mtrlid) ld_qty = 0 if f_cmpl_qty(arg_cmpl,ld_qty,ls_msg) = 0 then rslt = 0 arg_msg ='行'+string(child_row)+':'+ ls_msg goto ext END IF dw_child.Object.u_saletaskmx_enprice[child_row] = dec(String(ld_qty,'###,####,###0.######')) end if next ext: return rslt end function public function integer wf_formualqty_auto (ref string arg_msg); long rslt = 1 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 s_cmpl.addvalue = 1 s_cmpl.num = long(ddlb_weishu.text) dw_uc.SetRedraw(false) FOR i = 1 TO dw_child.RowCount() ld_qty = 0 IF dw_child.Object.u_saletaskmx_formula[i] <> '' THEN s_cmpl.formula = dw_child.Object.u_saletaskmx_formula[i] s_cmpl.status = dw_child.Object.u_saletaskmx_status[i] s_cmpl.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_cmpl.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_cmpl.mtrlsectype = dw_child.Object.u_mtrldef_mtrlsectype[i] s_cmpl.zxmtrlmode = dw_child.Object.u_mtrldef_zxmtrlmode[i] s_cmpl.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_cmpl.price = dw_child.Object.u_saletaskmx_enprice[i] s_cmpl.rebate = dw_child.Object.u_saletaskmx_rebate[i] IF f_cmpl_qty(s_cmpl,ld_qty,ls_msg) = 0 THEN rslt = 0 arg_msg = '行'+string(i)+':'+ ls_msg goto ext END IF dw_child.Object.usaleqty[i] = ld_qty END IF NEXT ext: return rslt end function on w_saletask.create int iCurrent call super::create this.ddlb_scid=create ddlb_scid this.st_2=create st_2 this.st_3=create st_3 this.cbx_quote=create cbx_quote this.cbx_sc=create cbx_sc this.cbx_list=create cbx_list this.ddlb_status=create ddlb_status this.cb_fhmx=create cb_fhmx this.cb_tcmx=create cb_tcmx this.cb_taskmx=create cb_taskmx this.cb_tsmx=create cb_tsmx this.cb_edit_tc=create cb_edit_tc this.cb_fymx=create cb_fymx this.dw_tsmx=create dw_tsmx this.dw_fymx=create dw_fymx this.dw_fhmx=create dw_fhmx this.dw_dhmx=create dw_dhmx this.dw_ywymx=create dw_ywymx this.cbx_enamt_edit=create cbx_enamt_edit this.cbx_1=create cbx_1 this.cbx_zk=create cbx_zk this.ddlb_1=create ddlb_1 this.st_4=create st_4 this.cbx_enamt_notax_edit=create cbx_enamt_notax_edit this.st_cusbalc=create st_cusbalc this.st_cusbalc_sign=create st_cusbalc_sign this.cbx_auto_qty=create cbx_auto_qty this.st_weishu=create st_weishu this.ddlb_weishu=create ddlb_weishu iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_scid this.Control[iCurrent+2]=this.st_2 this.Control[iCurrent+3]=this.st_3 this.Control[iCurrent+4]=this.cbx_quote this.Control[iCurrent+5]=this.cbx_sc this.Control[iCurrent+6]=this.cbx_list this.Control[iCurrent+7]=this.ddlb_status this.Control[iCurrent+8]=this.cb_fhmx this.Control[iCurrent+9]=this.cb_tcmx this.Control[iCurrent+10]=this.cb_taskmx this.Control[iCurrent+11]=this.cb_tsmx this.Control[iCurrent+12]=this.cb_edit_tc this.Control[iCurrent+13]=this.cb_fymx this.Control[iCurrent+14]=this.dw_tsmx this.Control[iCurrent+15]=this.dw_fymx this.Control[iCurrent+16]=this.dw_fhmx this.Control[iCurrent+17]=this.dw_dhmx this.Control[iCurrent+18]=this.dw_ywymx this.Control[iCurrent+19]=this.cbx_enamt_edit this.Control[iCurrent+20]=this.cbx_1 this.Control[iCurrent+21]=this.cbx_zk this.Control[iCurrent+22]=this.ddlb_1 this.Control[iCurrent+23]=this.st_4 this.Control[iCurrent+24]=this.cbx_enamt_notax_edit this.Control[iCurrent+25]=this.st_cusbalc this.Control[iCurrent+26]=this.st_cusbalc_sign this.Control[iCurrent+27]=this.cbx_auto_qty this.Control[iCurrent+28]=this.st_weishu this.Control[iCurrent+29]=this.ddlb_weishu end on on w_saletask.destroy call super::destroy destroy(this.ddlb_scid) destroy(this.st_2) destroy(this.st_3) destroy(this.cbx_quote) destroy(this.cbx_sc) destroy(this.cbx_list) destroy(this.ddlb_status) destroy(this.cb_fhmx) destroy(this.cb_tcmx) destroy(this.cb_taskmx) destroy(this.cb_tsmx) destroy(this.cb_edit_tc) destroy(this.cb_fymx) destroy(this.dw_tsmx) destroy(this.dw_fymx) destroy(this.dw_fhmx) destroy(this.dw_dhmx) destroy(this.dw_ywymx) destroy(this.cbx_enamt_edit) destroy(this.cbx_1) destroy(this.cbx_zk) destroy(this.ddlb_1) destroy(this.st_4) destroy(this.cbx_enamt_notax_edit) destroy(this.st_cusbalc) destroy(this.st_cusbalc_sign) destroy(this.cbx_auto_qty) destroy(this.st_weishu) destroy(this.ddlb_weishu) 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 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(1729) or f_power_ind(1730) 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 dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_scid_arr,cur_status,sys_areaid,li_option_area, sys_user_outrep, li_option_outrep,ls_option_opemp,li_option_opemp) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.TriggerEvent(RowFocusChanged!) END IF THIS.TriggerEvent('retrieve_childdw') //THIS.TriggerEvent('retrieve_fjnum') cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled cb_func.Enabled = cb_func_enabled end event event 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") 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_saletask_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 = 25 //uc dw前5列可以编辑 child_column_int =31 //子dw前22列可以编辑 obj_saletask = Create uo_saletask obj_saletask.commit_transaction = sqlca uo_cus_price = Create uo_cusprice s_hide_col s_col_price s_col_price.col_1 = 'u_saletaskmx_enprice' s_col_price.col_2 = 'u_saletaskmx_rebate' s_col_price.col_3 = 'u_saletaskmx_tax' s_col_price.col_4 = 'enamt' s_col_price.col_5 = 'u_saletaskmx_fprice' s_col_price.col_6 = 'u_saletaskmx_enamt_tax' s_col_price.col_7 = 'u_saletaskmx_dftsaleprice' s_col_price.col_8 = 'u_saletaskmx_bsamt' s_col_price.col_9 = 'u_saletaskmx_bsamt_tax' s_col_price.col_10 = 'amt' s_col_price.col_11 = 'u_saletaskmx_ware_fprice' s_col_price.col_12 = 'enamt2' f_hide_col(122,dw_child,s_col_price) s_hide_col s_col_price_2 s_col_price_2.col_1 = 'stop_amt' s_col_price_2.col_2 = 'u_saletaskmx_enprice_notax' s_col_price_2.col_3 = 'enamt_notax' s_col_price_2.col_4 = 'z_h_price' s_col_price_2.col_5 = 'u_mtrldef_lmsaleprice' s_col_price_2.col_6 = 'z_q_price' s_col_price_2.col_7 = 'z_h_amt' f_hide_col(122,dw_child,s_col_price_2) 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) This.TriggerEvent('ue_billcache_check') end event event 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_scid, ll_moneyid String ls_address dw_uc.AcceptText() 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 (备用) //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.arg_string_code = Upper(Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()])) s_ch_tran.c_long = sys_option_cust_audit //0-不使用 1-使用 OpenWithParm(W_cust_edit,s_ch_tran) //调用 s_custom S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 IF S_INSCUST.cusid > 0 THEN //正常返回值则可以取以下值 dw_uc.Object.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.assign_emp[child_row] = S_INSCUST.bsntype dw_uc.Object.u_saletask_freight[child_row] = S_INSCUST.freight dw_uc.Object.u_saletask_freight_tele[child_row] = S_INSCUST.freight_tele dw_uc.Object.u_saletask_cus_address[child_row] = S_INSCUST.Address dw_uc.Object.u_saletask_cus_tele[child_row] = S_INSCUST.tele dw_uc.Object.u_saletask_cus_tele1[child_row] = S_INSCUST.tele1 dw_uc.Object.u_saletask_cus_fax[child_row] = S_INSCUST.faxno dw_uc.Object.u_saletask_rel_rep[child_row] = S_INSCUST.rep IF Len(S_INSCUST.freight_address) > 0 THEN dw_uc.Object.u_saletask_freight_address[child_row] = S_INSCUST.freight_address ELSE SELECT Address Into :ls_address From u_station Where stationname = :S_INSCUST.freight; dw_uc.Object.u_saletask_freight_address[child_row] = ls_address END IF IF S_INSCUST.banktypeid > 0 THEN dw_uc.Object.u_saletask_banktypeid[child_row] = S_INSCUST.banktypeid END IF //刷新价格 dw_uc.SetRedraw(True) dw_uc.SetFocus() dw_uc.SetColumn("u_saletask_cus_address") END IF END IF //this.enabled = true end event event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用 IF Not dw_edit_mode THEN RETURN Long child_row Long ls_cusid,ll_moneyid String ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode Decimal ld_tax child_row = dw_child.GetRow() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF IsNull(ls_cusid) Or ls_cusid = 0 THEN This.TriggerEvent("ue_f9") END IF ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 Or IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF Not IsValid(w_mtrlware_storageid_ch_saletask) THEN s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = This.retrieve_all //是否一次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 = -2 //选产品 --20190401 暂时更改为记录上次选择 // s_tranf8.c_long = cur_scid //分部 s_tranf8.d_long = -1 //仓库 IF cur_scid < 0 THEN s_tranf8.c_long = dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] ELSE s_tranf8.c_long = cur_scid END IF Long ls_j 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_saletask,s_tranf8) //调用 OpenWithParm(W_mtrldef_edit,s_tranf8) //调用 s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 To UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.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.mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.saleqty[child_row] = 0 dw_child.Object.plprice[child_row] = s_inscust.planprice[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_rate[child_row] = 1 dw_child.Object.u_saletaskmx_net_weight[child_row] = s_inscust.net_weight[ls_j] dw_child.Object.u_saletaskmx_gross_weight[child_row] = s_inscust.gross_weight[ls_j] dw_child.Object.u_saletaskmx_cubage[child_row] = s_inscust.cubage[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] dw_child.Object.u_mtrldef_mtrltype[child_row] = s_inscust.mtrltype[ls_j] dw_child.Object.u_mtrldef_handtype[child_row] = s_inscust.handtype[ls_j] dw_child.Object.u_mtrldef_lmsaleprice[child_row] = s_inscust.lmsaleprice[ls_j] dw_child.Object.u_saletaskmx_packqty[child_row] = s_inscust.packqty[ls_j] IF f_find_tax(ls_cusid,'u_cust',ld_tax) = 0 THEN ld_tax = 0 ELSE dw_child.Object.u_saletaskmx_tax[child_row] = ld_tax END IF IF f_find_cusmtrlname(ls_cusid,s_inscust.mtrlid[ls_j],ls_cusmtrlcode,ls_cusmtrlname, ls_cusmtrlmode) = 0 THEN ls_cusmtrlcode = '' ls_cusmtrlname = '' ls_cusmtrlmode = '' ELSE dw_child.Object.u_cusmtrlname_cusmtrlcode[child_row] = ls_cusmtrlcode dw_child.Object.u_cusmtrlname_cusmtrlname[child_row] = ls_cusmtrlname dw_child.Object.u_cusmtrlname_cusmtrlmode[child_row] = ls_cusmtrlmode END IF Long li_statusflag Long li_woodcodeflag Long li_pcodeflag String ls_priceformula String ls_qtyformula s_mtrldef_array arg_s_mtrldef IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ls_priceformula = '' ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] ls_priceformula = arg_s_mtrldef.priceformula[1] ls_qtyformula = arg_s_mtrldef.strcheckaddqty [1] //qtyformula IF arg_s_mtrldef.saleunit[1] = 1 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_buy[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_buy[1] ELSEIF arg_s_mtrldef.saleunit[1] = 2 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_scll[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_scll[1] ELSEIF arg_s_mtrldef.saleunit[1] = 3 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_sale[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_sale[1] END IF dw_child.Object.u_mtrldef_prdpackcode[child_row] = arg_s_mtrldef.prdpackcode[1] END IF dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag dw_child.Object.u_SaleTaskMx_priceformula[child_row] = ls_priceformula dw_child.Object.u_saletaskmx_formula[child_row] = ls_qtyformula IF li_statusflag = 4 Or li_statusflag = 2 THEN dw_child.Object.u_saletaskmx_status[child_row] = arg_s_mtrldef.status[1] END IF IF li_woodcodeflag = 4 THEN dw_child.Object.u_saletaskmx_woodcode[child_row] = arg_s_mtrldef.woodcode[1] END IF IF li_pcodeflag = 4 THEN dw_child.Object.u_saletaskmx_pcode[child_row] = arg_s_mtrldef.pcode[1] END IF //3个属性默认值 String ls_status_default,ls_woodcode_default,ls_pcode_default ls_status_default = '' ls_woodcode_default = '' ls_pcode_default = '' SELECT status_default,woodcode_default,pcode_default Into :ls_status_default,:ls_woodcode_default,:ls_pcode_default From u_mtrldef Where mtrlid = :s_inscust.mtrlid[ls_j]; IF Len(ls_status_default) > 0 THEN dw_child.Object.u_saletaskmx_status[child_row] = Trim(ls_status_default) END IF IF Len(ls_woodcode_default) > 0 THEN dw_child.Object.u_saletaskmx_woodcode[child_row] = Trim(ls_woodcode_default) END IF IF Len(ls_pcode_default) > 0 THEN dw_child.Object.u_saletaskmx_pcode[child_row] = Trim(ls_pcode_default) END IF wf_get_price(child_row) END IF NEXT This.TriggerEvent('ue_allowedit') dw_child.SetColumn('usaleqty') END IF dw_child.SetFocus() end event event refresh_interface;call super::refresh_interface;ddlb_status.Enabled = Not dw_edit_mode cbx_enamt_edit.Enabled = Not dw_edit_mode cbx_zk.Enabled = Not dw_edit_mode cbx_enamt_notax_edit.Enabled = Not dw_edit_mode //st_msg.Visible = dw_edit_mode //st_msg.Visible = false wf_statusbtn_fc() //后面还有对金额的分权限处理 //IF ii_enamt_edit = 0 THEN // 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 sys_power_issuper Or Not f_power_ind(492) THEN //492 限制折扣 dw_child.Modify('u_saletaskmx_rebate.protect=0 ') ELSE dw_child.Modify('u_saletaskmx_rebate.protect=1 ') END IF IF sys_power_issuper Or Not f_power_ind(973) THEN //973 限制单价 dw_child.Modify('u_saletaskmx_enprice.protect=0 ') ELSE dw_child.Modify('u_saletaskmx_enprice.protect=1 ') END IF IF dw_edit_mode THEN ddlb_scid.Enabled = False IF sys_option_saletask_plan = 2 THEN dw_child.Modify('u_saletaskmx_orderqty.protect=1 ') dw_child.Modify('u_saletaskmx_needbuyqty.protect=0 ') ELSEIF sys_option_saletask_plan = 3 THEN dw_child.Modify('u_saletaskmx_orderqty.protect=0 ') dw_child.Modify('u_saletaskmx_needbuyqty.protect=1 ') ELSE dw_child.Modify('u_saletaskmx_orderqty.protect=0 ') dw_child.Modify('u_saletaskmx_needbuyqty.protect=0 ') END IF ELSE dw_child.Modify('u_saletaskmx_orderqty.protect=0 ') dw_child.Modify('u_saletaskmx_needbuyqty.protect=0 ') IF sys_scid > 0 THEN ddlb_scid.Enabled = False ELSE ddlb_scid.Enabled = True END IF END IF IF dw_edit_mode THEN IF sys_option_taskplancode_auto = 4 THEN dw_child.Modify('u_saletaskmx_plancode.protect=0 ') ELSE dw_child.Modify('u_saletaskmx_plancode.protect=1 ') END IF ELSE dw_child.Modify('u_saletaskmx_plancode.protect=0 ') END IF //IF Not dw_edit_mode THEN // st_msg.Text = '' //ELSE // st_msg.x = dw_pageretr.x // st_msg.y = dw_pageretr.y // st_msg.Width = dw_pageretr.Width // st_msg.Height = dw_pageretr.Height //END IF end event event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row > 0 THEN ll_scid = dw_pageretr.Object.u_saletask_scid[row] uc_relid = dw_pageretr.Object.taskid[row] dw_child.SetRedraw (False) dw_child.Retrieve(ll_scid,uc_relid) dw_child.SetRedraw (True) dw_ywymx.SetRedraw (False) dw_ywymx.Retrieve(ll_scid,uc_relid) dw_ywymx.SetRedraw (True) dw_dhmx.SetRedraw (False) dw_dhmx.Retrieve(ll_scid,uc_relid) dw_dhmx.SetRedraw (True) IF uc_relid > 0 THEN dw_fhmx.SetRedraw (False) dw_fhmx.Retrieve(ll_scid,uc_relid) dw_fhmx.SetRedraw (True) END IF dw_tsmx.SetRedraw (False) dw_tsmx.Retrieve(ll_scid,uc_relid) dw_tsmx.SetRedraw (True) dw_fymx.SetRedraw (False) dw_fymx.Retrieve(ll_scid,uc_relid) dw_fymx.SetRedraw (True) this.TriggerEvent('ue_retrieve_his_pricemx') ELSE dw_child.Reset() dw_ywymx.Reset() dw_fhmx.Reset() dw_tsmx.Reset() dw_fymx.Reset() END IF //this.TriggerEvent('ue_mx_cmplnoallocqty') end event event close;//f_SetProfileString (sys_empid, "saletask", "status", string(cur_status)) wf_del_tempfilepathname() DESTROY obj_saletask DESTROY uo_cus_price end event event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="(u_saletask.taskcode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_saletask.taskcode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( taskcode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( taskcode 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_viewprint;call super::ue_viewprint;IF Not f_power_ind(7) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('提示','没有打印目标单据!',information!,OK!) RETURN END IF Long ll_status ll_status = dw_pageretr.Object.u_SaleTask_Status[LS_ROW] //信用额 288 IF sys_option_cusrepamt_saletask_limit = 2 THEN wf_getcusrepamt_info( dw_pageretr.Object.u_SaleTask_scid[LS_ROW],dw_pageretr.Object.u_saletask_cusid[LS_ROW], dw_pageretr.Object.u_saletask_moneyid[LS_ROW] ) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项288限制~r~n'+cur_cusrepamtstr) RETURN END IF END IF IF sys_option_auditprint_saletask = 1 THEN IF sys_option_saletask_secaudit = 0 THEN IF ll_status = 0 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF ELSE IF ll_status = 0 Or ll_status = 4 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF END IF S_print_MSG LS_PRMSG LS_PRMSG.ifpic = ifpic IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF sys_option_saletask_secaudit = 0 THEN IF ll_status = 0 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF ELSE IF ll_status = 0 Or ll_status = 4 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_saletask_print' END IF IF LS_PRMSG.obj_dwNAME = 'dw_rp_saletask_day_print' THEN DateTime ld_fdt,ld_edt String ls_print_day Open(w_saletask_print_day) ls_print_day = Message.StringParm IF ls_print_day = '1900-01-01' THEN RETURN ld_fdt = DateTime(Date(ls_print_day),Time(0)) ld_edt = DateTime(Date(ls_print_day),Time('23:59:59')) LS_PRMSG.TAG_TEXT = '销售订单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 6 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramfdt = ld_fdt LS_PRMSG.retr_pramedt = ld_edt ELSE LS_PRMSG.TAG_TEXT = '销售订单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.u_saletask_scid[LS_ROW] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.taskid[LS_ROW] LS_PRMSG.rowcnt = dw_child.RowCount() END IF 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_saletask',printnum,dw_pageretr.Object.u_saletask_scid[LS_ROW],dw_pageretr.Object.taskid[LS_ROW],'','',arg_msg,True) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 1, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF end event event ue_print;call super::ue_print; //--直接打印 IF Not f_power_ind(7) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF uo_print_preview uo_print IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('提示','没有打印目标单据!',information!,OK!) RETURN END IF Long ll_status ll_status = dw_pageretr.Object.u_SaleTask_Status[LS_ROW] //信用额 288 IF sys_option_cusrepamt_saletask_limit = 2 THEN wf_getcusrepamt_info( dw_pageretr.Object.u_SaleTask_scid[LS_ROW],dw_pageretr.Object.u_saletask_cusid[LS_ROW], dw_pageretr.Object.u_saletask_moneyid[LS_ROW] ) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项288限制~r~n'+cur_cusrepamtstr) RETURN END IF END IF IF sys_option_auditprint_saletask = 1 THEN IF sys_option_saletask_secaudit = 0 THEN IF ll_status = 0 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF ELSE IF ll_status = 0 Or ll_status = 4 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF END IF LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.ifpic = ifpic IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF sys_option_saletask_secaudit = 0 THEN IF ll_status = 0 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF ELSE IF ll_status = 0 Or ll_status = 4 THEN MessageBox('提示','单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_saletask_print' END IF LS_PRMSG.TAG_TEXT = '销售订单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_pramnmb = dw_pageretr.Object.taskid[LS_ROW] 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_saletask',1,cur_scid,dw_pageretr.Object.taskid[dw_pageretr.GetRow()],'','',arg_msg,True) String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 1, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF end event event ue_addzy;call super::ue_addzy;IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) RETURN END IF IF NOT f_power_ind(698) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg = '',LS_STR Long uc_row s_inputbox S_SREU uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF S_SREU.Title = '请输入要补充到备注的内容' S_SREU.OLD_TEXT = '' OpenWithParm(w_inputbox,S_SREU) LS_STR = Message.StringParm IF Trim(LS_STR) = '' OR IsNull(LS_STR) THEN RETURN IF obj_saletask.add_dscrp(dw_pageretr.Object.u_saletask_scid[uc_row],dw_pageretr.Object.taskid[uc_row],LS_STR,arg_msg,TRUE) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN ELSE MessageBox('提示','添加备注操作成功!',information!,OK!) wf_refresh_curuc(cur_scid,dw_pageretr.Object.taskid[uc_row]) END IF end event event ue_f11;call super::ue_f11;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_saletaskmx_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_saletaskmx_outtype[child_row] = ls_outtypeid dw_child.SetFocus() END IF end event event ue_f12;call super::ue_f12;IF NOT IsValid(w_unit_ch) THEN IF dw_child.GetRow() < 1 THEN RETURN Long ll_mtrlid ll_mtrlid = dw_child.Object.mtrlid[dw_child.GetRow()] OpenWithParm(w_unit_ch,ll_mtrlid) s_unit s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 IF s_inscust.unit <> '' THEN dw_child.Object.u_saletaskmx_unit[dw_child.GetRow()] = s_inscust.unit dw_child.Object.u_saletaskmx_rate[dw_child.GetRow()] = s_inscust.rate wf_get_price(dw_child.GetRow()) END IF END IF end event event ue_f6;call super::ue_f6;//用于选择销售历史 IF NOT dw_edit_mode THEN RETURN Long child_row Long ls_cusid,ll_moneyid String ls_priceformula s_mtrldef_array arg_s_mtrldef child_row = dw_child.GetRow() IF dw_uc.GetRow() = 0 THEN RETURN dw_uc.AcceptText() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF IsNull(ls_cusid) OR ls_cusid = 0 THEN THIS.TriggerEvent("ue_f9") END IF ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN END IF IF NOT IsValid(w_saletask_mtrl_his_ch) THEN s_edit_index_tran s_tranf8 //传递参数使用 // s_tranf8.if_retrieve_all = FALSE //是否一次retrieve所有行 s_tranf8.if_retrieve_all = this.retrieve_all //是否一次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 = 0 s_tranf8.d_long = ls_cusid Long ls_j OpenWithParm(w_saletask_mtrl_his_ch,s_tranf8) //调用 s_saletask_mtrl s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_child.GetRow() > 0 THEN IF dw_child.Object.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.mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.saleqty[child_row] = 0 dw_child.Object.plprice[child_row] = s_inscust.planprice[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_enprice[child_row] = s_inscust.price[ls_j] dw_child.Object.u_saletaskmx_rebate[child_row] = s_inscust.rebate[ls_j] dw_child.Object.u_saletaskmx_status[child_row] = s_inscust.status[ls_j] dw_child.Object.u_saletaskmx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_saletaskmx_pcode [child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_saletaskmx_mxdscrp [child_row] = s_inscust.mxdscrp[ls_j] dw_child.Object.u_saletaskmx_net_weight[child_row] = s_inscust.net_weight[ls_j] dw_child.Object.u_saletaskmx_gross_weight[child_row] = s_inscust.gross_weight[ls_j] dw_child.Object.u_saletaskmx_cubage[child_row] = s_inscust.cubage[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN ls_priceformula = '' ELSE ls_priceformula = arg_s_mtrldef.priceformula[1] END IF dw_child.Object.u_SaleTaskMx_priceformula[child_row] = ls_priceformula dw_child.SetColumn('usaleqty') END IF NEXT END IF dw_child.SetFocus() end event event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF NOT f_power_ind(7) 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 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_saletask_scid[row] s_print.retr_pramnmb = dw_pageretr.Object.taskid[row] s_print.rowcnt = dw_child.RowCount() OpenWithParm(w_rpt_preview,s_print) //**更新打印次料 String arg_msg printnum = Message.DoubleParm f_update_printnum('u_saletask',printnum,dw_pageretr.Object.u_saletask_scid[dw_pageretr.GetRow()],dw_pageretr.Object.taskid[dw_pageretr.GetRow()],'','',arg_msg,TRUE) end event event ue_rpt_print;call super::ue_rpt_print;IF NOT f_power_ind(7) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() uo_rpt_print_preview uo_print S_rpt_print_MSG LS_PRMSG IF dw_uc.RowCount() = 0 THEN MessageBox('提示','没有可打印的单据!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = '销售订单' LS_PRMSG.rpname = ls_rpname LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.rpid = ls_msgprintid_rpt LS_PRMSG.retr_scid = dw_pageretr.Object.u_saletask_scid[dw_pageretr.GetRow()] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.taskid[dw_pageretr.GetRow()] 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_saletask',1,cur_scid,dw_pageretr.Object.taskid[dw_pageretr.GetRow()],'','',arg_msg,TRUE) end event event ue_jdview_ljfieb;call super::ue_jdview_ljfieb;long ll_row ll_row = dw_pageretr.getrow() if ll_row <= 0 then return string ls_taskcode ls_taskcode = dw_pageretr.object.u_saletask_fiebrelcode[ll_row] openwithparm(w_ljfieb_buytask_hisview,ls_taskcode) end event event ue_allowedit;call super::ue_allowedit;IF sys_option_packqty_sale = 0 THEN dw_child.Modify("u_saletaskmx_packqty.protect = 1") ELSE dw_child.Modify("u_saletaskmx_packqty.protect = 0") END IF end event event resize;call super::resize; cb_taskmx.Y = dw_uc.Y + dw_uc.Height cb_tcmx.Y = cb_taskmx.Y cb_fhmx.Y = cb_taskmx.Y cb_tsmx.Y = cb_taskmx.Y cb_edit_tc.Y = cb_taskmx.Y cb_fymx.y=cb_taskmx.Y dw_child.X = 0 dw_child.Y = cb_taskmx.Y + cb_taskmx.Height dw_child.Width = this.workspacewidth() - dw_child.X dw_child.Height = THIS.workspaceheight() - dw_child.Y dw_ywymx.x = 0 dw_ywymx.y = dw_child.Y dw_ywymx.width = dw_child.width * 0.3 dw_ywymx.height = dw_child.height dw_dhmx.x = dw_ywymx.x + dw_ywymx.width dw_dhmx.y = dw_child.Y dw_dhmx.width = dw_child.width * 0.7 dw_dhmx.height = dw_child.height dw_fhmx.x = 0 dw_fhmx.y = dw_child.Y dw_fhmx.width = dw_child.width dw_fhmx.height = dw_child.height dw_tsmx.x = 0 dw_tsmx.y = dw_child.Y dw_tsmx.width = dw_child.width dw_tsmx.height = dw_child.height dw_fymx.x = 0 dw_fymx.y = dw_child.Y dw_fymx.width = dw_child.width dw_fymx.height = dw_child.height end event event ue_before_open;call super::ue_before_open;dw_ywymx.SetTransObject (sqlca) dw_dhmx.SetTransObject (sqlca) dw_fhmx.SetTransObject (sqlca) dw_tsmx.SetTransObject (sqlca) dw_fymx.SetTransObject (sqlca) cb_edit_tc.visible = false if sys_version = 802001 then //cb_tcmx.visible = true else cb_tcmx.visible = False cb_tsmx.visible = False cb_fhmx.x = cb_tcmx.x cb_fymx.x=cb_fhmx.x + cb_fhmx.width end if s_hide_col s_col_mtrlsectype s_hide_col s_col_zxmtrlmode s_hide_col s_col, s_null 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' f_hide_col(122,dw_fhmx,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' f_hide_col(122,dw_fhmx,s_col) //隐藏销售价 s_col = s_null s_col.col_1 = 'gpamt' f_hide_col(843,dw_fhmx,s_col) //隐藏销售毛利 s_col = s_null s_col.col_1 = 'u_outwaremx_cost' s_col.col_1 = 'u_outwaremx_costamt' f_hide_col(490,dw_fhmx,s_col) //隐藏 出仓成本价 s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_dhmx,s_col_mtrlsectype) s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_dhmx,s_col_zxmtrlmode) s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_fhmx,s_col_mtrlsectype) s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_fhmx,s_col_zxmtrlmode) s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_tsmx,s_col_mtrlsectype) s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_tsmx,s_col_zxmtrlmode) end event event ue_addmx;IF Not dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可用') RETURN END IF IF ins_dw_select = 4 THEN This.TriggerEvent('ue_add_fymx') ELSE This.TriggerEvent('ue_f8') dw_child.SetFocus() END IF end event event ue_deletemx;IF Not dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可用') RETURN END IF IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_child.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!') RETURN END IF if_del = True Long ll_i IF ins_dw_select = 4 THEN 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!) ELSE dw_child.SetRedraw(False) FOR ll_i = dw_child.RowCount() To 1 Step -1 IF dw_child.IsSelected(ll_i) THEN dw_child.DeleteRow (ll_i) END IF NEXT dw_child.SetRedraw(True) if_del = False IF dw_child.RowCount() = 0 THEN dw_child.InsertRow(0) dw_child.TriggerEvent (RowFocusChanged!) END IF end event event ue_f7;call super::ue_f7;//用于选择明细内容,被f8[默认]\dw_child.doubleclicked调用 If Not dw_edit_mode Then Return Long child_row Long ls_cusid,ll_moneyid child_row = dw_child.GetRow() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] If IsNull(ls_cusid) Or ls_cusid = 0 Then This.TriggerEvent("ue_f9") End If ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] If ll_moneyid = 0 Or IsNull(ll_moneyid) Then MessageBox('提示','请先选择币种',information!,OK!) Return End If If Not IsValid(w_mtrlware_storageid_ch_saletask2) Then s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = This.retrieve_all //是否一次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 = 0 //选产品 // s_tranf8.c_long = cur_scid //分部 s_tranf8.d_long = -1 //仓库 If cur_scid < 0 Then s_tranf8.c_long = dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] Else s_tranf8.c_long = cur_scid End If Long ls_j 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_saletask2,s_tranf8) //调用 s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 For ls_j = 1 To UpperBound(s_inscust.mtrlid) If s_inscust.mtrlid[ls_j] > 0 Then //正常返回值则可以取以下值 If dw_child.GetRow() > 0 Then If dw_child.Object.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.mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_child.Object.mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_child.Object.saleqty[child_row] = 0 dw_child.Object.plprice[child_row] = s_inscust.planprice[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = s_inscust.mtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = s_inscust.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = s_inscust.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_unit[child_row] = s_inscust.unit[ls_j] dw_child.Object.u_saletaskmx_rate[child_row] = 1 dw_child.Object.u_saletaskmx_net_weight[child_row] = s_inscust.net_weight[ls_j] dw_child.Object.u_saletaskmx_gross_weight[child_row] = s_inscust.gross_weight[ls_j] dw_child.Object.u_saletaskmx_cubage[child_row] = s_inscust.cubage[ls_j] dw_child.Object.u_saletaskmx_status[child_row] = s_inscust.status[ls_j] dw_child.Object.u_saletaskmx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_saletaskmx_pcode[child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_saletaskmx_woodcode[child_row] = s_inscust.woodcode[ls_j] dw_child.Object.u_saletaskmx_pcode[child_row] = s_inscust.pcode[ls_j] dw_child.Object.u_mtrldef_barcode[child_row] = s_inscust.barcode[ls_j] // dw_child.Object.u_mtrldef_mtrlengname[child_row] = s_inscust.mtrlengname[ls_j] If IsNull( s_inscust.plancode[ls_j]) Or s_inscust.plancode[ls_j] = '' Then Else dw_child.Object.u_saletaskmx_plancode[child_row] = s_inscust.plancode[ls_j] End If If IsNull( s_inscust.waredscrp[ls_j]) Or s_inscust.waredscrp[ls_j] = '' Then Else dw_child.Object.u_saletaskmx_mxdscrp[child_row] = s_inscust.waredscrp[ls_j] End If Long li_statusflag Long li_woodcodeflag Long li_pcodeflag String ls_priceformula s_mtrldef_array arg_s_mtrldef If f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 Then li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ls_priceformula = '' Else li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] ls_priceformula = arg_s_mtrldef.priceformula[1] End If dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag dw_child.Object.u_SaleTaskMx_priceformula[child_row] = ls_priceformula wf_get_price(child_row) End If Next This.TriggerEvent('ue_allowedit') dw_child.SetColumn('usaleqty') End If dw_child.SetFocus() end event type cb_func from w_publ_1ton_share_detail`cb_func within w_saletask integer taborder = 20 end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_saletask integer x = 2560 integer taborder = 240 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_saletask integer x = 178 integer y = 188 integer width = 549 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_saletask integer x = 3045 integer taborder = 200 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_saletask integer x = 2729 integer width = 320 integer taborder = 180 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_saletask integer x = 2597 integer y = 308 integer width = 727 integer height = 1324 integer taborder = 30 string title = "销售订单摘要内容" string dataobject = "dw_saletask_index" boolean hscrollbar = false boolean border = true borderstyle borderstyle = stylebox! end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_statusbtn_fc() 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 Long ll_scid,ll_cusid, ll_moneyid IF NOT dw_edit_mode AND currentrow > 0 THEN ll_scid = THIS.Object.u_saletask_scid[currentrow] ll_cusid = THIS.Object.u_saletask_cusid[currentrow] ll_moneyid = THIS.Object.u_saletask_moneyid[currentrow] wf_cusbalc(ll_scid,ll_cusid,ll_moneyid) END IF end event event dw_pageretr::retrieveend;wf_statusbtn_fc() end event type st_1 from w_publ_1ton_share_detail`st_1 within w_saletask integer x = 0 integer y = 208 integer width = 178 alignment alignment = right! end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_saletask integer x = 3195 integer taborder = 230 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_saletask integer y = 308 integer width = 2368 integer height = 1764 integer taborder = 120 string dataobject = "dw_saletask_input" end type event dw_uc::dwnkey;Parent.TriggerEvent('user_key') IF Key = KeyDownArrow! THEN RETURN 1 IF dw_edit_mode THEN IF dw_uc.GetColumnName ( ) = 'dscrp' And Key = KeyEnter! THEN dw_child.ScrollToRow(1) dw_child.SetFocus() dw_child.SetColumn ('u_saletaskmx_outtype') RETURN 1 ELSEIF dw_uc.GetColumnName ( ) = 'u_cust_cuscode' And Key = KeyEnter! THEN String ls_code,ls_name,ls_custype,ls_find_code String ls_freight,ls_freight_tele,ls_freight_address String ls_cus_address,ls_cus_tele,ls_cus_tele1,ls_cus_fax Long ls_cusid,ll_state Long ll_scid, ll_moneyid Long cnt = 0 Boolean if_find = False Int li_banktypeid String ls_rel_rep dw_uc.AcceptText() ls_code = Trim(dw_uc.Object.u_cust_cuscode[dw_uc.GetRow()]) // long li_option_outrep 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.tele1, u_cust.faxno, u_cust.banktypeid, u_cust.rep, u_cust.state, u_cust.freight_address INTO :ls_cusid,:ls_name,:ls_custype,:ls_code, :ls_freight,:ls_freight_tele, :ls_cus_address,:ls_cus_tele,:ls_cus_tele1,:ls_cus_fax,:li_banktypeid,:ls_rel_rep,:ll_state, :ls_freight_address 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')) and ( :sys_option_cusarea = 0 or ( :sys_areastr like '%,' + rtrim(cast(u_cust.cusareaid as varchar(10))) + ',%' OR u_cust.cusareaid = 0 OR :sys_areastr='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')) and ( :sys_option_cusarea = 0 or (:sys_areastr like '%,' + rtrim(cast(u_cust.cusareaid as varchar(10))) + ',%' OR u_cust.cusareaid = 0 OR :sys_areastr='0' )) ; IF sqlca.SQLCode <> 0 THEN Parent.TriggerEvent('ue_f9') RETURN 1 END IF IF cnt <> 1 THEN Parent.TriggerEvent('ue_f9') RETURN 1 ELSE SELECT u_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.tele1, u_cust.faxno, u_cust.rep, u_cust.state, u_cust.freight_address INTO :ls_cusid,:ls_code,:ls_name,:ls_custype, :ls_freight,:ls_freight_tele, :ls_cus_address,:ls_cus_tele,:ls_cus_tele1,:ls_cus_fax,:ls_rel_rep,:ll_state, :ls_freight_address 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 ELSE if_find = True END IF END IF ELSE if_find = True END IF IF sys_option_cust_audit = 1 then IF ll_state <> sys_option_cust_audit then MessageBox('提示','该客户不是正式客户,请重新选择!', Information!, OK! ) Parent.TriggerEvent('ue_f9') return 1 else 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.tele1, u_cust.faxno, u_cust.banktypeid, u_cust.rep, u_cust.state, u_cust.freight_address INTO :ls_cusid,:ls_name,:ls_custype,:ls_code, :ls_freight,:ls_freight_tele, :ls_cus_address,:ls_cus_tele,:ls_cus_tele1,:ls_cus_fax,:li_banktypeid,:ls_rel_rep,:ll_state, :ls_freight_address FROM u_cust Where (cuscode = :ls_code Or Name = :ls_code); IF sqlca.SQLCode <> 0 THEN Parent.TriggerEvent('ue_f9') RETURN 1 ELSE if_find = True END IF End if End if IF if_find THEN dw_uc.SetRedraw(False) dw_uc.Object.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.assign_emp[dw_uc.GetRow()] = ls_custype dw_uc.Object.u_saletask_freight[dw_uc.GetRow()] = ls_freight dw_uc.Object.u_saletask_freight_tele[dw_uc.GetRow()] = ls_freight_tele dw_uc.Object.u_saletask_freight_address[dw_uc.GetRow()] = ls_freight_address dw_uc.Object.u_saletask_cus_address[dw_uc.GetRow()] = ls_cus_address dw_uc.Object.u_saletask_cus_tele[dw_uc.GetRow()] = ls_cus_tele dw_uc.Object.u_saletask_cus_tele1[dw_uc.GetRow()] = ls_cus_tele1 dw_uc.Object.u_saletask_cus_fax[dw_uc.GetRow()] = ls_cus_fax IF li_banktypeid > 0 THEN dw_uc.Object.u_saletask_banktypeid[dw_uc.GetRow()] = li_banktypeid END IF dw_uc.Object.u_saletask_rel_rep[dw_uc.GetRow()] = ls_rel_rep dw_uc.SetRedraw(True) dw_uc.SetColumn("u_saletask_cus_address") 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 dw_uc.accepttext() if dw_uc.getrow() <= 0 then return if dwo.name = 'u_saletask_moneyid' then long ll_moneyid, ll_scid, ll_cusid ll_moneyid = dw_uc.object.u_saletask_moneyid[dw_uc.getrow()] dw_uc.setredraw(false) dw_uc.object.u_saletask_mrate[dw_uc.getrow()]=f_get_mrate(ll_moneyid) dw_uc.setredraw(true) end if if dwo.name = 'u_saletask_rel_rep' then if data <> '' then string ll_officetel,ll_handtel long ls_cusid ls_cusid = dw_uc.object.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_saletask_cus_tele[row] = ll_officetel dw_uc.object.u_saletask_cus_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_saletask_cus_tele[row] = ll_officetel dw_uc.object.u_saletask_cus_tele1[row] = ll_handtel end if end if end if end event event dw_uc::clicked;call super::clicked; IF row <= 0 THEN RETURN IF dwo.Name = 'p_dview1' THEN Parent.TriggerEvent('ue_add_descp') ELSEIF dwo.Name = 'p_dview2' THEN Parent.TriggerEvent('ue_add_descp2') ELSEIF dwo.Name = 'p_dview3' THEN Parent.TriggerEvent('ue_add_descp3') ELSEIF dwo.Name = 'p_dview4' THEN Parent.TriggerEvent('ue_add_cus_address') ELSEIF dwo.Name = 'p_dview5' THEN Parent.TriggerEvent('ue_ch_station') END IF IF Not dw_edit_mode THEN RETURN IF dwo.Name = 'p_p' THEN Parent.TriggerEvent('ue_f9') ELSEIF dwo.Name = 'p_money' THEN Parent.TriggerEvent('ue_ch_money') ELSEIF dwo.Name = 'p_banktype' THEN Parent.TriggerEvent('ue_ch_banktype') ELSEIF dwo.Name = 'p_emp' THEN Parent.TriggerEvent('ue_ch_outrepdef') ELSEIF dwo.Name = 'p_d' Or dwo.Name = 'choicesalehis_t' THEN //引入销售历史 Parent.TriggerEvent('ue_f6') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_1' Or dwo.Name = 'choicequote_t' THEN //引入报价单 Parent.TriggerEvent('ue_f15') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_2' Or dwo.Name = 'choicepricelist_t' THEN //引入价格表明细 Parent.TriggerEvent('ue_f18') Parent.TriggerEvent('ue_setprice_forformula') ELSEIF dwo.Name = 'p_3' Or dwo.Name = 'choiceware_t' THEN //引入库存 Parent.TriggerEvent('ue_f7') Parent.TriggerEvent('ue_setprice_forformula') 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::ue_dwndropdown;call super::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_saletask_rel_rep' then int rtncode string ls_sql long ls_cusid ls_cusid = dw_uc.object.cusid[dw_uc.getrow()] DataWindowChild dw_child_dddw rtncode = dw_uc.GetChild("u_saletask_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_saletask end type type dw_child from w_publ_1ton_share_detail`dw_child within w_saletask integer y = 2292 integer width = 3570 integer height = 420 integer taborder = 160 string title = "销售订单明细" string dataobject = "dw_saletaskmx" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode,ls_mtrlsectype,ls_zxmtrlmode Long ls_mtrlid,ls_cusid Dec ls_planprice,ls_lmsaleprice,ls_price,ls_rebate Long li_statusflag Long li_woodcodeflag Long li_pcodeflag s_mtrldef_array arg_s_mtrldef Long child_row Long ls_null,ll_moneyid SetNull(ls_null) String arg_msg = '' string ls_woodcode,ls_status,ls_pcode string ls_priceformula IF dw_edit_mode THEN dw_uc.AcceptText() ls_cusid = dw_uc.Object.cusid[dw_uc.GetRow()] IF IsNull(ls_cusid) OR ls_cusid = 0 THEN parent.TriggerEvent("ue_f9") END IF ll_moneyid = dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] IF ll_moneyid = 0 OR IsNull(ll_moneyid) THEN MessageBox('提示','请先选择币种',information!,OK!) RETURN 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!) 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 f_find_mtrl(ls_mtrlcode,-1,arg_s_mtrldef) = 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 ELSE ls_mtrlid = arg_s_mtrldef.mtrlid[1] ls_mtrlcode = arg_s_mtrldef.mtrlcode[1] ls_mtrlname = arg_s_mtrldef.mtrlname[1] ls_unit = arg_s_mtrldef.unit[1] ls_mtrlmode = arg_s_mtrldef.mtrlmode[1] ls_planprice = arg_s_mtrldef.planprice[1] ls_lmsaleprice = arg_s_mtrldef.lmsaleprice[1] ls_mtrlsectype=arg_s_mtrldef.mtrlsectype[1] ls_zxmtrlmode=arg_s_mtrldef.zxmtrlmode[1] li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] ls_priceformula = arg_s_mtrldef.priceformula[1] END IF dw_child.Object.mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.u_saletaskmx_unit[child_row] = ls_unit dw_child.Object.u_saletaskmx_rate[child_row] = 1 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_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag dw_child.Object.u_saletaskmx_status[child_row] = arg_s_mtrldef.status[1] dw_child.Object.u_saletaskmx_woodcode[child_row] = arg_s_mtrldef.woodcode[1] dw_child.Object.u_saletaskmx_pcode[child_row] = arg_s_mtrldef.pcode[1] dw_child.Object.u_SaleTaskMx_priceformula[child_row] = arg_s_mtrldef.priceformula[1] dw_child.Object.u_saletaskmx_net_weight[child_row] = arg_s_mtrldef.net_weight[1] dw_child.Object.u_saletaskmx_gross_weight[child_row] = arg_s_mtrldef.gross_weight[1] dw_child.Object.u_saletaskmx_cubage[child_row] = arg_s_mtrldef.cubage[1] dw_child.Object.u_saletaskmx_packqty[child_row] = arg_s_mtrldef.packqty[1] dw_child.Object.u_mtrldef_prdpackcode[child_row] = arg_s_mtrldef.prdpackcode[1] IF arg_s_mtrldef.saleunit[1] = 1 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_buy[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_buy[1] ELSEIF arg_s_mtrldef.saleunit[1] = 2 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_scll[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_scll[1] ELSEIF arg_s_mtrldef.saleunit[1] = 3 THEN dw_child.Object.u_saletaskmx_unit[child_row] = arg_s_mtrldef.unit_sale[1] dw_child.Object.u_saletaskmx_rate[child_row] = arg_s_mtrldef.rate_sale[1] END IF parent.triggerevent('ue_allowedit') // IF sys_option_price_if_status = 0 THEN // Decimal ls_1stnewprice,ls_1stzqrate,ls_1strate // IF f_getmtrlcusprice(ll_moneyid,ls_mtrlid,ls_cusid,ls_unit,'','','',0,ls_1stnewprice,ls_1stzqrate,ls_1strate,arg_msg) <> 1 THEN // dw_child.Object.u_saletaskmx_enprice[child_row] = 0 // dw_child.Object.u_saletaskmx_rebate[child_row] = 1 // ELSE // dw_child.Object.u_saletaskmx_enprice[child_row] = ls_1stnewprice // dw_child.Object.u_saletaskmx_rebate[child_row] = ls_1stzqrate // dw_child.Object.u_saletaskmx_rate[child_row] = ls_1strate // END IF // END IF wf_get_price(child_row) 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( ) = 'usaleqty' THEN dw_child.AcceptText() child_row = dw_child.GetRow() wf_get_price(child_row) RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_saletaskmx_mxdscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_saletaskmx_status' OR dw_child.GetColumnName( ) = 'u_saletaskmx_woodcode' OR dw_child.GetColumnName( ) = 'u_saletaskmx_pcode' THEN Parent.TriggerEvent('ue_setprice_forformula') RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_saletaskmx_priceformula' THEN PARENT.TriggerEvent("ue_setprice_forformula_1") RETURN 1 ELSEIF dw_child.GetColumnName( ) = 'u_saletaskmx_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::doubleclicked;string ls_text ls_text = ddlb_1.text IF dw_edit_mode THEN IF dwo.Name = 'u_saletaskmx_addqty' THEN PARENT.TriggerEvent('ue_add_addqty') ELSEIF dwo.Name = 'u_saletaskmx_outtype' THEN PARENT.TriggerEvent('ue_f11') ELSEIF dwo.Name = 'u_saletaskmx_unit' THEN PARENT.TriggerEvent('ue_f12') ELSEIF dwo.Name = 'usaleqty' OR dwo.Name = 'u_saletaskmx_formula' THEN PARENT.TriggerEvent('ue_cmpl_qty') ELSEIF dwo.Name = 'u_saletaskmx_priceformula' THEN PARENT.TriggerEvent('ue_cmpl_price') ELSEIF (dwo.name = 'u_saletaskmx_status' or dwo.name = 'u_saletaskmx_woodcode' or dwo.name = 'u_saletaskmx_pcode') and dw_child.object.mtrlid[dw_child.getrow()] > 0 then string name name =dwo.name PARENT.trigger event ue_view_status(row,name) ELSEIF dwo.Name = 'u_saletaskmx_mxdscrp' THEN PARENT.TriggerEvent('ue_view_mxdscrp') RETURN ELSEIF dwo.Name = 'u_saletaskmx_mxdscrp2' THEN PARENT.TriggerEvent('ue_view_mxdscrp2') RETURN ELSEIF dwo.Name = 'u_saletaskmx_mxdscrp3' THEN PARENT.TriggerEvent('ue_view_mxdscrp3') RETURN ELSEIF dwo.Name = 'u_saletaskmx_mxdscrp4' THEN PARENT.TriggerEvent('ue_view_mxdscrp4') RETURN ELSE // IF cbx_quote.Checked THEN // PARENT.TriggerEvent('ue_f15') // ELSEIF cbx_list.Checked THEN // PARENT.TriggerEvent('ue_f18') // ELSE // PARENT.TriggerEvent('ue_f8') // END IF if ls_text = '报价单' then PARENT.TriggerEvent('ue_f15') elseif ls_text = '价格表' then PARENT.TriggerEvent('ue_f18') else PARENT.TriggerEvent('ue_f8') end if Parent.TriggerEvent('ue_setprice_forformula') Parent.TriggerEvent('ue_setqty_forformula') END IF END IF end event event dw_child::itemchanged;call super::itemchanged;IF Not dw_edit_mode THEN RETURN This.AcceptText() //IF sys_option_saletask_plan = 1 AND dwo.Name = 'usaleqty' THEN // this.object.u_saletaskmx_orderqty[row] = this.object.usaleqty[row] //END IF IF dwo.Name = 'usaleqty' And sys_option_price_if_list = 1 and (dw_child.Object.u_saletaskmx_enprice[row]=0 or isnull(dw_child.Object.u_saletaskmx_enprice[row])) THEN //价格表增加数量下限,数量上  wf_get_price(row) END IF IF dwo.Name = 'u_saletaskmx_status' OR dwo.Name = 'u_saletaskmx_woodcode' OR dwo.Name = 'u_saletaskmx_pcode' or & dwo.Name = 'u_saletaskmx_mxdscrp' OR dwo.Name = 'u_saletaskmx_mxdscrp2' OR dwo.Name = 'u_saletaskmx_mxdscrp3' OR dwo.Name = 'u_saletaskmx_mxdscrp4' THEN Parent.TriggerEvent('ue_setprice_forformula') Parent.TriggerEvent('ue_setqty_forformula') END IF IF dwo.Name = 'usaleqty' Or dwo.Name = 'enamt' Or dwo.Name = 'u_saletaskmx_enprice' Or dwo.Name = 'u_saletaskmx_rebate' or dwo.Name = 'u_saletaskmx_enprice_notax' or dwo.name = 'u_saletaskmx_tax' THEN wf_cmpl_amt(row) ELSEIF dwo.Name = 'u_saletaskmx_status' Or dwo.Name = 'u_saletaskmx_woodcode' Or dwo.Name = 'u_saletaskmx_pcode' THEN IF row > 0 THEN IF Object.u_mtrldef_statusflag[row] = 2 THEN wf_get_price(row) END IF END IF END IF 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 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_saletaskmx_status' Or ls_col_pz = 'u_saletaskmx_woodcode' Or ls_col_pz = 'u_saletaskmx_pcode' THEN IF ll_row > 0 THEN IF This.Object.u_mtrldef_statusflag[ll_row] = 2 THEN wf_get_price(ll_row) END IF END IF END IF END IF end event event dw_child::editchanged;call super::editchanged;////messagebox("",sys_option_saletask_plan) //IF sys_option_saletask_plan <> 1 THEN RETURN //IF This.GetColumnName() = 'enamt' THEN RETURN //IF DATA= '' THEN RETURN //this.accepttext() ////IF DATA= '' THEN RETURN //IF dwo.Name = 'usaleqty' then // this.object.u_saletaskmx_orderqty[row] = this.object.usaleqty[row] //end if //this.accepttext() //IF sys_option_saletask_plan = 1 AND dwo.Name = 'usaleqty' THEN // IF DATA= '' THEN RETURN // this.object.u_saletaskmx_orderqty[row] = this.object.usaleqty[row] //END IF end event event dw_child::rowfocuschanged;call super::rowfocuschanged;Parent.TriggerEvent('ue_retrieve_his_pricemx') end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_saletask integer x = 1915 integer taborder = 40 end type type cb_print from w_publ_1ton_share_detail`cb_print within w_saletask integer x = 1723 integer taborder = 150 end type type cb_add from w_publ_1ton_share_detail`cb_add within w_saletask integer x = 297 integer taborder = 140 end type event cb_add::clicked;IF Not f_power_ind(5) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg = '' Long uc_row,pagerert_row,i Long relid_pageretr,reld_uc Int rslt_chk Long ll_scid s_saletaskmx s_mx s_saletask_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 dw_uc.Object.u_saletask_moneyid[uc_row] = 0 THEN MessageBox('提示','请选择币种!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_saletask_moneyid") RETURN END IF IF dw_uc.Object.u_saletask_banktypeid[uc_row] = 0 THEN MessageBox('提示','请选择结算方式!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_saletask_banktypeid") RETURN END IF IF sys_option_saletask_requireday_mode = 0 THEN FOR i = 1 To dw_child.RowCount() dw_child.Object.u_saletaskmx_requiredate[i] = dw_uc.Object.requiredate[uc_row] NEXT ELSE DateTime MAX_RQ MAX_RQ = DateTime(dw_child.Object.u_saletaskmx_requiredate[1]) FOR i = 1 To dw_child.RowCount() IF DateTime(dw_child.Object.u_saletaskmx_requiredate[i]) <= DateTime('1900-01-01') Or IsNull(dw_child.Object.u_saletaskmx_requiredate[i]) THEN MessageBox("提示","系统选项设定交期方式为明细录入,明细交货日期不能为空") RETURN END IF IF MAX_RQ < DateTime(dw_child.Object.u_saletaskmx_requiredate[i]) THEN MAX_RQ = DateTime(dw_child.Object.u_saletaskmx_requiredate[i]) END IF NEXT dw_uc.Object.requiredate[uc_row] = MAX_RQ END IF IF Year(Date(dw_uc.Object.requiredate[uc_row])) < 2000 THEN MessageBox('提示','要求完成日期为空或不合理!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("requiredate") RETURN END IF IF Date(dw_uc.Object.requiredate[uc_row]) < Date(dw_uc.Object.u_saletask_taskdate[uc_row]) THEN MessageBox('提示','交货日期小于订货日期!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("requiredate") RETURN END IF IF Not Len(String(dw_uc.Object.assign_emp[uc_row])) > 0 THEN MessageBox('提示','请选择业务员!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("assign_emp") RETURN END IF rslt_chk = wf_check_relcode( dw_uc.Object.u_saletask_scid[uc_row], dw_uc.Object.taskid[uc_row], dw_uc.Object.u_saletask_relcode[uc_row],arg_msg) IF rslt_chk = 0 Or rslt_chk = 2 THEN MessageBox('系统提示',arg_msg) RETURN ELSEIF rslt_chk = 3 THEN IF MessageBox('询问',arg_msg,question!,yesno!) = 2 THEN RETURN END IF if cbx_auto_qty.Checked then IF wf_formualprice_auto(arg_msg) =0 THEN MessageBox('系统提示',arg_msg) RETURN END IF IF wf_formualqty_auto(arg_msg) =0 THEN MessageBox('系统提示',arg_msg) RETURN END IF end if //检查配置有没有填写 FOR i = 1 To dw_child.RowCount() IF dw_child.Object.mtrlid[i] > 0 THEN IF wf_check_pz(dw_child.Object.mtrlid[i],dw_child.Object.u_mtrldef_mtrlcode[i],dw_child.Object.u_saletaskmx_status[i],dw_child.Object.u_saletaskmx_woodcode[i],dw_child.Object.u_saletaskmx_pcode[i],arg_msg) = 0 THEN MessageBox('系统提示',arg_msg) RETURN END IF END IF NEXT IF Not sys_power_issuper And f_power_ind(977) THEN arg_msg = '' FOR i = 1 To dw_child.RowCount() IF dw_child.Object.u_saletaskmx_outtype[i] > 0 And sys_option_saletask_price = 1 THEN ELSE IF dw_child.Object.u_saletaskmx_enprice[i] = 0 THEN arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',单价为零!~n ' END IF END IF NEXT IF arg_msg <> '' THEN MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!) RETURN END IF END IF // IF cbx_sc.Checked THEN // FOR i = 1 TO dw_child.RowCount() // dw_child.Object.u_saletaskmx_orderqty[i] = dw_child.Object.usaleqty[i] // NEXT // END IF IF Not sys_power_issuper And f_power_ind(2059) THEN //价格不能低于客户价格表价格 long ll_cusid,ll_mtrlid longlong ll_price arg_msg = '' FOR i = 1 To dw_child.RowCount() ll_cusid=dw_uc.Object.cusid[uc_row] ll_mtrlid=dw_child.Object.mtrlid[i] select u_sale_price_mx.price into :ll_price from u_cust left join u_sale_price_list on u_cust.pricelistid=u_sale_price_list.pricelistid left join u_sale_price_mx on u_sale_price_list.pricelistid=u_sale_price_mx.pricelistid left join u_mtrldef on u_sale_price_mx.mtrlid=u_mtrldef.mtrlid where u_sale_price_list.flag=1 and u_mtrldef.mtrlid=:ll_mtrlid and u_cust.cusid=:ll_cusid; IF IsNull(ll_price) THEN ll_price = 0 IF dw_child.Object.u_saletaskmx_enprice[i] < ll_price and ll_price>0 THEN arg_msg = arg_msg + '第' + String(i) + '行,产品:' + dw_child.Object.u_mtrldef_mtrlcode[i] + ',单价低于客户价格表单价!~n ' end if NEXT IF arg_msg <> '' THEN MessageBox('提示',arg_msg + '用户权限限制,不能保存!',information!,OK!) RETURN END IF END IF // 自动按数量和单价公式计算数量和单价 if cbx_auto_qty.checked = true then Parent.TriggerEvent('ue_setprice_forformula') Parent.TriggerEvent('ue_setqty_forformula') for i = 1 to dw_child.rowcount() wf_cmpl_amt(i) next end if dw_child.accepttext() //检查明细 数量=0 的行 string ls_msg = '' for i = 1 to dw_child.rowcount() if dw_child.object.usaleqty[i] = 0 or isnull(dw_child.object.usaleqty[i] ) then if ls_msg <> '' then ls_msg = ls_msg + '第' + string(i) + '行,数量为0' + '~r~n' else ls_msg = '第' + string(i) + '行,数量为0' + '~r~n' end if end if next if ls_msg <> '' then IF MessageBox ("询问",ls_msg + '~r~n' + "是否确定要继续吗,继续会删除数量为0的行。",Question!,YesNo! ) = 2 THEN RETURN 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_saletaskmx_enprice[i] > 0 THEN ELSE MessageBox('提示','第' + String(i) + '行请输入单价') RETURN END IF IF dw_child.Object.u_saletaskmx_enprice[i] <> 0 And dw_child.Object.usaleqty[i] <> 0 THEN dw_child.Object.u_saletaskmx_rebate[i] = dw_child.Object.enamt[i] / dw_child.Object.u_saletaskmx_enprice[i] / dw_child.Object.usaleqty[i] END IF END IF NEXT END IF //信用额 288 IF sys_option_cusrepamt_saletask_limit = 1 THEN wf_getcusrepamt_info(dw_uc.Object.u_saletask_scid[uc_row],dw_uc.Object.cusid[uc_row], dw_uc.Object.u_saletask_moneyid[uc_row] ) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项288限制~r~n' + cur_cusrepamtstr) RETURN 0 END IF END IF //20200619 取消限制,改成界面检测 //保存前根据物料资料定义,检查数量和辅数的关系是否正确,如果辅数有填写 ,数量没有填写 ,会根据物料资料里的定义自动计算出数量 // IF wf_check_qtyandaddqty(arg_msg) = 0 THEN // MessageBox('提示',arg_msg + ',不能保存!',information!,OK!) // RETURN // END IF //系统选项280 设置单价小数位数 wf_set_decimal_place() ll_scid = dw_uc.Object.u_saletask_scid[uc_row] obj_saletask.requiredate = dw_uc.Object.requiredate[uc_row] obj_saletask.assign_emp = dw_uc.Object.assign_emp[uc_row] obj_saletask.Kind = dw_uc.Object.Kind[uc_row] obj_saletask.cusid = dw_uc.Object.cusid[uc_row] obj_saletask.dscrp = dw_uc.Object.dscrp[uc_row] obj_saletask.dscrp2 = dw_uc.Object.u_saletask_dscrp2[uc_row] obj_saletask.taskdate = dw_uc.Object.u_saletask_taskdate[uc_row] obj_saletask.banktypeid = dw_uc.Object.u_saletask_banktypeid[uc_row] obj_saletask.moneyid = dw_uc.Object.u_saletask_moneyid[uc_row] obj_saletask.damt = dw_uc.Object.u_saletask_damt[uc_row] obj_saletask.otheramt = dw_uc.Object.u_saletask_otheramt[uc_row] obj_saletask.relcode = dw_uc.Object.u_saletask_relcode[uc_row] obj_saletask.paytype = dw_uc.Object.u_saletask_paytype[uc_row] obj_saletask.transcode = dw_uc.Object.u_saletask_transcode[uc_row] obj_saletask.carcode = dw_uc.Object.u_saletask_carcode[uc_row] obj_saletask.freight = dw_uc.Object.u_saletask_freight[uc_row] obj_saletask.freight_tele = dw_uc.Object.u_saletask_freight_tele[uc_row] obj_saletask.cus_address = dw_uc.Object.u_saletask_cus_address[uc_row] obj_saletask.cus_tele = dw_uc.Object.u_saletask_cus_tele[uc_row] obj_saletask.cus_tele1 = dw_uc.Object.u_saletask_cus_tele1[uc_row] obj_saletask.cus_fax = dw_uc.Object.u_saletask_cus_fax[uc_row] obj_saletask.mrate = dw_uc.Object.u_saletask_mrate[uc_row] obj_saletask.dscrp3 = dw_uc.Object.u_saletask_dscrp3[uc_row] obj_saletask.rel_rep = dw_uc.Object.u_saletask_rel_rep[uc_row] obj_saletask.freight_address = dw_uc.Object.u_saletask_freight_address[uc_row] FOR i = 1 To dw_child.RowCount() IF dw_child.Object.mtrlid[i] > 0 THEN s_mx.mtrlid = dw_child.Object.mtrlid[i] s_mx.usaleqty = dw_child.Object.usaleqty[i] s_mx.orderqty = dw_child.Object.u_saletaskmx_orderqty[i] s_mx.needbuyqty = dw_child.Object.u_saletaskmx_needbuyqty[i] s_mx.enprice = dw_child.Object.u_saletaskmx_enprice[i] s_mx.rebate = dw_child.Object.u_saletaskmx_rebate[i] s_mx.planprice = dw_child.Object.plprice[i] s_mx.dscrp = dw_child.Object.u_saletaskmx_mxdscrp[i] s_mx.mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[i] s_mx.status = dw_child.Object.u_saletaskmx_status[i] s_mx.woodcode = dw_child.Object.u_saletaskmx_woodcode[i] s_mx.pcode = dw_child.Object.u_saletaskmx_pcode[i] s_mx.mtrlcuscode = dw_child.Object.u_saletaskmx_mtrlcuscode[i] s_mx.printid = dw_child.Object.pid[i] s_mx.outtype = dw_child.Object.u_saletaskmx_outtype[i] s_mx.unit = dw_child.Object.u_saletaskmx_unit[i] s_mx.rate = dw_child.Object.u_saletaskmx_rate[i] s_mx.formula = dw_child.Object.u_saletaskmx_formula[i] s_mx.addqty = dw_child.Object.u_saletaskmx_addqty[i] s_mx.mxdscrp2 = dw_child.Object.u_saletaskmx_mxdscrp2[i] s_mx.needwfjgqty = dw_child.Object.u_saletaskmx_needwfjgqty[i] s_mx.plancode = dw_child.Object.u_saletaskmx_plancode[i] //由系统选项236直接控制 s_mx.tax = dw_child.Object.u_saletaskmx_tax[i] s_mx.packqty = dw_child.Object.u_saletaskmx_packqty[i] s_mx.net_weight = dw_child.Object.u_saletaskmx_net_weight[i] s_mx.gross_weight = dw_child.Object.u_saletaskmx_gross_weight[i] s_mx.cubage = dw_child.Object.u_saletaskmx_cubage[i] s_mx.mxdscrp3 = dw_child.Object.u_saletaskmx_mxdscrp3[i] s_mx.mxdscrp4 = dw_child.Object.u_saletaskmx_mxdscrp4[i] s_mx.requiredate = DateTime(dw_child.Object.u_saletaskmx_requiredate[i]) s_mx.priceformula = dw_child.Object.u_saletaskmx_priceformula[i] s_mx.enprice_notax = dw_child.Object.u_saletaskmx_enprice_notax[i] s_mx.enamt_tax = dw_child.Object.u_saletaskmx_enamt_tax[i] s_mx.otherprice = dw_child.Object.u_saletaskmx_otherprice[i] IF obj_saletask.acceptmx(s_mx, arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF NEXT FOR i = 1 To dw_fymx.RowCount() IF dw_fymx.Object.u_saletask_itemmx_itemid[i] > 0 THEN s_item.printid = i s_item.itemid = dw_fymx.Object.u_saletask_itemmx_itemid[i] s_item.amt = dw_fymx.Object.u_saletask_itemmx_amt[i] s_item.amtyfh = dw_fymx.Object.u_saletask_itemmx_amtyfh[i] s_item.mxdscrp = dw_fymx.Object.u_saletask_itemmx_mxdscrp[i] s_item.itype = dw_fymx.Object.u_saletask_itemmx_itype[i] IF obj_saletask.acceptmx_item(s_item, arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF END IF NEXT IF obj_saletask.savesubmit(publ_operator,arg_msg,False) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF obj_saletask.save_end(arg_msg,True) = 0 THEN //保存费用项目 MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF // messagebox(publ_operator,'保存操作成功!') //write ini f_SetProfileString (sys_empid,publ_userid + '_' + dw_uc.DataObject, "moneyid",String(dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()])) f_SetProfileString (sys_empid,dw_uc.DataObject, "dft_banktype",String(dw_uc.Object.u_saletask_banktypeid[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,obj_saletask.taskid) //刷新uc String ls_taskcode ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF f_billevent_trigger (102, 2, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF ELSE IF obj_saletask.newbegin(cur_scid,arg_msg) = 0 THEN //生产令领料 MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF CALL Super::Clicked IF dw_edit_mode THEN dw_fymx.Reset() dw_fymx.InsertRow(0) Parent.TriggerEvent("insert_childrow") String ls_moneyid,ls_banktype ls_moneyid = f_ProfileString (sys_empid,publ_userid + '_' + dw_uc.DataObject, "moneyid",'0') ls_banktype = f_ProfileString (sys_empid,dw_uc.DataObject, "dft_banktype",'0') dw_uc.SetRedraw(False) dw_uc.Object.u_saletask_moneyid[dw_uc.GetRow()] = Long(ls_moneyid) dw_uc.Object.u_saletask_mrate[dw_uc.GetRow()] = f_get_mrate(Long(ls_moneyid)) dw_uc.Object.u_saletask_banktypeid[dw_uc.GetRow()] = Long(ls_banktype) dw_uc.Object.u_saletask_scid[dw_uc.GetRow()] = cur_scid dw_uc.Object.requiredate[dw_uc.GetRow()] = RelativeDate(Today(),sys_option_saletask_days) dw_uc.SetColumn("u_saletask_moneyid") 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_saletask integer taborder = 110 end type event cb_edit::clicked;IF NOT f_power_ind(5) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF String arg_msg = '' Long uc_row IF NOT dw_edit_mode THEN uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF obj_saletask.updatebegin(dw_pageretr.Object.u_saletask_scid[uc_row],dw_pageretr.Object.taskid[uc_row],arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF PARENT.TriggerEvent('ue_allowedit') END IF CALL SUPER::Clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_saletask integer taborder = 170 end type event cb_delet::clicked;call super::clicked;if not f_power_ind(579) then messagebox('提示',sys_msg_pow,information!,OK!) return end if if dw_edit_mode then return string arg_msg='' long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标订单!',information!,OK!) return end if IF MessageBox ("询问","是否确定要删除当前吗",Question!,YesNo! ) = 2 THEN RETURN if obj_saletask.cancel(dw_pageretr.Object.u_saletask_scid[uc_row],dw_pageretr.object.taskid[uc_row],arg_msg,true)=0 then messagebox('错误',arg_msg,stopsign!,OK!) ELSE //日志 long ls_id string ls_code ls_id=dw_pageretr.object.taskid[uc_row] ls_code=dw_pageretr.object.taskCODE[uc_row] f_setsysoplog('销售订单','删除,ID:'+string(LS_id)+',code:'+ls_code,arg_msg,true) //-- MESSAGEBOX('提示','删除单据'+string(dw_pageretr.object.taskCODE[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_saletask integer x = 1221 end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF Not dw_edit_mode THEN menustr += "|" + "Text=复制单据~tEvent=ue_bill_copy" menustr += "|" + "Text=-" menustr += "|" + "Text=增加备注~tEvent=ue_addzy" menustr += "|" + "Text=修改相关号~tEvent=ue_update_relcode" menustr += "|" + "Text=-" menustr += "|" + "Text=确认~tEvent=ue_priceaudit" menustr += "|" + "Text=反确认~tEvent=ue_cpriceaudit" menustr += "|" + "Text=-" IF sys_option_saletask_secaudit = 0 THEN menustr += "|" + "Text=批审核订单~tEvent=ue_paudit_task" menustr += "|" + "Text=批撤审订单~tEvent=ue_paudit_task_cancel" ELSE menustr += "|" + "Text=批审核订单~tEvent=ue_paudit1_task" menustr += "|" + "Text=批撤审订单~tEvent=ue_paudit1_task_cancel" menustr += "|" + "Text=批二审订单~tEvent=ue_paudit2_task" menustr += "|" + "Text=批二审撤审订单~tEvent=ue_paudit2_task_cancel" END IF menustr += "|" + "Text=-" menustr += "|" + "Text=暂停订单~tEvent=ue_tempstoptask" menustr += "|" + "Text=取消暂停~tEvent=ue_ctempstoptask" menustr += "|" + "Text=终止订单~tEvent=ue_stopsaletask" menustr += "|" + "Text=取消终止~tEvent=ue_stopsaletask_cancel" menustr += "|" + "Text=完成订单~tEvent=ue_finishtask" menustr += "|" + "Text=取消完成~tEvent=ue_finishtask_cancel" menustr += "|" + "Text=-" menustr += "|" + "Text=查看附件~tEvent=ue_fj_view" menustr += "|" + "Text=添加附件~tEvent=ue_fj_edit" menustr += "|" + "Text=刷新列表附件数~tEvent=retrieve_fjnum" menustr += "|" + "Text=-" menustr += "|" + "Text=按订单价格更新价格表~tEvent=ue_pricelist_update" menustr += "|" + "Text=-" menustr += "|" + "Text=辅助建立销售发货单~tEvent=ue_create_outware_sale" menustr += "|" + "Text=辅助建立客户投诉单~tEvent=ue_create_oppose_cust" menustr += "|" + "Text=辅助建立客户费用单~tEvent=ue_create_reissue" menustr += "|" + "Text=辅助建立订单收款单~tEvent=ue_create_taskdamt" menustr += "|" + "Text=辅助建立采购订单~tEvent=ue_create_buytask" menustr += "|" + "Text=辅助建立生产进仓单~tEvent=ue_create_inware_cp" menustr += "|" + "Text=-" menustr += "|" + "Text=辅助生成采购订单~tEvent=ue_create_buytask_auto" menustr += "|" + "Text=-" menustr += "|" + "Text=界面属性选项设置方案~tEvent=ue_saletask_choose" ELSE menustr += "|" + "Text=粘贴单据~tEvent=ue_bill_paste" menustr += "|" + "Text=-" menustr += "|" + "Text=缓存单据~tEvent=ue_billcache_export" menustr += "|" + "Text=导入缓存单据~tEvent=ue_billcache_import" menustr += "|" + "Text=-" menustr += "|" + "Text=导入单价~tEvent=ue_importseleprice" menustr += "|" + "Text=补充导入单价~tEvent=ue_importseleprice_buchong" menustr += "|" + "Text=导入客户单价~tEvent=ue_importcusseleprice" IF sys_option_price_if_list = 0 THEN //取销售历史, 1时只能取价格表 menustr += "|" + "Text=导入客户历史售价~tEvent=ue_importcusseleprice_his" END IF menustr += "|" + "Text=计算优惠款~tEvent=ue_cmpl_otheramt" 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_saletask integer taborder = 190 end type event cb_auditing::clicked;call super::clicked;IF dw_edit_mode THEN RETURN String arg_msg = '', ls_msg Long pagerert_row Long ll_scid, ll_taskid Int li_status String ls_taskcode Boolean lb_audit = False, lb_secaudit = False, lb_commit = False pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[pagerert_row] ll_taskid = dw_pageretr.Object.taskid[pagerert_row] li_status = dw_pageretr.Object.u_saletask_status[pagerert_row] IF MessageBox ("询问","是否确定要对当前订单审核?",Question!,YesNo! ) = 2 THEN RETURN //信用额 288 IF sys_option_cusrepamt_saletask_limit = 3 And li_status = 0 THEN wf_getcusrepamt_info(ll_scid,dw_pageretr.Object.u_saletask_cusid[pagerert_row], dw_pageretr.Object.u_saletask_moneyid[pagerert_row] ) IF cur_cusrepamtflag = -1 THEN MessageBox('系统提示','系统选项288限制~r~n'+cur_cusrepamtstr) RETURN 0 END IF END IF IF li_status = 0 THEN ls_msg = "审核" IF sys_option_saletask_secaudit = 0 THEN IF Not f_power_ind(6) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF lb_commit = False ELSE IF Not f_power_ind(1729) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF lb_commit = True END IF lb_audit = True /*MEI:自动生成领料单 20160511*/ IF obj_saletask.getinfo(ll_scid,ll_taskid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF obj_saletask.audit(ll_scid,ll_taskid,publ_operator,arg_msg,lb_commit) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF sys_option_saletask_secaudit = 0 THEN lb_secaudit = True IF obj_saletask.salepermit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF ELSEIF li_status = 4 THEN IF Not f_power_ind(6) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ls_msg = "二审" lb_secaudit = True IF obj_saletask.salepermit(ll_scid,ll_taskid,publ_operator,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF MessageBox('提示','销售订单'+ls_msg+'成功!',information!,OK!) ls_taskcode = dw_pageretr.Object.taskcode[dw_pageretr.GetRow()] IF lb_audit THEN IF f_billevent_trigger (102, 3, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF END IF IF lb_secaudit THEN IF f_billevent_trigger (102, 4, ls_taskcode, arg_msg) = 0 THEN MessageBox('Error',arg_msg) END IF END IF IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(ll_scid,ll_taskid) END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_saletask integer x = 1472 integer taborder = 70 end type event cb_xm::clicked;is_mx_menustr = '' IF dw_edit_mode THEN is_mx_menustr += "|" + "Text=批设定数量~tEvent=ue_p_saleqty" is_mx_menustr += "|" + "Text=批设定折扣~tEvent=ue_p_rebate" is_mx_menustr += "|" + "Text=批设定"+sys_option_change_status+"~tEvent=ue_p_status" is_mx_menustr += "|" + "Text=批设定"+sys_option_change_woodcode+"~tEvent=ue_p_woodcode" is_mx_menustr += "|" + "Text=批设定"+sys_option_change_pcode+"~tEvent=ue_p_pcode" is_mx_menustr += "|" + "Text=计算税率~tEvent=ue_cmpl_tax" is_mx_menustr += "|" + "Text=批设定税率~tEvent=ue_p_tax" is_mx_menustr += "|" + "Text=批设定数量公式~tEvent=ue_p_formula_set" is_mx_menustr += "|" + "Text=批设定单价公式~tEvent=ue_p_priceformula_set" is_mx_menustr += "|" + "Text=批按数量公式计算数量~tEvent=ue_p_cmpl_qty" is_mx_menustr += "|" + "Text=批按单价公式计算单价~tEvent=ue_p_cmpl_price" is_mx_menustr += "|" + "Text=批按辅数和配置计算数量~tEvent=ue_cmpl_status_qty" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=批按订单数量计算需排产数~tEvent=ue_copy_qty" is_mx_menustr += "|" + "Text=批按订单数量计算需订购数~tEvent=ue_copy_needqty" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=明细标题与execl标题对应关系设置~tEvent=ue_set_dytitle" is_mx_menustr += "|" + "Text=从execl导入到订单明细~tEvent=ue_insert_execltodw" ELSE is_mx_menustr += "|" + "Text=修改明细终止数~tEvent=ue_stopqty" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=修改明细单价~tEvent=ue_mod_enprice" is_mx_menustr += "|" + "Text=-" is_mx_menustr += "|" + "Text=计算明细库存数量和不足数量~tEvent=ue_mx_cmplnoallocqty" IF sys_option_saletask_requireday_mode = 1 THEN is_mx_menustr += "|" + "Text=修改明细交货日期~tEvent=ue_mx_requiredate" END IF is_mx_menustr += "|" + "Text=查看销售历史价格~tEvent=ue_show_his_pricemx" is_mx_menustr += "|" + "Text=辅助建立销售订单明细变更单~tEvent=ue_mx_alter" END IF CALL Super::Clicked end event type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_saletask integer taborder = 130 end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_saletask integer x = 2107 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_saletask integer x = 2409 integer taborder = 100 boolean enabled = true end type event cb_help::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=查看相关费用单~tEvent=ue_view_reissue" 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_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_saletask integer width = 192 end type event cb_auditing_cancel::clicked;call super::clicked; IF dw_edit_mode THEN RETURN String arg_msg = '', ls_msg Long pagerert_row Long ll_scid, ll_taskid Int li_status Boolean lb_secaudit = False, lb_commit = False pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标订单!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[pagerert_row] ll_taskid = dw_pageretr.Object.taskid[pagerert_row] li_status = dw_pageretr.Object.u_saletask_status[pagerert_row] IF MessageBox ("询问","是否确定要对当前订单取消审核?",Question!,YesNo! ) = 2 THEN RETURN IF li_status = 1 THEN IF Not f_power_ind(8) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF IF sys_option_saletask_secaudit = 0 THEN lb_commit = False ls_msg = "撤审" ELSE lb_commit = True ls_msg = "二撤" END IF /*MEI:自动生成领料单撤审 20160511*/ IF obj_saletask.getinfo(ll_scid,ll_taskid,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,ok!) RETURN END IF IF obj_saletask.cancelpermit(ll_scid,ll_taskid,arg_msg,lb_commit) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF sys_option_saletask_secaudit = 0 THEN IF obj_saletask.audit_cancel(ll_scid,ll_taskid,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF ELSEIF li_status = 4 THEN IF Not f_power_ind(1730) THEN MessageBox('提示',sys_msg_pow,information!,OK!) RETURN END IF ls_msg = "撤审" IF obj_saletask.audit_cancel(ll_scid,ll_taskid,arg_msg,True) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF MessageBox('提示','销售订单'+ls_msg+'成功!',information!,OK!) //日志 String ls_code,ls_opemp,ls_relcode ls_code = dw_pageretr.Object.taskcode[pagerert_row] ls_opemp = dw_pageretr.Object.u_saletask_opemp[pagerert_row] ls_relcode = dw_pageretr.Object.u_saletask_relcode[pagerert_row] f_setsysoplog('销售订单',ls_msg+',code:'+ls_code+',相关号码:'+ls_relcode+',建立人:'+ls_opemp,arg_msg,True) //-- IF cur_status <> -1 THEN dw_uc.DeleteRow(pagerert_row) ELSE wf_refresh_curuc(ll_scid,ll_taskid) END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_saletask integer x = 5298 integer y = 204 end type type p_help from w_publ_1ton_share_detail`p_help within w_saletask integer x = 5486 integer y = 204 end type type p_encl from w_publ_1ton_share_detail`p_encl within w_saletask integer x = 5390 integer y = 204 end type event p_encl::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_saletask integer x = 5582 integer y = 204 boolean originalsize = false end type event p_other::clicked;if sys_option_if_ljfieb = 0 then return m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=订单交期确认~tEvent=ue_redate_ljfieb" menustr=menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=查看电子商务记录~tEvent=ue_jdview_ljfieb" menustr=menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=发送订单进度~tEvent=ue_send_jd_ljfieb" 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 gb_3 from w_publ_1ton_share_detail`gb_3 within w_saletask end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_saletask end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_saletask end type type r_bar from w_publ_1ton_share_detail`r_bar within w_saletask integer height = 172 end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_saletask integer beginy = 300 integer endx = 3227 integer endy = 300 end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_saletask integer beginy = 304 integer endx = 3227 integer endy = 304 end type type ddlb_scid from uo_ddlb_scid within w_saletask integer x = 919 integer y = 196 integer width = 549 integer height = 620 integer taborder = 50 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_2 from statictext within w_saletask integer x = 741 integer y = 208 integer width = 178 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "分 部" alignment alignment = right! boolean focusrectangle = false end type type st_3 from statictext within w_saletask integer x = 1477 integer y = 208 integer width = 178 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "状 态" alignment alignment = right! boolean focusrectangle = false end type type cbx_quote from checkbox within w_saletask boolean visible = false integer x = 2030 integer y = 176 integer width = 603 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 li_quote if this.checked then li_quote = 1 cbx_list.Checked = FALSE else li_quote = 0 end if f_SetProfileString (sys_empid,dw_pageretr.DataObject, "li_quote", string(li_quote)) end event event constructor;Int li_quote li_quote = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "li_quote", '0')) IF li_quote = 0 THEN THIS.Checked = FALSE ELSE THIS.Checked = TRUE cbx_list.Checked = FALSE END IF end event type cbx_sc from checkbox within w_saletask boolean visible = false integer x = 3223 integer y = 76 integer width = 411 integer height = 84 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "保存默认排产" end type event clicked;int li_sc if this.checked then li_sc = 1 else li_sc = 0 end if f_SetProfileString (sys_empid,dw_pageretr.DataObject, "li_sc", string(li_sc)) end event event constructor;this.backcolor = 14215660 int li_sc li_sc=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "li_sc", '0')) if li_sc =0 then this.checked=false else this.checked=true end if end event type cbx_list from checkbox within w_saletask boolean visible = false integer x = 2030 integer y = 236 integer width = 603 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 li_list if this.checked then li_list = 1 cbx_quote.Checked = FALSE else li_list = 0 end if f_SetProfileString (sys_empid,dw_pageretr.DataObject, "li_list", string(li_list)) end event event constructor;IF NOT f_power_ind(1476) THEN cbx_list.Enabled = FALSE cbx_list.Checked = FALSE cbx_list.Visible = FALSE RETURN END IF Int li_list li_list = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "li_list", '0')) IF li_list = 0 THEN THIS.Checked = FALSE ELSE THIS.Checked = TRUE cbx_quote.Checked = FALSE END IF end event type ddlb_status from uo_ddlb_status within w_saletask integer x = 1682 integer y = 196 integer width = 338 integer height = 812 integer taborder = 90 boolean bringtotop = true string item[] = {"[全部]","待审核[0]","待二审[4]","在进行[1]","已暂停[2]","已终止[3]","已完成[5]","手动完成[6]"} end type event selectionchanged;call super::selectionchanged;parent.triggerevent("retrieve_pageretr") end event event uof_getvalue;call super::uof_getvalue;cur_status = this.uo_status end event type cb_fhmx from commandbutton within w_saletask integer x = 640 integer y = 2076 integer width = 315 integer height = 84 integer taborder = 130 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_taskmx.Underline = False cb_tcmx.Underline = False cb_fhmx.Underline = True cb_tsmx.Underline = False cb_taskmx.weight = 400 cb_tcmx.weight = 400 cb_fhmx.weight = 700 cb_tsmx.weight = 400 cb_edit_tc.visible = false dw_fhmx.BringToTop = True ins_dw_select = 2 end event type cb_tcmx from commandbutton within w_saletask integer x = 320 integer y = 2076 integer width = 315 integer height = 84 integer taborder = 140 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_taskmx.Underline = False cb_tcmx.Underline = True cb_fhmx.Underline = False cb_tsmx.Underline = False cb_taskmx.weight = 400 cb_tcmx.weight = 700 cb_fhmx.weight = 400 cb_tsmx.weight = 400 if sys_version = 802001 then cb_edit_tc.visible = true else cb_edit_tc.visible = False end if dw_ywymx.BringToTop = True dw_dhmx.BringToTop = True ins_dw_select = 1 end event type cb_taskmx from commandbutton within w_saletask integer y = 2076 integer width = 315 integer height = 84 integer taborder = 140 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_taskmx.Underline = True cb_tcmx.Underline = False cb_fhmx.Underline = False cb_tsmx.Underline = False cb_taskmx.weight = 700 cb_tcmx.weight = 400 cb_fhmx.weight = 400 cb_tsmx.weight = 400 cb_edit_tc.visible = false dw_child.BringToTop = True ins_dw_select = 0 end event type cb_tsmx from commandbutton within w_saletask integer x = 969 integer y = 2076 integer width = 315 integer height = 84 integer taborder = 140 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_taskmx.Underline = False cb_fhmx.Underline = False cb_taskmx.Underline = False cb_tsmx.Underline = True cb_taskmx.weight = 400 cb_fhmx.weight = 400 cb_taskmx.weight = 400 cb_tsmx.weight = 700 cb_edit_tc.visible = false dw_tsmx.BringToTop = True ins_dw_select = 3 end event type cb_edit_tc from commandbutton within w_saletask integer x = 1298 integer y = 2076 integer width = 315 integer height = 84 integer taborder = 140 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "编辑提成" end type event clicked;IF NOT f_power_ind(1725,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long scid,taskid s_edit_index_tran s_tranf8 Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row <= 0 THEN MessageBox('提示','请选择单据!',information!,OK!) RETURN END IF ll_scid = dw_pageretr.Object.u_saletask_scid[row] uc_relid = dw_pageretr.Object.taskid[row] s_tranf8.b_long = ll_scid s_tranf8.c_long = uc_relid OpenWithParm(w_saletask_tc_edit,s_tranf8) end event type cb_fymx from commandbutton within w_saletask integer x = 1623 integer y = 2076 integer width = 315 integer height = 84 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" boolean underline = true string text = "费用明细" end type event clicked;//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 cb_taskmx.Underline = False cb_tcmx.Underline = False cb_fhmx.Underline = False cb_tsmx.Underline = False cb_fymx.Underline = true cb_taskmx.weight = 400 cb_tcmx.weight = 400 cb_fhmx.weight = 700 cb_tsmx.weight = 400 cb_edit_tc.visible = false dw_fymx.BringToTop = True ins_dw_select = 4 end event type dw_tsmx from u_dw_rbtnfilter within w_saletask integer x = 1952 integer y = 2160 integer taborder = 40 boolean titlebar = true string title = "投诉明细" string dataobject = "dw_saletaskmx_tsmx" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true 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 row > 0 THEN String ls_code Long ll_scid ll_scid = 0 //THIS.Object.u_outware_scid[row] ls_code = THIS.Object.billcode[row] f_open_win(ll_scid,ls_code) END IF end event type dw_fymx from u_dw_rbtnfilter within w_saletask integer x = 1458 integer y = 2160 integer taborder = 30 boolean titlebar = true string title = "费用明细" string dataobject = "dw_saletask_itemmx_edit_1" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true end type event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN Parent.TriggerEvent('ue_add_fymx') END IF end event event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) 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 event clicked;call super::clicked;IF row > 0 THEN This.SelectRow(0,False) This.SelectRow(row,True) This.SetRow(row) END IF end event event rbuttondown;call super::rbuttondown;IF Not dw_edit_mode THEN RETURN m_dwchild_rbotton m_print m_print = Create m_dwchild_rbotton m_print.m_0.PopMenu(This.X + This.PointerX() + 50,This.Y + This.PointerY() + 50) end event type dw_fhmx from u_dw_rbtnfilter within w_saletask integer x = 974 integer y = 2160 integer taborder = 30 boolean titlebar = true string title = "发货明细" string dataobject = "dw_saletaskmx_fhmx" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true end type event doubleclicked;call super::doubleclicked;IF row > 0 THEN String ls_code Long ll_scid ll_scid = THIS.Object.u_outware_scid[row] ls_code = THIS.Object.u_outware_outwarecode[row] f_open_win(ll_scid,ls_code) END IF end event event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) end event type dw_dhmx from u_dw_rbtnfilter within w_saletask integer x = 489 integer y = 2160 integer taborder = 40 boolean titlebar = true string title = "订货明细" string dataobject = "dw_saletaskmx_dhmx" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true end type event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN Parent.TriggerEvent('ue_add_fymx') END IF end event event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) end event type dw_ywymx from u_dw_rbtnfilter within w_saletask integer y = 2160 integer taborder = 40 boolean titlebar = true string title = "业务员明细" string dataobject = "dw_saletaskmx_ywymx" boolean maxbox = true boolean hscrollbar = true boolean vscrollbar = true boolean resizable = true boolean hsplitscroll = true boolean rbutton_setposition_use = true end type event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN Parent.TriggerEvent('ue_add_fymx') END IF end event event rowfocuschanged;call super::rowfocuschanged;This.SelectRow(0,False) IF currentrow <= 0 THEN RETURN This.SelectRow(currentrow,True) end event type cbx_enamt_edit from checkbox within w_saletask boolean visible = false integer x = 3465 integer y = 8 integer width = 677 integer height = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "录入金额计算单价" end type event clicked;IF THIS.Checked THEN ii_enamt_edit = 1 this.weight = 700 this.textcolor = 255 ELSE ii_enamt_edit = 0 this.weight = 400 this.textcolor = 0 END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "enamt_edit",String(ii_enamt_edit)) 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 ELSE THIS.Checked = FALSE this.weight = 400 this.textcolor = 0 END IF end event type cbx_1 from checkbox within w_saletask integer x = 2962 integer y = 212 integer width = 233 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;Long i dw_pageretr.SetRedraw(False) FOR i = 1 To dw_pageretr.RowCount() IF dw_pageretr.Object.u_saletask_status[i] <> 0 And & dw_pageretr.Object.u_saletask_status[i] <> 1 And & dw_pageretr.Object.u_saletask_status[i] <> 4 THEN dw_pageretr.Object.ch[i] = 0 ELSE IF Checked THEN dw_pageretr.Object.ch[i] = 1 ELSE dw_pageretr.Object.ch[i] = 0 END IF END IF NEXT dw_pageretr.SetRedraw(True) end event type cbx_zk from checkbox within w_saletask boolean visible = false integer x = 4178 integer y = 8 integer width = 677 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 constructor;this.backcolor = 14215660 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 //this.y = cbx_enamt_edit.y //this.x = 4921 // end event event clicked;this.backcolor = 14215660 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)) IF ii_enamt_edit_1 = 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 type ddlb_1 from dropdownlistbox within w_saletask integer x = 2464 integer y = 196 integer width = 480 integer height = 300 integer taborder = 100 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "产品资料" string item[] = {"产品资料","报价单"} borderstyle borderstyle = stylelowered! end type event selectionchanged;string ls_text int li_quote = 0, li_list=0 ls_text = this.text if ls_text = '报价单' then li_quote = 1 elseif ls_text = '价格表' then li_list = 1 else // 产品资料 end if f_SetProfileString (sys_empid,dw_pageretr.DataObject, "li_quote", string(li_quote)) f_SetProfileString (sys_empid,dw_pageretr.DataObject, "li_list", string(li_list)) end event event constructor;Int li_list Int li_quote li_list = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "li_list", '0')) li_quote = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "li_quote", '0')) THIS.text = '产品资料' IF li_quote = 0 THEN ELSE THIS.text ='报价单' END IF IF NOT f_power_ind(1476) THEN RETURN else THIS.AddItem ('价格表') END IF IF li_list = 0 THEN ELSE THIS.text = '价格表' END IF end event type st_4 from statictext within w_saletask integer x = 2057 integer y = 208 integer width = 398 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "双击明细行选择" alignment alignment = right! boolean focusrectangle = false end type type cbx_enamt_notax_edit from checkbox within w_saletask boolean visible = false integer x = 3465 integer y = 92 integer width = 677 integer height = 80 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "录入不含税单价" end type event clicked;IF THIS.Checked THEN ii_enamt_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() 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 st_cusbalc from statictext within w_saletask integer x = 3474 integer y = 196 integer width = 1806 integer height = 92 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "客户信用额信息" boolean focusrectangle = false end type event constructor;this.x = cbx_1.x + cbx_1.width + 300 end event type st_cusbalc_sign from statictext within w_saletask boolean visible = false integer x = 3182 integer y = 196 integer width = 279 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_auto_qty from checkbox within w_saletask boolean visible = false integer x = 4905 integer y = 8 integer width = 1015 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;this.backcolor = 14215660 long ll_auto_qty IF THIS.Checked THEN ll_auto_qty = 1 // this.weight = 700 this.textcolor = 255 //ddlb_weishu.visible=true //改成用单据功能 //st_weishu.visible=true ELSE ll_auto_qty= 0 // this.weight = 400 this.textcolor = 0 ddlb_weishu.visible=false st_weishu.visible=false END IF f_SetProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "auto_qty",String(ll_auto_qty)) end event event constructor;this.backcolor = 14215660 long ll_auto_qty ll_auto_qty = Long(f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "auto_qty",'0')) IF ll_auto_qty = 1 THEN THIS.Checked = TRUE // this.weight = 700 this.textcolor = 255 //ddlb_weishu.visible=true //改成用单据功能 //st_weishu.visible=true ELSE THIS.Checked = FALSE // this.weight = 400 this.textcolor = 0 ddlb_weishu.visible=false st_weishu.visible=false END IF end event type st_weishu from statictext within w_saletask boolean visible = false integer x = 4901 integer y = 92 integer width = 672 integer height = 68 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "自动计算数量保留小数位数" boolean focusrectangle = false end type event constructor;this.backcolor = 14215660 end event type ddlb_weishu from dropdownlistbox within w_saletask boolean visible = false integer x = 5586 integer y = 84 integer width = 251 integer height = 568 integer taborder = 100 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "2" string item[] = {"0","1","2","3","4","5"} borderstyle borderstyle = stylelowered! end type event constructor;dec li_autobj li_autobj = dec(f_ProfileString (sys_empid,dw_uc.DataObject, "weishu", '2')) IF li_autobj > 0 THEN This.Text = String(li_autobj) ELSE This.Text = String('2') END IF end event event destructor;f_SetProfileString (sys_empid,dw_uc.DataObject, "weishu", String(this.text)) end event