$PBExportHeader$w_sc_workprocedure.srw forward global type w_sc_workprocedure from w_publ_edit_index end type type cb_other from uo_imflatbutton within w_sc_workprocedure end type type ddlb_publ from dropdownlistbox within w_sc_workprocedure end type type st_2 from statictext within w_sc_workprocedure end type type cb_help from uo_imflatbutton within w_sc_workprocedure end type type cb_addmx from uo_imflatbutton within w_sc_workprocedure end type type cb_delmx from uo_imflatbutton within w_sc_workprocedure end type type ddlb_wrkgrpid from uo_ddlb_wrkgrpid within w_sc_workprocedure end type type tab_1 from tab within w_sc_workprocedure 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_workprocedure tabpage_1 tabpage_1 tabpage_2 tabpage_2 end type end forward global type w_sc_workprocedure from w_publ_edit_index integer width = 3611 integer height = 2380 string title = "工序" event ue_pset_workpricetable ( ) event ue_pmod_taskwork_workprice ( ) event ue_help ( ) event insert_childrow ( ) event ue_deletemx ( ) event retrieve_mx ( ) cb_other cb_other ddlb_publ ddlb_publ st_2 st_2 cb_help cb_help cb_addmx cb_addmx cb_delmx cb_delmx ddlb_wrkgrpid ddlb_wrkgrpid tab_1 tab_1 end type global w_sc_workprocedure w_sc_workprocedure type variables s_workprocedure INS_RT_STRU string oldcode,oldname,newcode,newname Boolean if_del = False Long ll_lastrow = 0 long cur_wrkgrpid = -1 int ins_ifch = 0 datawindow dw_mx,dw_replace end variables forward prototypes public function integer wf_lock_mx () public function integer wf_face_change () end prototypes event ue_pset_workpricetable();IF dw_edit_mode THEN MessageBox(publ_operator,'编辑状态下不可用') RETURN END IF IF NOT f_power_ind(1096,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long ll_row String ls_procode ll_row = dw_uc.GetRow() IF ll_row <= 0 THEN MessageBox(publ_operator,'请先选择工序') RETURN END IF ls_procode = dw_uc.Object.code[ll_row] s_edit_index_tran s_tran //翻页功能窗口 传递参数使用 s_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行 s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran.arg_pkid = 0 //目标定位PKID (备用) s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran.b_string = ls_procode OpenWithParm(w_sc_workprocedure_add_all,s_tran) end event event ue_pmod_taskwork_workprice();IF dw_edit_mode THEN MessageBox(publ_operator,'编辑状态下不可用') RETURN END IF IF NOT f_power_ind(1097,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long ll_row String ls_procode ll_row = dw_uc.GetRow() IF ll_row <= 0 THEN MessageBox(publ_operator,'请先选择工序') RETURN END IF ls_procode = dw_uc.Object.code[ll_row] s_edit_index_tran s_tran //翻页功能窗口 传递参数使用 s_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行 s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式 s_tran.arg_pkid = 0 //目标定位PKID (备用) s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选 s_tran.b_string = ls_procode OpenWithParm(w_sc_workprocedure_add_all,s_tran) end event event ue_help();Int i i = htmlhelpA(Handle(THIS), sys_help_chm, 0, THIS.Title+".htm") end event event insert_childrow();Long li_row If tab_1.SelectedTab = 1 Then li_row = dw_mx.InsertRow(0) dw_mx.ScrollToRow(li_row) dw_mx.SetColumn ('ifdft') Else li_row = dw_replace.InsertRow(0) dw_replace.object.opemp[li_row] = publ_operator dw_replace.object.opdate[li_row] = datetime(today(),now()) dw_replace.ScrollToRow(li_row) dw_replace.SetColumn ('replacestr') End If end event event ue_deletemx();If Not dw_edit_mode Then MessageBox('系统提示','非编辑状态下不可用') Return End If If MessageBox ("询问","是否确定要删除当前明细记录?",Question!,YesNo! ) = 2 Then Return if_del = True Long ll_i If tab_1.SelectedTab = 1 Then 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!) Else dw_replace.SetRedraw(False) For ll_i = dw_replace.RowCount() To 1 Step -1 If dw_replace.IsSelected(ll_i) Then dw_replace.DeleteRow (ll_i) End If Next dw_replace.SetRedraw(True) if_del = False If dw_replace.RowCount() = 0 Then dw_replace.InsertRow(0) dw_replace.TriggerEvent (RowFocusChanged!) End If end event event retrieve_mx();Long ll_row ,ll_proid ll_row = dw_index.GetRow() IF ll_row > 0 THEN ll_proid = dw_index.Object.proid[ll_row] dw_mx.SetRedraw(FALSE) dw_mx.Retrieve(ll_proid) dw_mx.SetRedraw(TRUE) IF dw_mx.RowCount() > 0 THEN dw_mx.SetRow(1) dw_mx.SelectRow(0,FALSE) dw_mx.SelectRow(1,TRUE) dw_mx.ScrollToRow(1) END IF dw_replace.SetRedraw(FALSE) dw_replace.Retrieve(ll_proid) dw_replace.SetRedraw(TRUE) IF dw_replace.RowCount() > 0 THEN dw_replace.SetRow(1) dw_replace.SelectRow(0,FALSE) dw_replace.SelectRow(1,TRUE) dw_replace.ScrollToRow(1) END IF ELSE dw_mx.Reset() dw_replace.Reset() END IF end event public function integer wf_lock_mx ();INT LS_INT long ls_row long uc_column_int uc_column_int = 3 IF dw_edit_mode THEN FOR LS_INT=1 TO uc_column_int dw_mx.SetTabOrder (LS_INT,LS_INT*10 ) NEXT FOR LS_INT=1 TO uc_column_int dw_replace.SetTabOrder (LS_INT,LS_INT*10 ) NEXT ELSE FOR LS_INT=1 TO uc_column_int dw_mx.SetTabOrder (LS_INT,0 ) NEXT FOR LS_INT=1 TO uc_column_int dw_replace.SetTabOrder (LS_INT,0 ) NEXT END IF RETURN 1 end function public function integer wf_face_change ();if dw_edit_mode then cb_func.enabled = false cb_retrieve.enabled = false cb_delet.enabled = false cb_print.enabled = false cb_choice.Enabled = FALSE sle_usual_query.Enabled = FALSE cb_edit.text = "放弃&E" cb_add.text = "保存&S" cb_edit.normalpicname = 'Undo.bmp' cb_add.normalpicname = 'Save.bmp' else cb_retrieve.enabled = true cb_delet.enabled = true cb_print.enabled = true cb_func.enabled = true sle_usual_query.Enabled = TRUE IF mode = 1 THEN cb_choice.Enabled = TRUE ELSE cb_choice.Enabled = FALSE END IF cb_edit.text = "修改&E" cb_add.text = "新建&S" cb_edit.normalpicname = 'OPEN.bmp' cb_add.normalpicname = 'new.bmp' end if cb_edit.of_init_draw() cb_add.of_init_draw() cb_edit.of_paint() cb_add.of_paint() cb_edit.triggerevent('ue_textchange') cb_add.triggerevent('ue_textchange') this.triggerevent('refresh_interface') wf_lock_mx() return 1 end function on w_sc_workprocedure.create int iCurrent call super::create this.cb_other=create cb_other this.ddlb_publ=create ddlb_publ this.st_2=create st_2 this.cb_help=create cb_help this.cb_addmx=create cb_addmx this.cb_delmx=create cb_delmx this.ddlb_wrkgrpid=create ddlb_wrkgrpid this.tab_1=create tab_1 iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_other this.Control[iCurrent+2]=this.ddlb_publ this.Control[iCurrent+3]=this.st_2 this.Control[iCurrent+4]=this.cb_help this.Control[iCurrent+5]=this.cb_addmx this.Control[iCurrent+6]=this.cb_delmx this.Control[iCurrent+7]=this.ddlb_wrkgrpid this.Control[iCurrent+8]=this.tab_1 end on on w_sc_workprocedure.destroy call super::destroy destroy(this.cb_other) destroy(this.ddlb_publ) destroy(this.st_2) destroy(this.cb_help) destroy(this.cb_addmx) destroy(this.cb_delmx) destroy(this.ddlb_wrkgrpid) destroy(this.tab_1) end on event ue_usual_query_retr;call super::ue_usual_query_retr;IF dw_edit_mode OR KeyDown(keyf4!) OR KeyDown(keyf5!) THEN RETURN 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 = ls_querystrpart + "(code like '%"+Trim(sle_usual_query.Text)+"%'" ls_querystrpart = ls_querystrpart + " or name like '%"+Trim(sle_usual_query.Text)+"%')" ELSE ls_querystrpart = ls_querystrpart + "(code like '"+Trim(sle_usual_query.Text)+"'" ls_querystrpart = ls_querystrpart + " or name 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_uc,ls_newselect,1) THIS.TriggerEvent('retrieve_uc') //注意必须有此句 end event event ue_usual_query_filt;call super::ue_usual_query_filt;if dw_edit_mode or keydown(keyf4!) or keydown(keyf5!) then return string obj_expr='' if trim(sle_usual_query.text)<>'' then IF POS(trim(sle_usual_query.text),'%')=0 THEN obj_expr=obj_expr+'( code LIKE "%'+trim(sle_usual_query.text)+'%" )' obj_expr=obj_expr+' or (name LIKE "%'+trim(sle_usual_query.text)+'%" )' ELSE obj_expr=obj_expr+'( code LIKE "'+trim(sle_usual_query.text)+'") ' obj_expr=obj_expr+' or (name LIKE "'+trim(sle_usual_query.text)+'" )' END IF end if dw_UC.setfilter(obj_expr) dw_UC.SetRedraw(False) dw_INDEX.SetRedraw(False) dw_UC.filter() if dw_index.rowcount()>=1 then dw_index.selectrow(0,false) dw_index.selectrow(1,true) end if dw_UC.SetRedraw(TRUE) dw_INDEX.SetRedraw(TRUE) end event event close;call super::close;CLOSEWITHRETURN(THIS,INS_RT_STRU) // 窗体级子定义结构变量,用于返回 end event event refresh_interface;call super::refresh_interface;cb_other.Enabled = NOT dw_edit_mode ddlb_publ.Enabled = NOT dw_edit_mode cb_addmx.Enabled = dw_edit_mode cb_delmx.Enabled = dw_edit_mode end event event retrieve_uc;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled cb_firstpage_enabled = cb_firstpage.Enabled cb_nextpage_enabled = cb_nextpage.Enabled cb_retrieveall_enabled = cb_retrieveall.Enabled cb_priorpage_enabled = cb_priorpage.Enabled cb_func_enabled = cb_func.Enabled cb_retrieve_enabled = cb_retrieve.Enabled cb_firstpage.Enabled = FALSE cb_nextpage.Enabled = FALSE cb_retrieveall.Enabled = FALSE cb_priorpage.Enabled = FALSE cb_func.Enabled = FALSE cb_retrieve.Enabled = FALSE dw_UC.SetRedraw(FALSE) dw_index.ShareDataOff() SetPointer(HourGlass!) Int li_ifpubl IF ddlb_publ.Text = '全部' THEN li_ifpubl = -1 ELSEIF ddlb_publ.Text = '公共' THEN li_ifpubl = 1 ELSE li_ifpubl = 0 END IF dw_UC.Retrieve(li_ifpubl,cur_wrkgrpid,ins_ifch) SetPointer(Arrow!) dw_UC.ShareData(dw_index) dw_UC.SetRedraw(TRUE) IF dw_index.RowCount() >= 1 THEN dw_index.SelectRow(0,FALSE) dw_index.SelectRow(1,TRUE) END IF cb_firstpage.Enabled = cb_firstpage_enabled cb_nextpage.Enabled = cb_nextpage_enabled cb_retrieveall.Enabled = cb_retrieveall_enabled cb_priorpage.Enabled = cb_priorpage_enabled cb_func.Enabled = cb_func_enabled cb_retrieve.Enabled = cb_retrieve_enabled end event event user_key;call super::user_key;IF KeyDown(KeyF1!) THEN THIS.TriggerEvent('ue_help') end if end event event open;This.TriggerEvent('ue_before_open') wf_movetocenter() if_ue_retr = True if_ue_filter = True if_ue_sort = True if_ue_sentdataout = True old_title = This.Title s_edit_index_tran s_tran //传递参数使用 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_select_all = s_tran.if_select_all cur_wrkgrpid = s_tran.f_long ins_ifch = mode If cur_wrkgrpid = 0 Then cur_wrkgrpid = ddlb_wrkgrpid.uo_wrkgrpid End If //choose case mode // case 0 // this.title = old_title+' 编辑模式 [f4-新建/保存 f5-编辑/放弃]' // case 1 // this.title = old_title+' 选择模式 [f4-新建/保存 f5-编辑/放弃]' //end choose dw_uc.SetTransObject (sqlca) dw_index.SetTransObject (sqlca) dw_index.rbutton_filter_use = True //右键查询功能开关 pkcolumndbtname = wf_get_pkcolumndbtname(dw_uc) //取第一列为关键字 ori_oldselect = dw_uc.Describe("datawindow.table.select") ls_newselect = ori_oldselect ds_curquery = Create datastore ds_curquery.DataObject = 'd_extr_find' ds_curquery.SetTransObject (sqlca) cbx_mlselect.Visible = False cbx_allselect.Visible = False If mode = 1 Then cb_mode_itfchg.TriggerEvent(Clicked!) wf_editindex_lockf() If Not retrieve_all And Trim(arg_string_code) <> '' Then sle_usual_query.Text = Trim(arg_string_code) This.TriggerEvent("ue_usual_query_retr") //修改ls_newselect,retrieve Else wf_retrieveuc(dw_uc,ls_newselect,1) //retrieve This.TriggerEvent('retrieve_uc') End If If retrieve_all And Trim(arg_string_code) <> '' Then This.TriggerEvent("ue_usual_query_filt") End If If if_select_all Then cbx_mlselect.Visible = True cbx_allselect.Visible = True Else cbx_mlselect.Visible = False cbx_allselect.Visible = False End If String ls_wrkGrpName_tmp,ls_wrkgrpcode_tmp,ls_wrkGrpName,ls_wrkgrpcode,ls_ddlbtext Select u_sc_wkp.wrkGrpName, u_sc_wkp.wrkgrpcode Into :ls_wrkGrpName_tmp, :ls_wrkgrpcode_tmp From u_sc_wkp Where u_sc_wkp.inuse = 1 And u_sc_wkp.wrkGrpid = :cur_wrkgrpid; If sqlca.SQLCode = 0 Then ls_wrkGrpName = ls_wrkGrpName_tmp ls_wrkgrpcode = ls_wrkgrpcode_tmp ls_ddlbtext = f_scode_name(cur_wrkgrpid,ls_wrkgrpcode,ls_wrkGrpName) ddlb_wrkgrpid.Text = ls_ddlbtext Else cur_wrkgrpid = -1 End If end event event ue_before_open;call super::ue_before_open;dw_mx = tab_1.tabpage_1.dw_1 dw_replace = tab_1.tabpage_2.dw_2 dw_mx.settransobject(sqlca) dw_replace.settransobject(sqlca) end event type cb_func from w_publ_edit_index`cb_func within w_sc_workprocedure integer x = 1403 end type type cb_exit from w_publ_edit_index`cb_exit within w_sc_workprocedure integer x = 2144 end type type sle_usual_query from w_publ_edit_index`sle_usual_query within w_sc_workprocedure integer x = 402 integer width = 754 end type type cb_nextpage from w_publ_edit_index`cb_nextpage within w_sc_workprocedure integer x = 3177 integer width = 165 end type type cb_priorpage from w_publ_edit_index`cb_priorpage within w_sc_workprocedure integer x = 3013 integer width = 165 end type type cb_firstpage from w_publ_edit_index`cb_firstpage within w_sc_workprocedure integer x = 2848 integer width = 165 end type type cb_retrieveall from w_publ_edit_index`cb_retrieveall within w_sc_workprocedure integer x = 2683 integer width = 165 end type type em_pagerowno from w_publ_edit_index`em_pagerowno within w_sc_workprocedure integer x = 2345 end type type st_pagerowno from w_publ_edit_index`st_pagerowno within w_sc_workprocedure end type type st_1 from w_publ_edit_index`st_1 within w_sc_workprocedure integer width = 370 long textcolor = 0 string text = "工序号|名称含" end type type cb_add from w_publ_edit_index`cb_add within w_sc_workprocedure integer x = 151 end type event cb_add::clicked;IF Not f_power_ind(33,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long ll_proid = 0 String errmsg = '' String ls_pricestr Int li_ifdft string ls_replacestr,ls_opemp datetime ldt_opdate Long cnt ,ll_i,cnt_dft cnt = 0 IF dw_edit_mode THEN dw_uc.AcceptText() dw_mx.AcceptText() IF dw_uc.GetNextModified(0, Primary!) = 0 And & dw_mx.GetNextModified(0, Primary!) = 0 and & dw_replace.GetNextModified(0, Primary!) = 0 and & dw_mx.DeletedCount() = 0 and dw_replace.DeletedCount() = 0 THEN MessageBox('系统提示','没有任何修改,不可以保存!') RETURN END IF dw_uc.Object.code[dw_uc.GetRow()] = Trim(dw_uc.Object.code[dw_uc.GetRow()]) dw_uc.Object.Name[dw_uc.GetRow()] = Trim(dw_uc.Object.Name[dw_uc.GetRow()]) dw_uc.Object.opemp[dw_uc.GetRow()] = publ_operator dw_uc.Object.opdate[dw_uc.GetRow()] = datetime(today(),now()) IF dw_uc.Object.code[dw_uc.GetRow()] = '' THEN MessageBox('系统提示','请输入工序编号!') dw_uc.SetFocus() dw_uc.SetColumn('code') RETURN END IF IF IsNull(dw_uc.Object.Name[dw_uc.GetRow()]) THEN MessageBox('系统提示','请输入工序名称!') RETURN END IF IF dw_uc.Object.wrkgrpid[dw_uc.GetRow()] = 0 THEN MessageBox('系统提示','请选择工组!') RETURN END IF FOR ll_i = 1 To dw_mx.RowCount() IF dw_mx.Object.ifdft[ll_i] = 1 THEN cnt_dft++ END IF NEXT IF cnt_dft > 1 THEN MessageBox('系统提示','明细不能设置多个默认,请检查!') RETURN END IF IF dw_uc.Object.proid[dw_uc.GetRow()] = 0 THEN ll_proid = f_sys_scidentity(0,"u_sc_workprocedure","proid",errmsg,True,id_sqlca) IF ll_proid < 0 THEN MessageBox("系统信息",errmsg) RETURN ELSE dw_uc.Object.proid[dw_uc.GetRow()] = ll_proid END IF ELSE ll_proid = dw_uc.Object.proid[dw_uc.GetRow()] newcode = dw_uc.Object.code[dw_uc.GetRow()] newname = dw_uc.Object.Name[dw_uc.GetRow()] String arg_msg f_setsysoplog('定义资料','工序修改,原:'+oldcode+','+oldname+'->新:'+newcode+','+newname,arg_msg,False) END IF DELETE u_sc_workprocedure_pricestrmx Where proid = :ll_proid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除原有明细失败') RETURN END IF cnt = 0 dw_mx.AcceptText() FOR ll_i = 1 To dw_mx.RowCount() ls_pricestr = dw_mx.Object.pricestr[ll_i] li_ifdft = dw_mx.Object.ifdft[ll_i] IF Trim(ls_pricestr) = '' THEN CONTINUE cnt++ INSERT INTO u_sc_workprocedure_pricestrmx (proid, printid, ifdft, pricestr) VALUES (:ll_proid, :cnt, :li_ifdft, :ls_pricestr); IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','插入明细失败,'+sqlca.SQLErrText) RETURN END IF NEXT DELETE u_sc_workprocedure_replacemx Where proid = :ll_proid; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除原有替代工序明细失败') RETURN END IF cnt = 0 dw_replace.AcceptText() FOR ll_i = 1 To dw_replace.RowCount() ls_replacestr = dw_replace.Object.replacestr[ll_i] ls_opemp = dw_replace.Object.opemp[ll_i] ldt_opdate = dw_replace.Object.opdate[ll_i] IF Trim(ls_replacestr) = '' THEN CONTINUE cnt++ INSERT INTO u_sc_workprocedure_replacemx (proid, printid, replacestr, opemp, opdate) VALUES (:ll_proid, :cnt, :ls_replacestr, :ls_opemp, :ldt_opdate); IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','插入替代工序明细失败,'+sqlca.SQLErrText) RETURN END IF NEXT END IF CALL Super::Clicked IF dw_edit_mode THEN dw_uc.SetColumn('code') dw_mx.Reset() dw_replace.reset() ELSE Parent.TriggerEvent('retrieve_mx') END IF end event type cb_edit from w_publ_edit_index`cb_edit within w_sc_workprocedure integer x = 343 end type event cb_edit::clicked;IF NOT f_power_ind(33,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF IF DW_UC.GetRow() <= 0 THEN MessageBox('系统提示','请选择目标行') RETURN END IF CALL SUPER::Clicked IF dw_edit_mode THEN oldcode = DW_UC.Object.code[DW_UC.GetRow()] oldname = DW_UC.Object.Name[DW_UC.GetRow()] DW_UC.SelectText(Len(String(DW_UC.Object.code[DW_UC.GetRow()]))+1,0) ELSE oldcode = '' oldname = '' PARENT.TriggerEvent('retrieve_mx') END IF PARENT.TriggerEvent("refresh_interface") end event type cb_delet from w_publ_edit_index`cb_delet within w_sc_workprocedure integer x = 535 end type event cb_delet::clicked;IF Not f_power_ind(33,sys_msg_pow) THEN MessageBox(publ_operator,sys_msg_pow) RETURN END IF Long cnt = 0,ls_row,ls_id String ls_proname ls_row = dw_uc.GetRow() IF ls_row = 0 THEN MessageBox(publ_operator,'没有删除对象!') RETURN END IF ls_id = dw_uc.Object.proid[ls_row] ls_proname = dw_uc.Object.code[ls_row] IF MessageBox ("if","是否确定要删除当前记录["+ls_proname+"]?(选择确定后记录将不可恢复)",question!,yesno! ) = 2 THEN RETURN END IF SELECT count(*) as cnt INTO :cnt FROM u_sc_workprice Where u_sc_workprice.proid = :ls_id ; IF sqlca.SQLCode <> 0 THEN MessageBox(publ_operator,'查询工序['+ls_proname+']是否使用操作失败!>>'+sqlca.SQLErrText) RETURN END IF IF cnt > 0 THEN MessageBox(publ_operator,'工序['+ls_proname+']已经使用,不可以删除!') RETURN END IF DELETE u_sc_workprocedure_pricestrmx Where proid = :ls_id; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除明细失败') RETURN END IF DELETE u_sc_workprocedure_replacemx Where proid = :ls_id; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除替代工序明细失败') RETURN END IF DELETE u_sc_workprocedure_replacemx Where proid = :ls_id; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除替代工序明细失败') RETURN END IF DELETE u_sc_workprocedure Where proid = :ls_id; IF sqlca.SQLCode <> 0 THEN ROLLBACK; MessageBox('Error','删除工序失败') RETURN END IF //IF dw_uc.Update() = -1 THEN // ROLLBACK; // MessageBox ("no","删除记录操作失败!",exclamation!,ok!) //ELSE COMMIT; Long ll_proid String arg_msg String ls_code, ls_name ll_proid = dw_uc.Object.proid[ls_row] ls_code = dw_uc.Object.code[ls_row] ls_name = dw_uc.Object.Name[ls_row] f_setsysoplog('定义资料','工序删除,工序ID:'+String(ll_proid)+',工序编号名称:'+ls_code+','+ls_name,arg_msg,True) //END IF dw_uc.SetRedraw (False) dw_uc.DeleteRow (ls_row) dw_uc.TriggerEvent (RowFocusChanged!) dw_uc.SetRedraw (True) wf_index_uc() end event type cb_choice from w_publ_edit_index`cb_choice within w_sc_workprocedure integer x = 1842 end type event cb_choice::clicked;call super::clicked;Long ROW,ls_i,chC = 0 String ls_pricestr Long ll_proid ROW = dw_index.GetRow() IF ROW <= 0 THEN MessageBox('系统提示','请先选择目标行!',StopSign!) RETURN END IF FOR ls_i = 1 To dw_index.RowCount() IF dw_index.IsSelected(ls_i) THEN chC++ INS_RT_STRU.wrkproid[chC] = dw_index.Object.proid[ls_i] INS_RT_STRU.wrkprocode[chC] = dw_index.Object.code[ls_i] INS_RT_STRU.wrkproname[chC] = dw_index.Object.Name[ls_i] INS_RT_STRU.worklevel[chC] = dw_index.Object.u_sc_workprocedure_worklevel[ls_i] INS_RT_STRU.techlevel[chC] = dw_index.Object.u_sc_workprocedure_techlevel[ls_i] INS_RT_STRU.workhour[chC] = dw_index.Object.u_sc_workprocedure_workhour[ls_i] INS_RT_STRU.workprice[chC] = dw_index.Object.workprice[ls_i] INS_RT_STRU.wrkGrid[chC] = dw_index.Object.wrkgrpid[ls_i] INS_RT_STRU.ifgroup[chC] = dw_index.Object.wrkgrpid[ls_i] INS_RT_STRU.ifreplace[chC] = dw_index.Object.u_sc_workprocedure_ifreplace[ls_i] INS_RT_STRU.worktype[chC] = dw_index.Object.u_sc_workprocedure_worktype[ls_i] INS_RT_STRU.hourpay[chC] = dw_index.Object.hourpay[ls_i] INS_RT_STRU.rpcode[chC] = dw_index.Object.u_sc_workprocedure_rpcode[ls_i] INS_RT_STRU.ifdftpg[chC] = dw_index.Object.u_sc_workprocedure_ifdftpg[ls_i] INS_RT_STRU.ifdftjj[chC] = dw_index.Object.u_sc_workprocedure_ifdftjj[ls_i] INS_RT_STRU.jdtype[chC] = dw_index.Object.u_sc_workgroup_jdtype[ls_i] ll_proid = dw_index.Object.proid[ls_i] SELECT top 1 pricestr INTO :ls_pricestr FROM u_sc_workprocedure_pricestrmx WHERE proid = :ll_proid And ifdft = 1; IF sqlca.SQLCode <> 0 THEN ls_pricestr = '' INS_RT_STRU.pricestr[chC] = ls_pricestr END IF NEXT IF chC = 0 THEN MessageBox('系统提示','请至少选择一个目标行!',StopSign!) RETURN END IF Close(Parent) end event type cb_cancel from w_publ_edit_index`cb_cancel within w_sc_workprocedure integer x = 539 integer y = 608 end type type cbx_mlselect from w_publ_edit_index`cbx_mlselect within w_sc_workprocedure integer x = 2871 end type type cbx_allselect from w_publ_edit_index`cbx_allselect within w_sc_workprocedure integer x = 3104 end type type cb_mode_itfchg_b from w_publ_edit_index`cb_mode_itfchg_b within w_sc_workprocedure end type type cb_mode_itfchg from w_publ_edit_index`cb_mode_itfchg within w_sc_workprocedure integer x = 1746 end type type gb_1 from w_publ_edit_index`gb_1 within w_sc_workprocedure end type type dw_uc from w_publ_edit_index`dw_uc within w_sc_workprocedure integer x = 2011 integer width = 1568 integer height = 1232 string dataobject = "dw_sc_workprocedure_edit" end type event dw_uc::itemchanged;call super::itemchanged;String ls_worktype Decimal ld_hourpay IF row > 0 THEN IF dwo.Name = 'u_sc_workprocedure_worktype' THEN This.AcceptText() ls_worktype = This.Object.u_sc_workprocedure_worktype[row] SELECT hourpay INTO :ld_hourpay FROM u_worktype Where worktype = :ls_worktype; IF sqlca.SQLCode <> 0 THEN ld_hourpay = 0 END IF This.Object.hourpay[row] = ld_hourpay END IF END IF end event type cb_retrieve from w_publ_edit_index`cb_retrieve within w_sc_workprocedure integer x = 0 end type type cb_print from w_publ_edit_index`cb_print within w_sc_workprocedure integer x = 1554 end type event cb_print::clicked;call super::clicked;S_print_MSG LS_PRMSG LS_PRMSG.obj_dwNAME='dw_sc_rp_workprocedure' //LS_PRMSG.SHARE_DW=DW_UC LS_PRMSG.TAG_TEXT='工序列表' LS_PRMSG.SETUP_FLAG=0 LS_PRMSG.PAGECH_FLAG=1 LS_PRMSG.retr_pram_falg = -1 Openwithparm(w_publ_preview,LS_PRMSG) end event type ln_bar from w_publ_edit_index`ln_bar within w_sc_workprocedure end type type ln_bar2 from w_publ_edit_index`ln_bar2 within w_sc_workprocedure end type type r_bar from w_publ_edit_index`r_bar within w_sc_workprocedure integer x = 3232 end type type ln_1 from w_publ_edit_index`ln_1 within w_sc_workprocedure end type type ln_2 from w_publ_edit_index`ln_2 within w_sc_workprocedure end type type dw_index from w_publ_edit_index`dw_index within w_sc_workprocedure integer width = 2002 integer height = 1996 string dataobject = "dw_sc_workprocedure_index" end type event dw_index::rowfocuschanged;call super::rowfocuschanged;IF NOT dw_edit_mode THEN PARENT.TriggerEvent('retrieve_mx') END IF end event type cb_other from uo_imflatbutton within w_sc_workprocedure integer x = 686 integer width = 279 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "其它功能" string normalpicname = "update.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu String menustr IF NOT dw_edit_mode THEN menustr = "Text=批量修改工价表工序单价~tEvent=ue_pset_workpricetable" menustr = menustr + "|" + "Text=-" menustr = menustr + "|" + "Text=批量修改计件单工序单价~tEvent=ue_pmod_taskwork_workprice" END IF IF Len(Trim(menustr)) <> 0 THEN dmPopupMenu = CREATE m_Dfc_Control_PopupMenu dmPopupMenu.mf_BuildMenu(THIS, menustr) dmPopupMenu.mf_PopMenu() DESTROY dmPopupMenu END IF end event type ddlb_publ from dropdownlistbox within w_sc_workprocedure integer x = 1339 integer y = 192 integer width = 549 integer height = 452 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;parent.triggerevent('retrieve_uc') end event type st_2 from statictext within w_sc_workprocedure integer x = 1184 integer y = 204 integer width = 151 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 string text = "类型" alignment alignment = center! boolean focusrectangle = false end type type cb_help from uo_imflatbutton within w_sc_workprocedure integer x = 1993 integer width = 151 integer height = 164 integer taborder = 120 boolean bringtotop = true string text = "帮助" string normalpicname = "help.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;PARENT.TriggerEvent('ue_help') end event type cb_addmx from uo_imflatbutton within w_sc_workprocedure integer x = 965 integer width = 219 integer height = 164 integer taborder = 50 boolean bringtotop = true boolean enabled = false string text = "增明细" string normalpicname = "mx1.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('insert_childrow') end event type cb_delmx from uo_imflatbutton within w_sc_workprocedure integer x = 1184 integer width = 219 integer height = 164 integer taborder = 60 boolean bringtotop = true boolean enabled = false string text = "删明细" string normalpicname = "mx2.BMP" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;parent.triggerevent('ue_deletemx') end event type ddlb_wrkgrpid from uo_ddlb_wrkgrpid within w_sc_workprocedure integer x = 1902 integer y = 192 integer width = 443 integer height = 820 integer taborder = 30 boolean bringtotop = true boolean sorted = false end type event constructor;call super::constructor;cur_wrkgrpid = this.uo_wrkgrpid end event event selectionchanged;call super::selectionchanged;cur_wrkgrpid = this.uo_wrkgrpid cb_retrieve.triggerevent(clicked!) end event type tab_1 from tab within w_sc_workprocedure integer x = 2002 integer y = 1532 integer width = 1568 integer height = 756 integer taborder = 170 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean raggedright = true boolean focusonbuttondown = true integer selectedtab = 1 tabpage_1 tabpage_1 tabpage_2 tabpage_2 end type on tab_1.create this.tabpage_1=create tabpage_1 this.tabpage_2=create tabpage_2 this.Control[]={this.tabpage_1,& this.tabpage_2} end on on tab_1.destroy destroy(this.tabpage_1) destroy(this.tabpage_2) end on type tabpage_1 from userobject within tab_1 integer x = 18 integer y = 96 integer width = 1531 integer height = 644 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 = 1531 integer height = 640 integer taborder = 20 string dataobject = "dw_sc_workprocedure_pricestrmx_edit" boolean hscrollbar = true boolean vscrollbar = true end type event doubleclicked;call super::doubleclicked;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.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) ls_pricestr = Message.StringParm dw_mx.Object.pricestr[ll_row] = ls_pricestr dw_mx.AcceptText() end event event rowfocuschanged;call super::rowfocuschanged;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 END IF end event event dwnkey;call super::dwnkey;If Not dw_edit_mode Then Return If KeyDown(keydownarrow!) Then If This.GetRow() = This.RowCount() Then Parent.GetParent().GetParent().TriggerEvent("insert_childrow") End If End If end event type tabpage_2 from userobject within tab_1 boolean visible = false integer x = 18 integer y = 96 integer width = 1531 integer height = 644 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 y = 48 integer width = 1531 integer height = 596 integer taborder = 20 string dataobject = "dw_sc_workprocedure_replacemx_edit" boolean hscrollbar = true boolean vscrollbar = true end type event rowfocuschanged;call super::rowfocuschanged;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 END IF end event event dwnkey;call super::dwnkey;If Not dw_edit_mode Then Return If KeyDown(keydownarrow!) Then If This.GetRow() = This.RowCount() Then Parent.GetParent().GetParent().TriggerEvent("insert_childrow") End If Else If This.GetColumnName( ) = 'replacestr' And This.GetRow() = This.RowCount() and Key = KeyEnter! Then Parent.GetParent().GetParent().TriggerEvent("insert_childrow") Return 1 End If End If end event