$PBExportHeader$w_dismantle_install.srw forward global type w_dismantle_install from w_publ_1ton_share_detail end type type ddlb_status from dropdownlistbox within w_dismantle_install end type type st_3 from statictext within w_dismantle_install end type type st_2 from statictext within w_dismantle_install end type type ddlb_1 from dropdownlistbox within w_dismantle_install end type type cbx_di from checkbox within w_dismantle_install end type end forward shared variables end variables global type w_dismantle_install from w_publ_1ton_share_detail string title = "拆装单" boolean maxbox = true windowstate windowstate = maximized! long dw_pageretr_w = 33831092 long dw_child_h = 33892296 long dw_child_w = 33894040 event insert_childrow ( ) event ue_cmpl_qty ( ) event ue_cmpl ( ) event ue_check_qty ( ) event ue_fj_edit ( ) event ue_fj_view ( ) event ue_view_pz ( ) ddlb_status ddlb_status st_3 st_3 st_2 st_2 ddlb_1 ddlb_1 cbx_di cbx_di end type global w_dismantle_install w_dismantle_install type variables Int cur_flag = -1 int cur_billtype = 0 long cur_mtrlwareid = 0 uo_dismantle_install uo_ware String ol_cdw_str = '' end variables forward prototypes public function integer wf_refresh_curuc (long arg_billid) public function integer wf_flagstatus_rf () public function integer wf_init_data (long arg_mtrlwareid) public function integer wf_checkqty (ref string arg_msg) public subroutine wf_check_billfj () public function integer wf_xls_retrievedata (long arg_ationid, ref s_xls_billlist arg_str_billlist, ref uo_sendtoexcel arg_obj_st, ref string arg_msg) public function integer wf_print_retrievedata (ref s_print_pic_list arg_s_pic, ref string arg_msg) public function integer wf_checkstorageid (integer arg_id) end prototypes event insert_childrow();long li_row li_row=dw_child.insertrow(0) dw_child.scrolltorow(li_row) dw_child.SetColumn ('storageid') if li_row > 2 then dw_child.object.storageid[li_row] = dw_child.object.storageid[li_row - 1] end if end event event ue_cmpl_qty();IF NOT dw_edit_mode THEN MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!) RETURN END IF IF cbx_di.Checked THEN IF NOT f_power_ind(1323) THEN MessageBox('提示','你没有跨仓库计算拆装权限!',information!,OK!) RETURN END IF END IF Long ll_SonMtrlid[],ll_mtrlid,ll_storageid String ls_pf_status[],ls_status_uc,ls_status_find Decimal ld_Sonscale[] Long it_mxt = 1 Long uc_row Decimal ld_qty Long ll_i,ll_row dw_uc.AcceptText() uc_row = dw_uc.GetRow() ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row] ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row] ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row] IF cur_billtype = 1 THEN MessageBox('提示','不是装单不能计算可装数量',information!,OK!) RETURN END IF IF ll_storageid <= 0 THEN MessageBox('提示','请选择仓库',information!,OK!) RETURN END IF DECLARE cur_pf CURSOR FOR SELECT u_PrdPF.SonMtrlid, u_PrdPF.Sonscale, u_PrdPF.status FROM u_PrdPF Where u_PrdPF.mtrlid = :ll_mtrlid; OPEN cur_pf; FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; DO WHILE sqlca.SQLCode = 0 it_mxt++ FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; LOOP it_mxt = it_mxt - 1 CLOSE cur_pf; IF it_mxt = 0 THEN MessageBox('提示','该产品没有建立组装结构,不能计算',information!,OK!) RETURN END IF String ls_mtrlcode,ls_mtrlname Decimal ld_noallocqty,ld_allqty,ld_maxqty IF cbx_di.Checked THEN ll_storageid = -1 END IF ld_maxqty = 1000000 FOR ll_i = 1 TO it_mxt SELECT mtrlcode, mtrlname INTO :ls_mtrlcode, :ls_mtrlname FROM u_mtrldef Where mtrlid = :ll_SonMtrlid[ll_i]; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询产品资料失败',stopsign!,OK!) RETURN END IF IF sys_option_if_color = 1 THEN ls_status_find = ls_status_uc ELSE ls_status_find = ls_pf_status[ll_i] END IF ld_noallocqty = 0 ld_allqty = 0 SELECT sum(noallocqty) INTO :ld_noallocqty FROM u_mtrlware WHERE (storageid = :ll_storageid OR :ll_storageid = -1) AND (mtrlid = :ll_SonMtrlid[ll_i]) And (status = :ls_status_find); IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询该产品组装材料'+ls_mtrlname+'的库存资料失败',stopsign!,OK!) RETURN END IF ld_allqty = ld_noallocqty/ld_Sonscale[ll_i] ld_maxqty = Min(ld_maxqty,ld_allqty) IF IsNull(ld_maxqty) THEN ld_maxqty = 0 NEXT ld_qty = Truncate ( ld_maxqty, 0 ) dw_uc.Object.u_dismantle_install_allocqty[uc_row] = ld_qty dw_uc.Object.u_dismantle_install_qty[uc_row] = ld_qty end event event ue_cmpl();IF NOT dw_edit_mode THEN MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!) RETURN END IF IF cbx_di.Checked THEN IF NOT f_power_ind(1323) THEN MessageBox('提示','你没有跨仓库计算拆装权限!',information!,OK!) RETURN END IF END IF Long ll_SonMtrlid[],ll_mtrlid,ll_storageid String ls_pf_status[],ls_status_uc,ls_status_find String ls_pf_woodcode[],ls_woodcode_uc,ls_woodcode_find String ls_pf_pcode[],ls_pcode_uc,ls_pcode_find Decimal ld_Sonscale[] Long it_mxt = 1 Long uc_row,count Decimal ld_qty,ins_qty,ins_planprice,r_qty,i_qty,ins_cost Long ll_i,ll_row,ins_storageid,ins_mtrlwareid String ins_plancode,ins_woodcode,ins_pcode,ins_status Boolean lb_find = TRUE dw_uc.AcceptText() dw_child.Reset() uc_row = dw_uc.GetRow() ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row] ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row] ld_qty = dw_uc.Object.u_dismantle_install_qty[uc_row] ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row] IF ll_storageid <= 0 THEN MessageBox('提示','请选择仓库',information!,OK!) RETURN END IF DECLARE cur_pf CURSOR FOR SELECT u_PrdPF.SonMtrlid, u_PrdPF.Sonscale, u_PrdPF.status, u_PrdPF.woodcode, u_PrdPF.status FROM u_PrdPF WHERE u_PrdPF.mtrlid = :ll_mtrlid AND u_PrdPF.pfcode = '组装'; OPEN cur_pf; FETCH cur_pf INTO :ll_SonMtrlid[it_mxt], :ld_Sonscale[it_mxt], :ls_pf_status[it_mxt], :ls_pf_woodcode[it_mxt], :ls_pf_status[it_mxt]; DO WHILE sqlca.SQLCode = 0 it_mxt++ FETCH cur_pf INTO :ll_SonMtrlid[it_mxt], :ld_Sonscale[it_mxt], :ls_pf_status[it_mxt], :ls_pf_woodcode[it_mxt], :ls_pf_status[it_mxt]; LOOP it_mxt = it_mxt - 1 CLOSE cur_pf; IF it_mxt = 0 THEN MessageBox('提示','该产品没有建立组装结构,不能计算',information!,OK!) RETURN END IF Long ll_mtrlwareid Decimal ld_cost,ld_noallocqty,ld_planprice String ls_status,ls_woodcode,ls_plancode,ls_pcode String ls_mtrlcode,ls_mtrlname,ls_mtrlmode String ls_unit Long ll_sptid Int li_dxflag Long ll_storageid_f IF cur_billtype = 0 THEN FOR ll_i = 1 TO it_mxt r_qty = 0 lb_find = TRUE SELECT mtrlcode, mtrlname, mtrlmode, unit, planprice INTO :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_unit, :ld_planprice FROM u_mtrldef Where mtrlid = :ll_SonMtrlid[ll_i]; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询产品默认仓库资料失败',stopsign!,OK!) RETURN END IF IF sys_option_if_color = 1 THEN ls_status_find = ls_status_uc ELSE ls_status_find = ls_pf_status[ll_i] END IF IF cbx_di.Checked THEN Decimal ld_rqty ld_rqty = ld_Sonscale[ll_i] * ld_qty ll_mtrlwareid = 0 ls_status = '' ls_woodcode = '' ls_plancode = '' ls_pcode = '' li_dxflag = 0 ll_sptid = 0 ld_noallocqty = 0 ld_cost = 0 ll_storageid_f = 0 DECLARE m_cur CURSOR FOR SELECT mtrlwareid, status, woodcode, plancode, pcode, dxflag, sptid, noallocqty, cost, storageid FROM u_mtrlware WHERE mtrlid = :ll_SonMtrlid[ll_i] AND storageid = :ll_storageid AND ( status = :ls_status_find ) Order By noallocqty Desc; OPEN m_cur; FETCH m_cur INTO :ll_mtrlwareid, :ls_status, :ls_woodcode, :ls_plancode, :ls_pcode, :li_dxflag, :ll_sptid, :ld_noallocqty, :ld_cost, :ll_storageid_f; DO WHILE sqlca.SQLCode = 0 ll_row = dw_child.InsertRow(0) dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i] dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit dw_child.Object.price[ll_row] = ld_cost dw_child.Object.storageid[ll_row] = ll_storageid_f dw_child.Object.plancode[ll_row] = ls_plancode dw_child.Object.status[ll_row] = ls_status dw_child.Object.woodcode[ll_row] = ls_woodcode dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = li_dxflag dw_child.Object.u_dismantle_installmx_sptid[ll_row] = ll_sptid dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i] dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty IF ld_noallocqty >= ld_rqty THEN dw_child.Object.qty[ll_row] = ld_rqty ld_rqty = 0 EXIT ELSE dw_child.Object.qty[ll_row] = ld_noallocqty ld_rqty = ld_rqty - ld_noallocqty END IF FETCH m_cur INTO :ll_mtrlwareid, :ls_status, :ls_woodcode, :ls_plancode, :ls_pcode, :li_dxflag, :ll_sptid, :ld_noallocqty, :ld_cost, :ll_storageid_f; LOOP CLOSE m_cur; //吾够数量 IF ld_rqty > 0 AND cbx_di.Checked THEN ll_mtrlwareid = 0 ls_status = '' ls_woodcode = '' ls_plancode = '' ls_pcode = '' li_dxflag = 0 ll_sptid = 0 ld_noallocqty = 0 ld_cost = 0 ll_storageid_f = 0 DECLARE o_cur CURSOR FOR SELECT mtrlwareid, status, woodcode, plancode, pcode, dxflag, sptid, noallocqty, cost, storageid FROM u_mtrlware WHERE mtrlid = :ll_SonMtrlid[ll_i] AND storageid <> :ll_storageid AND ( status = :ls_status_find ) Order By noallocqty Desc; OPEN o_cur; FETCH o_cur INTO :ll_mtrlwareid, :ls_status, :ls_woodcode, :ls_plancode, :ls_pcode, :li_dxflag, :ll_sptid, :ld_noallocqty, :ld_cost, :ll_storageid_f; DO WHILE sqlca.SQLCode = 0 ll_row = dw_child.InsertRow(0) dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i] dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit dw_child.Object.price[ll_row] = ld_cost dw_child.Object.storageid[ll_row] = ll_storageid_f dw_child.Object.plancode[ll_row] = ls_plancode dw_child.Object.status[ll_row] = ls_status dw_child.Object.woodcode[ll_row] = ls_woodcode dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = li_dxflag dw_child.Object.u_dismantle_installmx_sptid[ll_row] = ll_sptid dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i] dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty IF ld_noallocqty >= ld_rqty THEN dw_child.Object.qty[ll_row] = ld_rqty ld_rqty = 0 EXIT ELSE dw_child.Object.qty[ll_row] = ld_noallocqty ld_rqty = ld_rqty - ld_noallocqty END IF FETCH o_cur INTO :ll_mtrlwareid, :ls_status, :ls_woodcode, :ls_plancode, :ls_pcode, :li_dxflag, :ll_sptid, :ld_noallocqty, :ld_cost, :ll_storageid_f; LOOP END IF CLOSE o_cur; ELSE //////不调用其他仓库的保持原来一样 SELECT top 1 mtrlwareid, status, woodcode, plancode, pcode, dxflag, sptid, noallocqty, cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END INTO :ll_mtrlwareid, :ls_status, :ls_woodcode, :ls_plancode, :ls_pcode, :li_dxflag, :ll_sptid, :ld_noallocqty, :ld_cost FROM u_mtrlware WHERE mtrlid = :ll_SonMtrlid[ll_i] AND storageid = :ll_storageid AND status = :ls_status_find; IF sqlca.SQLCode = 0 THEN ELSEIF sqlca.SQLCode = 100 THEN lb_find = FALSE ELSE MessageBox('错误','查询该产品组装材料的库存资料失败>>'+sqlca.SQLErrText,stopsign!,OK!) RETURN END IF IF lb_find = FALSE THEN ll_row = dw_child.InsertRow(0) dw_child.Object.mtrlwareid[ll_row] = 0 dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i] dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty dw_child.Object.price[ll_row] = 0 dw_child.Object.storageid[ll_row] = 0 dw_child.Object.plancode[ll_row] = '' dw_child.Object.status[ll_row] = '' dw_child.Object.woodcode[ll_row] = '' dw_child.Object.u_dismantle_installmx_pcode[ll_row] = '' dw_child.Object.u_dismantle_installmx_dxflag[ll_row] = 0 dw_child.Object.u_dismantle_installmx_sptid[ll_row] = 0 dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i] dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ld_noallocqty ELSE DECLARE pf_cur CURSOR FOR SELECT u_mtrlware.storageid, u_mtrlware.mtrlwareid, u_mtrlware.plancode, u_mtrlware.noallocqty, u_mtrlware.planprice, cost = case u_mtrlware.noallocqty when 0 then 0 else u_mtrlware.wareamt/u_mtrlware.noallocqty END, u_mtrlware.woodcode, u_mtrlware.pcode FROM u_mtrlware WHERE ( u_mtrlware.mtrlid = :ll_SonMtrlid[ll_i] ) AND ( u_mtrlware.storageid = :ll_storageid ) AND ( u_mtrlware.status = :ls_status_find ) ORDER BY u_mtrlware.storageid ASC, u_mtrlware.noallocqty Asc ; OPEN pf_cur; count = 1 FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& :ins_qty,:ins_planprice,:ins_cost ,:ins_woodcode,:ins_pcode ; DO WHILE sqlca.SQLCode = 0 AND r_qty < ld_Sonscale[ll_i] * ld_qty i_qty = ins_qty r_qty = r_qty+i_qty IF r_qty > ld_Sonscale[ll_i] * ld_qty THEN i_qty = ins_qty - (r_qty - ld_Sonscale[ll_i] * ld_qty) END IF ll_row = dw_child.InsertRow(0) dw_child.Object.mtrlwareid[ll_row] = ll_mtrlwareid dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i] dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit dw_child.Object.price[ll_row] = ins_cost dw_child.Object.storageid[ll_row] = ll_storageid dw_child.Object.plancode[ll_row] = ins_plancode dw_child.Object.status[ll_row] = ls_status_find dw_child.Object.woodcode[ll_row] = ls_woodcode dw_child.Object.u_dismantle_installmx_pcode[ll_row] = ls_pcode dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i] dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = ins_qty Dec TEMP_INSQTY TEMP_INSQTY = ins_qty FETCH pf_cur INTO :ins_storageid,:ins_mtrlwareid,:ins_plancode,& :ins_qty,:ins_planprice,:ins_cost ,:ins_woodcode,:ins_pcode ; IF TEMP_INSQTY <= ld_Sonscale[ll_i] * ld_qty THEN IF sqlca.SQLCode = 0 THEN dw_child.Object.qty[ll_row] = i_qty // ELSE IF count > 1 THEN dw_child.Object.qty[ll_row] = i_qty ELSE dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty END IF END IF ELSE dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty END IF count++ LOOP count = count - 1 CLOSE pf_cur; END IF END IF NEXT ELSE FOR ll_i = 1 TO it_mxt SELECT mtrlcode, mtrlname, mtrlmode, unit, planprice INTO :ls_mtrlcode, :ls_mtrlname, :ls_mtrlmode, :ls_unit, :ld_planprice FROM u_mtrldef Where mtrlid = :ll_SonMtrlid[ll_i]; IF sqlca.SQLCode <> 0 THEN MessageBox('错误','查询产品默认仓库资料失败',stopsign!,OK!) RETURN END IF ll_row = dw_child.InsertRow(0) dw_child.Object.mtrlwareid[ll_row] = 0 dw_child.Object.mtrlid[ll_row] = ll_SonMtrlid[ll_i] dw_child.Object.u_mtrldef_mtrlcode[ll_row] = ls_mtrlcode dw_child.Object.u_mtrldef_mtrlname[ll_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[ll_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[ll_row] = ls_unit IF sys_option_if_color = 1 THEN ls_status_find = ls_status_uc ELSE ls_status_find = ls_pf_status[ll_i] END IF dw_child.Object.qty[ll_row] = ld_Sonscale[ll_i] * ld_qty dw_child.Object.price[ll_row] = ld_planprice dw_child.Object.storageid[ll_row] = ll_storageid dw_child.Object.plancode[ll_row] = '' dw_child.Object.status[ll_row] = ls_status_find dw_child.Object.woodcode[ll_row] = '' dw_child.Object.u_dismantle_installmx_standardqty[ll_row] = ld_Sonscale[ll_i] dw_child.Object.u_dismantle_installmx_noallocqty[ll_row] = 0 NEXT END IF end event event ue_check_qty();IF NOT dw_edit_mode THEN MessageBox('提示',"非编辑状态下不可以使用!",information!,OK!) RETURN END IF string argmsg if wf_checkqty(argmsg)=0 then messagebox('错误',argmsg,stopsign!,OK!) else Messagebox('提示','检查成功!合理的拆装数量!',information!,OK!) end if end event event ue_fj_edit();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用',information!,OK!) RETURN END IF //IF NOT f_power_ind(1098) THEN // MessageBox(publ_operator,'你没有使用权限!') // 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,stopsign!,OK!) RETURN END IF s_pic.f_long = 314 //销售订单的mainID s_pic.f_string = dw_uc.Object.u_dismantle_install_billcode[ls_row] s_pic.g_long = dw_uc.Object.u_dismantle_install_billid[ls_row] s_pic.e_long = 0 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,stopsign!,OK!) RETURN END IF s_pic.f_long = 314 //销售订单的mainID s_pic.f_string = dw_uc.Object.u_dismantle_install_billcode[ls_row] s_pic.g_long = dw_uc.Object.u_dismantle_install_billid[ls_row] s_pic.e_long = 0 s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_view_pz();s_view_dscrp s_view,s_return dw_uc.AcceptText() string arg_name String ls_dscrp long ll_statusflag , ll_woodcodeflag, ll_pcodeflag , ll_mtrlid ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[dw_uc.GetRow()] arg_name = dw_uc.GetColumnName( ) select statusflag,woodcodeflag,pcodeflag Into :ll_statusflag , :ll_woodcodeflag, :ll_pcodeflag From u_mtrldef where mtrlid=:ll_mtrlid ; IF sqlca.sqlcode<>0 then ll_statusflag = 3 ll_woodcodeflag = 3 ll_pcodeflag = 3 end if IF arg_name = 'u_dismantle_install_status' AND (ll_statusflag = 0 OR ll_statusflag =5) THEN ls_dscrp = dw_uc.Object.u_dismantle_install_status[dw_uc.GetRow()] s_view.Title = '拆装单配置' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp_log,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_dismantle_install_status[dw_uc.GetRow()] = s_return.dscrp END IF ELSEIF arg_name = 'u_dismantle_install_woodcode' AND (ll_woodcodeflag = 0 OR ll_woodcodeflag =5) THEN ls_dscrp = dw_uc.Object.u_dismantle_install_woodcode[dw_uc.GetRow()] s_view.Title = '拆装单配置1' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp_log,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_dismantle_install_woodcode[dw_uc.GetRow()] = s_return.dscrp END IF ELSEIF arg_name = 'u_dismantle_install_pcode' AND (ll_pcodeflag = 0 OR ll_pcodeflag =5) THEN ls_dscrp = dw_uc.Object.u_dismantle_install_pcode[dw_uc.GetRow()] s_view.Title = '拆装单配置2' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp_log,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_uc.Object.u_dismantle_install_pcode[dw_uc.GetRow()] = s_return.dscrp END IF END IF end event public function integer wf_refresh_curuc (long arg_billid);IF arg_billid <= 0 OR IsNull(arg_billid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 Long billid String rep String dscrp Int balcflag String billcode DateTime opdate String opemp String modemp DateTime moddate Int flag ,buildtype DateTime Auditingdate String Auditingrep DateTime billdate Int storageid String mtrlcode String status String woodcode String pcode String plancode Decimal qty Decimal addqty Decimal price String reason String mtrlmode Long relid Long mtrlid Long mtrlwareid Long Auditingflag Long billtype String storagename String mtrlname String unit Int dxflag Long sptid String mtrlsectype String zxmtrlmode string Auditingemp SELECT u_dismantle_install.billid, u_dismantle_install.billdate, u_dismantle_install.rep, u_dismantle_install.storageid, u_mtrldef.mtrlcode, u_dismantle_install.status, u_dismantle_install.woodcode, u_dismantle_install.pcode, u_dismantle_install.plancode, u_dismantle_install.qty, u_dismantle_install.addqty, u_dismantle_install.price, u_dismantle_install.reason, u_dismantle_install.dscrp, u_dismantle_install.billcode, u_mtrldef.mtrlmode, u_dismantle_install.relid, u_dismantle_install.mtrlid, u_dismantle_install.mtrlwareid, u_dismantle_install.Auditingflag, u_dismantle_install.Auditingemp, u_dismantle_install.Auditingdate, u_dismantle_install.opdate, u_dismantle_install.opemp, u_dismantle_install.moddate, u_dismantle_install.modemp, u_dismantle_install.buildtype, u_dismantle_install.billtype, u_storage.storagename, u_mtrldef.mtrlname, u_mtrldef.unit, u_dismantle_install.dxflag, u_dismantle_install.sptid, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode INTO :billid, :billdate, :rep, :storageid, :mtrlcode, :status, :woodcode, :pcode, :plancode, :qty, :addqty, :price, :reason, :dscrp, :billcode, :mtrlmode, :relid, :mtrlid, :mtrlwareid, :Auditingflag, :Auditingemp, :Auditingdate, :opdate, :opemp, :moddate, :modemp, :buildtype, :billtype, :storagename, :mtrlname, :unit, :dxflag, :sptid, :mtrlsectype, :zxmtrlmode FROM u_dismantle_install INNER JOIN u_mtrldef ON u_dismantle_install.mtrlid = u_mtrldef.mtrlid INNER JOIN u_storage ON u_dismantle_install.storageid = u_storage.storageid Where ( u_dismantle_install.billid = :arg_billid ); IF sqlca.SQLCode <> 0 THEN MessageBox('错误',"查询操作失败(错误单据唯一码)",stopsign!,OK!) RETURN 0 END IF dw_pageretr.Object.u_dismantle_install_billid[uc_row] = billid dw_pageretr.Object.u_dismantle_install_billdate[uc_row] = billdate dw_pageretr.Object.u_dismantle_install_rep[uc_row] = rep dw_pageretr.Object.u_dismantle_install_storageid[uc_row] = storageid dw_pageretr.Object.u_mtrldef_mtrlcode[uc_row] = mtrlcode dw_pageretr.Object.u_dismantle_install_status[uc_row] = status dw_pageretr.Object.u_dismantle_install_woodcode[uc_row] = woodcode dw_pageretr.Object.u_dismantle_install_pcode[uc_row] = pcode dw_pageretr.Object.u_dismantle_install_plancode[uc_row] = plancode dw_pageretr.Object.u_dismantle_install_qty[uc_row] = qty dw_pageretr.Object.u_dismantle_install_addqty[uc_row] = addqty dw_pageretr.Object.u_dismantle_install_price[uc_row] = price dw_pageretr.Object.u_dismantle_install_reason[uc_row] = reason dw_pageretr.Object.u_dismantle_install_dscrp[uc_row] = dscrp dw_pageretr.Object.u_dismantle_install_billcode[uc_row] = billcode dw_pageretr.Object.u_mtrldef_mtrlmode[uc_row] = mtrlmode dw_pageretr.Object.u_dismantle_install_relid[uc_row] = relid dw_pageretr.Object.u_dismantle_install_mtrlid[uc_row] = mtrlid dw_pageretr.Object.u_dismantle_install_mtrlwareid[uc_row] = mtrlwareid dw_pageretr.Object.u_dismantle_install_auditingflag[uc_row] = Auditingflag dw_pageretr.Object.u_dismantle_install_auditingemp[uc_row] = Auditingemp dw_pageretr.Object.u_dismantle_install_auditingdate[uc_row] = Auditingdate dw_pageretr.Object.u_dismantle_install_opdate[uc_row] = opdate dw_pageretr.Object.u_dismantle_install_opemp[uc_row] = opemp dw_pageretr.Object.u_dismantle_install_moddate[uc_row] = moddate dw_pageretr.Object.u_dismantle_install_modemp[uc_row] = modemp dw_pageretr.Object.u_dismantle_install_buildtype[uc_row] = buildtype dw_pageretr.Object.u_dismantle_install_billtype[uc_row] = billtype dw_pageretr.Object.u_storage_storagename[uc_row] = storagename dw_pageretr.Object.u_mtrldef_mtrlname[uc_row] = mtrlname dw_pageretr.Object.u_mtrldef_unit[uc_row] = unit dw_pageretr.Object.u_dismantle_install_dxflag[uc_row] = dxflag dw_pageretr.Object.u_dismantle_install_sptid[uc_row] = sptid dw_pageretr.Object.u_mtrldef_mtrlsectype[uc_row] = mtrlsectype dw_pageretr.Object.u_mtrldef_zxmtrlmode[uc_row] = zxmtrlmode dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(),dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) dw_uc.ResetUpdate() dw_uc.SetRedraw(TRUE) wf_flagstatus_rf() RETURN 1 end function public function integer wf_flagstatus_rf ();Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN cb_auditing.Enabled = FALSE GOTO ext END IF IF dw_edit_mode THEN cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = FALSE ELSE IF dw_pageretr.Object.u_dismantle_install_auditingflag[pagerert_row] = 0 THEN cb_auditing.Enabled = TRUE cb_auditing_cancel.Enabled = FALSE ELSEIF dw_pageretr.Object.u_dismantle_install_auditingflag[pagerert_row] = 1 THEN cb_auditing.Enabled = FALSE cb_auditing_cancel.Enabled = TRUE END IF END IF ext: RETURN 0 end function public function integer wf_init_data (long arg_mtrlwareid);Int rslt = 1 Long ucrow String ls_mtrlcode,ls_mtrlname,ls_mtrlmode, ls_mtrlsectype, ls_zxmtrlmode String ls_plancode,ls_status,ls_woodcode,ls_pcode Long ls_mtrlwareid,ls_mtrlid,ls_storageid Dec ls_noallocqty,ls_planprice,ls_cost,ls_noauditingqty dw_uc.accepttext() ucrow = dw_uc.GetRow() IF ucrow <= 0 THEN rslt = 0 GOTO ext END IF SELECT u_mtrlware.mtrlwareid , u_mtrlware.mtrlid, u_mtrldef.mtrlcode, u_mtrldef.mtrlname, u_mtrlware.noallocqty, u_mtrlware.planprice, u_mtrlware.storageid, u_mtrlware.plancode, u_mtrldef.mtrlmode, isnull(uv_mtrlware_noauditingqty.noauditingqty,0), u_mtrlware.status, u_mtrlware.woodcode, u_mtrlware.pcode, u_mtrldef.mtrlsectype, u_mtrldef.zxmtrlmode INTO :ls_mtrlwareid, :ls_mtrlid, :ls_mtrlcode, :ls_mtrlname, :ls_noallocqty, :ls_planprice, :ls_storageid, :ls_plancode, :ls_mtrlmode, :ls_noauditingqty, :ls_status, :ls_woodcode, :ls_pcode, :ls_mtrlsectype, :ls_zxmtrlmode FROM u_mtrldef, u_mtrlware left OUTER join u_storage on ( u_mtrlware.storageid = u_storage.storageid) left OUTER join uv_mtrlware_noauditingqty on ( u_mtrlware.mtrlwareid = uv_mtrlware_noauditingqty.mtrlwareid) WHERE ( u_mtrldef.mtrlid = u_mtrlware.mtrlid ) And ( u_mtrlware.mtrlwareid = :arg_mtrlwareid ); IF sqlca.SQLCode <> 0 THEN rslt = 0 GOTO ext END IF dw_uc.setredraw(false) IF cur_billtype = 0 THEN dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname dw_uc.Object.u_dismantle_install_qty[ucrow] = ls_noallocqty dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost dw_uc.Object.u_dismantle_install_storageid[ucrow] = ls_storageid dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode dw_uc.Object.u_dismantle_install_noallocqty[ucrow] = ls_noallocqty dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode this.triggerevent('ue_cmpl_qty') ELSE dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = ls_mtrlwareid dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname dw_uc.Object.u_dismantle_install_qty[ucrow] = ls_noallocqty dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost dw_uc.Object.u_dismantle_install_storageid[ucrow] = ls_storageid dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode dw_uc.Object.u_dismantle_install_noallocqty[ucrow] = ls_noallocqty dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode END IF this.triggerevent('ue_cmpl') dw_uc.setredraw(true) ext: RETURN rslt end function public function integer wf_checkqty (ref string arg_msg);Dec uc_qty,child_qty,ld_Sonscale[],ld_child_qty[] Long ll_mtrlid,ll_storageid,uc_row,it_mxt,ll_SonMtrlid[] String ls_status_uc,ls_pf_status[],ls_child_status[],ls_child_mtrlcode[],ls_child_mtrlname[] Long ll_child_mtrlid[],i,j,mx,u_dismantle_install_qty int rslt=1 dw_pageretr.AcceptText() dw_child.AcceptText() uc_row = dw_uc.GetRow() ll_mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row] ll_storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row] ls_status_uc = dw_uc.Object.u_dismantle_install_status[uc_row] u_dismantle_install_qty = dw_uc.Object.u_dismantle_install_qty[uc_row] IF cur_billtype = 1 THEN arg_msg='不是装单不能计算可装数量' rslt=0 goto ext END IF IF ll_storageid <= 0 THEN arg_msg='请选择仓库' rslt=0 goto ext END IF it_mxt = 1 DECLARE cur_pf CURSOR FOR SELECT u_PrdPF.SonMtrlid, u_PrdPF.Sonscale, u_PrdPF.status FROM u_PrdPF Where u_PrdPF.mtrlid = :ll_mtrlid; OPEN cur_pf; FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; DO WHILE sqlca.SQLCode = 0 it_mxt++ FETCH cur_pf INTO :ll_SonMtrlid[it_mxt],:ld_Sonscale[it_mxt],:ls_pf_status[it_mxt]; LOOP it_mxt = it_mxt - 1 CLOSE cur_pf; IF it_mxt = 0 THEN arg_msg='该产品没有建立组装结构,不能检查已装数量.' rslt=0 goto ext END IF Boolean lb_find = FALSE FOR i = 1 TO dw_child.RowCount() lb_find = FALSE IF dw_child.Object.mtrlid[i] > 0 THEN mx++ FOR j = 1 TO UpperBound(ll_child_mtrlid) IF ll_child_mtrlid[j] = dw_child.Object.mtrlid[i] AND ls_child_status[j] = dw_child.Object.status[i] THEN ld_child_qty[j] = ld_child_qty[j]+dw_child.Object.qty[i] lb_find = TRUE EXIT END IF NEXT IF lb_find = TRUE THEN CONTINUE ll_child_mtrlid[mx] = dw_child.Object.mtrlid[i] ls_child_status[mx] = dw_child.Object.status[i] ld_child_qty[mx] = dw_child.Object.qty[i] ls_child_mtrlcode[mx] = dw_child.Object.u_mtrldef_mtrlcode[i] ls_child_mtrlname[mx] = dw_child.Object.u_mtrldef_mtrlname[i] END IF NEXT FOR i = 1 TO UpperBound(ll_child_mtrlid) lb_find=false FOR j = 1 TO UpperBound(ll_SonMtrlid) IF ll_child_mtrlid[i] = ll_SonMtrlid[j] AND ls_child_status[i] = ls_pf_status[j] THEN lb_find =true exit end if NEXT if lb_find=false then arg_msg='产品编号:'+ls_child_mtrlcode[i]+' 名称:'+ls_child_mtrlname[i]+'不是组成部分。' rslt=0 goto ext end if NEXT FOR i = 1 TO UpperBound(ll_child_mtrlid) FOR j = 1 TO UpperBound(ll_SonMtrlid) IF ll_child_mtrlid[i] = ll_SonMtrlid[j] AND ls_child_status[i] = ls_pf_status[j] THEN IF ld_child_qty[i] <> u_dismantle_install_qty*ld_Sonscale[j] THEN arg_msg='产品编号:'+ls_child_mtrlcode[i]+' 名称:'+ls_child_mtrlname[i]+' 拆装数量不正确。应拆装数量['+ String(u_dismantle_install_qty*ld_Sonscale[j],'#,##0.####')+']。' rslt=0 goto ext END IF end if NEXT NEXT ext: return rslt end function public subroutine wf_check_billfj ();String arg_msg Long ll_ConnectionID Long cur_billtype_fj 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_dismantle_install_billid[row] ll_scid = 0 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_fj = 314 //客户投拆单的 mainiD ls_uo_fjbt.uf_check_billfj( cur_billtype_fj, 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 = 0 //查询所选模版是否含有图片信息 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 = 314); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.mtrlid[ll_i] //取该附件类型中的第一个附件. 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 = 0 Long ll_i,ll_j Long ll_mtrlid Long ll_fileid Blob ls_filedata SetNull(ls_filedata) String Pathname,ls_filename,ls_filetype String errmsg uo_fj_mng_billtype ls_uo_fjbt ls_uo_fjbt = CREATE uo_fj_mng_billtype Long ll_classid SELECT classid INTO :ll_classid FROM u_billpic_fileclass Where (billtype = 102); IF sqlca.SQLCode <> 0 THEN ll_classid = 0 END IF IF ll_classid > 0 THEN //如果已经指定好附件类型,则循环明细表查询每个明细的图片信息. FOR ll_i = 1 TO dw_child.RowCount() ll_mtrlid = dw_child.Object.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_checkstorageid (integer arg_id);int i int reslt = 1 //if (arg_id in sys_all_storageid[]) then // i =1 //end if for i = 1 to upperbound(sys_all_storageid) if arg_id = sys_all_storageid[i] then reslt = 0 next return reslt end function on w_dismantle_install.create int iCurrent call super::create this.ddlb_status=create ddlb_status this.st_3=create st_3 this.st_2=create st_2 this.ddlb_1=create ddlb_1 this.cbx_di=create cbx_di iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.ddlb_status this.Control[iCurrent+2]=this.st_3 this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.ddlb_1 this.Control[iCurrent+5]=this.cbx_di end on on w_dismantle_install.destroy call super::destroy destroy(this.ddlb_status) destroy(this.st_3) destroy(this.st_2) destroy(this.ddlb_1) destroy(this.cbx_di) end on 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_dismantle_install_billid[row] dw_child.SetRedraw (false) dw_child.retrieve(uc_relid) dw_child.SetRedraw (true) else dw_child.reset() end if end event event open;THIS.TriggerEvent('ue_before_open') wf_movetocenter() ds_copy_bill = CREATE datastore ds_copy_bill.DataObject = dw_child.dataobject ds_copy_bill.SetTransObject(sqlca) OLD_TITLE = THIS.Title s_tran = Message.PowerObjectParm IF NOT IsNull(s_tran) THEN retrieve_all = s_tran.if_retrieve_all mode = s_tran.work_mode arg_pkid = s_tran.arg_pkid arg_string_code = s_tran.arg_string_code if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效 ds_share = s_tran.ds_share END IF dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关 dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关 dw_pageretr.SetTransObject (sqlca) pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字 ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select") //==================================================================== // Script - w_inware_py inherited from w_publ_1ton_share_detail for open // Reason: //-------------------------------------------------------------------- // Modified By: yyx Date: 2003.12.01 //-------------------------------------------------------------------- ori_oldselect = f_modify_selectstr(ori_oldselect)//只显示所管的仓库单据 //==================================================================== ls_newselect = ori_oldselect ds_curquery = CREATE DATASTORE ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) wf_editindex_lockf() IF s_tran.d_long = 1 THEN cur_billtype = s_tran.e_long cur_mtrlwareid = s_tran.f_long Int li_item li_item = ddlb_1.FindItem(s_tran.e_string,0) IF li_item > 0 THEN ddlb_1.SelectItem(li_item) END IF END IF sle_usual_query.Text = Trim(arg_string_code) IF NOT retrieve_all THEN THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve ELSE IF if_sharedata THEN ds_share.ShareData(dw_pageretr) ELSE wf_retrieveuc(dw_pageretr,ls_newselect,1) THIS.TriggerEvent('RETRIEVE_pageretr') END IF END IF IF retrieve_all THEN THIS.TriggerEvent("ue_usual_query_filt") END IF uc_column_int = 14 //uc dw前6列可以编辑 child_column_int = 12 //子dw前5列可以编辑 uo_ware = CREATE uo_dismantle_install IF s_tran.d_long = 1 THEN cb_add.TriggerEvent(Clicked!) wf_init_data(cur_mtrlwareid) END IF s_hide_col s_col s_col.col_1 = 'price' s_col.col_2 = 'allsum' f_hide_col(1473,dw_child,s_col) s_hide_col s_col_mtrlsectype s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype' f_hide_col(1308,dw_child,s_col_mtrlsectype) s_hide_col s_col_zxmtrlmode s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode' f_hide_col(1309,dw_child,s_col_zxmtrlmode) s_hide_col s_col_price_uc s_col_price_uc.col_1 = 'u_dismantle_install_price' s_col_price_uc.col_2 = 'u_dismantle_install_price_t' s_col_price_uc.col_3 = 'amt' s_col_price_uc.col_4 = 'amt_t' f_hide_col(1510,dw_uc,s_col_price_uc) s_hide_col s_col_price_par s_col_price_par.col_1 = 'u_dismantle_install_price' f_hide_col(1510,dw_pageretr,s_col_price_par) end event event ue_f8;//用于选择明细内容,被F8[默认]\dw_child.doubleclicked调用 IF NOT dw_edit_mode THEN RETURN Long child_row,ucrow Long ins_storageid = 0 Long ls_j dw_uc.AcceptText() child_row = dw_child.GetRow() ucrow = dw_uc.GetRow() if ucrow = 0 then return IF child_row = 0 THEN child_row = dw_child.InsertRow(0) END IF IF cur_billtype = 1 THEN //拆单 ins_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow] IF ins_storageid = 0 OR IsNull(ins_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF IF NOT IsValid(W_mtrldef_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 = '' //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.if_select_all = TRUE s_ch_tran.b_long = 0 s_ch_tran.c_long = ins_storageid dw_child.AcceptText() IF dw_child.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) THIS.Enabled = FALSE OpenWithParm(W_mtrldef_edit,s_ch_tran) THIS.Enabled = TRUE s_mtrldef_array S_INSCUST S_INSCUST = Message.PowerObjectParm FOR ls_j = 1 TO UpperBound(S_INSCUST.mtrlid) IF S_INSCUST.mtrlid[ls_j] > 0 THEN IF dw_child.GetRow() > 0 THEN IF dw_child.Object.mtrlid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST.mtrlcode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST.unit[ls_j] dw_child.Object.mtrlid[child_row] = S_INSCUST.mtrlid[ls_j] dw_child.Object.price[child_row] = S_INSCUST.planprice[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST.mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST.mtrlmode[ls_j] dw_child.Object.storageid[child_row] = S_INSCUST.storageid[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST.mtrlsectype[ls_j] dw_child.Object.u_mtrldef_statusflag[child_row] = S_INSCUST.statusflag[ls_j] dw_child.Object.u_mtrldef_woodcodeflag[child_row] = S_INSCUST.woodcodeflag[ls_j] dw_child.Object.u_mtrldef_pcodeflag[child_row] = S_INSCUST.pcodeflag[ls_j] dw_child.Object.u_dismantle_installmx_sptid[child_row] = dw_uc.Object.u_dismantle_install_sptid[ucrow] END IF NEXT dw_child.SetFocus() dw_child.SetColumn("qty") END IF ELSE IF NOT IsValid(w_mtrlware_storageid_ch) THEN ins_storageid = dw_child.Object.storageid[child_row] 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_storageid s_tranf8.c_long = -1 dw_child.AcceptText() IF dw_child.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_child.Object.u_mtrldef_mtrlcode[dw_child.GetRow()]) THIS.Enabled = FALSE OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用 THIS.Enabled = TRUE s_mtrlware_noalloc_array S_INSCUST_ware S_INSCUST_ware = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(S_INSCUST_ware.mtrlwareid) IF S_INSCUST_ware.mtrlwareid[ls_j] > 0 THEN IF dw_child.GetRow() > 0 THEN IF dw_child.Object.mtrlwareid[child_row] <> 0 THEN child_row = dw_child.InsertRow (0) ELSE child_row = dw_child.GetRow() END IF ELSE child_row = dw_child.InsertRow (0) END IF dw_child.Object.mtrlwareid[child_row] = S_INSCUST_ware.mtrlwareid[ls_j] dw_child.Object.mtrlid[child_row] = S_INSCUST_ware.mtrlid[ls_j] dw_child.Object.u_mtrldef_mtrlcode[child_row] = S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j] dw_child.Object.u_mtrldef_mtrlname[child_row] = S_INSCUST_ware.u_mtrldef_mtrlname[ls_j] dw_child.Object.u_mtrldef_mtrlmode[child_row] = S_INSCUST_ware.u_mtrldef_mtrlmode[ls_j] dw_child.Object.u_mtrldef_unit[child_row] = S_INSCUST_ware.u_mtrldef_unit[ls_j] dw_child.Object.qty[child_row] = S_INSCUST_ware.noallocqty[ls_j] dw_child.Object.price[child_row] = S_INSCUST_ware.cost[ls_j] dw_child.Object.storageid[child_row] = S_INSCUST_ware.storageid[ls_j] dw_child.Object.plancode[child_row] = S_INSCUST_ware.plancode[ls_j] dw_child.Object.status[child_row] = S_INSCUST_ware.status[ls_j] dw_child.Object.woodcode[child_row] = S_INSCUST_ware.woodcode[ls_j] dw_child.Object.u_dismantle_installmx_pcode[child_row] = S_INSCUST_ware.pcode[ls_j] dw_child.Object.u_dismantle_installmx_dxflag[child_row] = S_INSCUST_ware.dxflag[ls_j] dw_child.Object.u_dismantle_installmx_sptid[child_row] = S_INSCUST_ware.sptid[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[child_row] = S_INSCUST_ware.u_mtrldef_mtrlsectype[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = S_INSCUST_ware.u_mtrldef_zxmtrlmode[ls_j] Long li_statusflag Long li_woodcodeflag Long li_pcodeflag s_mtrldef_array arg_s_mtrldef IF f_find_mtrl(S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j],-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag dw_child.SetColumn("qty") END IF NEXT dw_child.SetFocus() END IF END IF this.triggerevent('ue_allowedit') 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_dismantle_install.billcode like '%"+trim(sle_usual_query.text)+"%')" else ls_querystrpart="(u_dismantle_install.billcode like '"+trim(sle_usual_query.text)+"')" end if if Pos(ls_newselect," where ") <> 0 then ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')' else ls_newselect=ls_newselect+" where ("+ls_querystrpart+')' end if end if wf_retrieveuc(dw_pageretr,ls_newselect,1) this.triggerevent('retrieve_pageretr') end event event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( u_dismantle_install_billcode LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( u_dismantle_install_billcode 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 retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled cb_nextpage_enabled=cb_nextpage.enabled cb_retrieveall_enabled=cb_retrieveall.enabled cb_func_enabled=cb_func.enabled cb_nextpage.enabled=false cb_retrieveall.enabled=false cb_func.enabled=false dw_uc.Retrieve() //dw_uc的dw改左select top 0 并肯不带参数 dw_pageretr.Retrieve(cur_flag,cur_billtype) 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 //只显未自已管的仓库 datawindowchild childdw string new_sqlstr,modify_str dw_uc.SetTransObject (sqlca) dw_uc.getchild("u_dismantle_install_storageid",childdw) childdw.SetTransObject (sqlca) new_sqlstr=childdw.Describe("DataWindow.Table.Select") if len(ol_cdw_str) = 0 then ol_cdw_str = new_sqlstr new_sqlstr=f_modify_selectstr(ol_cdw_str) modify_str="DataWindow.Table.Select='" + new_sqlstr +"'" childdw.modify ( modify_str ) childdw.retrieve(0) //childdw.retrieve() // end event event refresh_interface;call super::refresh_interface;wf_flagstatus_rf() ddlb_status.Enabled = NOT dw_edit_mode ddlb_1.Enabled = NOT dw_edit_mode end event event close;call super::close;int li_auto if cbx_di.checked then li_auto = 1 else li_auto = 0 end if f_SetProfileString (sys_empid, publ_userid+'_'+dw_uc.DataObject, "auto_di", string(li_auto)) destroy uo_ware wf_del_tempfilepathname() end event event ue_f9;call super::ue_f9;//用于选择明细内容,被F9[默认]\dw_uc.doubleclicked调用 IF NOT dw_edit_mode THEN RETURN Long ucrow Long ins_storageid = 0 Long ls_j dw_uc.AcceptText() ucrow = dw_uc.GetRow() ins_storageid = dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()] IF ins_storageid = 0 OR IsNull(ins_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) dw_uc.SetColumn("u_dismantle_install_storageid") RETURN END IF IF cur_billtype = 0 THEN IF NOT IsValid(W_mtrldef_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 = '' //查询列(物料编码)部分内容,用于初步筛选 s_ch_tran.if_select_all = FALSE s_ch_tran.if_select_any = FALSE s_ch_tran.b_long = 0 s_ch_tran.c_long = ins_storageid dw_uc.AcceptText() IF dw_uc.GetRow() > 0 THEN s_ch_tran.arg_string_code = Trim(dw_uc.Object.u_mtrldef_mtrlcode[dw_uc.GetRow()]) THIS.Enabled = FALSE OpenWithParm(W_mtrldef_edit,s_ch_tran) THIS.Enabled = TRUE 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 dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = S_INSCUST.mtrlid[ls_j] dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = S_INSCUST.mtrlcode[ls_j] dw_uc.Object.u_mtrldef_mtrlname[ucrow] = S_INSCUST.mtrlname[ls_j] dw_uc.Object.u_mtrldef_unit[ucrow] = S_INSCUST.unit[ls_j] dw_uc.Object.u_dismantle_install_price[ucrow] = S_INSCUST.planprice[ls_j] dw_child.Object.u_mtrldef_mtrlmode[ucrow] = S_INSCUST.mtrlmode[ls_j] dw_child.Object.u_mtrldef_zxmtrlmode[ucrow] = S_INSCUST.zxmtrlmode[ls_j] dw_child.Object.u_mtrldef_mtrlsectype[ucrow] =S_INSCUST.mtrlsectype[ls_j] END IF NEXT dw_uc.SetFocus() dw_uc.SetColumn("u_dismantle_install_plancode") END IF ELSE IF NOT IsValid(w_mtrlware_storageid_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_storageid s_tranf8.if_select_any = FALSE s_tranf8.c_long = -1 dw_uc.AcceptText() IF dw_uc.GetRow() > 0 THEN s_tranf8.arg_string_code = Trim(dw_uc.Object.u_mtrldef_mtrlcode[dw_uc.GetRow()]) THIS.Enabled = FALSE OpenWithParm(w_mtrlware_storageid_ch,s_tranf8) //调用 THIS.Enabled = TRUE s_mtrlware_noalloc_array S_INSCUST_ware S_INSCUST_ware = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(S_INSCUST_ware.mtrlwareid) IF S_INSCUST_ware.mtrlwareid[ls_j] > 0 THEN dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = S_INSCUST_ware.mtrlwareid[ls_j] dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = S_INSCUST_ware.mtrlid[ls_j] dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlcode[ls_j] dw_uc.Object.u_mtrldef_mtrlname[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlname[ls_j] dw_uc.Object.u_dismantle_install_qty[ucrow] = S_INSCUST_ware.noallocqty[ls_j] dw_uc.Object.u_dismantle_install_price[ucrow] = S_INSCUST_ware.cost[ls_j] dw_uc.Object.u_dismantle_install_storageid[ucrow] = S_INSCUST_ware.storageid[ls_j] dw_uc.Object.u_dismantle_install_plancode[ucrow] = S_INSCUST_ware.plancode[ls_j] dw_uc.Object.u_dismantle_install_status[ucrow] = S_INSCUST_ware.status[ls_j] dw_uc.Object.u_dismantle_install_woodcode[ucrow] = S_INSCUST_ware.woodcode[ls_j] dw_uc.Object.u_dismantle_install_pcode[ucrow] = S_INSCUST_ware.pcode[ls_j] dw_uc.Object.u_dismantle_install_dxflag[ucrow] = S_INSCUST_ware.dxflag[ls_j] dw_uc.Object.u_dismantle_install_sptid[ucrow] = S_INSCUST_ware.sptid[ls_j] dw_uc.Object.u_mtrldef_unit[ucrow] = S_INSCUST_ware.u_mtrldef_unit[ls_j] dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlmode[ls_j] dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = S_INSCUST_ware.u_mtrldef_mtrlsectype[ls_j] dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = S_INSCUST_ware.u_mtrldef_zxmtrlmode[ls_j] END IF NEXT dw_uc.SetFocus() dw_uc.SetColumn("u_dismantle_install_qty") END IF END IF end event event ue_addzy;call super::ue_addzy;IF dw_edit_mode THEN MessageBox('提示',"编辑状态下不可以使用!",information!,OK!) return END IF IF NOT f_power_ind(792) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF string arg_msg='' string ls_str long uc_row s_inputbox s_sreu uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('提示','请选定当前目标单据!',information!,OK!) return end if s_sreu.title='请输入要补充到备注的内容' s_sreu.old_text='' openwithparm(w_inputbox,s_sreu) ls_str=message.stringparm if trim(ls_str)='' or isnull(ls_str) then return if uo_ware.add_dscrp(dw_pageretr.object.u_dismantle_install_billid[uc_row],ls_str,arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) return else messagebox('提示','添加备注操作成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.object.u_dismantle_install_billid[uc_row]) end if end event event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN Long child_row Int if_addmxdscrp String ls_mxdscrp s_addqty_input s_input dw_child.AcceptText( ) child_row = dw_child.GetRow() IF child_row <= 0 THEN RETURN IF dw_child.Object.mtrlid[child_row] <= 0 THEN RETURN ls_mxdscrp = dw_child.Object.mxdscrp[child_row] IF NOT IsValid(w_addqty_input) THEN OpenWithParm(w_addqty_input,ls_mxdscrp) s_input = Message.PowerObjectParm IF s_input.addqty = -1 THEN RETURN dw_child.Object.u_dismantle_installmx_addqty[child_row] = s_input.addqty IF s_input.addqtystr <> '' THEN dw_child.Object.mxdscrp[child_row] = s_input.addqtystr END IF // IF s_input.formula <> '' THEN // dw_child.Object.u_inwaremx_formula[child_row] = s_input.formula // END IF IF s_input.flag = 1 THEN dw_child.Object.qty[child_row] = s_input.qty END IF END IF end event event ue_before_open;call super::ue_before_open; long auto_di auto_di =long( f_ProfileString (sys_empid,publ_userid+'_'+dw_uc.DataObject, "auto_di",'0')) if auto_di = 1 then cbx_di.checked = true else cbx_di.checked =false end if end event event ue_viewprint;call super::ue_viewprint; //IF Not (f_power_ind(ls_powerid)) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN //END IF Long LS_ROW LS_ROW = dw_uc.GetRow() IF LS_ROW <= 0 THEN MessageBox('NO','没有打印目标单据!') RETURN END IF S_print_MSG LS_PRMSG IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_uc.Object.flag[dw_uc.GetRow()] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_dismantle_install_edit' END IF LS_PRMSG.printrow = ll_prownum LS_PRMSG.TAG_TEXT = '拆装单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = 0 LS_PRMSG.retr_pramnmb = dw_uc.Object.u_dismantle_install_billid[LS_ROW] LS_PRMSG.rowcnt = dw_child.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF OpenWithParm(w_publ_preview,LS_PRMSG) IF ifpic = 1 THEN Long li FOR li = 1 TO UpperBound(LS_PRMSG.s_pic.path) IF Len(Trim(LS_PRMSG.s_pic.path[li])) > 0 THEN FileDelete(LS_PRMSG.s_pic.path[li]) END IF NEXT END IF end event event ue_print;call super::ue_print;//--直接打印 //IF Not (f_power_ind(ls_powerid)) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN //END IF uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG IF dw_uc.RowCount() = 0 THEN MessageBox('系统信息','没有可打印的单据!') RETURN END IF IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_uc.Object.flag[dw_uc.GetRow()] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_dismantle_install_edit' END IF LS_PRMSG.printrow = ll_prownum LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.TAG_TEXT = '拆装单' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = 0 LS_PRMSG.retr_pramnmb = dw_uc.Object.u_dismantle_install_billid[dw_uc.GetRow()] LS_PRMSG.rowcnt = dw_child.RowCount() IF ifpic = 1 THEN String ls_msg IF wf_print_retrievedata(LS_PRMSG.s_pic,ls_msg) = 0 THEN MessageBox('提示','下载图片失败!',information!,OK!) RETURN END IF END IF uo_print.FACT_PRINT_MSG = LS_PRMSG String arg_msg IF uo_print.uof_print_begin(arg_msg) = 0 THEN MessageBox("系统提示",arg_msg) 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 end event type cb_func from w_publ_1ton_share_detail`cb_func within w_dismantle_install end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_dismantle_install end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_dismantle_install integer x = 215 integer width = 485 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_dismantle_install integer x = 3013 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_dismantle_install integer x = 2688 integer y = 52 integer width = 320 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_dismantle_install integer x = 2085 integer y = 300 integer width = 1445 integer height = 1132 string dataobject = "dw_dismantle_install_index" end type event dw_pageretr::rowfocuschanged;call super::rowfocuschanged;wf_flagstatus_rf() wf_check_billfj() end event type st_1 from w_publ_1ton_share_detail`st_1 within w_dismantle_install integer x = 0 integer y = 208 integer width = 192 alignment alignment = right! end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_dismantle_install integer x = 3163 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_dismantle_install integer y = 300 integer width = 2085 integer height = 1132 string dataobject = "dw_dismantle_install_edit" end type event dw_uc::dwnkey;PARENT.TriggerEvent('user_key') IF Key = KeyDownArrow! THEN RETURN 1 Long ucrow,ll_storageid String ls_mtrlcode,ls_plancode,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode String ls_mtrlmode,ls_mtrlname,ls_unit,ls_status Long ls_mtrlid,ls_mtrlwareid Dec ls_lmbuyprice,ls_noallocqty,ls_cost,ls_planprice,ls_noauditingqty Int li_dxflag Long ll_sptid s_mtrldef_array arg_s_mtrldef s_mtrlware_noalloc_array arg_s_mtrlware ucrow = dw_uc.GetRow() IF dw_edit_mode THEN IF dw_uc.GetColumnName ( ) = 'u_dismantle_install_dscrp' AND Key = KeyEnter! THEN dw_uc.AcceptText() dw_child.SetFocus() dw_child.ScrollToRow(1) dw_child.SetColumn ('storageid') ll_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow] IF ll_storageid > 0 THEN IF dw_child.RowCount() > 0 AND dw_child.Object.storageid[1] = 0 THEN dw_child.Object.storageid[1] = ll_storageid END IF END IF RETURN 1 ELSEIF dw_uc.GetColumnName ( ) = 'u_mtrldef_mtrlcode' AND Key = KeyEnter! THEN dw_uc.AcceptText() ll_storageid = dw_uc.Object.u_dismantle_install_storageid[ucrow] ls_mtrlcode = dw_uc.Object.u_mtrldef_mtrlcode[ucrow] dw_uc.AcceptText() IF dw_uc.Object.u_dismantle_install_billtype[ucrow] = 0 THEN //装单 IF f_find_mtrl(ls_mtrlcode,ll_storageid,arg_s_mtrldef) = 0 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 ELSE ls_mtrlid = arg_s_mtrldef.mtrlid[1] ls_mtrlcode = arg_s_mtrldef.mtrlcode[1] ls_mtrlname = arg_s_mtrldef.mtrlname[1] ls_unit = arg_s_mtrldef.unit[1] ls_mtrlmode = arg_s_mtrldef.mtrlmode[1] ls_planprice = arg_s_mtrldef.planprice[1] ls_mtrlsectype=arg_s_mtrldef.mtrlsectype[1] ls_zxmtrlmode=arg_s_mtrldef.zxmtrlmode[1] END IF dw_uc.Object.u_mtrldef_mtrlcode[ucrow] = ls_mtrlcode dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname dw_uc.Object.u_mtrldef_unit[ucrow] = ls_unit dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype ELSE dw_uc.AcceptText() IF f_find_mtrlware(ls_mtrlcode,ll_storageid,-1,arg_s_mtrlware) = 0 THEN PARENT.TriggerEvent('ue_f9') RETURN 1 ELSE ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1] ls_mtrlid = arg_s_mtrlware.mtrlid[1] ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1] ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1] ls_unit = arg_s_mtrlware.u_mtrldef_unit[1] ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1] ls_planprice = arg_s_mtrlware.planprice[1] ls_noallocqty = arg_s_mtrlware.noallocqty[1] ll_storageid = arg_s_mtrlware.storageid[1] ls_plancode = arg_s_mtrlware.plancode[1] ls_noauditingqty = arg_s_mtrlware.noauditingqty[1] ls_status = arg_s_mtrlware.status[1] ls_woodcode = arg_s_mtrlware.woodcode[1] ls_pcode = arg_s_mtrlware.pcode[1] ls_cost = arg_s_mtrlware.cost[1] ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1] ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1] END IF dw_uc.Object.u_mtrldef_mtrlname[ucrow] = ls_mtrlname dw_uc.Object.u_dismantle_install_mtrlid[ucrow] = ls_mtrlid dw_uc.Object.u_dismantle_install_mtrlwareid[ucrow] = ls_mtrlwareid dw_uc.Object.u_dismantle_install_price[ucrow] = ls_cost dw_uc.Object.u_dismantle_install_plancode[ucrow] = ls_plancode dw_uc.Object.u_dismantle_install_status[ucrow] = ls_status dw_uc.Object.u_dismantle_install_woodcode[ucrow] = ls_woodcode dw_uc.Object.u_dismantle_install_pcode[ucrow] = ls_pcode dw_uc.Object.u_dismantle_install_dxflag[ucrow] = li_dxflag dw_uc.Object.u_dismantle_install_sptid[ucrow] = ll_sptid dw_uc.Object.u_mtrldef_unit[ucrow] = ls_unit dw_uc.Object.u_mtrldef_mtrlmode[ucrow] = ls_mtrlmode dw_uc.Object.u_mtrldef_mtrlsectype[ucrow] = ls_mtrlsectype dw_uc.Object.u_mtrldef_zxmtrlmode[ucrow] = ls_zxmtrlmode END IF IF Key = KeyEnter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF ELSE IF Key = KeyEnter! THEN // keybd_event ( 9, 0, 0 , 0 ) // 按下tab keybd_event ( 9, 0, 2, 0 ) // 释放tab RETURN 1 END IF END IF END IF end 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 IF dwo.Name = 'u_dismantle_install_storageid' THEN dw_child.Reset() PARENT.TriggerEvent("insert_childrow") dw_uc.Object.u_mtrldef_mtrlcode[row] = '' dw_uc.Object.u_dismantle_install_plancode[row] = '' dw_uc.Object.u_dismantle_install_woodcode[row] = '' dw_uc.Object.u_dismantle_install_status[row] = '' dw_uc.Object.u_dismantle_install_pcode[row] = '' dw_uc.Object.u_dismantle_install_qty[row] = 0 dw_uc.Object.u_dismantle_install_price[row] = 0 dw_uc.Object.u_dismantle_install_mtrlid[row] = 0 dw_uc.Object.u_dismantle_install_mtrlwareid[row] = 0 dw_uc.Object.u_mtrldef_mtrlname[row] = '' dw_uc.accepttext() dw_uc.Object.u_dismantle_install_price.protect = cur_billtype dw_uc.Object.u_dismantle_install_plancode.protect = cur_billtype dw_uc.Object.u_dismantle_install_status.protect = cur_billtype dw_uc.Object.u_dismantle_install_woodcode.protect = cur_billtype dw_uc.Object.u_dismantle_install_pcode.protect = cur_billtype dw_child.object.price.protect= cur_billtype dw_child.object.plancode.protect= cur_billtype dw_child.object.status.protect= cur_billtype dw_child.object.woodcode.protect= cur_billtype dw_child.object.u_dismantle_installmx_pcode.protect= cur_billtype END IF end event event dw_uc::constructor;call super::constructor;f_title_change(this) end event event dw_uc::doubleclicked;IF dw_edit_mode And row > 0 THEN IF (dwo.Name = 'u_dismantle_install_status' or dwo.Name = 'u_dismantle_install_woodcode' or dwo.Name = 'u_dismantle_install_pcode') AND & (dw_uc.Object.u_dismantle_install_mtrlid[row] > 0) THEN Parent.TriggerEvent('ue_view_pz') ELSE Parent.TriggerEvent('ue_f9') END IF END IF end event event dw_uc::ue_dwndropdown;IF Not dw_edit_mode THEN RETURN String ls_col_pz,ls_col_mtrlid String ls_pz_ch String ls_col_value Long ll_col_value String ls_data_type Long ll_row,ll_mtrlid ll_row = This.GetRow() IF ll_row > 0 THEN ls_col_pz = This.GetColumnName( ) ls_data_type = dw_child.Describe(ls_col_pz+".ColType") IF Left(Lower(ls_data_type),4 ) = "char" THEN ls_col_value = This.GetItemString(ll_row,ls_col_pz) ELSEIF Left(Lower(ls_data_type),4) = "long" THEN ll_col_value = This.GetItemNumber(ll_row,ls_col_pz) END IF // arg_s_win.arg_x = THIS.X + THIS.PointerX() + PARENT.X // arg_s_win.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y // // arg_s_win.arg_col = ls_col_pz // arg_s_win.arg_mtrlid = ll_col_value // arg_s_win.arg_col_value = ls_col_value // ls_pz_ch = f_mtrl_pz(arg_s_win) // // IF ls_pz_ch = '' THEN RETURN IF ls_pz_ch <> '' THEN This.SetItem(ll_row,ls_col_pz,ls_pz_ch) END IF end event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_dismantle_install end type type dw_child from w_publ_1ton_share_detail`dw_child within w_dismantle_install integer y = 1436 integer width = 3534 integer height = 768 string title = "单据明细内容 [双击选择物料]" string dataobject = "dw_dismantle_installmx_edit" boolean minbox = true boolean maxbox = false end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_mtrlcode,ls_mtrlname,ls_unit,ls_mtrlmode String ls_plancode,ls_status,ls_woodcode,ls_pcode,ls_mtrlsectype,ls_zxmtrlmode Long ls_mtrlid Decimal ls_planprice Int li_dxflag Long ll_sptid s_mtrlware_noalloc_array arg_s_mtrlware s_mtrldef_array arg_s_mtrldef Long child_row,ucrow Long ls_null Long ls_storageid,ls_mtrlwareid Dec ls_noallocqty,ls_cost,ls_noauditingqty Long li_statusflag Long li_woodcodeflag Long li_pcodeflag SetNull(ls_null) IF dw_edit_mode THEN dw_uc.AcceptText() ucrow = dw_uc.GetRow() 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 IF dw_child.GetColumnName() = 'u_mtrldef_mtrlcode' THEN dw_child.AcceptText() child_row = dw_child.GetRow() ls_storageid = dw_child.Object.storageid[child_row] IF ls_storageid = 0 OR IsNull(ls_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row] IF cur_billtype = 1 THEN //拆单 IF f_find_mtrl(ls_mtrlcode,ls_storageid,arg_s_mtrldef) = 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 ELSE ls_mtrlid = arg_s_mtrldef.mtrlid[1] ls_mtrlcode = arg_s_mtrldef.mtrlcode[1] ls_mtrlname = arg_s_mtrldef.mtrlname[1] ls_unit = arg_s_mtrldef.unit[1] ls_mtrlmode = arg_s_mtrldef.mtrlmode[1] ls_planprice = arg_s_mtrldef.planprice[1] ls_mtrlsectype = arg_s_mtrldef.mtrlsectype[1] ls_zxmtrlmode = arg_s_mtrldef.zxmtrlmode[1] li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_child.Object.mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.price[child_row] = ls_planprice dw_child.Object.storageid[child_row] = ls_storageid dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag ELSEIF cur_billtype = 0 THEN //装 dw_child.AcceptText() child_row = dw_child.GetRow() ls_mtrlcode = dw_child.Object.u_mtrldef_mtrlcode[child_row] ls_storageid = dw_child.Object.storageid[child_row] IF ls_storageid = 0 OR IsNull(ls_storageid) THEN MessageBox('提示','请先选择仓库',information!,OK!) RETURN END IF IF f_find_mtrlware(ls_mtrlcode,ls_storageid,-1,arg_s_mtrlware) = 0 THEN PARENT.TriggerEvent('ue_f8') RETURN 1 ELSE ls_mtrlwareid = arg_s_mtrlware.mtrlwareid[1] ls_mtrlid = arg_s_mtrlware.mtrlid[1] ls_mtrlcode = arg_s_mtrlware.u_mtrldef_mtrlcode[1] ls_mtrlname = arg_s_mtrlware.u_mtrldef_mtrlname[1] ls_unit = arg_s_mtrlware.u_mtrldef_unit[1] ls_mtrlmode = arg_s_mtrlware.u_mtrldef_mtrlmode[1] ls_planprice = arg_s_mtrlware.planprice[1] ls_noallocqty = arg_s_mtrlware.noallocqty[1] ls_storageid = arg_s_mtrlware.storageid[1] ls_plancode = arg_s_mtrlware.plancode[1] ls_noauditingqty = arg_s_mtrlware.noauditingqty[1] ls_status = arg_s_mtrlware.status[1] ls_woodcode = arg_s_mtrlware.woodcode[1] ls_pcode = arg_s_mtrlware.pcode[1] ls_cost = arg_s_mtrlware.cost[1] ls_zxmtrlmode = arg_s_mtrlware.u_mtrldef_zxmtrlmode[1] ls_mtrlsectype = arg_s_mtrlware.u_mtrldef_mtrlsectype[1] END IF dw_child.Object.mtrlwareid[child_row] = ls_mtrlwareid dw_child.Object.mtrlid[child_row] = ls_mtrlid dw_child.Object.u_mtrldef_mtrlname[child_row] = ls_mtrlname dw_child.Object.u_mtrldef_mtrlmode[child_row] = ls_mtrlmode dw_child.Object.u_mtrldef_unit[child_row] = ls_unit dw_child.Object.qty[child_row] = ls_noallocqty - ls_noauditingqty dw_child.Object.price[child_row] = ls_cost dw_child.Object.storageid[child_row] = ls_storageid dw_child.Object.plancode[child_row] = ls_plancode dw_child.Object.status[child_row] = ls_status dw_child.Object.woodcode[child_row] = ls_woodcode dw_child.Object.u_dismantle_installmx_pcode[child_row] = ls_pcode dw_child.Object.u_dismantle_installmx_dxflag[child_row] = li_dxflag dw_child.Object.u_dismantle_installmx_sptid[child_row] = ll_sptid dw_child.Object.u_mtrldef_mtrlcode[child_row] = ls_mtrlcode dw_child.Object.u_mtrldef_zxmtrlmode[child_row] = ls_zxmtrlmode dw_child.Object.u_mtrldef_mtrlsectype[child_row] = ls_mtrlsectype IF f_find_mtrl(ls_mtrlcode,-1,arg_s_mtrldef) = 0 THEN li_statusflag = 0 li_woodcodeflag = 0 li_pcodeflag = 0 ELSE li_statusflag = arg_s_mtrldef.statusflag[1] li_pcodeflag = arg_s_mtrldef.pcodeflag[1] li_woodcodeflag = arg_s_mtrldef.woodcodeflag[1] END IF dw_child.Object.u_mtrldef_statusflag[child_row] = li_statusflag dw_child.Object.u_mtrldef_woodcodeflag[child_row] = li_woodcodeflag dw_child.Object.u_mtrldef_pcodeflag[child_row] = li_pcodeflag parent.triggerevent('ue_allowedit') 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( ) = 'mxdscrp' 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 //u_mtrldef_mtrlcode //u_mtrldef_unit //u_inwaremx_mtrlid //u_inwaremx_planprice //u_inwaremx_price //u_mtrldef_mtrlname end event event dw_child::getfocus;call super::getfocus;dw_uc.AcceptText() Int protect = 0 IF dw_uc.GetRow() > 0 THEN IF cur_billtype = 0 THEN protect = 1 ELSE protect = 0 END IF dw_child.Object.price.protect = protect dw_child.Object.plancode.protect = protect dw_child.Object.status.protect = protect dw_child.Object.woodcode.protect = protect dw_child.Object.u_dismantle_installmx_pcode.protect = protect END IF end event event dw_child::doubleclicked;if dw_edit_mode and row > 0 then if dwo.name = 'u_dismantle_installmx_addqty' then parent.triggerevent('ue_f10') else parent.triggerevent('ue_f8') end if end if end event type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_dismantle_install end type type cb_print from w_publ_1ton_share_detail`cb_print within w_dismantle_install end type event cb_print::clicked;call super::clicked;//if not (f_power_ind(26) or f_power_ind(26)) then // messagebox(publ_operator,'你没有使用权限!') // return //end if //LONG LS_ROW //LS_ROW=dw_uc.getrow() //IF LS_ROW<=0 THEN // MESSAGEBOX('NO','没有打印目标单据!') // RETURN //END IF // //S_print_MSG LS_PRMSG // //LS_PRMSG.obj_dwNAME='dw_rp_inware_py_edit' //LS_PRMSG.TAG_TEXT='盘盈单' //LS_PRMSG.FILTER_STRING = '' //LS_PRMSG.retr_pram_falg=2 //LS_PRMSG.PAGECH_FLAG=0 //LS_PRMSG.retr_pramnmb=dw_uc.object.inwareid[LS_ROW] //Openwithparm(w_publ_preview,LS_PRMSG) end event type cb_add from w_publ_1ton_share_detail`cb_add within w_dismantle_install end type event cb_add::clicked;IF NOT f_power_ind(87) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF String arg_msg = '' Long uc_row,i,LL_MX,LL_ZB dec ld_price ,LD_MX int row_i IF dw_edit_mode THEN dw_uc.AcceptText() dw_child.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF NOT dw_uc.Object.u_dismantle_install_billdate[uc_row] > DateTime(2000-01-01,Now()) THEN MessageBox('提示','不合理发生时间!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_dismantle_install_billdate") RETURN END IF IF NOT Len(String(dw_uc.Object.u_dismantle_install_rep[uc_row])) > 0 THEN MessageBox('提示','请填写经手人!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_dismantle_install_rep") RETURN END IF IF dw_uc.Object.u_dismantle_install_qty[uc_row] <= 0 THEN MessageBox('提示','请填写拆装数量!',information!,OK!) dw_uc.SetFocus() dw_uc.SetColumn("u_dismantle_install_qty") RETURN END IF FOR row_i = 1 to dw_child.RowCount() int li_storageid li_storageid = dw_child.Object.storageid[row_i] IF wf_checkstorageid(li_storageid) <> 0 THEN MessageBox('提示','第'+string(row_i)+'行明细请输入正确的仓库!',information!,OK!) RETURN END IF next IF sys_dismantle_install_check = 1 THEN String argmsg IF wf_checkqty(argmsg) = 0 THEN MessageBox('错误',argmsg,stopsign!,OK!) return END IF END IF uo_ware.billdate = dw_uc.Object.u_dismantle_install_billdate[uc_row] // 发生时间 uo_ware.rep = dw_uc.Object.u_dismantle_install_rep[uc_row] // 经手人 uo_ware.dscrp = dw_uc.Object.u_dismantle_install_dscrp[uc_row] //备注 uo_ware.storageid = dw_uc.Object.u_dismantle_install_storageid[uc_row] uo_ware.mtrlid = dw_uc.Object.u_dismantle_install_mtrlid[uc_row] uo_ware.mtrlwareid = dw_uc.Object.u_dismantle_install_mtrlwareid[uc_row] uo_ware.status = dw_uc.Object.u_dismantle_install_status[uc_row] uo_ware.plancode = dw_uc.Object.u_dismantle_install_plancode[uc_row] uo_ware.woodcode = dw_uc.Object.u_dismantle_install_woodcode[uc_row] uo_ware.qty = dw_uc.Object.u_dismantle_install_qty[uc_row] uo_ware.addqty = dw_uc.Object.u_dismantle_install_addqty[uc_row] uo_ware.price = dw_uc.Object.u_dismantle_install_price[uc_row] uo_ware.buildtype = 0 uo_ware.mtrlcode = dw_uc.Object.u_mtrldef_mtrlcode[uc_row] uo_ware.reason = dw_uc.Object.u_dismantle_install_reason[uc_row] uo_ware.pcode = dw_uc.Object.u_dismantle_install_pcode[uc_row] uo_ware.dxflag = dw_uc.Object.u_dismantle_install_dxflag[uc_row] uo_ware.sptid = dw_uc.Object.u_dismantle_install_sptid[uc_row] if uo_ware.buildtype = 0 then // if uo_ware.price = 0 then ld_price = 0 for i = 1 to dw_child.rowcount() if dw_child.object.u_dismantle_installmx_standardqty[i] > 0 then LD_MX = dw_child.object.price[i] LL_MX = dw_child.object.u_dismantle_installmx_standardqty[i] ld_price = ld_price + (LD_MX*LL_MX) ELSE LD_MX = dw_child.object.price[i] LL_MX = dw_child.object.qty[i] LL_ZB = dw_uc.Object.u_dismantle_install_qty[uc_row] ld_price = ld_price + (LL_MX/LL_ZB) * LD_MX end if next dw_uc.object.u_dismantle_install_price[uc_row] = ld_price uo_ware.price = ld_price // end if end if FOR i = 1 TO dw_child.RowCount() IF dw_child.Object.pid[i] > 0 THEN IF uo_ware.acceptmx(dw_child.Object.pid[i],& dw_child.Object.storageid[i],& dw_child.Object.mtrlwareid[i],& dw_child.Object.mtrlid[i],& dw_child.Object.qty[i],& dw_child.Object.u_dismantle_installmx_addqty[i],& dw_child.Object.price[i],& dw_child.Object.status[i],& dw_child.Object.plancode[i],& dw_child.Object.woodcode[i],& dw_child.Object.mxdscrp[i],& dw_child.Object.u_mtrldef_mtrlcode[i],& dw_child.Object.u_dismantle_installmx_pcode[i],& dw_child.Object.u_dismantle_installmx_dxflag[i],& dw_child.Object.u_dismantle_installmx_sptid[i],& arg_msg,& dw_child.Object.u_dismantle_installmx_standardqty[i]) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF NEXT IF uo_ware.Save(arg_msg,TRUE) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF // MessageBox(publ_operator,'保存操作成功!') //write ini f_SetProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",String(dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()])) // long ll_row ll_row = dw_uc.getrow() dw_uc.SelectRow(0,FALSE) dw_uc.SelectRow(ll_row,TRUE) wf_refresh_curuc(uo_ware.billid) //刷新uc ELSE IF uo_ware.newbegin(cur_billtype,arg_msg) = 0 THEN //生产令领料 MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF END IF CALL SUPER::Clicked //read ini IF dw_edit_mode THEN PARENT.TriggerEvent("insert_childrow") dw_uc.SetRedraw(FALSE) String ls_storageid ls_storageid = f_ProfileString (sys_empid,dw_uc.DataObject, "ddlb_storageid",'0') IF f_find_storageid(ls_storageid) = '' THEN ls_storageid = '0' END IF dw_uc.Object.u_dismantle_install_storageid[dw_uc.GetRow()] = Long(ls_storageid) dw_uc.Object.u_dismantle_install_billtype[dw_uc.GetRow()] = Long(cur_billtype) dw_uc.SetColumn("u_dismantle_install_billdate") dw_uc.SetRedraw(TRUE) 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_dismantle_install end type event cb_edit::clicked;IF NOT f_power_ind(87) 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(dw_pageretr.object.u_dismantle_install_billid[uc_row],arg_msg)=0 then messagebox('错误',arg_msg,stopsign!,OK!) return end if parent.triggerevent('ue_allowedit') end if call super::clicked end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_dismantle_install end type event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(612) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF String arg_msg = '' IF dw_edit_mode THEN RETURN Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要删除当前单据?",question!,yesno! ) = 2 THEN RETURN IF uo_ware.del(dw_pageretr.Object.u_dismantle_install_billid[uc_row],true,arg_msg) = 0 THEN MessageBox('错误',arg_msg,information!,OK!) ELSE //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.u_dismantle_install_billid[uc_row] ls_code = dw_pageretr.Object.u_dismantle_install_billcode[uc_row] f_setsysoplog('拆装单','删除,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox('提示','删除单据'+ls_code+'成功!',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_dismantle_install 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_cmpl" menustr=menustr + "|" + "Text=计算可拆装数量~tEvent=ue_cmpl_qty" menustr=menustr + "|" + "Text=检查拆装数量~tEvent=ue_check_qty" 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_dismantle_install end type event cb_auditing::clicked;call super::clicked;IF NOT f_power_ind(88) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' IF NOT KeyDown(KeyControl!) THEN Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要审核当前单据?",question!,yesno! ) = 2 THEN RETURN IF uo_ware.getinfo(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row],arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF uo_ware.auditing(publ_operator,TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE MessageBox('提示','审核成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row]) END IF ELSE IF MessageBox ("询问","是否确定要批审核列表中未审核的单据?",question!,yesno! ) = 2 THEN RETURN Long ll_i,ll_billid Int li_flag Long ll_suc,ll_fail dw_pageretr.AcceptText() OPEN(w_sys_wait_jdt) //初始化进度条 w_sys_wait_jdt.Show() w_sys_wait_jdt.wf_accepttol(dw_pageretr.RowCount()) FOR ll_i = 1 TO dw_pageretr.RowCount() w_sys_wait_jdt.st_msg.Text = dw_pageretr.Object.u_dismantle_install_billcode[ll_i] + " 正在审核..." //进度信息 li_flag = dw_pageretr.Object.u_dismantle_install_auditingflag[ll_i] IF li_flag = 1 THEN CONTINUE ll_billid = dw_pageretr.Object.u_dismantle_install_billid[ll_i] IF uo_ware.getinfo(ll_billid,arg_msg) = 0 THEN ll_fail++ CONTINUE END IF IF uo_ware.auditing(publ_operator,TRUE,arg_msg) = 0 THEN ll_fail++ CONTINUE END IF ll_suc++ w_sys_wait_jdt.wf_inc(ll_i) //进度 NEXT CLOSE(w_sys_wait_jdt) MessageBox('提示','批审核成功!成功:'+String(ll_suc)+',失败:'+String(ll_fail),information!,OK!) PARENT.TriggerEvent('retrieve_pageretr') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_dismantle_install end type type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_dismantle_install end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_dismantle_install end type type cb_help from w_publ_1ton_share_detail`cb_help within w_dismantle_install end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_dismantle_install end type event cb_auditing_cancel::clicked;call super::clicked;IF NOT f_power_ind(915) THEN MessageBox('提示','你没有使用权限!',information!,OK!) RETURN END IF IF dw_edit_mode THEN RETURN String arg_msg = '' Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('提示','请选定当前目标单据!',information!,OK!) RETURN END IF IF MessageBox ("询问","是否确定要撤审当前单据?",question!,yesno! ) = 2 THEN RETURN IF uo_ware.getinfo(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row],arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) RETURN END IF IF uo_ware.c_auditing(TRUE,arg_msg) = 0 THEN MessageBox('错误',arg_msg,stopsign!,OK!) ELSE //日志 Long ls_id String ls_code ls_id = dw_pageretr.Object.u_dismantle_install_billid[pagerert_row] ls_code = dw_pageretr.Object.u_dismantle_install_billcode[pagerert_row] f_setsysoplog('拆装单','撤审,id:'+String(ls_id)+',code:'+ls_code,arg_msg,TRUE) //-- MessageBox('提示','撤审成功!',information!,OK!) wf_refresh_curuc(dw_pageretr.Object.u_dismantle_install_billid[pagerert_row]) END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_dismantle_install end type type p_help from w_publ_1ton_share_detail`p_help within w_dismantle_install end type type p_encl from w_publ_1ton_share_detail`p_encl within w_dismantle_install end type type p_other from w_publ_1ton_share_detail`p_other within w_dismantle_install end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_dismantle_install end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_dismantle_install end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_dismantle_install end type type r_bar from w_publ_1ton_share_detail`r_bar within w_dismantle_install integer x = 3488 end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_dismantle_install end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_dismantle_install end type type ddlb_status from dropdownlistbox within w_dismantle_install integer x = 1719 integer y = 188 integer width = 402 integer height = 300 integer taborder = 20 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_dismantle_install integer x = 1467 integer y = 204 integer width = 233 integer height = 52 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "状 态" alignment alignment = right! boolean focusrectangle = false end type type st_2 from statictext within w_dismantle_install integer x = 718 integer y = 204 integer width = 233 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 = "单据类型" alignment alignment = right! boolean focusrectangle = false end type type ddlb_1 from dropdownlistbox within w_dismantle_install integer x = 974 integer y = 188 integer width = 485 integer height = 300 integer taborder = 20 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "装" string item[] = {"装","拆"} borderstyle borderstyle = stylelowered! end type event selectionchanged;IF THIS.Text = '装' THEN cur_billtype = 0 ELSE cur_billtype = 1 END IF PARENT .TriggerEvent('retrieve_pageretr') end event type cbx_di from checkbox within w_dismantle_install integer x = 2176 integer y = 204 integer width = 512 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