$PBExportHeader$w_inware_wfjg_waste.srw forward global type w_inware_wfjg_waste from w_publ_1ton_share_detail end type type ddlb_scid from uo_ddlb_scid within w_inware_wfjg_waste end type type ddlb_status from dropdownlistbox within w_inware_wfjg_waste end type type st_3 from statictext within w_inware_wfjg_waste end type type st_2 from statictext within w_inware_wfjg_waste end type type tab_1 from tab within w_inware_wfjg_waste end type type tabpage_1 from userobject within tab_1 end type type dw_1 from u_dw_rbtnfilter within tabpage_1 end type type tabpage_1 from userobject within tab_1 dw_1 dw_1 end type type tabpage_2 from userobject within tab_1 end type type dw_2 from u_dw_rbtnfilter within tabpage_2 end type type tabpage_2 from userobject within tab_1 dw_2 dw_2 end type type tab_1 from tab within w_inware_wfjg_waste tabpage_1 tabpage_1 tabpage_2 tabpage_2 end type type cb_in_2_out from uo_imflatbutton within w_inware_wfjg_waste end type type cbx_autocmp from checkbox within w_inware_wfjg_waste end type end forward global type w_inware_wfjg_waste from w_publ_1ton_share_detail string title = "外协损耗单" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) event insert_childrow_spt ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_in_to_out2 ( ) ddlb_scid ddlb_scid ddlb_status ddlb_status st_3 st_3 st_2 st_2 tab_1 tab_1 cb_in_2_out cb_in_2_out cbx_autocmp cbx_autocmp end type global w_inware_wfjg_waste w_inware_wfjg_waste type variables long cur_scid //分店ID int cur_flag=-1 uo_wfjg_waste uo_ware uo_spt_price uo_sptprice long cur_id=0 int cur_editfocus=0 //1:新建2:修改 long aflag= 0 string ol_cdw_str ='' datawindow dw_order_spt,dw_ware_spt Long child_column_spt end variables forward prototypes public function integer wf_flagstatus_rf () public function integer wf_refresh_curuc (long arg_scid, long arg_wasteid) public function integer wf_lock_child () 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_in_to_out2 (ref string arg_msg) end prototypes event insert_childrow();Long li_row li_row = dw_order_spt.InsertRow(0) dw_order_spt.ScrollToRow(li_row) dw_order_spt.SetColumn ('u_order_wfjg_wastemx_ifrel') Long li_ifrel li_ifrel = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "ifrel", '0')) dw_order_spt.Object.u_order_wfjg_wastemx_ifrel[li_row] = li_ifrel end event event insert_childrow_spt();Long li_row li_row = dw_ware_spt.InsertRow(0) dw_ware_spt.ScrollToRow(li_row) dw_ware_spt.SetColumn ('u_mtrldef_mtrlcode') end event event ue_fj_edit();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,OK!) RETURN END IF //IF NOT f_power_ind(1446) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN //END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_uc.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!) RETURN END IF s_pic.f_long = 228 //采购订单的mainID s_pic.f_string = dw_uc.Object.u_order_wfjg_waste_wastecode[ls_row] s_pic.g_long = dw_uc.Object.u_order_wfjg_waste_wasteid[ls_row] s_pic.e_long = dw_uc.Object.u_order_wfjg_waste_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) //wf_check_billfj() end event event ue_fj_view();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,OK!) RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_uc.GetRow() IF ls_row <= 0 THEN RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg,information!,OK!) RETURN END IF s_pic.f_long = 228 //采购订单的mainID s_pic.f_string = dw_uc.Object.u_order_wfjg_waste_wastecode[ls_row] s_pic.g_long = dw_uc.Object.u_order_wfjg_waste_wasteid[ls_row] s_pic.e_long = dw_uc.Object.u_order_wfjg_waste_scid[ls_row] s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_in_to_out2();IF NOT dw_edit_mode THEN RETURN String arg_msg IF wf_in_to_out2(arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) END IF end event public function integer wf_flagstatus_rf ();//wf_flagstatus_rf() long pagerert_row pagerert_row=dw_pageretr.getrow() if pagerert_row<=0 then cb_auditing.enabled=false aflag=-1 goto ext end if aflag=dw_pageretr.object.u_order_wfjg_waste_flag[pagerert_row] if dw_edit_mode then cb_auditing.enabled=false if cur_editfocus=1 then aflag=-1 end if cb_auditing_cancel.enabled=false else if aflag=0 then cb_auditing.enabled=true cb_auditing_cancel.enabled=false elseif aflag=1 then cb_auditing.enabled=false cb_auditing_cancel.enabled=true end if end if ext: return 0 end function public function integer wf_refresh_curuc (long arg_scid, long arg_wasteid);//==================================================================== // Function: wf_refresh_curuc(arg_scid,arg_wasteid) //-------------------------------------------------------------------- // Description: 刷新dw_pageretr //-------------------------------------------------------------------- // Arguments: // value long arg_scid // value long arg_wasteid //-------------------------------------------------------------------- // Returns: integer //-------------------------------------------------------------------- // Author: yyx Date: 2003.11.14 //-------------------------------------------------------------------- // Modify History: // //==================================================================== IF arg_wasteid <= 0 OR IsNull(arg_wasteid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 DateTime waste_date String waste_rep String dscrp String waste_code String sptname DateTime opdate String opemp String modemp DateTime moddate Int flag DateTime Auditingdate String Auditingrep Long sptid String relcode string sptcode SELECT u_order_wfjg_waste.wastecode, u_order_wfjg_waste.sptid, u_order_wfjg_waste.wastedate, u_order_wfjg_waste.assign_emp, u_order_wfjg_waste.relcode, u_order_wfjg_waste.dscrp, u_order_wfjg_waste.flag, u_order_wfjg_waste.auditingdate, u_order_wfjg_waste.auditingrep, u_order_wfjg_waste.modemp, u_order_wfjg_waste.moddate, u_order_wfjg_waste.opdate, u_order_wfjg_waste.opemp, u_spt.sptcode, u_spt.name INTO :waste_code, :sptid, :waste_date, :waste_rep, :relcode, :dscrp, :flag, :Auditingdate, :Auditingrep, :modemp, :moddate, :opdate, :opemp, :sptcode, :sptname FROM u_order_wfjg_waste INNER JOIN u_spt ON u_order_wfjg_waste.sptid = u_spt.sptid WHERE u_order_wfjg_waste.wasteid = :arg_wasteid AND u_order_wfjg_waste.scid = :arg_scid USING sqlca; IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!) RETURN 0 END IF dw_pageretr.Object.u_order_wfjg_waste_scid[uc_row] = arg_scid dw_pageretr.Object.u_order_wfjg_waste_wasteid[uc_row] = arg_wasteid dw_pageretr.Object.u_order_wfjg_waste_wastedate[uc_row] = waste_date dw_pageretr.Object.u_order_wfjg_waste_assign_emp[uc_row] = waste_rep dw_pageretr.Object.u_order_wfjg_waste_dscrp[uc_row] = dscrp dw_pageretr.Object.u_order_wfjg_waste_wastecode[uc_row] = waste_code dw_pageretr.Object.u_order_wfjg_waste_opdate[uc_row] = opdate dw_pageretr.Object.u_order_wfjg_waste_opemp[uc_row] = opemp dw_pageretr.Object.u_order_wfjg_waste_moddate[uc_row] = moddate dw_pageretr.Object.u_order_wfjg_waste_modemp[uc_row] = modemp dw_pageretr.Object.u_order_wfjg_waste_flag[uc_row] = flag dw_pageretr.Object.u_order_wfjg_waste_Auditingdate[uc_row] = Auditingdate dw_pageretr.Object.u_order_wfjg_waste_Auditingrep[uc_row] = Auditingrep dw_pageretr.Object.u_spt_name[uc_row] = sptname dw_pageretr.Object.u_spt_sptcode[uc_row] = sptcode dw_pageretr.Object.u_order_wfjg_waste_relcode[uc_row] = relcode dw_pageretr.Object.u_order_wfjg_waste_sptid[uc_row] = sptid dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(),& dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(TRUE) wf_flagstatus_rf() RETURN 1 end function public function integer wf_lock_child ();Int LS_INT IF dw_edit_mode THEN FOR LS_INT = 1 TO child_column_int dw_order_spt.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT = 1 TO child_column_int dw_order_spt.SetTabOrder (LS_INT, 0) NEXT END IF IF dw_edit_mode THEN FOR LS_INT = 1 TO child_column_spt dw_ware_spt.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT = 1 TO child_column_spt dw_ware_spt.SetTabOrder (LS_INT, 0) NEXT END IF RETURN 1 end function public subroutine wf_check_billfj ();String arg_msg Long ll_ConnectionID Long cur_billtype long ll_relid,ll_relid_mx,ll_scid Long ls_filecount = 0 Int rslt = 1 uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long row,uc_relid row = dw_pageretr.GetRow() IF row > 0 THEN ll_relid = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row] ll_scid = dw_pageretr.Object.u_order_wfjg_waste_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 = 228 //客户投拆单的 mainiD ls_uo_fjbt.uf_check_billfj( cur_billtype, ll_relid,ll_relid_mx,ll_scid, sys_fileDB_sqlca, arg_msg, ls_filecount) IF ls_filecount > 0 THEN rslt = 1 GOTO ext ELSE rslt = 0 GOTO ext END IF ext: wf_encl(rslt) DESTROY ls_uo_fjbt end subroutine public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg);//============================================================================== // 函数: w_publ_1ton_share_detail::wf_xls_retrievedata() //------------------------------------------------------------------------------ // 描述: 此函数需要 重载,复制祖先范例代码,然后修改retrieve参数部分两处即可 //------------------------------------------------------------------------------ Long LS_ROW,ll_id,i,ll_scid LS_ROW = dw_uc.GetRow() IF LS_ROW <= 0 THEN arg_msg = '没有目标单据!' RETURN 0 END IF //修改点:获取 指定retriev参数 ll_id = dw_uc.Object.#1[LS_ROW] ll_scid = dw_uc.Object.u_order_wfjg_waste_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 = 228); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_order_spt.RowCount() ll_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[ll_i] //取该附件类型中的第一个附件. SELECT top 1 fileid,DisplayName,FileType INTO :ll_fileid,:ls_filename,:ls_filetype FROM u_file WHERE relid = :ll_mtrlid AND classid = :ll_classid AND (filetype = 'bmp' OR filetype = 'rle' OR filetype = 'wmf' OR filetype = 'tif' OR filetype = 'jpg' OR filetype = 'gif' OR filetype = 'jpeg') USING sys_fileDB_sqlca; IF sys_fileDB_sqlca.SQLCode <> 0 THEN ll_fileid = 0 END IF IF ll_fileid > 0 THEN Pathname = sys_cur_path+ins_fjtemppath+'\'+String(Today(),'yymmdd')+String(Now(),'hhmmss')+'_'+ls_filename+'.'+ls_filetype IF Trim(Pathname) <> '' THEN IF ls_uo_fjbt.uf_getfjbolb_fromdb( ll_fileid, ls_filedata, sys_fileDB_sqlca, arg_msg) = 0 THEN RETURN 0 END IF IF f_saveblobtofile(ls_filedata,Pathname,errmsg) = 0 THEN RETURN 0 ELSE s_pic.path[ll_i] = Pathname //记录临时文件位置,本窗口退出后删除 wf_addlog_tempfilepathname(Pathname) END IF ELSE s_pic.path[ll_i] = '' END IF ELSE s_pic.path[ll_i] = '' END IF NEXT END IF // END IF ////可选设置/// arg_obj_st.uo_const.create_new_pwd( ) //创建随机密码 if sys_option_xls_ifuse_passwd = 1 then arg_obj_st.uo_const.pwd = trim(sys_option_xls_user_passwd) //默认加密密码 默认为随即密码 boolean xls_locked xls_locked = not (sys_option_xls_lock = 1) /// Excel 的可选设置 if arg_obj_st.of_setoption(arg_ationid, xls_locked,true,arg_msg) <> 1 then return 0 end if for i = 1 to arg_str_billlist.count ////可选操作/// arg_str_billlist.bill[i].ds_data = create datastore // arg_str_billlist.bill[i].ds_data.dataobject = arg_str_billlist.bill[i].datawindow // arg_str_billlist.bill[i].ds_data.settransobject(sqlca) //修改点:注意retrieve 参数与上文对应 arg_str_billlist.bill[i].ds_data.retrieve(ll_scid,ll_id) next return 1 end function public function integer wf_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_order_wfjg_waste_scid[LS_ROW] Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long ll_classid SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_order_spt.RowCount() ll_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_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_in_to_out2 (ref string arg_msg); Int rslt = 1 Long ll_sptid Long uc_row uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN rslt = 0 arg_msg = '请先选择单据' GOTO ext END IF ll_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[uc_row] IF ll_sptid <= 0 THEN rslt = 0 arg_msg = '请先选择供应商' GOTO ext END IF IF NOT dw_edit_mode THEN rslt = 0 arg_msg = '非编辑状态不可用' GOTO ext END IF dw_order_spt.AcceptText() Long child_llrow Long ll_dw_in_rowcount Long ll_i,i = 1,ll_itmx,ll_j Long ll_in_mtrlid Decimal ld_qty Long ll_row String ls_pfcode Decimal mtrlwaresum_qty,r_qty,i_qty,ins_qty,ins_planprice,ins_price Long ll_mtrlwareid decimal li_cost String ins_status,ins_woodcode,ins_pcode,ins_plancode s_mtrldef_wfjg_array s_wfjg ll_dw_in_rowcount = dw_order_spt.RowCount() IF ll_dw_in_rowcount <= 0 THEN rslt = 0 arg_msg = '没有收货明细内容' GOTO ext END IF dw_order_spt.AcceptText() dw_ware_spt.AcceptText() dw_ware_spt.SetRedraw(FALSE) dw_ware_spt.Reset() FOR ll_i = 1 TO ll_dw_in_rowcount // //数量 转换 // IF sys_option_2unit = 0 THEN // dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] // ELSE // IF dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] <> 0 THEN // dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = dw_aft.Object.ow_wfjgmx_in_aft_qty[ll_i] / dw_aft.Object.ow_wfjgmx_in_aft_uqty[ll_i] // ELSE // dw_aft.Object.ow_wfjgmx_in_aft_rate[ll_i] = 0 // END IF // END IF // // dw_aft.AcceptText() // ll_in_mtrlid = dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[ll_i] ld_qty = dw_order_spt.Object.u_order_wfjg_wastemx_qty[ll_i] //查找 收货对应的发出 明细 DECLARE cur_inmx CURSOR FOR SELECT u_PrdPF.SonMtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrldef.mtrlmode, u_mtrldef.unit, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode, :ld_qty * u_prdpf.Sonscale / (1 - u_PrdPF.sonloss) + u_PrdPF.SonDECLoss FROM u_PrdPF INNER JOIN u_mtrldef ON u_PrdPF.SonMtrlid = u_mtrldef.mtrlid Where ( u_PrdPF.mtrlid = :ll_in_mtrlid ) ; OPEN cur_inmx; FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i], :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i], :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i]; DO WHILE sqlca.SQLCode = 0 i++ FETCH cur_inmx INTO :s_wfjg.mtrlid[i],:s_wfjg.mtrlcode[i], :s_wfjg.mtrlname[i],:s_wfjg.mtrlmode[i],:s_wfjg.unit[i], :s_wfjg.mtrlsectype[i],:s_wfjg.zxmtrlmode[i],:s_wfjg.qty[i]; LOOP CLOSE cur_inmx; NEXT ll_itmx = i - 1 FOR ll_j = 1 TO ll_itmx li_cost=0 SELECT top 1 mtrlwareid,cost INTO :ll_mtrlwareid,:li_cost FROM ow_wfjgware WHERE mtrlid = :s_wfjg.mtrlid[ll_j] AND sptid = :ll_sptid order by noallocqty desc; IF sqlca.SQLCode = 0 THEN ELSEIF sqlca.SQLCode = 100 THEN ll_mtrlwareid = 0 ELSE arg_msg = '查询库存量失败>'+sqlca.SQLErrText rslt = 0 GOTO ext END IF IF dw_ware_spt.GetRow() <= 0 THEN child_llrow = dw_ware_spt.InsertRow(0) ELSE IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[dw_ware_spt.GetRow()] > 0 THEN child_llrow = dw_ware_spt.InsertRow(0) ELSE child_llrow = dw_ware_spt.GetRow() END IF END IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[child_llrow] = ll_mtrlwareid dw_ware_spt.Object.u_mtrldef_mtrlcode[child_llrow] = s_wfjg.mtrlcode[ll_j] dw_ware_spt.Object.u_mtrldef_unit[child_llrow] = s_wfjg.unit[ll_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[child_llrow] = s_wfjg.qty[ll_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_llrow] = s_wfjg.mtrlid[ll_j] dw_ware_spt.Object.u_mtrldef_mtrlname[child_llrow] = s_wfjg.mtrlname[ll_j] dw_ware_spt.Object.u_mtrldef_mtrlmode[child_llrow] = s_wfjg.mtrlmode[ll_j] dw_ware_spt.Object.u_mtrldef_mtrlsectype[child_llrow] = s_wfjg.mtrlsectype[ll_j] dw_ware_spt.Object.u_mtrldef_zxmtrlmode[child_llrow] = s_wfjg.zxmtrlmode[ll_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_fprice[child_llrow] = li_cost NEXT dw_ware_spt.SetRedraw(TRUE) ext: RETURN rslt end function on w_inware_wfjg_waste.create int iCurrent call super::create this.ddlb_scid=create ddlb_scid this.ddlb_status=create ddlb_status this.st_3=create st_3 this.st_2=create st_2 this.tab_1=create tab_1 this.cb_in_2_out=create cb_in_2_out this.cbx_autocmp=create cbx_autocmp iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_scid this.Control[iCurrent+2]=this.ddlb_status this.Control[iCurrent+3]=this.st_3 this.Control[iCurrent+4]=this.st_2 this.Control[iCurrent+5]=this.tab_1 this.Control[iCurrent+6]=this.cb_in_2_out this.Control[iCurrent+7]=this.cbx_autocmp end on on w_inware_wfjg_waste.destroy call super::destroy destroy(this.ddlb_scid) destroy(this.ddlb_status) destroy(this.st_3) destroy(this.st_2) destroy(this.tab_1) destroy(this.cb_in_2_out) destroy(this.cbx_autocmp) end on event retrieve_pageretr;Boolean cb_nextpage_enabled,cb_retrieveall_enabled Boolean cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled = cb_nextpage.Enabled cb_retrieveall_enabled = cb_retrieveall.Enabled cb_func_enabled = cb_func.Enabled cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE cb_func.Enabled = FALSE dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_scid,cur_flag,sys_user_spttype) IF dw_pageretr.RowCount() > 0 THEN dw_pageretr.SetRow(1) dw_pageretr.triggerevent(rowfocuschanged!) end if THIS.TriggerEvent('retrieve_childdw') cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled cb_func.Enabled = cb_func_enabled end event event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( u_order_wfjg_waste_wastecode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( u_order_wfjg_waste_wastecode LIKE "'+trim(sle_usual_query.text)+'" )' END IF end if dw_pageretr.setfilter(obj_expr) dw_pageretr.SetRedraw(False) dw_pageretr.filter() if dw_pageretr.rowcount()>=1 then dw_pageretr.selectrow(0,false) dw_pageretr.selectrow(1,true) dw_pageretr.SetRow(1) dw_pageretr.triggerevent(rowfocuschanged!) end if dw_pageretr.SetRedraw(TRUE) end event event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart='' ls_newselect=lower(ori_oldselect) if trim(sle_usual_query.text)<>'' then if pos(trim(sle_usual_query.text),'%')=0 then ls_querystrpart="(u_order_wfjg_waste.wastecode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_order_wfjg_waste.wastecode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() 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) wf_editindex_lockf() 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 = 7 //uc dw前7列可以编辑 child_column_int = 11 //子dw前8列可以编辑 child_column_spt = 4 //子dw前8列可以编辑 uo_ware = CREATE uo_wfjg_waste uo_ware.commit_transaction = sqlca s_hide_col s_col_mtrlsectype s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_order_spt,s_col_mtrlsectype) f_hide_col(1308,dw_ware_spt,s_col_mtrlsectype) s_hide_col s_col_zxmtrlmode s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_order_spt,s_col_zxmtrlmode) f_hide_col(1309,dw_ware_spt,s_col_zxmtrlmode) end event event refresh_interface;call super::refresh_interface;wf_flagstatus_rf() ddlb_status.enabled=not dw_edit_mode if dw_edit_mode then ddlb_scid.enabled=false else if sys_scid > 0 then ddlb_scid.enabled=false else ddlb_scid.enabled=true end if end if end event event close;call super::close;destroy uo_ware wf_del_tempfilepathname() end event event ue_f8;call super::ue_f8;//用于选择明细内容,被f8[默认]\dw_order_spt.doubleclicked调用 IF NOT dw_edit_mode THEN RETURN Long child_row,ls_null,cnt_childdw Long ins_storageid = 0 Long ls_sptid Dec ls_lastprice,ls_rebate s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = FALSE s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 Long chc = 1,ls_j SetNull(ls_null) child_row = dw_order_spt.GetRow() cnt_childdw = dw_order_spt.RowCount() ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) OR ls_sptid = 0 THEN THIS.TriggerEvent("ue_f9") END IF dw_uc.AcceptText() this.enabled = false ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF NOT IsValid(w_mtrldef_edit) THEN s_edit_index_tran s_ch_tran s_ch_tran.if_retrieve_all = FALSE s_ch_tran.work_mode = 1 s_ch_tran.arg_pkid = 0 s_ch_tran.arg_string_code = '' s_ch_tran.b_long = 3 s_ch_tran.if_select_all = TRUE dw_order_spt.AcceptText() IF dw_order_spt.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_order_spt.Object.u_mtrldef_mtrlcode[dw_order_spt.GetRow()]) OpenWithParm(w_mtrldef_edit,s_ch_tran) //调用 s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(s_inscust.mtrlid) IF s_inscust.mtrlid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_order_spt.GetRow() > 0 THEN IF dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] <> 0 THEN child_row = dw_order_spt.InsertRow (0) ELSE child_row = dw_order_spt.GetRow() END IF ELSE child_row = dw_order_spt.InsertRow (0) END IF dw_order_spt.Object.u_mtrldef_mtrlcode[child_row] = s_inscust.mtrlcode[ls_j] dw_order_spt.Object.u_mtrldef_unit[child_row] = s_inscust.unit[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] = s_inscust.mtrlid[ls_j] dw_order_spt.Object.u_mtrldef_mtrlname[child_row] = s_inscust.mtrlname[ls_j] dw_order_spt.Object.u_mtrldef_statusflag[child_row] = s_inscust.statusflag[ls_j] dw_order_spt.Object.u_mtrldef_woodcodeflag[child_row] = s_inscust.woodcodeflag[ls_j] dw_order_spt.Object.u_mtrldef_pcodeflag[child_row] = s_inscust.pcodeflag[ls_j] END IF NEXT END IF THIS.TriggerEvent('ue_allowedit') dw_order_spt.SetRedraw(TRUE) dw_order_spt.SetFocus() this.enabled = true end event event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid row = dw_pageretr.GetRow() IF row > 0 THEN uc_relid = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row] dw_order_spt.SetRedraw (FALSE) dw_order_spt.Retrieve(cur_scid,uc_relid) dw_order_spt.SetRedraw (TRUE) dw_ware_spt.SetRedraw (FALSE) dw_ware_spt.Retrieve(cur_scid,uc_relid) dw_ware_spt.SetRedraw (TRUE) ELSE dw_order_spt.Reset() dw_ware_spt.Reset() END IF end event event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认] if not dw_edit_mode then return long uc_row uc_row=dw_pageretr.getrow() if uc_row=0 then messagebox('提示','请选定损耗单!',information!,OK!) return end if dw_uc.accepttext() if not isvalid(W_spt_edit) then s_edit_index_tran s_ch_tran //传递参数使用 s_ch_tran.if_retrieve_all=false //是否一次RETRIEVE所有行 s_ch_tran.work_mode=1 //0-单纯编辑模式 1-选择\编辑模式 s_ch_tran.arg_pkid=0 //目标定位PKID (备用) //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.arg_string_code=upper(trim(dw_uc.object.u_spt_sptcode[dw_uc.getrow()])) OPENwithparm(W_spt_edit,s_ch_tran) //调用 S_spt S_INSCUST S_INSCUST=Message.PowerObjectParm //接受返回结构 IF S_INSCUST.sptid>0 THEN //正常返回值则可以取以下值 dw_uc.setredraw(false) dw_uc.object.u_order_wfjg_waste_sptid[uc_row]=S_INSCUST.sptid dw_uc.object.u_spt_name[uc_row]=S_INSCUST.name dw_uc.object.u_spt_sptcode[uc_row]=S_INSCUST.sptcode dw_uc.setredraw(true) dw_uc.setcolumn("u_order_wfjg_waste_wastedate") END IF end if end event event ue_viewprint;call super::ue_viewprint;IF Not (f_power_ind(392)) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF LONG LS_ROW LS_ROW=dw_pageretr.getrow() IF LS_ROW<=0 THEN MESSAGEBOX('提示','没有打印目标单据!',information!,OK!) RETURN END IF S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME='dw_rp_wfjg_waste_edit' LS_PRMSG.TAG_TEXT='损耗单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg=12 LS_PRMSG.PAGECH_FLAG=0 LS_PRMSG.retr_scid=cur_scid LS_PRMSG.retr_pramnmb=dw_pageretr.object.u_order_wfjg_waste_wasteid[LS_ROW] LS_PRMSG.rowcnt = dw_order_spt.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF Openwithparm(w_publ_preview,LS_PRMSG) IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF //**更新打印次料 string arg_msg printnum = message.doubleparm f_update_printnum('u_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[LS_ROW],'','',arg_msg,true) end event event ue_f7;call super::ue_f7;IF NOT dw_edit_mode THEN RETURN Long childrow,ls_sptid,ls_j childrow = dw_order_spt.GetRow() Int li_statusflag,li_woodcodeflag,li_pcodeflag s_mtrldef_array arg_s_mtrldef ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF ls_sptid <= 0 THEN MessageBox("提示","请先选择供应商",information!,OK!) RETURN END IF s_edit_index_tran s_tranf8 s_tranf8.if_retrieve_all = FALSE s_tranf8.arg_pkid = 0 s_tranf8.arg_string_code = '' s_tranf8.b_long = 2 s_tranf8.d_long = ls_sptid IF NOT IsValid(w_inware_wfjg_ch) THEN OpenWithParm(w_inware_wfjg_ch,s_tranf8) s_mtrldef_wfjg_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 dw_order_spt.SetRedraw(FALSE) FOR ls_j = 1 TO UpperBound(s_inscust.wfjgid) IF s_inscust.wfjgid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_order_spt.GetRow() > 0 THEN IF dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[childrow] <> 0 THEN childrow = dw_order_spt.InsertRow (0) ELSE childrow = dw_order_spt.GetRow() END IF ELSE childrow = dw_order_spt.InsertRow (0) END IF dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[childrow] = s_inscust.wfjgid[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_orderid[childrow] = s_inscust.orderid[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[childrow] = s_inscust.mtrlid[ls_j] dw_order_spt.Object.u_mtrldef_mtrlcode[childrow] = s_inscust.mtrlcode[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_ordercode[childrow] = s_inscust.taskcode[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_price[childrow] = s_inscust.price[ls_j] dw_order_spt.Object.u_mtrldef_mtrlname[childrow] = s_inscust.mtrlname[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_status[childrow] = s_inscust.status[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_woodcode[childrow] = s_inscust.woodcode[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_pcode[childrow] = s_inscust.pcode[ls_j] dw_order_spt.Object.u_mtrldef_unit[childrow] = s_inscust.unit[ls_j] dw_order_spt.Object.u_order_wfjg_wastemx_wastedscrp[childrow] = s_inscust.dscrp[ls_j] IF f_find_mtrl(s_inscust.mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_order_spt.Object.u_mtrldef_statusflag[childrow] = li_statusflag dw_order_spt.Object.u_mtrldef_woodcodeflag[childrow] = li_woodcodeflag dw_order_spt.Object.u_mtrldef_pcodeflag[childrow] = li_pcodeflag END IF NEXT THIS.TriggerEvent('ue_allowedit') dw_order_spt.SetRedraw(TRUE) END IF end event event ue_print;call super::ue_print;IF Not (f_power_ind(392)) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF //--直接打印 uo_print_preview uo_print IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG if dw_pageretr.rowcount()=0 then Messagebox('提示','没有可打印的单据!',information!,OK!) return end if LS_PRMSG.retr_pram_falg=12 LS_PRMSG.obj_dwNAME='dw_rp_wfjg_waste_edit' LS_PRMSG.TAG_TEXT='损耗单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG=0 LS_PRMSG.retr_scid=cur_scid LS_PRMSG.retr_pramnmb=dw_pageretr.object.u_order_wfjg_waste_wasteid[dw_pageretr.getrow()] LS_PRMSG.rowcnt = dw_order_spt.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF uo_print.FACT_PRINT_MSG=LS_PRMSG string arg_msg if uo_print.uof_print_begin(arg_msg)=0 then messagebox("错误",arg_msg,stopsign!,OK!) return end if uo_print.ds_print() IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF //**更新打印次料 f_update_printnum('u_order_wfjg_waste',1,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[dw_pageretr.getrow()],'','',arg_msg,true) end event event ue_before_open;call super::ue_before_open;dw_order_spt = tab_1.tabpage_1.dw_1 dw_ware_spt = tab_1.tabpage_2.dw_2 dw_order_spt.settransobject(sqlca) dw_ware_spt.settransobject(sqlca) end event event resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width ln_1.EndX = THIS.Width ln_2.EndX = THIS.Width r_bar.Width = THIS.Width Long w_width,w_height w_width = 3602 w_height = 2300 IF newwidth < w_width THEN THIS.Width = w_width IF newheight < w_height THEN THIS.Height = w_height //dw_child.Width = THIS.Width - (w_width - dw_child_w) //dw_child.Height = THIS.Height - (w_height - dw_child_h) //dw_pageretr.Width = THIS.Width - (w_width - dw_pageretr_w) //============================================================================== //YYX081007 //============================================================================== IF uc_width > 0 THEN dw_uc.Width = uc_width END IF IF uc_height > 0 THEN dw_uc.Height = uc_height END IF dw_pageretr.X = dw_uc.X + dw_uc.Width dw_pageretr.Width = THIS.Width - dw_pageretr.X - 40 dw_pageretr.Height = dw_uc.Height tab_1.Y = dw_uc.Y + dw_uc.Height + 4 tab_1.Width = THIS.Width - tab_1.X - 40 tab_1.Height = THIS.Height - tab_1.Y - 150 dw_order_spt.Width = THIS.Width - (3602 - 3515) dw_order_spt.Height = tab_1.Height - 112 dw_ware_spt.Width = THIS.Width - (3602 - 3515) dw_ware_spt.Height = tab_1.Height - 112 this.triggerevent('resize_p') end event event ue_f11;call super::ue_f11;//用于选择明细内容,被F8[默认]\dw_ware_spt.doubleclicked调用 IF NOT dw_edit_mode THEN RETURN Long child_row,ins_sptid = 0 Long ls_j dw_uc.accepttext() ins_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF ins_sptid = 0 OR IsNull(ins_sptid) THEN MessageBox(publ_operator,'请先选择加工商') RETURN END IF child_row = dw_ware_spt.GetRow() IF NOT IsValid(w_sptware_sptid_ch) THEN s_edit_index_tran s_tranf8 //传递参数使用 s_tranf8.if_retrieve_all = FALSE //是否一次RETRIEVE所有行 s_tranf8.arg_pkid = 0 //目标定位PKID (备用) s_tranf8.arg_string_code = '' //查询列(物料编码)部分内容,用于初步筛选 s_tranf8.b_long = - 1 //选择原料或产品 s_tranf8.d_long = ins_sptid s_tranf8.f_long =cur_scid dw_ware_spt.AcceptText() IF dw_ware_spt.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_ware_spt.Object.u_mtrldef_mtrlcode[dw_ware_spt.GetRow()]) OpenWithParm(w_sptware_sptid_ch,s_tranf8) //调用 s_sptware_array S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlwareid) IF S_INSCUST.mtrlwareid[ls_j] > 0 THEN IF dw_ware_spt.GetRow() > 0 THEN IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_row] <> 0 THEN child_row = dw_ware_spt.InsertRow (0) ELSE child_row = dw_ware_spt.GetRow() END IF ELSE child_row = dw_ware_spt.InsertRow (0) END IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[child_row] = S_INSCUST.mtrlwareid[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_ware_spt.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.u_mtrldef_mtrlcode[ls_j] dw_ware_spt.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.u_mtrldef_mtrlname[ls_j] dw_ware_spt.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.u_mtrldef_mtrlmode[ls_j] dw_ware_spt.Object.u_mtrldef_unit[child_row] = S_INSCUST.u_mtrldef_unit[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[child_row] = S_INSCUST.noallocqty[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_fprice[child_row] = S_INSCUST.cost[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_plancode[child_row] = S_INSCUST.plancode[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_status[child_row] = S_INSCUST.status[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_woodcode[child_row] = S_INSCUST.woodcode[ls_j] dw_ware_spt.Object.u_order_wfjg_wastemx_spt_pcode[child_row] = S_INSCUST.pcode[ls_j] dw_ware_spt.SetColumn('u_order_wfjg_wastemx_spt_qty') END IF NEXT END IF end event event ue_addmx;if tab_1.selectedtab = 1 then this.triggerevent('ue_f8') dw_order_spt.SetFocus() else this.triggerevent('ue_f11') dw_order_spt.SetFocus() end if end event event ue_deletemx;IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF tab_1.SelectedTab = 1 THEN IF dw_order_spt.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!',information!,OK!) RETURN END IF dw_order_spt.DeleteRow (0) dw_order_spt.TriggerEvent (RowFocusChanged!) ELSE IF dw_ware_spt.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!',information!,OK!) RETURN END IF dw_ware_spt.DeleteRow (0) dw_ware_spt.TriggerEvent (RowFocusChanged!) END IF end event event ue_rpt_print;call super::ue_rpt_print;IF Not (f_power_ind(392)) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN uo_rpt_print_preview uo_print S_rpt_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('提示','没有可打印的单据!',information!,OK!) RETURN END IF IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_order_wfjg_waste_flag[row] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF IF MessageBox ("询问","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = THIS.Title LS_PRMSG.rpname = ls_rpname LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.rpid = ls_msgprintid_rpt LS_PRMSG.retr_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[row] LS_PRMSG.retr_pramnmb = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row] LS_PRMSG.rowcnt = dw_order_spt.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_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[ROW],'','',arg_msg,true) end event event ue_rpt_viewprint;call super::ue_rpt_viewprint;IF Not (f_power_ind(392)) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF Long row,uc_relid,ll_scid row = dw_pageretr.GetRow() IF row = 0 THEN RETURN IF ls_rpname = '' THEN RETURN IF li_auditprint = 1 THEN IF dw_pageretr.Object.u_order_wfjg_waste_flag[row] = 0 THEN MessageBox('提示','目标单据还未审核,不能打印!',information!,OK!) RETURN END IF END IF s_rpt_print_msg s_print s_print.retr_pram_falg = 15 s_print.rpid = ls_msgprintid_rpt s_print.retr_flag = TRUE s_print.tag_text = THIS.Title s_print.rpname = ls_rpname s_print.retr_scid = dw_pageretr.Object.u_order_wfjg_waste_scid[row] s_print.retr_pramnmb = dw_pageretr.Object.u_order_wfjg_waste_wasteid[row] s_print.rowcnt = dw_order_spt.RowCount() OpenWithParm(w_rpt_preview,s_print) //**更新打印次料 string arg_msg printnum = message.doubleparm f_update_printnum('u_order_wfjg_waste',printnum,cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[ROW],'','',arg_msg,true) end event event ue_allowedit;Long Columns Int i String ls_modify_str Long ll_row Long ll_value Long ll_statusflag,ll_woodcodeflag,ll_pcodeflag String ls_status,ls_woodcode,ls_pcode String ls_data_type ll_row = dw_order_spt.GetRow() IF ll_row <= 0 THEN RETURN Columns = Long(dw_order_spt.Describe("DataWindow.Column.Count")) FOR i = 1 TO Columns ls_modify_str = dw_order_spt.Describe("#" + String(i) + ".name") ls_modify_str = Lower(ls_modify_str) IF i = 1 THEN //第1个字段,约定物料ID ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_value = dw_order_spt.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'statusflag') > 0 THEN ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_statusflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'woodcodeflag') > 0 THEN ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_woodcodeflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'pcodeflag') > 0 THEN ls_data_type = dw_order_spt.Describe(ls_modify_str+".ColType") IF ls_data_type = "long" THEN ll_pcodeflag = dw_order_spt.GetItemNumber(ll_row,ls_modify_str) END IF END IF IF Pos(ls_modify_str,'status') > 0 AND Pos(ls_modify_str,'statusflag') = 0 AND Pos(ls_modify_str,'statustype') = 0 THEN IF Len(ls_modify_str) = Len('status') OR Pos(ls_modify_str,'_status') > 0 THEN IF Not (Pos(ls_modify_str,'u_saletask_status') > 0 OR & Pos(ls_modify_str,'u_buytask_status') > 0 OR & Pos(ls_modify_str,'u_order_ml_status') > 0 OR & Pos(ls_modify_str,'u_order_wfjg_status') > 0 OR & Pos(ls_modify_str,'u_rs_empinfo_status') > 0 ) THEN ls_status = ls_modify_str END IF END IF END IF IF Pos(ls_modify_str,'woodcode') > 0 AND Pos(ls_modify_str,'woodcodeflag') = 0 AND Pos(ls_modify_str,'woodcodetype') = 0 THEN IF Len(ls_modify_str) = Len('woodcode') OR Pos(ls_modify_str,'_woodcode') > 0 THEN ls_woodcode = ls_modify_str END IF END IF IF Pos(ls_modify_str,'pcode') > 0 AND Pos(ls_modify_str,'pcodeflag') = 0 AND Pos(ls_modify_str,'pcodetype') = 0 THEN IF Len(ls_modify_str) = Len('pcode') OR Pos(ls_modify_str,'_pcode') > 0 THEN ls_pcode = ls_modify_str END IF END IF NEXT IF ls_status <> '' THEN IF ll_statusflag <> 0 OR ll_value = 0 THEN dw_order_spt.Modify(ls_status+".dddw.allowedit = no") ELSE dw_order_spt.Modify(ls_status+".dddw.allowedit = yes") END IF END IF IF ls_woodcode <> '' THEN IF ll_woodcodeflag <> 0 OR ll_value = 0 THEN dw_order_spt.Modify(ls_woodcode+".dddw.allowedit = no") ELSE dw_order_spt.Modify(ls_woodcode+".dddw.allowedit = yes") END IF END IF IF ls_pcode <> '' THEN IF ll_pcodeflag <> 0 OR ll_value = 0 THEN dw_order_spt.Modify(ls_pcode+".dddw.allowedit = no") ELSE dw_order_spt.Modify(ls_pcode+".dddw.allowedit = yes") END IF END IF end event type cb_func from w_publ_1ton_share_detail`cb_func within w_inware_wfjg_waste end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_inware_wfjg_waste end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_inware_wfjg_waste integer x = 183 integer width = 549 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_inware_wfjg_waste integer x = 3045 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_inware_wfjg_waste integer x = 2725 integer y = 56 integer width = 320 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_inware_wfjg_waste integer x = 2034 integer y = 296 integer width = 1495 integer height = 864 string dataobject = "dw_inware_wfjg_waste_index" end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf() wf_check_billfj() IF dw_edit_mode THEN RETURN IF currentrow <=0 THEN dw_child.reset() RETURN end if this.selectrow(0,false) this.selectrow(currentrow,true) DW_UC.SETROW(currentrow) DW_UC.ScrollToRow (currentrow) if not dw_edit_mode then parent.triggerevent('retrieve_childdw') end event type st_1 from w_publ_1ton_share_detail`st_1 within w_inware_wfjg_waste integer x = 5 string text = "编码含" end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_inware_wfjg_waste integer x = 3195 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_inware_wfjg_waste integer y = 296 integer width = 2025 integer height = 864 string dataobject = "dw_inware_wfjg_waste_edit" end type event dw_uc::dwnkey;parent.triggerevent('user_key') if key = KeyDownArrow! then return 1 if dw_edit_mode then if dw_uc.GetColumnName ( )='u_order_wfjg_waste_dscrp' and key = KeyEnter! then dw_order_spt.setfocus() dw_order_spt.scrolltorow(dw_child.rowcount()) dw_order_spt.SetColumn ('u_order_wfjg_wastemx_wfjg_ordercode') return 1 elseif dw_uc.GetColumnName ( )='u_spt_sptcode' and key = KeyEnter! then String ls_code,ls_name,ls_find_code Long ls_sptid Long cnt = 0 Boolean if_find = FALSE dw_uc.AcceptText() ls_code = Upper(Trim(dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()])) SELECT u_spt.sptid, u_spt.name, u_spt.sptcode INTO :ls_sptid,:ls_name,:ls_code FROM u_spt Where ( sptcode = :ls_code OR Name = :ls_code ); IF sqlca.SQLCode <> 0 THEN IF Pos(Trim(ls_code),'%') = 0 THEN ls_find_code = '%'+ Trim(ls_code) + '%' ELSE ls_find_code = Trim(ls_code) END IF SELECT count(*) INTO :cnt FROM u_spt Where ( sptcode Like :ls_find_code OR Name Like :ls_find_code ); IF sqlca.SQLCode <> 0 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 END IF IF cnt <> 1 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 ELSE SELECT u_spt.sptid, u_spt.sptcode, u_spt.name INTO :ls_sptid,:ls_code,:ls_name FROM u_spt Where ( sptcode 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 if_find THEN dw_uc.SetRedraw(FALSE) dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] = ls_sptid dw_uc.Object.u_spt_sptcode[dw_uc.GetRow()] = ls_code dw_uc.Object.u_spt_name[dw_uc.GetRow()] = ls_name dw_uc.SetRedraw(TRUE) dw_uc.SetColumn("u_order_wfjg_waste_wastedate") RETURN 1 END IF else if key = KeyEnter! Then // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab Return 1 end If end if end if end event event dw_uc::doubleclicked;IF dw_edit_mode and row >0 THEN parent.triggerevent('ue_f9') END IF end event event dw_uc::itemchanged;call super::itemchanged;IF NOT dw_edit_mode THEN RETURN IF dwo.Name = 'storageid' THEN dw_child.Reset() PARENT.TriggerEvent("insert_childrow") END IF end event event dw_uc::clicked;call super::clicked;IF NOT dw_edit_mode THEN RETURN IF row <= 0 THEN RETURN IF dwo.Name = 'p_p' THEN PARENT.TriggerEvent('ue_f9') ELSEIF dwo.Name = 'p_b' THEN PARENT.TriggerEvent('ue_f7') END IF end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_inware_wfjg_waste end type type dw_child from w_publ_1ton_share_detail`dw_child within w_inware_wfjg_waste boolean visible = false integer x = 713 integer y = 524 integer width = 695 integer height = 456 string dataobject = "dw_inwaremx_wfjg_waste_edit" end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_wfjg_code,ls_taskcode Long ls_mtrlid,ls_sptid,ls_wfjgid,ls_orderid String ls_prdpackcode Decimal ls_packqty Int cnt = 0 Long child_row Long ls_null SetNull(ls_null) IF dw_edit_mode THEN ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) OR ls_sptid = 0 THEN PARENT.TriggerEvent("ue_f9") END IF IF KeyDown(keydownarrow!) THEN Long li_row IF dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") END IF ELSE If (KeyDown(keyenter!) OR KeyDown(keytab!)) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN dw_child.AcceptText() 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] SELECT u_mtrldef.mtrlid, u_mtrldef.mtrlname, u_mtrldef.unit INTO :ls_mtrlid,:ls_mtrlname,:ls_unit FROM u_mtrldef Where ( u_mtrldef.mtrlcode = :ls_mtrlcode); IF sqlca.SQLCode = 100 THEN PARENT.TriggerEvent('ue_f8') RETURN END IF dw_child.Object.u_order_wfjg_wastemx_mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_unit[child_row] = ls_unit IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ifrel' THEN IF dw_child.Object.u_order_wfjg_wastemx_wfjg_ifrel[dw_child.GetRow()] = 1 THEN dw_child.Object.u_mtrldef_mtrlcode.protect = 1 ELSE dw_child.Object.u_mtrldef_mtrlcode.protect = 0 END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ordercode' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent('ue_f7') dw_child.SetColumn('u_order_wfjg_wastemx_qty') IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_child.GetColumnName( ) = 'u_order_wfjg_wastemx_wastedscrp' AND dw_child.GetRow() = dw_child.RowCount() THEN PARENT.TriggerEvent("insert_childrow") 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;dw_child.accepttext() if dw_edit_mode then if row > 0 then if dwo.name='u_order_wfjg_wastemx_wfjg_ordercode' then parent.triggerevent('ue_f7') else parent.triggerevent('ue_f8') end if else parent.triggerevent('ue_f8') end if end if end event event dw_child::itemchanged;call super::itemchanged;//if not dw_edit_mode then return //this.accepttext() //if dwo.name = 'u_inwaremx_ifrel' then // if this.object.u_inwaremx_ifrel[row] = 0 then // dw_child.object.u_inwaremx_relid[row] = 0 // dw_child.object.u_order_wfjg_taskcode[row] = '' // end if //end if end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_inware_wfjg_waste end type type cb_print from w_publ_1ton_share_detail`cb_print within w_inware_wfjg_waste end type type cb_add from w_publ_1ton_share_detail`cb_add within w_inware_wfjg_waste end type event cb_add::clicked;IF Not f_power_ind(247) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF String arg_msg = '' Long uc_row,pagerert_row Long relid_pageretr,reld_uc,j IF dw_edit_mode THEN dw_uc.AcceptText() dw_order_spt.AcceptText() uc_row = dw_uc.GetRow() dw_ware_spt.AcceptText() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF Not dw_uc.Object.u_order_wfjg_waste_wastedate[uc_row] > DateTime(2000-01-01,Now()) THEN MessageBox('提示','不合理发生时间!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_order_wfjg_waste_wastedate") RETURN END IF IF Not Len(String(dw_uc.Object.u_order_wfjg_waste_assign_emp[uc_row])) > 0 THEN MessageBox('提示','请填写经手人!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_order_wfjg_waste_assign_emp") RETURN END IF FOR j = 1 To dw_order_spt.RowCount() IF dw_order_spt.Object.u_order_wfjg_wastemx_qty[j] < 0 THEN MessageBox('提示','数量要输入正数',information!,OK!) RETURN END IF NEXT IF cbx_autocmp.Checked THEN //保存自动按收货明细计算外协商库存明细 IF wf_in_to_out2(arg_msg) = 0 THEN MessageBox(publ_operator,arg_msg) RETURN END IF END IF uo_ware.waste_date = dw_uc.Object.u_order_wfjg_waste_wastedate[uc_row] // 发生时间 uo_ware.waste_rep = dw_uc.Object.u_order_wfjg_waste_assign_emp[uc_row] // 经手人 uo_ware.dscrp = dw_uc.Object.u_order_wfjg_waste_dscrp[uc_row] //备注 uo_ware.relcode = dw_uc.Object.u_order_wfjg_waste_relcode[uc_row] uo_ware.sptname = dw_uc.Object.u_spt_name[uc_row] uo_ware.sptid = dw_uc.Object.u_order_wfjg_waste_sptid[uc_row] Long i FOR i = 1 To dw_order_spt.RowCount() IF dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[i] > 0 THEN IF uo_ware.acceptmx(dw_order_spt.Object.printid[i],& dw_order_spt.Object.u_order_wfjg_wastemx_ifrel[i],& dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[i],& dw_order_spt.Object.u_mtrldef_mtrlcode[i],& dw_order_spt.Object.u_order_wfjg_wastemx_status[i],& dw_order_spt.Object.u_order_wfjg_wastemx_woodcode[i],& dw_order_spt.Object.u_order_wfjg_wastemx_pcode[i],& dw_order_spt.Object.u_order_wfjg_wastemx_qty[i],& dw_order_spt.Object.u_order_wfjg_wastemx_wastedscrp[i],& arg_msg,& dw_order_spt.Object.u_order_wfjg_wastemx_price[i],& dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_orderid[i],& dw_order_spt.Object.u_order_wfjg_wastemx_orderid[i],& dw_order_spt.Object.u_order_wfjg_wastemx_plancode[i]) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF NEXT FOR i = 1 To dw_ware_spt.RowCount() IF dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlid[i] > 0 THEN IF uo_ware.acceptmx_bef(dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mtrlwareid[i],& dw_ware_spt.Object.u_order_wfjg_wastemx_spt_qty[i],& dw_ware_spt.Object.u_order_wfjg_wastemx_spt_mxdscrp[i],& dw_ware_spt.Object.printid[i],& arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF NEXT IF uo_ware.Save(True,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF MessageBox('提示','保存操作成功!',information!,OK!) Long ll_row ll_row = dw_pageretr.GetRow() dw_pageretr.SelectRow(0,False) dw_pageretr.SelectRow(ll_row,True) wf_refresh_curuc(cur_scid,uo_ware.wasteid) //刷新uc ELSE IF uo_ware.newbegin(cur_scid,4,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF IF Not dw_edit_mode THEN Int li_row li_row = dw_pageretr.InsertRow (1) dw_pageretr.ScrollToRow(li_row) dw_order_spt.Reset() dw_ware_spt.Reset() dw_uc.Reset() dw_uc.SetFocus() dw_pageretr.RowsCopy(li_row,li_row, Primary!, dw_uc, 1, Primary!) IF dw_uc.GetRow() > 0 THEN dw_uc.Object.u_order_wfjg_waste_assign_emp[dw_uc.GetRow()] = publ_operator END IF END IF dw_edit_mode = Not dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN Parent.TriggerEvent("insert_childrow") Parent.TriggerEvent("insert_childrow_spt") ELSE Parent.TriggerEvent("retrieve_childdw") END IF This.TriggerEvent('refresh_interface') end event type cb_edit from w_publ_1ton_share_detail`cb_edit within w_inware_wfjg_waste end type event cb_edit::clicked; IF NOT f_power_ind(247) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF string arg_msg='' long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!',information!,OK!) return end if if not dw_edit_mode then if uo_ware.updatebegin(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row],arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) return end if end if call super::clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_inware_wfjg_waste end type event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(622) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF string arg_msg='' if dw_edit_mode then return if messagebox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 then return long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!',information!,OK!) return end if if uo_ware.del(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row],arg_msg,true)=0 then messagebox('错误',arg_msg,stopsign!,OK!) else //日志 long ls_id string ls_code ls_id=dw_pageretr.object.u_order_wfjg_waste_wasteid[uc_row] ls_code=dw_pageretr.object.u_order_wfjg_waste_wastecode[uc_row] f_setsysoplog('损耗单','损耗单删除,id:'+string(ls_id)+',code:'+ls_code,arg_msg,true) //-- messagebox('提示','删除单据'+string(dw_pageretr.object.u_order_wfjg_waste_wastecode[uc_row])+'成功!',information!,OK!) dw_pageretr.deleterow(uc_row) dw_pageretr.postevent(rowfocuschanged!) end if end event type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_inware_wfjg_waste end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu string menustr menustr="Text=增加备注~tEvent=ue_addzy" menustr=menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=查看附件~tEvent=ue_fj_view" menustr = menustr + "|" + "Text=添加附件~tEvent=ue_fj_edit" if len(trim(menustr))<>0 then dmPopupMenu = Create m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(This, menustr) dmPopupMenu.mf_PopMenu() Destroy dmPopupMenu end if end event type cb_auditing from w_publ_1ton_share_detail`cb_auditing within w_inware_wfjg_waste end type event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(248) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF if dw_edit_mode then return string arg_msg='' if messagebox ("询问","是否确定要审核当前单据?",question!,yesno! ) = 2 then return long pagerert_row pagerert_row=dw_pageretr.getrow() if pagerert_row<=0 then messagebox('提示','请选定当前目标单据!',information!,OK!) return end if if uo_ware.getinfo(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row],arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) return end if if uo_ware.auditing(true,arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) else messagebox('提示','审核成功!',information!,OK!) wf_refresh_curuc(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row]) end if end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_inware_wfjg_waste end type type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_inware_wfjg_waste end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_inware_wfjg_waste end type type cb_help from w_publ_1ton_share_detail`cb_help within w_inware_wfjg_waste end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_inware_wfjg_waste end type event cb_auditing_cancel::clicked;call super::clicked;if not f_power_ind(901) then messagebox('提示','你没有使用权限!',information!,OK!) return end if if dw_edit_mode then return if not keydown(KeyControl!) then IF MessageBox ("询问","是否确定要"+this.text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN end if string arg_msg='',ls_code,ls_opemp,ls_outpart long pagerert_row,ls_id pagerert_row=dw_pageretr.getrow() if pagerert_row<=0 then messagebox('提示','请选定当前目标单据!',information!,OK!) return end if if uo_ware.getinfo(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid [pagerert_row],arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) return end if if dw_pageretr.object.u_order_wfjg_waste_flag[pagerert_row]=1 then if uo_ware.c_auditing(true,arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) else messagebox('提示','撤审成功!',information!,OK!) wf_refresh_curuc(cur_scid,dw_pageretr.object.u_order_wfjg_waste_wasteid[pagerert_row]) end if end if end event type p_msg from w_publ_1ton_share_detail`p_msg within w_inware_wfjg_waste end type type p_help from w_publ_1ton_share_detail`p_help within w_inware_wfjg_waste end type type p_encl from w_publ_1ton_share_detail`p_encl within w_inware_wfjg_waste end type type p_other from w_publ_1ton_share_detail`p_other within w_inware_wfjg_waste end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_inware_wfjg_waste end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_inware_wfjg_waste end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_inware_wfjg_waste end type type r_bar from w_publ_1ton_share_detail`r_bar within w_inware_wfjg_waste end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_inware_wfjg_waste integer beginx = 9 integer endx = 3273 end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_inware_wfjg_waste integer beginx = 9 integer endx = 3273 end type type ddlb_scid from uo_ddlb_scid within w_inware_wfjg_waste integer x = 946 integer y = 188 integer width = 549 integer height = 1120 integer taborder = 20 boolean bringtotop = true end type event constructor;call super::constructor;cur_scid=this.uo_scid end event event selectionchanged;call super::selectionchanged;cur_scid=this.uo_scid parent.triggerevent("retrieve_pageretr") end event type ddlb_status from dropdownlistbox within w_inware_wfjg_waste integer x = 1691 integer y = 188 integer width = 549 integer height = 300 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "[全部]" boolean sorted = false string item[] = {"[全部]","待审核","已审核"} borderstyle borderstyle = stylelowered! end type event selectionchanged;if index=1 then cur_flag=-1 elseif index=2 then cur_flag=0 elseif index=3 then cur_flag=1 end if parent.triggerevent('retrieve_pageretr') end event type st_3 from statictext within w_inware_wfjg_waste integer x = 1513 integer y = 208 integer width = 219 integer height = 48 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "状 态" boolean focusrectangle = false end type type st_2 from statictext within w_inware_wfjg_waste integer x = 768 integer y = 208 integer width = 219 integer height = 48 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "分 部" boolean focusrectangle = false end type type tab_1 from tab within w_inware_wfjg_waste integer y = 1180 integer width = 3529 integer height = 1064 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean raggedright = true boolean focusonbuttondown = true integer selectedtab = 1 tabpage_1 tabpage_1 tabpage_2 tabpage_2 end type on tab_1.create this.tabpage_1=create tabpage_1 this.tabpage_2=create tabpage_2 this.Control[]={this.tabpage_1,& this.tabpage_2} end on on tab_1.destroy destroy(this.tabpage_1) destroy(this.tabpage_2) end on type tabpage_1 from userobject within tab_1 integer x = 18 integer y = 96 integer width = 3493 integer height = 952 long backcolor = 134217739 string text = "损耗外协计划" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_1 dw_1 end type on tabpage_1.create this.dw_1=create dw_1 this.Control[]={this.dw_1} end on on tabpage_1.destroy destroy(this.dw_1) end on type dw_1 from u_dw_rbtnfilter within tabpage_1 event ue_dwndropdown pbm_dwndropdown integer width = 3493 integer height = 952 integer taborder = 20 string dataobject = "dw_inwaremx_wfjg_waste_edit" boolean hscrollbar = true boolean vscrollbar = true end type event ue_dwndropdown;IF NOT dw_edit_mode THEN RETURN String ls_col_pz,ls_col_mtrlid String ls_pz_ch 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( ) arg_s_win.arg_x = THIS.X + PARENT.X + THIS.PointerX() + tab_1.X arg_s_win.arg_y = THIS.Y + PARENT.Y + THIS.PointerY() + tab_1.Y arg_s_win.arg_col = ls_col_pz arg_s_win.arg_mtrlid = ll_mtrlid ls_pz_ch = f_mtrl_pz(arg_s_win) IF ls_pz_ch = '' THEN RETURN THIS.SetItem(ll_row,ls_col_pz,ls_pz_ch) END IF end event event doubleclicked;call super::doubleclicked;dw_child.accepttext() if dw_edit_mode then if row > 0 then if dwo.name='u_order_wfjg_wastemx_wfjg_ordercode' then PARENT.GetParent().GetParent().TriggerEvent('ue_f7') elseif dwo.name = 'u_mtrldef_mtrlcode' then PARENT.GetParent().GetParent().TriggerEvent('ue_f8') end if end if end if end event event dwnkey;call super::dwnkey;PARENT.GetParent().GetParent().TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_wfjg_code,ls_taskcode Long ls_mtrlid,ls_sptid,ls_wfjgid,ls_orderid String ls_prdpackcode Decimal ls_packqty Int cnt = 0 Long child_row Long ls_null Int li_statusflag,li_woodcodeflag,li_pcodeflag SetNull(ls_null) IF dw_edit_mode THEN ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF IsNull(ls_sptid) OR ls_sptid = 0 THEN PARENT.TriggerEvent("ue_f9") END IF IF KeyDown(keydownarrow!) THEN Long li_row IF dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN PARENT.GetParent().GetParent().TriggerEvent("insert_childrow") END IF ELSE If (KeyDown(keyenter!) OR KeyDown(keytab!)) AND NOT KeyDown(keycontrol!) AND NOT KeyDown(keyshift!) THEN dw_order_spt.AcceptText() IF dw_order_spt.GetColumnName() = 'u_mtrldef_mtrlcode' THEN dw_order_spt.AcceptText() child_row = dw_order_spt.GetRow() ls_mtrlcode = dw_order_spt.Object.u_mtrldef_mtrlcode[child_row] SELECT u_mtrldef.mtrlid, u_mtrldef.mtrlname, u_mtrldef.unit, u_mtrldef.statusflag, u_mtrldef.woodcodeflag, u_mtrldef.pcodeflag INTO :ls_mtrlid,:ls_mtrlname,:ls_unit, :li_statusflag,:li_woodcodeflag,:li_pcodeflag FROM u_mtrldef Where ( u_mtrldef.mtrlcode = :ls_mtrlcode); IF sqlca.SQLCode = 100 THEN PARENT.GetParent().GetParent().TriggerEvent('ue_f8') RETURN END IF dw_order_spt.Object.u_order_wfjg_wastemx_mtrlid[child_row] = ls_mtrlid dw_order_spt.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_order_spt.Object.u_mtrldef_unit[child_row] = ls_unit dw_order_spt.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_order_spt.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_order_spt.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag PARENT.TriggerEvent('ue_allowedit') IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ifrel' THEN IF dw_order_spt.Object.u_order_wfjg_wastemx_wfjg_ifrel[dw_order_spt.GetRow()] = 1 THEN dw_order_spt.Object.u_mtrldef_mtrlcode.protect = 1 ELSE dw_order_spt.Object.u_mtrldef_mtrlcode.protect = 0 END IF IF Key = keyenter! THEN keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wfjg_ordercode' AND dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN PARENT.GetParent().GetParent().TriggerEvent('ue_f7') dw_order_spt.SetColumn('u_order_wfjg_wastemx_qty') dw_order_spt.SetFocus( ) RETURN 1 ELSEIF dw_order_spt.GetColumnName( ) = 'u_order_wfjg_wastemx_wastedscrp' AND dw_order_spt.GetRow() = dw_order_spt.RowCount() THEN PARENT.GetParent().GetParent().TriggerEvent("insert_childrow") 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 rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) end event event itemchanged;call super::itemchanged;int li_autocmpl dw_order_spt.accepttext() // if row>0 then li_autocmpl=dw_order_spt.object.u_order_wfjg_wastemx_ifrel[row] f_SetProfileString (sys_empid,dw_pageretr.DataObject, "ifrel", String(li_autocmpl)) end if end event type tabpage_2 from userobject within tab_1 integer x = 18 integer y = 96 integer width = 3493 integer height = 952 long backcolor = 134217739 string text = "损耗外协商库存" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_2 dw_2 end type on tabpage_2.create this.dw_2=create dw_2 this.Control[]={this.dw_2} end on on tabpage_2.destroy destroy(this.dw_2) end on type dw_2 from u_dw_rbtnfilter within tabpage_2 integer width = 3493 integer height = 952 integer taborder = 30 string dataobject = "dw_inwaremx_wfjg_waste_spt_edit" boolean hscrollbar = true boolean vscrollbar = true end type event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN IF row > 0 THEN PARENT.GetParent().GetParent().TriggerEvent('ue_f11') END IF END IF end event event dwnkey;call super::dwnkey;parent.getparent().getparent().TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode String ls_plancode,ls_status,ls_woodcode,ls_pcode Long ls_mtrlwareid,ls_mtrlid,ls_sptid Dec ls_noallocqty,ls_cost,ls_planprice,ls_packqty Long child_row Long ls_null SetNull(ls_null) s_sptware_array arg_s_sptware IF dw_edit_mode THEN dw_uc.AcceptText() ls_sptid = dw_uc.Object.u_order_wfjg_waste_sptid[dw_uc.GetRow()] IF ls_sptid = 0 OR IsNull(ls_sptid) THEN MessageBox('提示','请先选择加工商',information!,OK!) RETURN END IF IF KeyDown(Keydownarrow!) THEN Long li_row IF dw_ware_spt.GetRow() = dw_ware_spt.RowCount() THEN parent.getparent().getparent().TriggerEvent("insert_childrow_out") END IF ELSE If KeyDown(KeyEnter!) AND NOT KeyDown(KeyControl!) AND NOT KeyDown(KeyShift!) THEN IF dw_ware_spt.GetColumnName( ) = 'u_mtrldef_mtrlcode' THEN dw_ware_spt.AcceptText() child_row = dw_ware_spt.GetRow() ls_mtrlcode = dw_ware_spt.Object.u_mtrldef_mtrlcode[child_row] //查询产品是否多于一批库存 int cnt=0 SELECT count(mtrlwareid) into :cnt FROM ow_wfjgware, u_mtrldef WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) and ( ow_wfjgware.sptid=:ls_sptid ) and ( u_mtrldef.mtrlcode=:ls_mtrlcode) and ( ow_wfjgware.noallocqty > 0 ); if sqlca.sqlcode=100 or cnt > 1 then parent.getparent().getparent().triggerevent('ue_f11') return end if ///////////////////////////// SELECT top 1 ow_wfjgware.mtrlwareid , ow_wfjgware.mtrlid, u_mtrldef.mtrlname, u_mtrldef.unit, ow_wfjgware.noallocqty, ow_wfjgware.cost , ow_wfjgware.sptid, ow_wfjgware.plancode, u_mtrldef.mtrlmode, ow_wfjgware.planprice, ow_wfjgware.status, ow_wfjgware.woodcode, ow_wfjgware.pcode INTO :ls_mtrlwareid,:ls_mtrlid,:ls_mtrlname,:ls_unit,:ls_noallocqty, :ls_cost,:ls_sptid,:ls_plancode,:ls_mtrlmode, :ls_planprice,:ls_status,:ls_woodcode, :ls_pcode FROM u_mtrldef, ow_wfjgware left outer join u_spt on ( ow_wfjgware.sptid = u_spt.sptid) WHERE ( u_mtrldef.mtrlid = ow_wfjgware.mtrlid ) and ( ow_wfjgware.sptid=:ls_sptid ) and ( u_mtrldef.mtrlcode=:ls_mtrlcode ) and ( ow_wfjgware.scid = :cur_scid ) and ( ow_wfjgware.noallocqty > 0 ) order by ow_wfjgware.mtrlwareid asc; if sqlca.sqlcode=100 then parent.getparent().getparent().triggerevent('ue_f11') return end if dw_ware_spt.object.ow_wfjgmx_in_bef_mtrlwareid[child_row]=ls_mtrlwareid dw_ware_spt.object.ow_wfjgmx_in_bef_mtrlid[child_row] =ls_mtrlid dw_ware_spt.object.u_mtrldef_mtrlname[child_row] =ls_mtrlname dw_ware_spt.object.u_mtrldef_mtrlmode[child_row] =ls_mtrlmode dw_ware_spt.object.u_mtrldef_unit[child_row] =ls_unit dw_ware_spt.object.ow_wfjgmx_in_bef_qty[child_row]=ls_noallocqty dw_ware_spt.object.ow_wfjgmx_in_bef_fprice[child_row] =ls_cost dw_ware_spt.object.ow_wfjgmx_in_bef_plancode[child_row] =ls_plancode dw_ware_spt.object.ow_wfjgmx_in_bef_status[child_row] =ls_status dw_ware_spt.object.ow_wfjgmx_in_bef_woodcode[child_row] =ls_woodcode dw_ware_spt.object.ow_wfjgmx_in_bef_pcode[child_row] =ls_pcode If key = KeyEnter! Then // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab return 1 end if elseif dw_ware_spt.GetColumnName( )='ow_wfjgmx_in_bef_mxdscrp' and dw_ware_spt.getrow()=dw_ware_spt.rowcount() then parent.getparent().getparent().triggerevent("insert_childrow_out") 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 rowfocuschanged;call super::rowfocuschanged;IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) end event type cb_in_2_out from uo_imflatbutton within w_inware_wfjg_waste integer x = 3378 integer y = 188 integer width = 603 integer height = 84 integer taborder = 390 boolean bringtotop = true string text = "按清单计算外协商库存" end type event clicked;call super::clicked;parent.triggerevent("ue_in_to_out2") end event type cbx_autocmp from checkbox within w_inware_wfjg_waste integer x = 2267 integer y = 192 integer width = 1074 integer height = 76 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_autocmpl IF THIS.Checked THEN li_autocmpl = 1 ELSE li_autocmpl = 0 END IF f_SetProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", String(li_autocmpl)) end event event constructor;int li_autocmpl li_autocmpl = Integer(f_ProfileString (sys_empid,dw_pageretr.DataObject, "cur_autocmpl", '0')) IF li_autocmpl = 0 THEN THIS.Checked = FALSE ELSE THIS.Checked = TRUE END IF end event