12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466 |
- $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)
- //<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
|