$PBExportHeader$w_sc_workpricetable.srw forward global type w_sc_workpricetable from w_publ_1ton_share_detail end type type cb_save from uo_imflatbutton within w_sc_workpricetable end type type cb_addmx_2 from uo_imflatbutton within w_sc_workpricetable end type type ddlb_mtrlorigin from uo_ddlb_mtrlorigin within w_sc_workpricetable end type type em_1 from editmask within w_sc_workpricetable end type type st_2 from statictext within w_sc_workpricetable end type type ddlb_status from dropdownlistbox within w_sc_workpricetable end type type st_3 from statictext within w_sc_workpricetable end type type ddlb_mtrlprp from uo_ddlb_mtrlprp within w_sc_workpricetable end type type tab_1 from tab within w_sc_workpricetable 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_sc_workpricetable tabpage_1 tabpage_1 tabpage_2 tabpage_2 end type type cb_1 from commandbutton within w_sc_workpricetable end type type cb_2 from commandbutton within w_sc_workpricetable end type end forward global type w_sc_workpricetable from w_publ_1ton_share_detail string title = "工价表" boolean maxbox = true windowstate windowstate = maximized! event insert_childrow ( ) event ue_copy ( ) event ue_paste ( ) event ue_addworkmx ( ) event ue_print_all ( ) event ue_viewprint_all ( ) event ue_workhour_mod ( ) event ue_proorder_mod ( ) event ue_audit_gs ( ) event ue_c_audit_gs ( ) event ue_fj_view ( ) event ue_fj_edit ( ) event ue_p_workqty ( ) event ue_p_workprice ( ) event ue_p_wrkgrpid ( ) event ue_p_pro ( ) cb_save cb_save cb_addmx_2 cb_addmx_2 ddlb_mtrlorigin ddlb_mtrlorigin em_1 em_1 st_2 st_2 ddlb_status ddlb_status st_3 st_3 ddlb_mtrlprp ddlb_mtrlprp tab_1 tab_1 cb_1 cb_1 cb_2 cb_2 end type global w_sc_workpricetable w_sc_workpricetable type variables uo_workpricetable u_wrkprice Long flag = 0 s_workpricetable s_pricetable[] Long mxid = 0 Long cur_mtrlorigin = 0 Int cur_mtrlprp = -1 //当前显示物料属性 Int cur_flag = -1 int cur_ifwrkprice = -1 datawindow dw_mx,dw_mxmx end variables forward prototypes public subroutine wf_copytable () public subroutine wf_pastetable () public function integer wf_refresh_curuc (long arg_mtrlid) public subroutine wf_read_procode (long arg_old_mtrlid, long arg_new_mtrlid) public subroutine wf_cmpl_price () public function integer wf_addmx (long arg_mtrlid) public function integer wf_lock_child () public function integer wf_bill_paste (ref string arg_msg) public function integer wf_bill_copy (ref string arg_msg) public subroutine wf_add_mx () end prototypes event insert_childrow();Long li_row li_row = dw_mx.InsertRow(0) dw_mx.ScrollToRow(li_row) IF li_row > 1 THEN dw_mx.object.wrkgrpid[li_row] = dw_mx.object.wrkgrpid[li_row - 1] dw_mx.object.proorder[li_row] = dw_mx.object.proorder[li_row - 1] + 1 END IF dw_mx.SetColumn ('procode') end event event ue_copy();IF NOT f_power_ind(1336) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF wf_copytable() end event event ue_paste();wf_pastetable() end event event ue_addworkmx();IF NOT f_power_ind(1338) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Long ll_mtrlid Long ll_row ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('系统提示','请选择目标产品') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row] IF ll_mtrlid <= 0 THEN MessageBox('系统提示','请选择目标产品') RETURN END IF IF wf_addmx(ll_mtrlid) = 1 THEN MessageBox('系统提示','操作成功') THIS.TriggerEvent('retrieve_childdw') END IF end event event ue_print_all();//--直接打印 uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('系统信息','没有可打印的单据!') RETURN END IF Long ll_mtrlid,ll_wrkGrpid ll_mtrlid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] OpenWithParm(w_workprice_print_all,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable_all' LS_PRMSG.TAG_TEXT = '工价表全套工价' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] LS_PRMSG.retr_pramnmb = ll_wrkGrpid LS_PRMSG.rowcnt = dw_mxmx.RowCount() 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() end event event ue_viewprint_all(); Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('NO','没有打印目标单据!') RETURN END IF Long ll_mtrlid,ll_wrkGrpid ll_mtrlid = dw_pageretr.Object.mtrlid[LS_ROW] OpenWithParm(w_workprice_print_all,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable_all' LS_PRMSG.TAG_TEXT = '工价表全套工价' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.mtrlid[LS_ROW] LS_PRMSG.retr_pramnmb = ll_wrkGrpid LS_PRMSG.rowcnt = dw_mxmx.RowCount() OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_workhour_mod();IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不能使用') RETURN END IF IF NOT f_power_ind(1340) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Long ll_row ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('Error','请选择要修改工价表工时的产品') RETURN END IF Long ll_mtrlid ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row] Long cnt cnt = 0 SELECT count(*) INTO :cnt FROM u_sc_workprice Where mtrlid = :ll_mtrlid ; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询产品的工价表失败'+sqlca.SQLErrText) RETURN END IF IF cnt = 0 THEN MessageBox('系统提示','该产品还没有设定工价表,请检查!') RETURN END IF OpenWithParm(w_workprice_workhour_mod,ll_mtrlid) THIS.TriggerEvent('retrieve_childdw') end event event ue_proorder_mod();IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不能使用') RETURN END IF IF NOT f_power_ind(1336) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF Long ll_row ll_row = dw_pageretr.GetRow() IF ll_row <= 0 THEN MessageBox('Error','请选择要修改工价表工序序号的产品') RETURN END IF Long ll_mtrlid ll_mtrlid = dw_pageretr.Object.mtrlid[ll_row] Long cnt cnt = 0 SELECT count(*) INTO :cnt FROM u_sc_workprice Where mtrlid = :ll_mtrlid ; IF sqlca.SQLCode <> 0 THEN MessageBox('Error','查询产品的工价表失败'+sqlca.SQLErrText) RETURN END IF IF cnt = 0 THEN MessageBox('系统提示','该产品还没有设定工价表,请检查!') RETURN END IF OpenWithParm(w_workprice_workhour_mod_order,ll_mtrlid) THIS.TriggerEvent('retrieve_childdw') end event event ue_audit_gs();IF NOT f_power_ind(1339) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不可用') RETURN END IF String arg_msg Long ll_mtrlid,ll_wrkGrpid IF MessageBox ("IF","是否确定要审核当前工价表工时吗?",Question!,YesNo! ) = 2 THEN RETURN Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[pagerert_row] OpenWithParm(w_workprice_audit,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN IF u_wrkprice.auditing_gs(ll_mtrlid,ll_wrkGrpid,publ_operator,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'审核成功!') wf_refresh_curuc(dw_pageretr.Object.mtrlid[pagerert_row]) THIS.TriggerEvent('retrieve_childdw') END IF end event event ue_c_audit_gs();IF NOT f_power_ind(1339) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN MessageBox('系统提示','编辑状态下不可使用') RETURN END IF IF MessageBox ("IF","是否确定要工时审核当前工价表吗?",Question!,YesNo! ) = 2 THEN RETURN String arg_msg = '',ls_code Long pagerert_row,ls_id Long ll_mtrlid,ll_wrkGrpid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[pagerert_row] OpenWithParm(w_workprice_audit,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN IF u_wrkprice.c_auditing_gs(ll_mtrlid,ll_wrkGrpid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'撤审成功!') wf_refresh_curuc(dw_pageretr.Object.mtrlid[pagerert_row]) THIS.TriggerEvent('retrieve_childdw') END IF end event event ue_fj_view();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg) RETURN END IF s_pic.f_long = 201 //物料资料 mainID s_pic.f_string = dw_pageretr.Object.mtrlcode[ls_row] s_pic.g_long = dw_pageretr.Object.mtrlid[ls_row] s_pic.d_long = 0 //relid_mx s_pic.d_string = '' //relcode_mx s_pic.e_long = 0 // scid s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_view,s_pic) end event event ue_fj_edit();IF dw_edit_mode THEN MessageBox('提示','编辑状态下不可用') RETURN END IF s_edit_index_tran s_pic Long ll_ConnectionID String arg_msg Long ls_row ls_row = dw_pageretr.GetRow() IF ls_row <= 0 THEN MessageBox('提示','请选择资料') RETURN END IF IF f_get_outerconnection(ll_ConnectionID,arg_msg) = 0 THEN MessageBox('提示','没有指定附件数据库连接'+arg_msg) RETURN END IF s_pic.f_long = 201 //物料资料 mainID s_pic.f_string = dw_pageretr.Object.mtrlcode[ls_row] s_pic.g_long = dw_pageretr.Object.mtrlid[ls_row] s_pic.d_long = 0 //relid_mx s_pic.d_string = '' //relcode_mx s_pic.e_long = 0 // scid s_pic.sqltransaction = sys_filedb_sqlca OpenWithParm(w_fj_bill_mng,s_pic) end event event ue_p_workqty();IF Not dw_edit_mode THEN MessageBox('系统提示',"非编辑状态下不可以使用!") RETURN END IF IF dw_mx.RowCount() <= 1 THEN RETURN IF MessageBox('询问','是否确认要批设置数量?',question!,yesno!) = 2 THEN RETURN Long ll_i dw_mx.SetRedraw(False) dw_mx.AcceptText() FOR ll_i = 2 To dw_mx.RowCount( ) dw_mx.Object.workqty[ll_i] = dw_mx.Object.workqty[1] NEXT dw_mx.SetRedraw(True) end event event ue_p_workprice();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态不可使用') RETURN END IF IF dw_mx.RowCount() <= 1 THEN RETURN IF MessageBox(publ_operator,'是否要确定要批设定单件工价', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_mx.AcceptText() dw_mx.SetRedraw(FALSE) FOR ll_i = 2 TO dw_mx.RowCount() dw_mx.Object.workprice[ll_i] = dw_mx.Object.workprice[1] NEXT dw_mx.SetRedraw(TRUE) end event event ue_p_wrkgrpid();IF Not dw_edit_mode THEN MessageBox('系统提示','非编辑状态不可使用') RETURN END IF IF dw_mx.RowCount() <= 1 THEN RETURN IF MessageBox(publ_operator,'是否要确定要批设定工组', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_mx.AcceptText() Long ll_wrkgrpid ll_wrkgrpid = dw_mx.Object.wrkgrpid[1] //工组 IF ll_wrkgrpid = 0 THEN RETURN //相同工组才设定 dw_mx.SetRedraw(False) FOR ll_i = 2 To dw_mx.RowCount() dw_mx.Object.wrkgrpid[ll_i] = ll_wrkgrpid NEXT dw_mx.SetRedraw(True) end event event ue_p_pro();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态不可使用') RETURN END IF IF dw_mx.RowCount() <= 1 THEN RETURN IF MessageBox(publ_operator,'是否要确定要批设定工序', question!, YesNo!, 2) = 2 THEN RETURN END IF Long ll_i dw_mx.AcceptText() dw_mx.SetRedraw(FALSE) FOR ll_i = 2 TO dw_mx.RowCount() dw_mx.Object.procode[ll_i] = dw_mx.Object.procode[1] dw_mx.Object.u_sc_workprice_proname[ll_i] = dw_mx.Object.u_sc_workprice_proname[1] NEXT dw_mx.SetRedraw(TRUE) end event public subroutine wf_copytable ();Long i,ll_mtrlid,ll_wrkgrpid IF dw_pageretr.GetRow() <= 0 THEN MessageBox(publ_operator,'没有复制对象!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] OpenWithParm(w_sc_workpricetable_copy,ll_mtrlid) ll_wrkgrpid = Message.DoubleParm IF ll_wrkgrpid = 0 THEN RETURN mxid = 0 FOR i = 1 TO dw_mx.RowCount() IF ll_wrkgrpid = -1 OR ll_wrkgrpid > 0 AND dw_mx.Object.wrkgrpid[i] = ll_wrkgrpid THEN mxid++ s_pricetable[mxid].proid = dw_mx.Object.proid[i] s_pricetable[mxid].procode = dw_mx.Object.procode[i] s_pricetable[mxid].proname = dw_mx.Object.u_sc_workprice_proname[i] s_pricetable[mxid].worklevel = dw_mx.Object.worklevel[i] s_pricetable[mxid].techlevel = dw_mx.Object.techlevel[i] s_pricetable[mxid].workhour = dw_mx.Object.workhour[i] s_pricetable[mxid].workprice = dw_mx.Object.workprice[i] s_pricetable[mxid].dscrp = dw_mx.Object.dscrp[i] s_pricetable[mxid].wrkgrpid = dw_mx.Object.wrkgrpid[i] s_pricetable[mxid].lsxtype = dw_mx.Object.lsxtype[i] s_pricetable[mxid].workqty = dw_mx.Object.workqty[i] s_pricetable[mxid].proorder = dw_mx.Object.proorder[i] END IF NEXT MessageBox(publ_operator,'复制工价表:'+String(dw_uc.Object.mtrlname[dw_uc.GetRow()])+'成功') end subroutine public subroutine wf_pastetable ();IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不能操作') RETURN END IF IF UpperBound(s_pricetable) = 0 THEN MessageBox('系统提示','没有可复制的工价表,要复制请先按“复制工价表”') RETURN END IF Open(w_workprice_paste_ch) Int li_type li_type = Message.DoubleParm IF li_type = 0 THEN RETURN ELSEIF li_type = 1 THEN Long i,uc_row Long ll_i Int li_ifautid = 0 FOR ll_i = 1 TO dw_mx.RowCount() IF dw_mx.Object.auditflag[ll_i] = 1 THEN li_ifautid = 1 EXIT END IF NEXT IF li_ifautid = 1 THEN MessageBox('系统提示','已有审核的工序,不能粘贴工价表') RETURN END IF IF MessageBox('询问','粘贴操作将会覆盖原有工价表,是否继续?',question!,yesno!) = 2 THEN RETURN END IF dw_mx.Reset() END IF dw_mx.SetRedraw(FALSE) FOR i = 1 TO mxid uc_row = dw_mx.InsertRow(0) dw_mx.Object.procode[uc_row] = s_pricetable[i].procode dw_mx.Object.u_sc_workprice_proname[uc_row] = s_pricetable[i].proname dw_mx.Object.proid[uc_row] = s_pricetable[i].proid dw_mx.Object.worklevel[uc_row] = s_pricetable[i].worklevel dw_mx.Object.techlevel[uc_row] = s_pricetable[i].techlevel dw_mx.Object.workhour[uc_row] = s_pricetable[i].workhour dw_mx.Object.workprice[uc_row] = s_pricetable[i].workprice dw_mx.Object.dscrp[uc_row] = s_pricetable[i].dscrp dw_mx.Object.wrkgrpid[uc_row] = s_pricetable[i].wrkgrpid dw_mx.Object.lsxtype[uc_row] = s_pricetable[i].lsxtype dw_mx.Object.workqty[uc_row] = s_pricetable[i].workqty dw_mx.Object.proorder[uc_row] = s_pricetable[i].proorder NEXT dw_mx.SetRedraw(TRUE) MessageBox(publ_operator,'粘贴工价表成功!') end subroutine public function integer wf_refresh_curuc (long arg_mtrlid);IF arg_mtrlid <= 0 OR IsNull(arg_mtrlid) THEN RETURN 0 Long uc_row uc_row = dw_pageretr.GetRow() IF uc_row <= 0 THEN RETURN 0 Long Mtrlid Long wpmtrlid Decimal wprate String a_mtrlcode String a_mtrlname String a_mtrlmode String mtrlcode String mtrlname String unit String Mtrltype String Mtrlsectype String mtrlmode String zxMtrlmode Int mtrlorigin Int mtrlprp String dscrp DateTime popdate String popemp Int Auditflag String Audit_emp DateTime Audit_date SELECT u_Mtrldef.Mtrlid , u_Mtrldef.wpmtrlid , u_Mtrldef.wprate , a.mtrlcode as a_mtrlcode, a.mtrlname as a_mtrlname, a.mtrlmode as a_mtrlmode, u_Mtrldef.mtrlcode , u_Mtrldef.mtrlname, u_Mtrldef.unit , u_Mtrldef.Mtrltype, u_Mtrldef.Mtrlsectype, u_Mtrldef.Mtrlmode , u_Mtrldef.zxMtrlmode , u_Mtrldef.mtrlorigin , u_Mtrldef.mtrlprp , u_Mtrldef.dscrp , u_Mtrldef.popdate , u_Mtrldef.popemp , u_Mtrldef.Auditflag , u_Mtrldef.Audit_emp , u_Mtrldef.Audit_date INTO :Mtrlid, :wpmtrlid, :wprate, :a_mtrlcode, :a_mtrlname, :a_mtrlmode, :mtrlcode, :mtrlname, :unit, :Mtrltype, :Mtrlsectype, :mtrlmode, :zxMtrlmode, :mtrlorigin, :mtrlprp, :dscrp, :popdate, :popemp, :Auditflag, :Audit_emp, :Audit_date FROM u_Mtrldef ,u_Mtrldef a WHERE u_Mtrldef.Isuse = 1 AND u_Mtrldef.wpmtrlid *= a.mtrlid AND u_Mtrldef.Mtrlid = :arg_mtrlid; IF sqlca.SQLCode <> 0 THEN MessageBox('系统提示',"查询产品操作失败") RETURN 0 END IF dw_pageretr.SetRedraw(FALSE) dw_pageretr.Object.mtrlid[uc_row] = mtrlid dw_pageretr.Object.u_mtrldef_wpmtrlid[uc_row] = wpmtrlid dw_pageretr.Object.u_mtrldef_wprate[uc_row] = wprate dw_pageretr.Object.u_mtrldef_a_mtrlcode[uc_row] = a_mtrlcode dw_pageretr.Object.u_mtrldef_a_mtrlname[uc_row] = a_mtrlname dw_pageretr.Object.u_mtrldef_a_mtrlmode[uc_row] = a_mtrlmode dw_pageretr.Object.mtrlname[uc_row] = mtrlname dw_pageretr.Object.mtrlcode[uc_row] = mtrlcode dw_pageretr.Object.unit[uc_row] = unit dw_pageretr.Object.mtrltype[uc_row] = mtrltype dw_pageretr.Object.mtrlsectype[uc_row] = mtrlsectype dw_pageretr.Object.u_mtrldef_mtrlmode[uc_row] = mtrlmode dw_pageretr.Object.u_mtrldef_zxmtrlmode[uc_row] = zxmtrlmode dw_pageretr.Object.u_mtrldef_mtrlorigin[uc_row] = mtrlorigin dw_pageretr.Object.u_mtrldef_mtrlprp[uc_row] = mtrlprp dw_pageretr.Object.dscrp[uc_row] = dscrp dw_pageretr.Object.popdate[uc_row] = popdate dw_pageretr.Object.popemp[uc_row] = popemp dw_pageretr.Object.dscrp[uc_row] = dscrp dw_pageretr.Object.Auditflag[uc_row] = Auditflag dw_pageretr.Object.Audit_emp[uc_row] = Audit_emp dw_pageretr.Object.Audit_date[uc_row] = Audit_date dw_pageretr.SetRedraw(TRUE) dw_uc.Reset() dw_pageretr.RowsCopy(dw_pageretr.GetRow(), dw_pageretr.GetRow(), Primary!, dw_uc, 1, Primary!) RETURN 1 end function public subroutine wf_read_procode (long arg_old_mtrlid, long arg_new_mtrlid);Boolean if_replace = FALSE IF arg_old_mtrlid = 0 THEN if_replace = TRUE ELSE IF arg_old_mtrlid <> arg_new_mtrlid THEN IF MessageBox ("IF","是否确定要替换当前工序为新产品工序吗?",Question!,YesNo! ) = 2 THEN if_replace = FALSE ELSE if_replace = TRUE END IF END IF END IF IF if_replace = TRUE THEN dw_mx.Reset() s_workpricetable s_table[] Long ll_i,childrow,count DECLARE pro_cur CURSOR FOR SELECT u_sc_workprice.procode, u_sc_workprice.proname, u_sc_workprice.proid, u_sc_workprice.worklevel, u_sc_workprice.techlevel, u_sc_workprice.workhour, u_sc_workprice.workprice, u_sc_workprice.dscrp, u_sc_workprice.wrkgrpid, u_sc_workprice.ifownpro, u_sc_workprice.lsxtype FROM u_sc_workprice WHERE u_sc_workprice.mtrlid = :arg_new_mtrlid Order By wrkgrpid,procode; OPEN pro_cur; count = 1 FETCH pro_cur INTO :s_table[count].procode,:s_table[count].proname,& :s_table[count].proid,:s_table[count].worklevel,& :s_table[count].techlevel,:s_table[count].workhour,& :s_table[count].workprice,:s_table[count].dscrp,& :s_table[count].wrkgrpid,:s_table[count].ifownpro,& :s_table[count].lsxtype; DO WHILE sqlca.SQLCode = 0 //循环读取明细数据 count++ FETCH pro_cur INTO :s_table[count].procode,:s_table[count].proname,& :s_table[count].proid,:s_table[count].worklevel,& :s_table[count].techlevel,:s_table[count].workhour,& :s_table[count].workprice,:s_table[count].dscrp,& :s_table[count].wrkgrpid,:s_table[count].ifownpro,& :s_table[count].lsxtype; LOOP count = count - 1 CLOSE pro_cur; IF count = 0 THEN MessageBox('提示','标准产品工价表未设定') RETURN END IF dw_mx.SetRedraw(FALSE) FOR ll_i = 1 TO count childrow = dw_mx.InsertRow(0) dw_mx.Object.procode[childrow] = s_table[ll_i].procode dw_mx.Object.u_sc_workprice_proname[childrow] = s_table[ll_i].proname dw_mx.Object.proid[childrow] = s_table[ll_i].proid dw_mx.Object.worklevel[childrow] = s_table[ll_i].worklevel dw_mx.Object.techlevel[childrow] = s_table[ll_i].techlevel dw_mx.Object.workhour[childrow] = s_table[ll_i].workhour dw_mx.Object.workprice[childrow] = s_table[ll_i].workprice dw_mx.Object.dscrp[childrow] = s_table[ll_i].dscrp dw_mx.Object.wrkgrpid[childrow] = s_table[ll_i].wrkgrpid dw_mx.Object.lsxtype[childrow] = s_table[ll_i].lsxtype dw_mx.Object.u_sc_workprice_ifstandard[childrow] = 1 NEXT dw_mx.SetRedraw(TRUE) END IF end subroutine public subroutine wf_cmpl_price ();IF NOT dw_edit_mode THEN RETURN Long ll_i,uc_row Decimal ld_wprate dw_mx.AcceptText() dw_uc.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('提示','请选择产品') RETURN END IF ld_wprate = dw_uc.Object.u_mtrldef_wprate[uc_row] IF ld_wprate <= 0 THEN MessageBox('提示','非法的计算比例') RETURN END IF dw_mx.SetRedraw(FALSE) FOR ll_i = 1 TO dw_mx.RowCount() dw_mx.Object.workprice[ll_i] = Round(dw_mx.Object.workprice[ll_i] * ld_wprate,Long(em_1.Text)) NEXT dw_mx.SetRedraw(TRUE) end subroutine public function integer wf_addmx (long arg_mtrlid);//清除旧有的下级物料工价表 string arg_msg u_wrkprice.mtrlid = arg_mtrlid IF u_wrkprice.f_clearpfmx(arg_mtrlid,arg_msg,FALSE) = 0 THEN MessageBox ("系统提示",arg_msg,exclamation!,ok!) RETURN 0 END IF //插入自身工价表 u_wrkprice.deep_count = 0 u_wrkprice.il_printid = 0 IF u_wrkprice.f_addworkprice(arg_mtrlid,arg_msg,FALSE) = 0 THEN MessageBox ("系统提示",arg_msg,exclamation!,ok!) RETURN 0 END IF //插入下级自制物料工价表 String ls_pfcode ls_pfcode = f_get_dft_pf(arg_mtrlid) IF u_wrkprice.f_addpfmx(arg_mtrlid,ls_pfcode,1,1,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) RETURN 0 END IF RETURN 1 end function public function integer wf_lock_child ();//wf_lock_child INT LS_INT IF dw_edit_mode THEN FOR LS_INT=1 TO child_column_int dw_mx.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT=1 TO child_column_int dw_mx.SetTabOrder (LS_INT, 0) NEXT END IF RETURN 1 end function public function integer wf_bill_paste (ref string arg_msg);Long rslt = 1 IF NOT dw_edit_mode THEN rslt = 0 arg_msg = '非编辑状态下不可粘贴' GOTO ext END IF Long ll_rowcount dw_mx.AcceptText( ) ll_rowcount = ds_copy_bill.RowCount() IF ll_rowcount <= 0 THEN rslt = 0 arg_msg = '没有可粘贴的明细内容' GOTO ext END IF dw_mx.Reset() Long ll_child_rowcount ll_child_rowcount = dw_mx.RowCount() IF ds_copy_bill.RowsCopy(1, ll_rowcount, Primary!, dw_mx, 1, Primary!) = - 1 THEN rslt = 0 arg_msg = '粘贴明细内容失败' GOTO ext END IF dw_mx.AcceptText() ext: RETURN rslt end function public function integer wf_bill_copy (ref string arg_msg);Long rslt = 1 Long ll_rowcount dw_mx.AcceptText( ) ll_rowcount = dw_mx.RowCount() IF ll_rowcount <= 0 THEN rslt = 0 arg_msg = '没有可复制的明细内容' GOTO ext END IF ds_copy_bill.Reset() IF dw_mx.RowsCopy(1, ll_rowcount, Primary!, ds_copy_bill, 1, Primary!) = - 1 THEN rslt = 0 arg_msg = '复制明细内容失败' GOTO ext END IF ds_copy_bill.AcceptText() ext: RETURN rslt end function public subroutine wf_add_mx ();Long i, ll_row FOR i = 1 To s_tran.dw_share.RowCount() ll_row = dw_mx.InsertRow(0) dw_mx.Object.workqty[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_workqty[i] dw_mx.Object.workprice[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_workprice[i] dw_mx.Object.workprice[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_cost[i] dw_mx.Object.u_sc_workprice_wprice[ll_row] = s_tran.dw_share.Object.wprice[i] dw_mx.Object.procode[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_procode[i] dw_mx.Object.u_sc_workprice_proname[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_proname[i] dw_mx.Object.u_sc_workgroup_wrkgrpcode[ll_row] = s_tran.dw_share.Object.u_sc_workgroup_wrkgrpcode[i] dw_mx.Object.u_sc_workgroup_wrkgrpname[ll_row] = s_tran.dw_share.Object.u_sc_workgroup_wrkgrpname[i] dw_mx.Object.dscrp[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_dscrp[i] dw_mx.Object.wrkgrpid[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_wrkgrpid[i] // dw_mx.Object.wrkgrpid[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_proid[i] dw_mx.Object.proorder[ll_row] = s_tran.dw_share.Object.u_quoteworkprice_proorder[i] NEXT end subroutine on w_sc_workpricetable.create int iCurrent call super::create this.cb_save=create cb_save this.cb_addmx_2=create cb_addmx_2 this.ddlb_mtrlorigin=create ddlb_mtrlorigin this.em_1=create em_1 this.st_2=create st_2 this.ddlb_status=create ddlb_status this.st_3=create st_3 this.ddlb_mtrlprp=create ddlb_mtrlprp this.tab_1=create tab_1 this.cb_1=create cb_1 this.cb_2=create cb_2 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_save this.Control[iCurrent+2]=this.cb_addmx_2 this.Control[iCurrent+3]=this.ddlb_mtrlorigin this.Control[iCurrent+4]=this.em_1 this.Control[iCurrent+5]=this.st_2 this.Control[iCurrent+6]=this.ddlb_status this.Control[iCurrent+7]=this.st_3 this.Control[iCurrent+8]=this.ddlb_mtrlprp this.Control[iCurrent+9]=this.tab_1 this.Control[iCurrent+10]=this.cb_1 this.Control[iCurrent+11]=this.cb_2 end on on w_sc_workpricetable.destroy call super::destroy destroy(this.cb_save) destroy(this.cb_addmx_2) destroy(this.ddlb_mtrlorigin) destroy(this.em_1) destroy(this.st_2) destroy(this.ddlb_status) destroy(this.st_3) destroy(this.ddlb_mtrlprp) destroy(this.tab_1) destroy(this.cb_1) destroy(this.cb_2) end on 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_mtrldef.mtrlcode like '%"+Trim(sle_usual_query.Text)+"%')" ELSE ls_querystrpart = "(u_mtrldef.mtrlcode 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 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_pageretr.Retrieve(cur_mtrlorigin,cur_flag,cur_ifwrkprice,cur_mtrlprp) 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 open;call super::open;uc_column_int = 3 //uc dw前8列可以编辑 child_column_int = 15 //子dw前4列可以编辑 u_wrkprice = Create uo_workpricetable IF s_tran.b_long > 0 THEN IF dw_pageretr.GetRow() > 0 THEN IF dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] = s_tran.b_long THEN //修改 cb_edit.TriggerEvent(Clicked!) //清空明细 dw_mx.Reset() //插入明细 wf_add_mx() END IF END IF END IF end event event refresh_interface;call super::refresh_interface;cb_save.Enabled = dw_edit_mode ddlb_mtrlprp.Enabled = NOT dw_edit_mode ddlb_mtrlorigin.Enabled = NOT dw_edit_mode cb_addmx_2.Enabled = dw_edit_mode ddlb_status.Enabled = NOT dw_edit_mode end event event retrieve_childdw;call super::retrieve_childdw;Long row,uc_relid dw_mx.Reset() dw_mxmx.Reset() row = dw_pageretr.GetRow() IF row > 0 THEN uc_relid = dw_pageretr.Object.mtrlid[row] dw_mx.SetRedraw (FALSE) dw_mx.Retrieve(uc_relid) dw_mx.SetRedraw (TRUE) dw_mxmx.setfilter('') dw_mxmx.filter() dw_mxmx.SetRedraw (FALSE) dw_mxmx.Retrieve(uc_relid) dw_mxmx.SetRedraw (TRUE) ELSE dw_mx.Reset() dw_mxmx.Reset() END IF end event event ue_f8;call super::ue_f8;//用于选择明细内容,被F8[默认]\dw_mx.doubleclicked调用 Long child_row Long ls_null IF NOT dw_edit_mode THEN RETURN IF flag = 1 THEN RETURN child_row = dw_mx.GetRow() s_edit_index_tran s_ch_tran s_ch_tran.if_retrieve_all = TRUE s_ch_tran.work_mode = 1 s_ch_tran.arg_pkid = 0 s_ch_tran.b_long = 0 s_ch_tran.if_select_all = TRUE IF child_row > 0 THEN s_ch_tran.arg_string_code = dw_mx.Object.procode[child_row] Long ls_j IF NOT IsValid(w_sc_workprocedure_response) THEN OpenWithParm(w_sc_workprocedure_response,s_ch_tran) //调用 s_workprocedure S_INSCUST S_INSCUST = Message.PowerObjectParm //接受返回结构 FOR ls_j = 1 TO UpperBound(S_INSCUST.wrkproid) IF S_INSCUST.wrkproid[ls_j] > 0 THEN //正常返回值则可以取以下值 IF dw_mx.Find('proid='+String(S_INSCUST.wrkproid[ls_j]),1,dw_mx.RowCount()) = 0 THEN IF dw_mx.GetRow() > 0 THEN IF dw_mx.Object.proid[child_row] <> 0 THEN child_row = dw_mx.InsertRow (0) ELSE child_row = dw_mx.GetRow() END IF ELSE child_row = dw_mx.InsertRow (0) END IF END IF dw_mx.Object.proid[child_row] = S_INSCUST.wrkproid[ls_j] dw_mx.Object.procode[child_row] = S_INSCUST.wrkprocode[ls_j] dw_mx.Object.u_sc_workprice_proname[child_row] = S_INSCUST.wrkproname[ls_j] dw_mx.Object.worklevel[child_row] = S_INSCUST.worklevel[ls_j] dw_mx.Object.techlevel[child_row] = S_INSCUST.techlevel[ls_j] dw_mx.Object.workhour[child_row] = S_INSCUST.workhour[ls_j] dw_mx.Object.wrkgrpid[child_row] = S_INSCUST.wrkgrid[ls_j] dw_mx.Object.workprice[child_row] = S_INSCUST.workprice[ls_j] IF child_row > 1 THEN dw_mx.Object.proorder[child_row] = dw_mx.Object.proorder[child_row - 1] + 1 END IF END IF NEXT dw_mx.SetRow(child_row) dw_mx.ScrollToRow(child_row) dw_mx.SetFocus() IF UpperBound(S_INSCUST.wrkproid) > 0 THEN dw_mx.SetColumn("workprice") END IF END IF dw_mx.SetRedraw(TRUE) dw_mx.SetFocus() end event event ue_viewprint;call super::ue_viewprint; Long LS_ROW LS_ROW = dw_pageretr.GetRow() IF LS_ROW <= 0 THEN MessageBox('NO','没有打印目标单据!') RETURN END IF S_print_MSG LS_PRMSG Boolean lb_all lb_all = Pos(ls_chnname, '[全套]') > 0 IF ls_newname <> '' THEN IF li_auditprint = 1 THEN IF dw_pageretr.Object.auditflag[dw_pageretr.GetRow()] = 0 THEN MessageBox('NO','目标单据还未审核,不能打印!') RETURN END IF END IF LS_PRMSG.obj_dwNAME = ls_newname ELSE // IF Not f_power_ind(7) THEN // MessageBox(publ_operator,'你没有使用权限!') // RETURN // END IF IF lb_all THEN LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable_all' ELSE LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable' END IF END IF Long ll_mtrlid,ll_wrkGrpid ll_mtrlid = dw_pageretr.Object.mtrlid[LS_ROW] IF lb_all THEN OpenWithParm(w_workprice_print_all,ll_mtrlid) ELSE OpenWithParm(w_workprice_print,ll_mtrlid) END IF ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN //LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable' LS_PRMSG.TAG_TEXT = This.Title LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = ll_mtrlid LS_PRMSG.retr_pramnmb = ll_wrkGrpid IF lb_all THEN LS_PRMSG.rowcnt = dw_mxmx.RowCount() ELSE LS_PRMSG.rowcnt = dw_mx.RowCount() END IF OpenWithParm(w_publ_preview,LS_PRMSG) end event event ue_print;call super::ue_print;//--直接打印 uo_print_preview uo_print IF MessageBox ("IF","是否确定要打印当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN S_print_MSG LS_PRMSG IF dw_pageretr.RowCount() = 0 THEN MessageBox('系统信息','没有可打印的单据!') RETURN END IF Long ll_mtrlid,ll_wrkGrpid ll_mtrlid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] OpenWithParm(w_workprice_print,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN LS_PRMSG.obj_dwNAME = 'dw_rp_workpricetable' LS_PRMSG.TAG_TEXT = '工价表' LS_PRMSG.FILTER_STRING = '' LS_PRMSG.retr_pram_falg = 15 LS_PRMSG.PAGECH_FLAG = 0 LS_PRMSG.retr_scid = dw_pageretr.Object.mtrlid[dw_pageretr.GetRow()] LS_PRMSG.retr_pramnmb = ll_wrkGrpid LS_PRMSG.rowcnt = dw_mx.RowCount() 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() end event event ue_f9;call super::ue_f9;IF NOT dw_edit_mode THEN RETURN Long uc_row,ll_ol_mtrlid uc_row = dw_uc.GetRow() dw_uc.AcceptText() ll_ol_mtrlid = dw_uc.Object.u_mtrldef_wpmtrlid[uc_row] 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 = 0 s_ch_tran.c_long = -1 s_ch_tran.f_long = -1 s_ch_tran.if_select_all = FALSE dw_uc.AcceptText() OpenWithParm(w_mtrldef_edit,s_ch_tran) //调用 s_mtrldef_array s_inscust s_inscust = Message.PowerObjectParm //接受返回结构 dw_uc.SetRedraw(FALSE) IF s_inscust.mtrlid[1] > 0 THEN dw_uc.Object.u_mtrldef_wpmtrlid[uc_row] = s_inscust.mtrlid[1] dw_uc.Object.u_mtrldef_a_mtrlcode[uc_row] = s_inscust.mtrlcode[1] dw_uc.Object.u_mtrldef_a_mtrlname[uc_row] = s_inscust.mtrlname[1] dw_uc.Object.u_mtrldef_a_mtrlmode[uc_row] = s_inscust.mtrlmode[1] wf_read_procode(ll_ol_mtrlid,s_inscust.mtrlid[1]) dw_uc.SetFocus() dw_uc.SetColumn('u_mtrldef_wprate') END IF dw_uc.SetRedraw(TRUE) END IF end event event ue_before_open;dw_child.settransobject(sqlca) dw_uc.settransobject(sqlca) if_ue_retr=true if_ue_filter=true if_ue_sort=true dw_mx = tab_1.tabpage_1.dw_1 dw_mxmx = tab_1.tabpage_2.dw_2 dw_mx.settransobject(sqlca) dw_mxmx.settransobject(sqlca) ds_copypaste = create datastore ds_copypaste.dataobject = dw_mx.dataobject ds_copypaste.settransobject(sqlca) end event event resize;call super::resize;tab_1.Width = THIS.Width - (3600 - 3543) tab_1.Height = THIS.Height - (2300 - 892) dw_mx.Width = THIS.Width - (3600 - 3506) dw_mx.Height = THIS.Height - (2300 - 780) dw_mxmx.Width = THIS.Width - (3600 - 3506) dw_mxmx.Height = THIS.Height - (2300 - 780) end event event ue_f10;call super::ue_f10;IF NOT dw_edit_mode THEN RETURN Long uc_row,ll_mtrlid,child_row string ls_status uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请先选择产品') RETURN END IF child_row = dw_mx.getrow() if child_row <= 0 then MessageBox('系统提示','请选择明细') RETURN END IF dw_uc.AcceptText() dw_mx.AcceptText() ll_mtrlid = dw_uc.Object.mtrlid[uc_row] IF NOT IsValid(w_configure_ch_zj) THEN s_edit_index_tran s_ch_tran s_ch_tran.c_long = ll_mtrlid OpenWithParm(w_configure_ch_zj,s_ch_tran) //调用 ls_status = Message.StringParm //接受返回结构 dw_mx.SetRedraw(FALSE) IF len(trim(ls_status)) > 0 THEN if ls_status = '[清空配置]' then ls_status = '' dw_mx.Object.u_sc_workprice_status[child_row] = ls_status dw_mx.SetFocus() dw_mx.SetColumn('dscrp') END IF dw_mx.SetRedraw(TRUE) END IF end event event ue_f6;call super::ue_f6;IF dw_edit_mode THEN RETURN Long ll_row,uc_row ll_row = dw_mx.GetRow() uc_row = dw_uc.GetRow() IF ll_row <= 0 THEN RETURN IF uc_row <= 0 THEN RETURN Long ll_mtrlid String ls_procode ll_mtrlid = dw_uc.Object.mtrlid[uc_row] ls_procode = dw_mx.Object.procode[ll_row] IF ll_mtrlid = 0 OR ls_procode = '' THEN RETURN s_edit_index_tran s_tran_his //传递参数使用 s_tran_his.b_long = ll_mtrlid s_tran_his.b_string = ls_procode OpenWithParm(w_workprice_change_his,s_tran_his) end event event ue_f12;call super::ue_f12;IF dw_edit_mode THEN RETURN Long ll_row ll_row = dw_mxmx.GetRow() IF ll_row <= 0 THEN RETURN Long ll_mtrlid String ls_procode ll_mtrlid = dw_mxmx.Object.u_sc_workprice_mx_mtrlid[ll_row] ls_procode = dw_mxmx.Object.u_sc_workprice_mx_procode[ll_row] IF ll_mtrlid = 0 OR ls_procode = '' THEN RETURN s_edit_index_tran s_tran_his //传递参数使用 s_tran_his.b_long = ll_mtrlid s_tran_his.b_string = ls_procode OpenWithParm(w_workprice_change_his,s_tran_his) end event event ue_deletemx;IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可用') RETURN END IF IF MessageBox ("询问","是否确定要删除当前细目记录?",Question!,YesNo! ) = 2 THEN RETURN IF dw_mx.GetRow() = 0 THEN MessageBox('提示','请选择删除的行对象!') RETURN END IF if_del = TRUE Long ll_i dw_mx.SetRedraw(FALSE) FOR ll_i = dw_mx.RowCount() TO 1 STEP -1 IF dw_mx.IsSelected(ll_i) THEN dw_mx.DeleteRow (ll_i) END IF NEXT dw_mx.SetRedraw(TRUE) if_del = FALSE IF dw_mx.RowCount() = 0 THEN dw_mx.InsertRow(0) dw_mx.TriggerEvent (RowFocusChanged!) end event event ue_addmx;IF NOT dw_edit_mode THEN MessageBox('系统提示','非编辑状态下不可用') RETURN END IF THIS.TriggerEvent('ue_f8') dw_mx.SetFocus() end event event ue_copyrow;IF NOT dw_edit_mode THEN RETURN Long ll_childrow ll_childrow = dw_mx.GetRow() IF ll_childrow = 0 THEN MessageBox('NO','请选择复制对象!') RETURN END IF Long ll_i long ll_j ll_j = 0 FOR ll_i = 1 TO dw_mx.RowCount() IF dw_mx.IsSelected(ll_i) THEN ll_j++ dw_mx.RowsCopy (ll_i,ll_i,Primary!,ds_copypaste,ll_j,Primary!) END IF NEXT //dw_mx.RowsCopy (ll_childrow,ll_childrow,Primary!,ds_copypaste,1,Primary!) FOR ll_i = 1 TO ds_copypaste.RowCount() ds_copypaste.RowsCopy (ll_i,ll_i,Primary!,dw_mx,ll_childrow + ll_i,Primary!) NEXT //ds_copypaste.RowsCopy (1,1,Primary!,dw_mx,ll_childrow + 1,Primary!) ds_copypaste.Reset() dw_mx.SelectRow(0,FALSE) dw_mx.SetRow(ll_childrow + 1) dw_mx.ScrollToRow(ll_childrow + 1) dw_mx.SelectRow(ll_childrow + 1,TRUE) end event event ue_insertmx;long ll_childrow,li_row ll_childrow = dw_mx.getrow() li_row = dw_mx.insertrow(ll_childrow) dw_mx.selectrow(0,false) dw_mx.setrow(li_row) dw_mx.scrolltorow(li_row) dw_mx.selectrow(li_row,true) 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+'( mtrlcode LIKE "%'+Trim(sle_usual_query.Text)+'%" )' ELSE obj_expr = obj_expr+'( mtrlcode 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_f7;call super::ue_f7;//IF Not dw_edit_mode THEN RETURN dw_mx.AcceptText() String ls_pricestr Long ll_row s_edit_index_tran s_tran_str ll_row = dw_mx.GetRow() IF ll_row <= 0 THEN RETURN ls_pricestr = dw_mx.Object.u_sc_workprice_pricestr[ll_row] s_tran_str.b_long = 0 // 0-工价,1-数量 s_tran_str.b_string = ls_pricestr OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str) IF Not dw_edit_mode THEN RETURN ls_pricestr = Message.StringParm dw_mx.Object.u_sc_workprice_pricestr[ll_row] = ls_pricestr dw_mx.AcceptText() end event type cb_func from w_publ_1ton_share_detail`cb_func within w_sc_workpricetable end type type cb_exit from w_publ_1ton_share_detail`cb_exit within w_sc_workpricetable integer x = 2542 end type type sle_usual_query from w_publ_1ton_share_detail`sle_usual_query within w_sc_workpricetable integer x = 2546 integer width = 667 end type type cb_retrieveall from w_publ_1ton_share_detail`cb_retrieveall within w_sc_workpricetable integer x = 2994 integer width = 142 end type type em_pagerowno from w_publ_1ton_share_detail`em_pagerowno within w_sc_workpricetable integer x = 2693 end type type dw_pageretr from w_publ_1ton_share_detail`dw_pageretr within w_sc_workpricetable integer x = 1733 integer width = 1810 integer height = 980 string title = "产品摘要内容" string dataobject = "dw_sc_workpricetable_index" end type type st_1 from w_publ_1ton_share_detail`st_1 within w_sc_workpricetable integer x = 2354 integer width = 187 string text = "编码含" alignment alignment = right! end type type cb_nextpage from w_publ_1ton_share_detail`cb_nextpage within w_sc_workpricetable integer x = 3136 end type type dw_uc from w_publ_1ton_share_detail`dw_uc within w_sc_workpricetable integer width = 1733 integer height = 980 string dataobject = "dw_sc_workpricetable_edit" end type event dw_uc::buttonclicked;call super::buttonclicked;IF NOT dw_edit_mode THEN RETURN IF row <= 0 THEN RETURN IF dwo.Name = 'b_mtrl' THEN PARENT.TriggerEvent('ue_f9') ELSEIF dwo.Name = 'b_cancel' THEN THIS.SetRedraw(FALSE) THIS.Object.u_mtrldef_wprate[row] = 0 THIS.Object.u_mtrldef_a_mtrlmode[row] = '' THIS.Object.u_mtrldef_a_mtrlname[row] = '' THIS.Object.u_mtrldef_a_mtrlcode[row] = '' THIS.Object.u_mtrldef_wpmtrlid[row] = 0 THIS.SetRedraw(TRUE) ELSEIF dwo.Name = 'b_cmpl' THEN wf_cmpl_price() END IF end event event dw_uc::dwnkey;PARENT.TriggerEvent('user_key') IF Key = KeyDownArrow! THEN RETURN 1 IF dw_edit_mode THEN IF dw_uc.GetColumnName() = 'u_mtrldef_wprate' AND Key = KeyEnter! THEN dw_child.SetFocus() dw_child.ScrollToRow(dw_child.RowCount()) dw_child.SetColumn ('procode') 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 event type gb_2 from w_publ_1ton_share_detail`gb_2 within w_sc_workpricetable integer x = 421 integer y = 500 integer width = 393 integer height = 192 string text = "产品摘要内容" end type type dw_child from w_publ_1ton_share_detail`dw_child within w_sc_workpricetable boolean visible = false integer y = 1280 integer width = 3543 integer height = 892 string title = "产品工序明细" string dataobject = "dw_sc_workpricetable_mx" boolean controlmenu = true end type event dw_child::dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_procode,ls_proname,ls_techlevel,ls_worklevel decimal ld_workprice Long ls_proid,ll_wrkgrpid Dec ls_workhour Long child_row Long ls_null SetNull(ls_null) IF dw_edit_mode THEN 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() = 'procode' THEN dw_child.AcceptText() child_row = dw_child.GetRow() ls_procode = dw_child.Object.procode[child_row] SELECT u_sc_workprocedure.proid, u_sc_workprocedure.name, u_sc_workprocedure.techlevel, u_sc_workprocedure.workhour, u_sc_workprocedure.worklevel, u_sc_workprocedure.workprice, u_sc_workprocedure.wrkgrpid INTO :ls_proid,:ls_proname,:ls_techlevel,:ls_workhour, :ls_worklevel,:ld_workprice,:ll_wrkgrpid FROM u_sc_workprocedure Where ( u_sc_workprocedure.code = :ls_procode); IF sqlca.SQLCode <> 0 THEN dw_child.Object.proid[child_row] = 0 dw_child.Object.u_sc_workprice_proname[child_row] = '' dw_child.Object.techlevel[child_row] = '' dw_child.Object.worklevel[child_row] = '' dw_child.Object.workhour[child_row] = 0 dw_child.Object.wrkgrpid[child_row] = 0 dw_child.Object.workprice[child_row] = 0 ELSE dw_child.Object.proid[child_row] = ls_proid dw_child.Object.u_sc_workprice_proname[child_row] = ls_proname dw_child.Object.techlevel[child_row] = ls_techlevel dw_child.Object.worklevel[child_row] = ls_worklevel dw_child.Object.workhour[child_row] = ls_workhour dw_child.Object.wrkgrpid[child_row] = ll_wrkgrpid dw_child.Object.workprice[child_row] = ld_workprice 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( ) = 'techlevel' 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 type cb_viewprint from w_publ_1ton_share_detail`cb_viewprint within w_sc_workpricetable integer x = 1920 end type type cb_print from w_publ_1ton_share_detail`cb_print within w_sc_workpricetable integer x = 1728 end type type cb_add from w_publ_1ton_share_detail`cb_add within w_sc_workpricetable boolean visible = false integer x = 279 integer y = 324 boolean enabled = false end type type cb_edit from w_publ_1ton_share_detail`cb_edit within w_sc_workpricetable end type event cb_edit::clicked;if not f_power_ind(1336) then messagebox(publ_operator,'你没有使用权限!') return end if string arg_msg='' long uc_row uc_row=dw_pageretr.getrow() if uc_row<=0 then messagebox('系统提示','请选定当前目标产品!') return end if if not dw_edit_mode then if u_wrkprice.updatebegin(dw_pageretr.object.mtrlid[uc_row],arg_msg)=0 then messagebox('Error!',arg_msg) return end if end if call super::clicked parent.triggerevent('refresh_interface') if dw_edit_mode then if dw_mx.rowcount()>0 then dw_mx.setfocus() dw_mx.SetColumn('procode') else parent.triggerevent('insert_childrow') dw_mx.setfocus() dw_mx.SetColumn('procode') end if end if end event type cb_delet from w_publ_1ton_share_detail`cb_delet within w_sc_workpricetable boolean visible = false integer x = 905 integer y = 204 string text = "撤审" string normalpicname = "caudit.BMP" end type event cb_delet::clicked;call super::clicked;IF NOT f_power_ind(21) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN IF NOT KeyDown(KeyControl!) THEN IF MessageBox ("IF","是否确定要"+THIS.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN END IF String arg_msg = '',ls_code Long pagerert_row,ls_id Long ll_mtrlid,ll_wrkGrpid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[pagerert_row] openwithparm(w_workprice_audit,ll_mtrlid) ll_wrkGrpid = message.doubleparm if ll_wrkGrpid = 0 then return IF u_wrkprice.c_auditing(ll_mtrlid,ll_wrkGrpid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'撤审成功!') wf_refresh_curuc(dw_pageretr.Object.mtrlid[pagerert_row]) parent.triggerevent('retrieve_childdw') END IF end event type cb_addzy from w_publ_1ton_share_detail`cb_addzy within w_sc_workpricetable integer x = 1221 integer width = 256 end type event cb_addzy::clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr menustr = "Text=复制工价表~tEvent=ue_copy" menustr = menustr + "|" + "Text=粘贴工价表~tEvent=ue_paste" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=设定工时~tEvent=ue_workhour_mod" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=审核工时~tEvent=ue_audit_gs" menustr = menustr + "|" + "Text=撤审工时~tEvent=ue_c_audit_gs" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=计算全套工价~tEvent=ue_addworkmx" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=预览全套工价~tEvent=ue_viewprint_all" menustr = menustr + "|" + "Text=打印全套工价~tEvent=ue_print_all" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=图片管理~tEvent=ue_fj_edit" menustr = menustr + "|" + "Text=图片查看~tEvent=ue_fj_view" 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_sc_workpricetable integer x = 686 end type event cb_auditing::clicked;call super::clicked;IF dw_edit_mode THEN RETURN String arg_msg Long ll_mtrlid,ll_wrkGrpid IF NOT f_power_ind(1337) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF MessageBox ("IF","是否确定要审核当前工价表吗?",Question!,YesNo! ) = 2 THEN RETURN Long pagerert_row pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[pagerert_row] OpenWithParm(w_workprice_audit,ll_mtrlid) ll_wrkGrpid = Message.DoubleParm IF ll_wrkGrpid = 0 THEN RETURN IF u_wrkprice.auditing(ll_mtrlid,ll_wrkGrpid,publ_operator,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'审核成功!') wf_refresh_curuc(dw_pageretr.Object.mtrlid[pagerert_row]) PARENT.TriggerEvent('retrieve_childdw') END IF end event type cb_xm from w_publ_1ton_share_detail`cb_xm within w_sc_workpricetable integer x = 1477 end type event cb_xm::clicked;// is_mx_menustr = '' IF dw_edit_mode THEN is_mx_menustr = is_mx_menustr + "|" + "Text=选常用公式设置工价公式~tEvent=ue_workpricestr_com_ch" is_mx_menustr = is_mx_menustr + "|" + "Text=-" is_mx_menustr = is_mx_menustr + "|" + "Text=批设置数量~tEvent=ue_p_workqty" is_mx_menustr = is_mx_menustr + "|" + "Text=批设置新单件工价~tEvent=ue_p_workprice" is_mx_menustr = is_mx_menustr + "|" + "Text=-" is_mx_menustr = is_mx_menustr + "|" + "Text=批设置工组~tEvent=ue_p_wrkgrpid" is_mx_menustr = is_mx_menustr + "|" + "Text=批设置工序~tEvent=ue_p_pro" END IF CALL Super::Clicked end event type cb_retrieve from w_publ_1ton_share_detail`cb_retrieve within w_sc_workpricetable end type type cb_xls from w_publ_1ton_share_detail`cb_xls within w_sc_workpricetable integer x = 2112 integer width = 279 end type type cb_help from w_publ_1ton_share_detail`cb_help within w_sc_workpricetable integer x = 2391 end type type cb_auditing_cancel from w_publ_1ton_share_detail`cb_auditing_cancel within w_sc_workpricetable integer x = 878 end type event cb_auditing_cancel::clicked;call super::clicked;IF NOT f_power_ind(1337) THEN MessageBox(publ_operator,'你没有使用权限!') RETURN END IF IF dw_edit_mode THEN RETURN IF NOT KeyDown(KeyControl!) THEN IF MessageBox ("IF","是否确定要"+THIS.Text+"当前单据吗?",Question!,YesNo! ) = 2 THEN RETURN END IF String arg_msg = '',ls_code Long pagerert_row,ls_id Long ll_mtrlid,ll_wrkGrpid pagerert_row = dw_pageretr.GetRow() IF pagerert_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF ll_mtrlid = dw_pageretr.Object.mtrlid[pagerert_row] openwithparm(w_workprice_audit,ll_mtrlid) ll_wrkGrpid = message.doubleparm if ll_wrkGrpid = 0 then return IF u_wrkprice.c_auditing(ll_mtrlid,ll_wrkGrpid,arg_msg,TRUE) = 0 THEN MessageBox('Error!',arg_msg) ELSE MessageBox(publ_operator,'撤审成功!') wf_refresh_curuc(dw_pageretr.Object.mtrlid[pagerert_row]) parent.triggerevent('retrieve_childdw') END IF end event type p_msg from w_publ_1ton_share_detail`p_msg within w_sc_workpricetable end type type p_help from w_publ_1ton_share_detail`p_help within w_sc_workpricetable end type type p_encl from w_publ_1ton_share_detail`p_encl within w_sc_workpricetable end type type p_other from w_publ_1ton_share_detail`p_other within w_sc_workpricetable end type type gb_3 from w_publ_1ton_share_detail`gb_3 within w_sc_workpricetable end type type ln_bar from w_publ_1ton_share_detail`ln_bar within w_sc_workpricetable end type type ln_bar2 from w_publ_1ton_share_detail`ln_bar2 within w_sc_workpricetable end type type r_bar from w_publ_1ton_share_detail`r_bar within w_sc_workpricetable end type type ln_1 from w_publ_1ton_share_detail`ln_1 within w_sc_workpricetable end type type ln_2 from w_publ_1ton_share_detail`ln_2 within w_sc_workpricetable end type type cb_save from uo_imflatbutton within w_sc_workpricetable integer x = 302 integer width = 192 integer height = 164 integer taborder = 280 boolean bringtotop = true boolean enabled = false string text = "保存&S" string normalpicname = "save.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;Long uc_row,i String arg_msg IF dw_edit_mode THEN dw_uc.AcceptText() dw_mx.AcceptText() uc_row = dw_uc.GetRow() IF uc_row <= 0 THEN MessageBox('系统提示','请选定当前目标单据!') RETURN END IF u_wrkprice.mtrlid = dw_uc.Object.mtrlid[uc_row] u_wrkprice.wpmtrlid = dw_uc.Object.u_mtrldef_wpmtrlid[uc_row] u_wrkprice.wprate = dw_uc.Object.u_mtrldef_wprate[uc_row] FOR i = 1 To dw_mx.RowCount() IF Trim(dw_mx.Object.procode[i]) <> '' And dw_mx.Object.auditflag[i] = 0 THEN IF u_wrkprice.acceptmx(dw_mx.Object.proid[i],& dw_mx.Object.procode[i],& dw_mx.Object.u_sc_workprice_proname[i],& dw_mx.Object.workqty[i],& dw_mx.Object.workprice[i],& dw_mx.Object.wrkgrpid[i],& Upper(dw_mx.Object.worklevel[i]),& Upper(dw_mx.Object.techlevel[i]),& dw_mx.Object.workhour[i],& dw_mx.Object.dscrp[i],& dw_mx.Object.lastflag[i],& dw_mx.Object.proorder[i],& 0,& dw_mx.Object.lsxtype[i],& dw_mx.Object.u_sc_workprice_ifstandard[i],& dw_mx.Object.u_sc_workprice_status[i],& dw_mx.Object.u_sc_workprice_ifjd[i],& dw_mx.Object.u_sc_workprice_pricestr[i],& dw_mx.Object.u_sc_workprice_stepstr[i],& arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF END IF NEXT IF u_wrkprice.Save(True,arg_msg) = 0 THEN MessageBox('Error!',arg_msg) RETURN END IF wf_addmx(u_wrkprice.mtrlid) MessageBox(publ_operator,'保存操作成功!') Long ll_row ll_row = dw_pageretr.GetRow() dw_pageretr.SelectRow(0,False) dw_pageretr.SelectRow(ll_row,True) wf_refresh_curuc(u_wrkprice.mtrlid) //刷新uc END IF dw_edit_mode = Not dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN dw_uc.SetFocus() END IF Parent.TriggerEvent('refresh_interface') Parent.TriggerEvent("retrieve_childdw") end event type cb_addmx_2 from uo_imflatbutton within w_sc_workpricetable integer x = 1029 integer width = 192 integer height = 164 integer taborder = 290 boolean enabled = false string text = "增工序" string normalpicname = "mx.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;dw_child.setfocus() PARENT.TriggerEvent("insert_childrow") end event type ddlb_mtrlorigin from uo_ddlb_mtrlorigin within w_sc_workpricetable integer x = 960 integer y = 192 integer width = 471 integer height = 480 integer taborder = 50 boolean bringtotop = true end type event selectionchanged;call super::selectionchanged;cur_mtrlorigin = THIS.uo_mtrlorigin PARENT.TriggerEvent('ue_usual_query_retr') end event type em_1 from editmask within w_sc_workpricetable integer x = 544 integer y = 188 integer width = 192 integer height = 84 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "2" alignment alignment = center! borderstyle borderstyle = stylelowered! string mask = "#0" boolean spin = true string minmax = "0~~5" end type type st_2 from statictext within w_sc_workpricetable integer x = 18 integer y = 204 integer width = 507 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "比例计算小数位精度" alignment alignment = center! boolean focusrectangle = false end type type ddlb_status from dropdownlistbox within w_sc_workpricetable integer x = 1829 integer y = 192 integer width = 361 integer height = 468 integer taborder = 60 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 cur_ifwrkprice = -1 ELSEIF Index = 2 THEN cur_flag = 0 cur_ifwrkprice = 0 ELSEIF Index = 3 THEN cur_flag = 0 cur_ifwrkprice = 1 ELSEIF Index = 4 THEN cur_flag = 1 cur_ifwrkprice = -1 END IF PARENT.TriggerEvent('retrieve_pageretr') end event type st_3 from statictext within w_sc_workpricetable integer x = 763 integer y = 208 integer width = 187 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 134217739 string text = "来 源" alignment alignment = right! boolean focusrectangle = false end type type ddlb_mtrlprp from uo_ddlb_mtrlprp within w_sc_workpricetable integer x = 1435 integer y = 192 integer width = 379 integer taborder = 60 boolean bringtotop = true end type event selectionchanged;call super::selectionchanged;cur_mtrlprp = THIS.uo_mtrlprp PARENT.TriggerEvent('ue_usual_query_retr') end event type tab_1 from tab within w_sc_workpricetable integer y = 1280 integer width = 3543 integer height = 892 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 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 = 3506 integer height = 780 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 integer width = 3506 integer height = 780 integer taborder = 20 string dataobject = "dw_sc_workpricetable_mx" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true end type event dwnkey;call super::dwnkey;PARENT.TriggerEvent('user_key') String ls_procode,ls_proname,ls_techlevel,ls_worklevel decimal ld_workprice Long ls_proid,ll_wrkgrpid Dec ls_workhour Long child_row Long ls_null SetNull(ls_null) IF dw_edit_mode THEN IF KeyDown(Keydownarrow!) THEN Long li_row IF dw_mx.GetRow() = dw_mx.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 IF dw_mx.GetColumnName() = 'procode' THEN dw_mx.AcceptText() child_row = dw_mx.GetRow() ls_procode = dw_mx.Object.procode[child_row] SELECT u_sc_workprocedure.proid, u_sc_workprocedure.name, u_sc_workprocedure.techlevel, u_sc_workprocedure.workhour, u_sc_workprocedure.worklevel, u_sc_workprocedure.workprice, u_sc_workprocedure.wrkgrpid INTO :ls_proid,:ls_proname,:ls_techlevel,:ls_workhour, :ls_worklevel,:ld_workprice,:ll_wrkgrpid FROM u_sc_workprocedure Where ( u_sc_workprocedure.code = :ls_procode); IF sqlca.SQLCode <> 0 THEN dw_mx.Object.proid[child_row] = 0 dw_mx.Object.u_sc_workprice_proname[child_row] = '' dw_mx.Object.techlevel[child_row] = '' dw_mx.Object.worklevel[child_row] = '' dw_mx.Object.workhour[child_row] = 0 dw_mx.Object.wrkgrpid[child_row] = 0 dw_mx.Object.workprice[child_row] = 0 ELSE dw_mx.Object.proid[child_row] = ls_proid dw_mx.Object.u_sc_workprice_proname[child_row] = ls_proname dw_mx.Object.techlevel[child_row] = ls_techlevel dw_mx.Object.worklevel[child_row] = ls_worklevel dw_mx.Object.workhour[child_row] = ls_workhour dw_mx.Object.wrkgrpid[child_row] = ll_wrkgrpid dw_mx.Object.workprice[child_row] = ld_workprice 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_mx.GetColumnName( ) = 'techlevel' AND dw_mx.GetRow() = dw_mx.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 //u_mtrldef_mtrlcode //u_mtrldef_unit //u_inwaremx_mtrlid //u_inwaremx_planprice //u_inwaremx_price //u_mtrldef_mtrlname end event event doubleclicked;call super::doubleclicked;IF dw_edit_mode THEN IF dwo.Name = 'u_sc_workprice_status' THEN Parent.GetParent().GetParent().TriggerEvent('ue_f10') ELSEIF dwo.Name = 'u_sc_workprice_pricestr' THEN Parent.GetParent().GetParent().TriggerEvent('ue_f7') ELSE Parent.GetParent().GetParent().TriggerEvent('ue_f8') END IF ELSE IF dwo.Name = 'u_sc_workprice_pricestr' THEN Parent.GetParent().GetParent().TriggerEvent('ue_f7') else Parent.GetParent().GetParent().TriggerEvent('ue_f6') end if END IF end event event rowfocuschanged;call super::rowfocuschanged;//IF dw_edit_mode THEN RETURN Long ll_i IF NOT dw_edit_mode THEN IF currentrow <= 0 THEN RETURN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) ELSE IF if_del THEN RETURN IF KeyDown(keycontrol!) THEN IF NOT THIS.IsSelected(currentrow) THEN THIS.SelectRow(currentrow,TRUE) if_changeselect = FALSE ELSE if_changeselect = TRUE END IF ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键 IF ll_lastrow = 0 THEN //上次没选中任何行 THIS.SelectRow(currentrow,TRUE) ll_lastrow = currentrow //ll_lastrow为实例变量,记录上次单击的行 ELSE THIS.SelectRow(0,FALSE) //全都不选中 IF currentrow > ll_lastrow THEN FOR ll_i = ll_lastrow TO currentrow THIS.SelectRow(ll_i,TRUE) NEXT ELSE FOR ll_i = ll_lastrow TO currentrow STEP -1 THIS.SelectRow(ll_i,TRUE) NEXT END IF END IF ELSE THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) ll_lastrow = currentrow END IF parent.triggerevent('ue_allowedit') END IF end event event clicked;call super::clicked;IF row > 0 AND dw_edit_mode THEN THIS.SetRow(row) IF KeyDown(keycontrol!) THEN IF if_changeselect THEN THIS.SelectRow(row,NOT THIS.IsSelected(row)) ELSE if_changeselect = TRUE END IF ll_lastrow = row ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键 // IF ll_lastrow = 0 THEN //上次没选中任何行 // THIS.SelectRow(row,TRUE) // ll_lastrow = currentrow //ll_lastrow为实例变量,记录上次单击的行 // ELSE // THIS.SelectRow(0,FALSE) //全都不选中 // IF currentrow > ll_lastrow THEN // FOR ll_i = ll_lastrow TO currentrow // THIS.SelectRow(ll_i,TRUE) // NEXT // ELSE // FOR ll_i = ll_lastrow TO currentrow STEP -1 // THIS.SelectRow(ll_i,TRUE) // NEXT // END IF // END IF ELSE THIS.SelectRow(0,FALSE) THIS.SelectRow(row,TRUE) ll_lastrow = row END IF END IF end event event rbuttondown;call super::rbuttondown;IF dw_edit_mode THEN Long ll_row,ll_column ll_row = THIS.GetRow() ll_column = THIS.GetColumn() IF ll_row <= 0 THEN RETURN IF ll_column <= 0 THEN RETURN IF Left( THIS.Describe( dwo.Name+ ".coltype"),4) = 'date' THEN s_calender_arg s_calender s_calender.PointerX = THIS.PointerX() s_calender.PointerY = THIS.PointerY() s_calender.X = THIS.X + PARENT.X s_calender.Y = THIS.Y + PARENT.Y OpenWithParm(w_calendar,s_calender) THIS.SetItem(ll_row,ll_column,id_date_selected) else if Left(dwo.TYPE,4) = 'text' then return m_dwchild_rbotton m_print m_print = CREATE m_dwchild_rbotton m_print.m_0.PopMenu( THIS.X + THIS.PointerX() + 50,tab_1.y + THIS.Y + THIS.PointerY() + 50) END IF END IF end event type tabpage_2 from userobject within tab_1 integer x = 18 integer y = 96 integer width = 3506 integer height = 780 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 = 3506 integer height = 780 integer taborder = 20 string dataobject = "dw_sc_workpricetable_mx_mx" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;IF currentrow <=0 THEN RETURN this.selectrow(0,false) this.selectrow(currentrow,true) end event event doubleclicked;call super::doubleclicked;IF NOT dw_edit_mode THEN PARENT.GetParent().GetParent().TriggerEvent('ue_f12') END IF end event type cb_1 from commandbutton within w_sc_workpricetable integer x = 485 integer y = 1280 integer width = 297 integer height = 80 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "设定工时" end type event clicked;PARENT.TriggerEvent('ue_workhour_mod') end event type cb_2 from commandbutton within w_sc_workpricetable integer x = 818 integer y = 1280 integer width = 384 integer height = 80 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "设定工序序号" end type event clicked;PARENT.TriggerEvent('ue_proorder_mod') end event