$PBExportHeader$w_rp_cust_saletask.srw forward global type w_rp_cust_saletask from w_publ_easyq end type type dw_3 from u_dw_rbtnfilter within w_rp_cust_saletask end type type cbx_ifdate from checkbox within w_rp_cust_saletask end type type tv_1 from uo_tv_cusarea within w_rp_cust_saletask end type type cb_bill from uo_imflatbutton within w_rp_cust_saletask end type type st_1 from statictext within w_rp_cust_saletask end type type ddlb_1 from dropdownlistbox within w_rp_cust_saletask end type type ddlb_retrstatus from dropdownlistbox within w_rp_cust_saletask end type type st_5 from statictext within w_rp_cust_saletask end type type ddlb_scid from uo_ddlb_scid within w_rp_cust_saletask end type type cb_outware_info from uo_imflatbutton within w_rp_cust_saletask end type type cb_add_sale from uo_imflatbutton within w_rp_cust_saletask end type type cbx_all from checkbox within w_rp_cust_saletask end type type cb_4 from uo_imflatbutton within w_rp_cust_saletask end type type cbx_1 from checkbox within w_rp_cust_saletask end type type cbx_iffinish from checkbox within w_rp_cust_saletask end type type s_mx_arr from structure within w_rp_cust_saletask end type type s_mx from structure within w_rp_cust_saletask end type end forward type s_mx_arr from structure s_mx mx[] end type type s_mx from structure long scid long taskid long printid end type global type w_rp_cust_saletask from w_publ_easyq integer width = 5353 string title = "销售订单明细跟踪表" event retrieve_dw2 ( long arg_custid, long arg_mtrlid ) event ue_outware_info ( ) event ue_retrieve_info ( ) event ue_view_workpricetable ( ) event ue_outware_add_hz ( ) event ue_outware_add ( ) dw_3 dw_3 cbx_ifdate cbx_ifdate tv_1 tv_1 cb_bill cb_bill st_1 st_1 ddlb_1 ddlb_1 ddlb_retrstatus ddlb_retrstatus st_5 st_5 ddlb_scid ddlb_scid cb_outware_info cb_outware_info cb_add_sale cb_add_sale cbx_all cbx_all cb_4 cb_4 cbx_1 cbx_1 cbx_iffinish cbx_iffinish end type global w_rp_cust_saletask w_rp_cust_saletask type variables int cur_status = 1 //当前查询订单状态// -1 所有 int cur_stattype = 0 long cur_scid_arr[] String ls_areaname = '' long cur_scid = 0 int li_type = 0 //控制界面 int cur_ifstop=0 int cur_iffinish = 0 Long ins_if_info = 0,ins_if_saleout_info = 0 end variables forward prototypes public subroutine wf_outware_add (long arg_scid[], long arg_taskid[], long arg_printid[], ref string arg_msg) end prototypes event ue_outware_info();IF Not f_power_ind(267) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF Long ll_row ll_row = dw_1.GetRow() IF ll_row <= 0 THEN RETURN END IF Long ll_scid,ll_taskid,ll_printid ll_scid = dw_1.Object.u_saletaskmx_scid[ll_row] ll_taskid = dw_1.Object.u_saletask_taskid[ll_row] ll_printid = dw_1.Object.u_saletaskmx_printid[ll_row] s_edit_index_tran s_tran_info s_tran_info.b_long = ll_scid s_tran_info.c_long = ll_taskid s_tran_info.d_long = ll_printid IF IsValid(w_outware_sale_info) THEN w_outware_sale_info.WindowState = Normal! w_outware_sale_info.ins_scid = ll_scid w_outware_sale_info.ins_taskid = ll_taskid w_outware_sale_info.ins_printid = ll_printid w_outware_sale_info.wf_retrieve(ll_scid,ll_taskid,ll_printid) ELSE OpenWithParm(w_outware_sale_info,s_tran_info) END IF end event event ue_retrieve_info();Long ll_row Long ll_scid,ll_taskid,ll_printid ll_row = dw_1.GetRow() IF ll_row <= 0 THEN ll_scid = 0 ll_taskid = 0 ll_printid = 0 ELSE ll_scid = dw_1.Object.u_saletaskmx_scid[ll_row] ll_taskid = dw_1.Object.u_saletask_taskid[ll_row] ll_printid = dw_1.Object.u_saletaskmx_printid[ll_row] END IF IF IsValid(w_outware_sale_info) THEN w_outware_sale_info.WindowState = Normal! w_outware_sale_info.ins_scid = ll_scid w_outware_sale_info.ins_taskid = ll_taskid w_outware_sale_info.ins_printid = ll_printid w_outware_sale_info.wf_retrieve(ll_scid,ll_taskid,ll_printid) END IF end event event ue_view_workpricetable();IF Not f_power_ind(1335) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF string ls_mtrlcode if dw_1.getrow() <= 0 then MessageBox(publ_operator,"请选择目标行") return end if ls_mtrlcode = dw_1.object.u_mtrldef_mtrlcode[dw_1.getrow()] s_edit_index_tran s_tran s_tran.work_mode = 0 s_tran.arg_pkid = 0 s_tran.arg_string_code = ls_mtrlcode s_tran.c_long = 0 s_tran.d_long = 2 s_tran.if_retrieve_all = local_retrieve_all openwithparm(w_sc_workpricetable, s_tran) end event event ue_outware_add_hz();Long arr_cusid[] String arr_outrep[] String arr_rel_address[] String arr_rel_rep[] String arr_rel_tele[] Long arr_banktypeid[], ll_banktypeid Long arr_moneyid[], ll_moneyid Decimal arr_mrate[], ld_mrate Long arr_scid[] s_mx_arr bills[] String arr_part[] String arr_dscrp[] String arr_dscrp2[], ls_dscrp2 Decimal arr_otheramt[], ld_otheramt Decimal arr_damt[], ld_damt String arr_freight[] String arr_freight_tele[] String arr_cus_fax[] Long ll_scid,ll_taskid,ll_printid Long cnt = 0 Long i, j IF Not (f_power_ind(11) Or f_power_ind(869)) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 1 THEN ll_scid = dw_1.Object.u_saletaskmx_scid[i] ll_taskid = dw_1.Object.u_saletask_taskid[i] ll_printid = dw_1.Object.u_saletaskmx_printid[i] SELECT banktypeid, moneyid, mrate, dscrp2, otheramt, damt INTO :ll_banktypeid, :ll_moneyid, :ld_mrate, :ls_dscrp2, :ld_otheramt, :ld_damt FROM u_saletask WHERE scid = :ll_scid And taskid = :ll_taskid; IF sqlca.SQLCode <> 0 THEN MessageBox('ERROR', '查询订单相关信息失败,' + sqlca.SQLErrText) RETURN END IF FOR j = 1 To UpperBound(arr_cusid) IF arr_cusid[j] = dw_1.Object.u_saletask_cusid[i] & And arr_outrep[j] = dw_1.Object.u_saletask_assign_emp[i] & And arr_rel_address[j] = dw_1.Object.cus_address[i] & And arr_rel_rep[j] = dw_1.Object.rel_rep[i] & And arr_rel_tele[j] = dw_1.Object.cus_tele[i] & And arr_banktypeid[j] = ll_banktypeid & And arr_moneyid[j] = ll_moneyid & And arr_mrate[j] = ld_mrate & And arr_scid[j] = ll_scid THEN EXIT END IF NEXT IF j > UpperBound(arr_cusid) THEN arr_cusid[j] = dw_1.Object.u_saletask_cusid[i] arr_outrep[j] = dw_1.Object.u_saletask_assign_emp[i] arr_rel_address[j] = dw_1.Object.cus_address[i] arr_rel_rep[j] = dw_1.Object.rel_rep[i] arr_rel_tele[j] = dw_1.Object.cus_tele[i] arr_banktypeid[j] = ll_banktypeid arr_moneyid[j] = ll_moneyid arr_mrate[j] = ld_mrate arr_scid[j] = ll_scid arr_part[j] = dw_1.Object.u_saletask_relcode[i] arr_dscrp[j] = dw_1.Object.dscrp[i] arr_dscrp2[j] = ls_dscrp2 arr_otheramt[j] = ld_otheramt arr_damt[j] = ld_damt arr_freight[j] = dw_1.Object.freight[i] arr_freight_tele[j] = dw_1.Object.freight_tele[i] arr_cus_fax[j] = dw_1.Object.cus_fax[i] bills[j].mx[1].scid = ll_scid bills[j].mx[1].taskid = ll_taskid bills[j].mx[1].printid = ll_printid ELSE IF Pos(arr_part[j], dw_1.Object.u_saletask_relcode[i]) <= 0 THEN IF arr_part[j] = '' THEN arr_part[j] = dw_1.Object.u_saletask_relcode[i] ELSE arr_part[j] += ";" + dw_1.Object.u_saletask_relcode[i] END IF END IF IF Pos(arr_dscrp[j], dw_1.Object.dscrp[i]) <= 0 THEN IF arr_dscrp[j] = '' THEN arr_dscrp[j] = dw_1.Object.dscrp[i] ELSE arr_dscrp[j] += ";" + dw_1.Object.dscrp[i] END IF END IF IF Pos(arr_dscrp2[j], ls_dscrp2) <= 0 THEN IF arr_dscrp2[j] = '' THEN arr_dscrp2[j] = ls_dscrp2 ELSE arr_dscrp2[j] += ";" + ls_dscrp2 END IF END IF cnt = UpperBound(bills[j].mx) IF Not (bills[j].mx[cnt].scid = ll_scid And & bills[j].mx[cnt].taskid = ll_taskid) THEN arr_otheramt[j] += ld_otheramt arr_damt[j] += ld_damt END IF cnt = cnt + 1 bills[j].mx[cnt].scid = ll_scid bills[j].mx[cnt].taskid = ll_taskid bills[j].mx[cnt].printid = ll_printid IF Pos(arr_freight[j], dw_1.Object.freight[i]) <= 0 THEN IF arr_freight[j] = '' THEN arr_freight[j] = dw_1.Object.freight[i] ELSE arr_freight[j] += ";" + dw_1.Object.freight[i] END IF END IF IF Pos(arr_freight_tele[j], dw_1.Object.freight_tele[i]) <= 0 THEN IF arr_freight_tele[j] = '' THEN arr_freight_tele[j] = dw_1.Object.freight_tele[i] ELSE arr_freight_tele[j] += ";" + dw_1.Object.freight_tele[i] END IF END IF IF Pos(arr_cus_fax[j], dw_1.Object.cus_fax[i]) <= 0 THEN IF arr_cus_fax[j] = '' THEN arr_cus_fax[j] = dw_1.Object.cus_fax[i] ELSE arr_cus_fax[j] += ";" + dw_1.Object.cus_fax[i] END IF END IF END IF END IF NEXT cnt = UpperBound(arr_cusid) String ls_msg = '' IF cnt <= 0 THEN MessageBox('', '请选择订单明细') RETURN END IF // TODO: 销售订单明细没有选择齐应该不允许 uo_outware_sale uo_ware s_edit_index_tran s_ch Long storageid // 仓库 Long ll_ok DateTime dt_server String arg_Msg Long mx_mtrlwareid Decimal mx_qty Decimal mx_addqty Decimal mx_fprice Decimal mx_rebate String mx_mxdscrp Long mx_printid Integer mx_ifrel Long mx_relid Long mx_relprintid Long mx_olmtrlid Long mx_packqty Int mx_outtype String mx_unit Decimal mx_rate String mx_mtrlcuscode String mx_formula String mx_mxdscrp2 s_outwaremx s_mx Open(w_storage_index_ch) s_ch = Message.PowerObjectParm IF s_ch.c_long = 0 THEN RETURN storageid = s_ch.c_long SELECT top 1 GETDATE() INTO :dt_server From u_user; IF sqlca.SQLCode <> 0 THEN MessageBox('ERROR', '查询服务器时间失败,' + sqlca.SQLErrText) RETURN END IF uo_ware = Create uo_outware_sale uo_ware.commit_transaction = sqlca ls_msg = '' Long arr_taskid[], arr_empty[], k s_outware_itemmx s_item[] FOR i = 1 To UpperBound(arr_cusid) ll_ok = 1 IF uo_ware.newbegin(arr_scid[i],1,arg_Msg) = 0 THEN ll_ok = 0 ls_msg += '失败,生成发货单失败,' + arg_Msg + '~r~n' GOTO _next END IF uo_ware.outdate = dt_server // 发生时间 uo_ware.outrep = arr_outrep[i] IF Len(Trim(arr_part[i])) > 50 THEN arr_part[i] = Left(Trim(arr_part[i]),47) + '...' END IF uo_ware.part = arr_part[i] uo_ware.dscrp = arr_dscrp[i] uo_ware.dscrp2 = arr_dscrp2[i] uo_ware.cusid = arr_cusid[i] uo_ware.storageid = storageid uo_ware.relid = 0 uo_ware.relint_1 = arr_banktypeid[i] uo_ware.relint_2 = arr_moneyid[i] uo_ware.relstr_1 = arr_freight[i] uo_ware.relstr_2 = arr_freight_tele[i] uo_ware.otheramt = arr_otheramt[i] uo_ware.deposit = arr_damt[i] uo_ware.mrate = arr_mrate[i] uo_ware.thflag = 0 uo_ware.rel_address = arr_rel_address[i] uo_ware.rel_tele = arr_rel_tele[i] uo_ware.rel_fax = arr_cus_fax[i] uo_ware.rel_rep = arr_rel_rep[i] arr_taskid = arr_empty FOR j = 1 To UpperBound(bills[i].mx) SELECT TOP 1 u_mtrlware.mtrlwareid, u_SaleTaskMx.SaleQty, u_SaleTaskMx.fprice, u_SaleTaskMx.rebate, u_SaleTaskMx.mxdscrp, u_SaleTaskMx.MtrlID, u_mtrldef.packqty, u_SaleTaskMx.outtype, u_mtrldef.unit, u_SaleTaskMx.mtrlcuscode, u_SaleTaskMx.printid, u_saletaskmx.mxdscrp2 INTO :mx_mtrlwareid, :mx_qty, :mx_fprice, :mx_rebate, :mx_mxdscrp, :mx_olmtrlid, :mx_packqty, :mx_outtype, :mx_unit, :mx_mtrlcuscode, :mx_relprintid, :mx_mxdscrp2 FROM u_SaleTaskMx INNER JOIN u_mtrlware ON u_SaleTaskMx.MtrlID = u_mtrlware.mtrlid AND u_SaleTaskMx.status = u_mtrlware.Status AND u_SaleTaskMx.woodcode = u_mtrlware.woodcode AND u_SaleTaskMx.pcode = u_mtrlware.pcode INNER JOIN u_mtrldef ON u_SaleTaskMx.MtrlID = u_mtrldef.mtrlid WHERE (u_SaleTaskMx.scid = :bills[i].mx[j].scid) AND (u_SaleTaskMx.TaskID = :bills[i].mx[j].taskid) AND (u_SaleTaskMx.printid = :bills[i].mx[j].printid) And (u_mtrlware.storageid = :storageid); IF sqlca.SQLCode <> 0 THEN ll_ok = 0 ls_msg += '失败,查询订单明细库存失败taskid:'+String(bills[i].mx[j].taskid)+',printid:'+String(bills[i].mx[j].printid)+',' + sqlca.SQLErrText + '~r~n' GOTO _next END IF mx_printid = j mx_addqty = 0 mx_ifrel = 1 mx_relid = bills[i].mx[j].taskid mx_rate = 1 mx_formula = '' s_mx.mtrlwareid = mx_mtrlwareid s_mx.qty = mx_qty s_mx.addqty = mx_addqty s_mx.fprice = mx_fprice s_mx.rebate = mx_rebate s_mx.mxdscrp = mx_mxdscrp s_mx.printid = mx_printid s_mx.ifrel = mx_ifrel s_mx.relid = mx_relid s_mx.relprintid = mx_relprintid s_mx.relid2 = 0 s_mx.olmtrlid = 0 s_mx.packqty = mx_packqty s_mx.outtype = mx_outtype s_mx.unit = mx_unit s_mx.rate = mx_rate s_mx.mtrlcuscode = mx_mtrlcuscode s_mx.formula = mx_formula s_mx.mxdscrp2 = mx_mxdscrp2 IF uo_ware.acceptmx(s_mx, arg_Msg) = 0 THEN ll_ok = 0 ls_msg += '失败,添加发货明细失败,' + arg_Msg + '~r~n' GOTO _next END IF FOR k = 1 To UpperBound(arr_taskid) IF arr_taskid[k] = mx_relid THEN EXIT END IF NEXT arr_taskid[k] = mx_relid NEXT k = 1 FOR j = 1 To UpperBound(arr_taskid) DECLARE cur1 CURSOR FOR SELECT itemid, amt, mxdscrp, printid, itype FROM u_saletask_itemmx WHERE scid = :arr_scid[i] AND saletaskid = :arr_taskid[j] Order By printid; OPEN cur1; FETCH cur1 Into :s_item[k].itemid, :s_item[k].amt, :s_item[k].mxdscrp, :s_item[k].saletaskprintid, :s_item[k].itype; DO WHILE sqlca.SQLCode = 0 s_item[k].printid = k s_item[k].saletaskid = arr_taskid[j] k++ FETCH cur1 Into :s_item[k].itemid, :s_item[k].amt, :s_item[k].mxdscrp, :s_item[k].saletaskprintid, :s_item[k].itype; LOOP CLOSE cur1; NEXT k = k - 1 FOR j = 1 To k IF uo_ware.acceptmx_item(s_item[j], arg_Msg) = 0 THEN ll_ok = 0 ls_msg += '失败,添加费用明细失败,' + arg_Msg + '~r~n' GOTO _next END IF NEXT IF uo_ware.Save(False,arg_Msg) = 0 THEN ll_ok = 0 ls_msg += '失败,订单保存发货单失败,' + arg_Msg + '~r~n' GOTO _next END IF _next: IF ll_ok = 1 THEN COMMIT; ls_msg += '生成发货单成功,单号:"'+uo_ware.outwarecode+'"~r~n' ELSE ROLLBACK; END IF NEXT Destroy uo_ware IF ls_msg <> '' THEN OpenWithParm(w_message_err,ls_msg) // MessageBox('', ls_msg) ELSE MessageBox('提示', '生成成功') END IF end event event ue_outware_add();Long arr_scid[] Long arr_taskid[] Long arr_printid[] Long cnt = 0 Long i IF Not (f_power_ind(11) Or f_power_ind(869)) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF FOR i = 1 To dw_1.RowCount() IF dw_1.Object.ch[i] = 1 THEN cnt++ arr_scid[cnt] = dw_1.Object.u_saletaskmx_scid[i] arr_taskid[cnt] = dw_1.Object.u_saletask_taskid[i] arr_printid[cnt] = dw_1.Object.u_saletaskmx_printid[i] END IF NEXT String ls_msg = '' IF cnt <= 0 THEN ls_msg = '请选择订单明细' GOTO ext END IF wf_outware_add(arr_scid, arr_taskid, arr_printid, ls_msg) ext: IF ls_msg <> '' THEN OpenWithParm(w_message_err,ls_msg) // MessageBox('', ls_msg) ELSE MessageBox('提示', '生成成功') END IF end event public subroutine wf_outware_add (long arg_scid[], long arg_taskid[], long arg_printid[], ref string arg_msg); arg_msg = '' uo_outware_sale uo_ware s_edit_index_tran arr_task[] s_edit_index_tran s_ch Long cnt = 0 Long i, j, k String ls_msg Long ll_ok DateTime dt_server String ls_taskcode String outrep // 业务员 String part // 相关号 String dscrp // 备注 Long cusid // 客户 Long storageid // 仓库 Long relid // Long relint_1 // 结算方式 Long relint_2 // 币种 String relstr_1 // 货运部 String relstr_2 // 货运部电话 Decimal otheramt // 优惠金额 Decimal damt // 订金 Decimal mrate // 汇率 String rel_address // 客户地址 String rel_tele // 客户电话 String rel_fax // 客户传真 String rel_rep // 联系人 Long mx_mtrlwareid Decimal mx_qty Decimal mx_addqty Decimal mx_fprice Decimal mx_rebate String mx_mxdscrp Long mx_printid Integer mx_ifrel Long mx_relid Long mx_relprintid Long mx_olmtrlid Long mx_packqty Int mx_outtype String mx_unit Decimal mx_rate String mx_mtrlcuscode String mx_formula String mx_mxdscrp2 s_outwaremx s_mx s_outware_itemmx s_item[] uo_ware = Create uo_outware_sale uo_ware.commit_transaction = sqlca FOR i = 1 To UpperBound(arg_scid) FOR j = 1 To cnt IF arr_task[j].b_long = arg_scid[i] And arr_task[j].c_long = arg_taskid[i] THEN EXIT END IF NEXT IF j > cnt THEN cnt++ arr_task[cnt].b_long = arg_scid[i] arr_task[cnt].c_long = arg_taskid[i] arr_task[cnt].arr_long2[1] = arg_printid[i] ELSE k = UpperBound(arr_task[j].arr_long2) + 1 arr_task[j].arr_long2[k] = arg_printid[i] END IF NEXT IF cnt <= 0 THEN arg_msg = '请选择订单明细' GOTO ext END IF SELECT top 1 GETDATE() INTO :dt_server From u_user; IF sqlca.SQLCode <> 0 THEN arg_msg = '查询服务器时间失败,' + sqlca.SQLErrText GOTO ext END IF Open(w_storage_index_ch) s_ch = Message.PowerObjectParm IF s_ch.c_long = 0 THEN RETURN storageid = s_ch.c_long relid = 0 FOR i = 1 To cnt ll_ok = 1 SELECT taskcode, assign_emp, relcode, dscrp, cusid, banktypeid, moneyid, freight, freight_tele, otheramt, damt, mrate, cus_address, cus_tele, cus_fax, rel_rep INTO :ls_taskcode, :outrep, :part, :dscrp, :cusid, :relint_1, :relint_2, :relstr_1, :relstr_2, :otheramt, :damt, :mrate, :rel_address, :rel_tele, :rel_fax, :rel_rep FROM u_saletask WHERE scid = :arr_task[i].b_long And taskid = :arr_task[i].c_long; IF sqlca.SQLCode <> 0 THEN ll_ok = 0 arg_msg += '订单[taskid='+String(arr_task[i].c_long)+']查询订单编号失败,' + sqlca.SQLErrText + '~r~n' GOTO _next END IF IF uo_ware.newbegin(arr_task[i].b_long,1,ls_msg) = 0 THEN ll_ok = 0 arg_msg += '订单['+ls_taskcode+']新建发货单失败,' + ls_msg + '~r~n' GOTO _next END IF uo_ware.outdate = dt_server // 发生时间 uo_ware.outrep = outrep uo_ware.part = part uo_ware.dscrp = dscrp uo_ware.cusid = cusid uo_ware.storageid = storageid uo_ware.relid = relid uo_ware.relint_1 = relint_1 uo_ware.relint_2 = relint_2 uo_ware.relstr_1 = relstr_1 uo_ware.relstr_2 = relstr_2 uo_ware.otheramt = otheramt uo_ware.deposit = damt uo_ware.mrate = mrate uo_ware.thflag = 0 uo_ware.rel_address = rel_address uo_ware.rel_tele = rel_tele uo_ware.rel_fax = rel_fax uo_ware.rel_rep = rel_rep FOR j = 1 To UpperBound(arr_task[i].arr_long2) SELECT TOP 1 u_mtrlware.mtrlwareid, u_SaleTaskMx.SaleQty, u_SaleTaskMx.fprice, u_SaleTaskMx.rebate, u_SaleTaskMx.mxdscrp, u_SaleTaskMx.MtrlID, u_mtrldef.packqty, u_SaleTaskMx.outtype, u_mtrldef.unit, u_SaleTaskMx.mtrlcuscode, u_SaleTaskMx.printid, u_saletaskmx.mxdscrp2 INTO :mx_mtrlwareid, :mx_qty, :mx_fprice, :mx_rebate, :mx_mxdscrp, :mx_olmtrlid, :mx_packqty, :mx_outtype, :mx_unit, :mx_mtrlcuscode, :mx_relprintid, :mx_mxdscrp2 FROM u_SaleTaskMx INNER JOIN u_mtrlware ON u_SaleTaskMx.MtrlID = u_mtrlware.mtrlid AND u_SaleTaskMx.status = u_mtrlware.Status AND u_SaleTaskMx.woodcode = u_mtrlware.woodcode AND u_SaleTaskMx.pcode = u_mtrlware.pcode INNER JOIN u_mtrldef ON u_SaleTaskMx.MtrlID = u_mtrldef.mtrlid WHERE (u_SaleTaskMx.scid = :arr_task[i].b_long) AND (u_SaleTaskMx.TaskID = :arr_task[i].c_long) AND (u_SaleTaskMx.printid = :arr_task[i].arr_long2[j]) And (u_mtrlware.storageid = :storageid); IF sqlca.SQLCode <> 0 THEN ll_ok = 0 arg_msg += '订单['+ls_taskcode+']查询订单明细库存失败,' + ls_msg + '~r~n' GOTO _next END IF mx_printid = j mx_addqty = 0 mx_ifrel = 1 mx_relid = arr_task[i].c_long mx_rate = 1 mx_formula = '' s_mx.mtrlwareid = mx_mtrlwareid s_mx.qty = mx_qty s_mx.addqty = mx_addqty s_mx.fprice = mx_fprice s_mx.rebate = mx_rebate s_mx.mxdscrp = mx_mxdscrp s_mx.printid = mx_printid s_mx.ifrel = mx_ifrel s_mx.relid = mx_relid s_mx.relprintid = mx_relprintid s_mx.relid2 = 0 s_mx.olmtrlid = 0 s_mx.packqty = mx_packqty s_mx.outtype = mx_outtype s_mx.unit = mx_unit s_mx.rate = mx_rate s_mx.mtrlcuscode = mx_mtrlcuscode s_mx.formula = mx_formula s_mx.mxdscrp2 = mx_mxdscrp2 IF uo_ware.acceptmx(s_mx, ls_msg) = 0 THEN ll_ok = 0 arg_msg += '订单['+ls_taskcode+']添加发货明细失败,' + ls_msg + '~r~n' GOTO _next END IF // IF uo_ware.acceptmx_sale(mx_mtrlwareid,& // mx_qty,& // mx_addqty,& // mx_fprice,& // mx_rebate,& // mx_mxdscrp,& // mx_printid,& // Ref ls_msg,& // mx_ifrel,& // mx_relid,& // mx_relprintid,& // 0,0,mx_packqty,& // mx_outtype,& // mx_unit,& // mx_rate,& // mx_mtrlcuscode,& // mx_formula,& // mx_mxdscrp2) = 0 THEN // ll_ok = 0 // arg_msg += '订单['+ls_taskcode+']添加发货明细失败,' + ls_msg + '~r~n' // GOTO _next // END IF NEXT k = 1 DECLARE cur1 CURSOR FOR SELECT itemid, amt, mxdscrp, printid, itype FROM u_saletask_itemmx WHERE scid = :arr_task[i].b_long AND saletaskid = :arr_task[i].c_long Order By printid; OPEN cur1; FETCH cur1 Into :s_item[k].itemid, :s_item[k].amt, :s_item[k].mxdscrp, :s_item[k].saletaskprintid, :s_item[k].itype; DO WHILE sqlca.SQLCode = 0 s_item[k].printid = k s_item[k].saletaskid = arr_task[i].c_long k++ FETCH cur1 Into :s_item[k].itemid, :s_item[k].amt, :s_item[k].mxdscrp, :s_item[k].saletaskprintid, :s_item[k].itype; LOOP CLOSE cur1; k = k - 1 FOR j = 1 To k IF uo_ware.acceptmx_item(s_item[j], arg_msg) = 0 THEN ll_ok = 0 ls_msg += '失败,添加费用明细失败,' + arg_msg + '~r~n' GOTO _next END IF NEXT IF uo_ware.Save(False,ls_msg) = 0 THEN ll_ok = 0 arg_msg += '订单['+ls_taskcode+']保存发货单失败,' + ls_msg + '~r~n' GOTO _next END IF _next: IF ll_ok = 1 THEN COMMIT; arg_msg += '订单['+ls_taskcode+']生成发货单成功,单号:"'+uo_ware.outwarecode+'"~r~n' ELSE ROLLBACK; END IF NEXT ext: Destroy uo_ware RETURN end subroutine on w_rp_cust_saletask.create int iCurrent call super::create this.dw_3=create dw_3 this.cbx_ifdate=create cbx_ifdate this.tv_1=create tv_1 this.cb_bill=create cb_bill this.st_1=create st_1 this.ddlb_1=create ddlb_1 this.ddlb_retrstatus=create ddlb_retrstatus this.st_5=create st_5 this.ddlb_scid=create ddlb_scid this.cb_outware_info=create cb_outware_info this.cb_add_sale=create cb_add_sale this.cbx_all=create cbx_all this.cb_4=create cb_4 this.cbx_1=create cbx_1 this.cbx_iffinish=create cbx_iffinish iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.dw_3 this.Control[iCurrent+2]=this.cbx_ifdate this.Control[iCurrent+3]=this.tv_1 this.Control[iCurrent+4]=this.cb_bill this.Control[iCurrent+5]=this.st_1 this.Control[iCurrent+6]=this.ddlb_1 this.Control[iCurrent+7]=this.ddlb_retrstatus this.Control[iCurrent+8]=this.st_5 this.Control[iCurrent+9]=this.ddlb_scid this.Control[iCurrent+10]=this.cb_outware_info this.Control[iCurrent+11]=this.cb_add_sale this.Control[iCurrent+12]=this.cbx_all this.Control[iCurrent+13]=this.cb_4 this.Control[iCurrent+14]=this.cbx_1 this.Control[iCurrent+15]=this.cbx_iffinish end on on w_rp_cust_saletask.destroy call super::destroy destroy(this.dw_3) destroy(this.cbx_ifdate) destroy(this.tv_1) destroy(this.cb_bill) destroy(this.st_1) destroy(this.ddlb_1) destroy(this.ddlb_retrstatus) destroy(this.st_5) destroy(this.ddlb_scid) destroy(this.cb_outware_info) destroy(this.cb_add_sale) destroy(this.cbx_all) destroy(this.cb_4) destroy(this.cbx_1) destroy(this.cbx_iffinish) end on event open;call super::open; //f_title_change(dw_1) // //IF cbx_loginretr.Checked THEN // cb_1.TriggerEvent(Clicked!) //END IF ins_if_info = Long(f_ProfileString (sys_empid,'w_rp_cust_saletask', "ins_if_info",'0')) IF ins_if_info = 1 And f_power_ind(267) THEN This.PostEvent('ue_outware_info') END IF end event event resize;call super::resize;dw_3.Y = This.Height - (2300 - 1428 ) tv_1.Height = This.Height - ( 2300 - 1128 ) dw_1.Height = dw_3.Y + dw_3.Height - dw_1.Y end event event ue_before_open;call super::ue_before_open;if_ue_retr = true if_ue_filter = true if_ue_sort = true dw_3.SetTransObject (sqlca) end event event close;call super::close; IF IsValid(w_outware_sale_info) THEN ins_if_info = 1 ELSE ins_if_info = 0 END IF f_SetProfileString(sys_empid,"w_rp_cust_saletask","ins_if_info",String(ins_if_info)) end event type cb_func from w_publ_easyq`cb_func within w_rp_cust_saletask integer x = 1728 string text = "功能" end type type cb_exit from w_publ_easyq`cb_exit within w_rp_cust_saletask integer x = 2437 end type type cb_2 from w_publ_easyq`cb_2 within w_rp_cust_saletask integer x = 2135 boolean bringtotop = true end type type cb_psetup from w_publ_easyq`cb_psetup within w_rp_cust_saletask integer x = 1879 boolean bringtotop = true end type type cb_1 from w_publ_easyq`cb_1 within w_rp_cust_saletask boolean bringtotop = true end type event cb_1::clicked;call super::clicked;Int li_ifdate DateTime first_date,end_date first_date = DateTime(Date(em_1.Text),Time(0)) end_date = DateTime(Date(em_2.Text),Time('23:59:59')) IF cbx_ifdate.Checked THEN li_ifdate = 1 ELSE li_ifdate = 0 END IF dw_1.Retrieve(cur_scid_arr,sys_areaid,li_ifdate,cur_stattype,first_date,end_date,ls_areaname,cur_status,sys_user_outrep,sys_option_outrep,cur_ifstop,cur_iffinish) s_hide_col s_col,s_col_1 s_col.col_1 = 'noamt' s_col.col_2 = 'cus_noallocqtyamt' s_col.col_3 = 'not_inqtyamt' s_col.col_4 = 'saleamt' s_col.col_5 = 'u_saletask_msttakeamt' s_col.col_6 = 'u_saletask_takeamt' s_col.col_7 = 'u_saletask_takedamt' s_col.col_8 = 'notakeamt' s_col.col_9 = 'stopamt' f_hide_col(122,dw_1,s_col) s_col_1.col_1 = 'p1' s_col_1.col_2 = 'p2' s_col_1.col_3 = 'enprice' s_col_1.col_4 = 'enamt' f_hide_col(122,dw_1,s_col_1) end event type st_3 from w_publ_easyq`st_3 within w_rp_cust_saletask integer x = 1408 integer width = 215 integer height = 48 boolean enabled = true alignment alignment = left! end type type st_4 from w_publ_easyq`st_4 within w_rp_cust_saletask integer x = 2098 integer height = 48 boolean enabled = true end type type em_1 from w_publ_easyq`em_1 within w_rp_cust_saletask integer x = 1600 integer y = 188 integer width = 393 boolean enabled = false end type type em_2 from w_publ_easyq`em_2 within w_rp_cust_saletask integer x = 2194 integer y = 188 integer width = 393 boolean enabled = false end type type ddlb_yl from w_publ_easyq`ddlb_yl within w_rp_cust_saletask integer x = 3273 end type type cbx_yl from w_publ_easyq`cbx_yl within w_rp_cust_saletask integer x = 3058 integer y = 16 end type type dw_1 from w_publ_easyq`dw_1 within w_rp_cust_saletask integer x = 1015 integer y = 300 integer width = 4297 integer height = 1120 string dataobject = "dw_rp_cust_saletask_1" boolean rbutton_filter_use = false boolean rbutton_setposition_use = false end type event dw_1::rowfocuschanged;call super::rowfocuschanged;Long ll_cusid,ll_mtrlid String ls_plancode,ls_status,ls_woodcode,ls_pcode Long ll_scid,ll_taskid,ll_printid IF currentrow <= 0 THEN dw_3.Reset() RETURN END IF IF dw_1.GetRow() > 0 THEN ll_cusid = dw_1.Object.u_saletask_cusid[dw_1.GetRow()] ll_mtrlid = dw_1.Object.u_saletaskmx_mtrlid[dw_1.GetRow()] ls_plancode = Trim(dw_1.Object.u_saletaskmx_mtrlcuscode[dw_1.GetRow()]) ls_status = Trim(dw_1.Object.u_saletaskmx_status[dw_1.GetRow()]) ls_woodcode = Trim(dw_1.Object.u_saletaskmx_woodcode[dw_1.GetRow()]) ls_pcode = Trim(dw_1.Object.u_saletaskmx_pcode[dw_1.GetRow()]) dw_3.Retrieve(ll_cusid,ll_mtrlid,ls_status,ls_woodcode,ls_pcode) ll_scid = dw_1.Object.u_saletaskmx_scid[dw_1.GetRow()] ll_taskid = dw_1.Object.u_saletask_taskid[dw_1.GetRow()] ll_printid = dw_1.Object.u_saletaskmx_printid[dw_1.GetRow()] ELSE dw_3.Reset() END IF Parent.TriggerEvent('ue_retrieve_info') end event event dw_1::doubleclicked;IF row > 0 THEN String ls_code Long ll_scid ll_scid = THIS.Object.u_saletaskmx_scid[row] ls_code = THIS.Object.u_saletaskmx_mtrlcuscode[row] f_open_win(ll_scid,ls_code) END IF end event event dw_1::constructor;call super::constructor;String ls_modify_str Int i Long Columns string ls_option_sale_mxdscrp = '' string ls_option_sale_mxdscrp2 = '' Columns = Long(dw_1.Describe("DataWindow.Column.Count")) FOR i = 1 TO Columns ls_modify_str = dw_1.Describe("#" + String(i) + ".name") ls_modify_str = Lower(ls_modify_str) IF Pos(ls_modify_str,'u_saletaskmx_mxdscrp') > 0 and ls_modify_str <> 'u_saletaskmx_mxdscrp2' AND ls_option_sale_mxdscrp <> '' THEN IF Len(ls_modify_str) = Len('u_saletaskmx_mxdscrp') OR Pos(ls_modify_str,'u_saletaskmx_mxdscrp') > 0 THEN dw_1.Modify(ls_modify_str+'_t'+ ".text='明细备注("+ls_option_sale_mxdscrp+")'") END IF END IF IF Pos(ls_modify_str,'u_saletaskmx_mxdscrp2') > 0 AND ls_option_sale_mxdscrp2 <> '' THEN IF Len(ls_modify_str) = Len('u_saletaskmx_mxdscrp2') OR Pos(ls_modify_str,'u_saletaskmx_mxdscrp2') > 0 THEN dw_1.Modify(ls_modify_str+'_t'+ ".text='明细备注2("+ls_option_sale_mxdscrp2+")'") END IF END IF NEXT end event event dw_1::sqlpreview;call super::sqlpreview;string ls ls = sqlsyntax end event event dw_1::clicked;call super::clicked;IF row > 0 THEN THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) this.setrow(row) END IF end event type sle_mtrl from w_publ_easyq`sle_mtrl within w_rp_cust_saletask end type type sle_cust from w_publ_easyq`sle_cust within w_rp_cust_saletask end type type st_mtrl from w_publ_easyq`st_mtrl within w_rp_cust_saletask end type type st_cust from w_publ_easyq`st_cust within w_rp_cust_saletask end type type cbx_loginretr from w_publ_easyq`cbx_loginretr within w_rp_cust_saletask boolean visible = true integer x = 3054 end type type pb_em1 from w_publ_easyq`pb_em1 within w_rp_cust_saletask integer x = 1998 integer y = 188 boolean enabled = false end type type pb_em2 from w_publ_easyq`pb_em2 within w_rp_cust_saletask integer x = 2592 integer y = 188 boolean enabled = false end type type pb_2 from w_publ_easyq`pb_2 within w_rp_cust_saletask integer x = 2702 integer y = 188 boolean enabled = false end type type cb_help from w_publ_easyq`cb_help within w_rp_cust_saletask integer x = 2286 end type type cb_copyself from w_publ_easyq`cb_copyself within w_rp_cust_saletask integer x = 151 end type type gb_1 from w_publ_easyq`gb_1 within w_rp_cust_saletask integer x = 1600 integer y = 352 integer width = 997 integer height = 256 end type type ln_bar from w_publ_easyq`ln_bar within w_rp_cust_saletask end type type ln_bar2 from w_publ_easyq`ln_bar2 within w_rp_cust_saletask end type type r_bar from w_publ_easyq`r_bar within w_rp_cust_saletask integer x = 3305 end type type ln_1 from w_publ_easyq`ln_1 within w_rp_cust_saletask end type type ln_2 from w_publ_easyq`ln_2 within w_rp_cust_saletask end type type ln_3 from w_publ_easyq`ln_3 within w_rp_cust_saletask boolean visible = false end type type ln_4 from w_publ_easyq`ln_4 within w_rp_cust_saletask boolean visible = false end type type dw_3 from u_dw_rbtnfilter within w_rp_cust_saletask integer y = 1428 integer width = 1015 integer height = 732 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_rp_cust_saletask_3" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type type cbx_ifdate from checkbox within w_rp_cust_saletask integer x = 608 integer y = 204 integer width = 375 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; em_1.Enabled = THIS.Checked em_2.Enabled = THIS.Checked pb_em1.Enabled = THIS.Checked pb_em2.Enabled = THIS.Checked pb_2.Enabled = THIS.Checked ddlb_1.Enabled = THIS.Checked cb_1.TriggerEvent(Clicked!) end event type tv_1 from uo_tv_cusarea within w_rp_cust_saletask integer y = 300 integer width = 1015 integer height = 1132 integer taborder = 20 boolean bringtotop = true integer textsize = -9 fontcharset fontcharset = gb2312charset! fontfamily fontfamily = anyfont! string facename = "宋体" long textcolor = 0 long backcolor = 16777215 boolean hideselection = false string picturename[] = {"Application!","LibraryList5!"} long picturemaskcolor = 553648127 boolean if_power = true end type event selectionchanged;call super::selectionchanged; ls_areaname = THIS.uo_cur_info.areaname ls_areaname = ls_areaname + '%' cb_1.TriggerEvent(Clicked!) end event type cb_bill from uo_imflatbutton within w_rp_cust_saletask integer x = 407 integer width = 329 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "客户调货单" string normalpicname = "OPEN.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF NOT f_power_ind(297) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF Long ll_row ll_row = dw_1.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请先选择明细内容') RETURN END IF String ls_scname s_edit_index_tran s_tran s_tran.if_retrieve_all = local_retrieve_all //是否一次RETRIEVE所有行 s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran.arg_pkid = 0 //目标定位PKID (备用) s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran.b_long = 1 s_tran.c_long = dw_1.Object.u_saletaskmx_scid[ll_row] SELECT scname INTO :ls_scname FROM u_scdef Where scid = :s_tran.c_long; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询单据所属分部失败') RETURN END IF s_tran.b_string = ls_scname s_tran.d_long = dw_1.object.u_saletaskmx_mtrlid[ll_row] s_tran.c_string = dw_1.object.u_saletaskmx_mtrlcuscode[ll_row] s_tran.d_string = dw_1.object.u_saletaskmx_status[ll_row] s_tran.e_string = dw_1.object.u_saletaskmx_woodcode[ll_row] s_tran.f_string = dw_1.object.u_saletaskmx_pcode[ll_row] s_tran.e_long = dw_1.object.u_saletask_cusid[ll_row] //s_tran.c_decimal = dw_1.object.not_inqty[ll_row] OpenWithParm(w_mtrlware_trans,s_tran) end event type st_1 from statictext within w_rp_cust_saletask integer x = 9 integer y = 204 integer width = 165 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 ddlb_1 from dropdownlistbox within w_rp_cust_saletask integer x = 987 integer y = 192 integer width = 407 integer height = 300 integer taborder = 120 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean enabled = false string text = "按订货日期" boolean sorted = false string item[] = {"按订货日期","按交货日期","按确认日期"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if this.text = '按订货日期' then cur_stattype = 0 elseif this.text = '按交货日期' then cur_stattype = 1 elseif this.text = '按确认日期' then cur_stattype = 2 end if cb_1.TriggerEvent(Clicked!) end event type ddlb_retrstatus from dropdownlistbox within w_rp_cust_saletask integer x = 2976 integer y = 196 integer width = 425 integer height = 860 integer taborder = 130 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "在进行" boolean sorted = false boolean vscrollbar = true string item[] = {"待审核","待生产审核","在进行","已暂停","已终止","已完成","[所有]"} borderstyle borderstyle = stylelowered! end type event constructor;cur_status = Long(f_ProfileString(sys_empid, "w_rp_sale_saletask", "status", "-1")) CHOOSE CASE cur_status CASE 0 ddlb_retrstatus.Text = "待审核" CASE 4 ddlb_retrstatus.Text = "待生产审核" CASE 1 ddlb_retrstatus.Text = "在进行" CASE 2 ddlb_retrstatus.Text = "已暂停" CASE 3 ddlb_retrstatus.Text = "已终止" CASE 5 ddlb_retrstatus.Text = "已完成" CASE -1 ddlb_retrstatus.Text = "[所有]" END CHOOSE end event event selectionchanged;CHOOSE CASE Index CASE 1 //待销售审批 cur_status = 0 CASE 2 //待待生产审批 cur_status = 4 CASE 3 //在进行 cur_status = 1 CASE 4 //'已暂停' cur_status = 2 CASE 5 //'已终止' cur_status = 3 CASE 6 //'已完成' cur_status = 5 CASE ELSE cur_status = -1 END CHOOSE f_SetProfileString(sys_empid,'w_rp_sale_saletask', "status", String(cur_status)) cb_1.TriggerEvent(Clicked!) end event type st_5 from statictext within w_rp_cust_saletask integer x = 2825 integer y = 220 integer width = 137 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 ddlb_scid from uo_ddlb_scid within w_rp_cust_saletask integer x = 178 integer y = 188 integer width = 421 integer height = 620 integer taborder = 90 boolean bringtotop = true end type event constructor;call super::constructor;cur_scid_arr = THIS.uo_scid_arr cur_scid = this.uo_scid end event event selectionchanged;call super::selectionchanged; cur_scid_arr = THIS.uo_scid_arr cur_scid = this.uo_scid cb_1.triggerevent(clicked!) end event type cb_outware_info from uo_imflatbutton within w_rp_cust_saletask integer x = 1431 integer width = 297 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "其他功能" string normalpicname = "update2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;//parent.triggerevent('ue_outware_info') m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=显示相关发货信息~tEvent=ue_outware_info" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=显示相关工价信息~tEvent=ue_view_workpricetable" dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end event type cb_add_sale from uo_imflatbutton within w_rp_cust_saletask integer x = 736 integer width = 384 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "建销售发货单" string normalpicname = "OPEN.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; IF Not (f_power_ind(11) Or f_power_ind(869)) THEN MessageBox(publ_operator,'没有使用权限!') RETURN END IF IF cur_scid < 0 THEN MessageBox('系统提示','请先选择分部') RETURN END IF Long ll_row,ll_i Long ll_found,ll_cusid,ll_storageid String ls_scname Long cnt = 0 String ls_cus_address,ls_rel_rep s_edit_index_tran s_tran,s_ch ll_found = dw_1.Find("ch = 1",1, dw_1.RowCount()) IF ll_found <= 0 THEN MessageBox('系统提示','请先选择要建立发货单的订单明细') RETURN END IF FOR ll_i = 1 To dw_1.RowCount() IF dw_1.Object.ch[ll_i] = 1 THEN IF dw_1.Object.u_saletask_status[ll_i] <> 1 THEN MessageBox('系统提示','选中的订单中含有不是在进行状态的,请检查') RETURN END IF IF cnt = 0 THEN ll_cusid = dw_1.Object.u_saletask_cusid[ll_i] ls_cus_address = dw_1.Object.cus_address[ll_i] ls_rel_rep = dw_1.Object.rel_rep[ll_i] ELSE IF ll_cusid <> dw_1.Object.u_saletask_cusid[ll_i] And ll_cusid <> 0 THEN MessageBox('系统提示','请选择相同客户的订单明细') RETURN END IF END IF cnt++ s_tran.arr_long[cnt] = dw_1.Object.u_saletask_taskid[ll_i] s_tran.arr_long2[cnt] = dw_1.Object.u_saletaskmx_printid[ll_i] s_tran.arr_long3[cnt] = dw_1.Object.u_SaleTaskMx_mtrlid[ll_i] s_tran.arr_string[cnt] = dw_1.Object.u_saletask_taskcode[ll_i] END IF NEXT FOR ll_i = 1 To dw_1.RowCount() IF dw_1.Object.ch[ll_i] = 1 THEN IF ls_cus_address <> dw_1.Object.cus_address[ll_i] THEN IF MessageBox('询问','所选订单出现不同的客户地址,是否继续?',question!,yesno!) = 2 THEN RETURN ELSE EXIT END IF END IF IF ls_rel_rep <> dw_1.Object.rel_rep[ll_i] THEN IF MessageBox('询问','所选订单出现不同的联系人,是否继续?',question!,yesno!) = 2 THEN RETURN ELSE EXIT END IF END IF END IF NEXT Open(w_storage_index_ch) s_ch = Message.PowerObjectParm IF s_ch.c_long = 0 THEN RETURN ll_storageid = s_ch.c_long s_tran.if_retrieve_all = local_retrieve_all //是否一次RETRIEVE所有行 s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran.arg_pkid = 0 //目标定位PKID (备用) s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran.e_long = 1 s_tran.c_long = cur_scid SELECT scname INTO :ls_scname FROM u_scdef Where scid = :s_tran.c_long; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示','查询单据所属分部失败') RETURN END IF s_tran.d_string = ls_scname s_tran.d_long = 2 s_tran.g_long = ll_cusid s_tran.f_long = ll_storageid //OpenWithParm(w_outware_sale,s_tran) IF Not IsValid(w_outware_sale) THEN OpenWithParm(w_outware_sale,s_tran) w_outware_sale.cb_add.TriggerEvent(Clicked!) String errmsg = '' if w_outware_sale.wf_autoaddmx_rp(s_tran,errmsg) = 0 then MessageBox('系统提示','新建失败,'+errmsg) end if w_outware_sale.dw_uc.SetRedraw(True) END IF end event type cbx_all from checkbox within w_rp_cust_saletask integer x = 5019 integer y = 204 integer width = 219 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 ll_i dw_1.SetRedraw(False) IF This.Checked THEN FOR ll_i = 1 To dw_1.RowCount() dw_1.Object.ch[ll_i] = 1 NEXT ELSE FOR ll_i = 1 To dw_1.RowCount() dw_1.Object.ch[ll_i] = 0 NEXT END IF dw_1.SetRedraw(True) end event type cb_4 from uo_imflatbutton within w_rp_cust_saletask integer x = 1120 integer width = 311 integer height = 164 integer taborder = 50 boolean bringtotop = true string text = "批建发货单" string normalpicname = "OPEN.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=按订单批生成~tEvent=ue_outware_add" menustr = menustr + "|" + "Text=按收货人汇总~tEvent=ue_outware_add_hz" dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end event type cbx_1 from checkbox within w_rp_cust_saletask integer x = 3429 integer y = 204 integer width = 850 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "不显示终止订单或明细整行终止" end type event clicked;IF This.checked THEN cur_ifstop = 1 ELSE cur_ifstop = 0 END IF f_SetProfileString (sys_empid,Parent.Classname(), "cur_ifstop",String(cur_ifstop)) cb_1.TriggerEvent(Clicked!) end event event constructor;cur_ifstop = Long(f_ProfileString (sys_empid, Parent.Classname(), "cur_ifstop", "0")) //This.Checked = cur_ifsc = 1 // if cur_ifstop = 0 then This.Checked = false else This.Checked = true end if end event type cbx_iffinish from checkbox within w_rp_cust_saletask integer x = 4315 integer y = 204 integer width = 631 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "不显示已完成发货明细" end type event clicked;IF This.checked THEN cur_iffinish = 1 ELSE cur_iffinish = 0 END IF f_SetProfileString (sys_empid,Parent.Classname(), "cur_iffinish",String(cur_iffinish)) cb_1.TriggerEvent(Clicked!) end event event constructor;cur_iffinish = Long(f_ProfileString (sys_empid,Parent.Classname(), "cur_iffinish", "0")) //This.Checked = cur_ifsc = 1 // if cur_iffinish = 0 then This.Checked = false else This.Checked = true end if end event