w_sc_workprocedure.srw 34 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466
  1. $PBExportHeader$w_sc_workprocedure.srw
  2. forward
  3. global type w_sc_workprocedure from w_publ_edit_index
  4. end type
  5. type cb_other from uo_imflatbutton within w_sc_workprocedure
  6. end type
  7. type ddlb_publ from dropdownlistbox within w_sc_workprocedure
  8. end type
  9. type st_2 from statictext within w_sc_workprocedure
  10. end type
  11. type cb_help from uo_imflatbutton within w_sc_workprocedure
  12. end type
  13. type cb_addmx from uo_imflatbutton within w_sc_workprocedure
  14. end type
  15. type cb_delmx from uo_imflatbutton within w_sc_workprocedure
  16. end type
  17. type ddlb_wrkgrpid from uo_ddlb_wrkgrpid within w_sc_workprocedure
  18. end type
  19. type tab_1 from tab within w_sc_workprocedure
  20. end type
  21. type tabpage_1 from userobject within tab_1
  22. end type
  23. type dw_1 from u_dw_rbtnfilter within tabpage_1
  24. end type
  25. type tabpage_1 from userobject within tab_1
  26. dw_1 dw_1
  27. end type
  28. type tabpage_2 from userobject within tab_1
  29. end type
  30. type dw_2 from u_dw_rbtnfilter within tabpage_2
  31. end type
  32. type tabpage_2 from userobject within tab_1
  33. dw_2 dw_2
  34. end type
  35. type tab_1 from tab within w_sc_workprocedure
  36. tabpage_1 tabpage_1
  37. tabpage_2 tabpage_2
  38. end type
  39. end forward
  40. global type w_sc_workprocedure from w_publ_edit_index
  41. integer width = 3611
  42. integer height = 2380
  43. string title = "工序"
  44. event ue_pset_workpricetable ( )
  45. event ue_pmod_taskwork_workprice ( )
  46. event ue_help ( )
  47. event insert_childrow ( )
  48. event ue_deletemx ( )
  49. event retrieve_mx ( )
  50. cb_other cb_other
  51. ddlb_publ ddlb_publ
  52. st_2 st_2
  53. cb_help cb_help
  54. cb_addmx cb_addmx
  55. cb_delmx cb_delmx
  56. ddlb_wrkgrpid ddlb_wrkgrpid
  57. tab_1 tab_1
  58. end type
  59. global w_sc_workprocedure w_sc_workprocedure
  60. type variables
  61. s_workprocedure INS_RT_STRU
  62. string oldcode,oldname,newcode,newname
  63. Boolean if_del = False
  64. Long ll_lastrow = 0
  65. long cur_wrkgrpid = -1
  66. int ins_ifch = 0
  67. datawindow dw_mx,dw_replace
  68. end variables
  69. forward prototypes
  70. public function integer wf_lock_mx ()
  71. public function integer wf_face_change ()
  72. end prototypes
  73. event ue_pset_workpricetable();IF dw_edit_mode THEN
  74. MessageBox(publ_operator,'编辑状态下不可用')
  75. RETURN
  76. END IF
  77. IF NOT f_power_ind(1096,sys_msg_pow) THEN
  78. MessageBox(publ_operator,sys_msg_pow)
  79. RETURN
  80. END IF
  81. Long ll_row
  82. String ls_procode
  83. ll_row = dw_uc.GetRow()
  84. IF ll_row <= 0 THEN
  85. MessageBox(publ_operator,'请先选择工序')
  86. RETURN
  87. END IF
  88. ls_procode = dw_uc.Object.code[ll_row]
  89. s_edit_index_tran s_tran //翻页功能窗口 传递参数使用
  90. s_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  91. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  92. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  93. s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选
  94. s_tran.b_string = ls_procode
  95. OpenWithParm(w_sc_workprocedure_add_all,s_tran)
  96. end event
  97. event ue_pmod_taskwork_workprice();IF dw_edit_mode THEN
  98. MessageBox(publ_operator,'编辑状态下不可用')
  99. RETURN
  100. END IF
  101. IF NOT f_power_ind(1097,sys_msg_pow) THEN
  102. MessageBox(publ_operator,sys_msg_pow)
  103. RETURN
  104. END IF
  105. Long ll_row
  106. String ls_procode
  107. ll_row = dw_uc.GetRow()
  108. IF ll_row <= 0 THEN
  109. MessageBox(publ_operator,'请先选择工序')
  110. RETURN
  111. END IF
  112. ls_procode = dw_uc.Object.code[ll_row]
  113. s_edit_index_tran s_tran //翻页功能窗口 传递参数使用
  114. s_tran.if_retrieve_all = FALSE //是否一次RETRIEVE所有行
  115. s_tran.work_mode = 0 //0-单纯编辑模式, 1-选择模式
  116. s_tran.arg_pkid = 0 //目标定位PKID (备用)
  117. s_tran.arg_string_code = '' //查询列部分内容,用于初步筛选
  118. s_tran.b_string = ls_procode
  119. OpenWithParm(w_sc_workprocedure_add_all,s_tran)
  120. end event
  121. event ue_help();Int i
  122. i = htmlhelpA(Handle(THIS), sys_help_chm, 0, THIS.Title+".htm")
  123. end event
  124. event insert_childrow();Long li_row
  125. If tab_1.SelectedTab = 1 Then
  126. li_row = dw_mx.InsertRow(0)
  127. dw_mx.ScrollToRow(li_row)
  128. dw_mx.SetColumn ('ifdft')
  129. Else
  130. li_row = dw_replace.InsertRow(0)
  131. dw_replace.object.opemp[li_row] = publ_operator
  132. dw_replace.object.opdate[li_row] = datetime(today(),now())
  133. dw_replace.ScrollToRow(li_row)
  134. dw_replace.SetColumn ('replacestr')
  135. End If
  136. end event
  137. event ue_deletemx();If Not dw_edit_mode Then
  138. MessageBox('系统提示','非编辑状态下不可用')
  139. Return
  140. End If
  141. If MessageBox ("询问","是否确定要删除当前明细记录?",Question!,YesNo! ) = 2 Then Return
  142. if_del = True
  143. Long ll_i
  144. If tab_1.SelectedTab = 1 Then
  145. dw_mx.SetRedraw(False)
  146. For ll_i = dw_mx.RowCount() To 1 Step -1
  147. If dw_mx.IsSelected(ll_i) Then
  148. dw_mx.DeleteRow (ll_i)
  149. End If
  150. Next
  151. dw_mx.SetRedraw(True)
  152. if_del = False
  153. If dw_mx.RowCount() = 0 Then dw_mx.InsertRow(0)
  154. dw_mx.TriggerEvent (RowFocusChanged!)
  155. Else
  156. dw_replace.SetRedraw(False)
  157. For ll_i = dw_replace.RowCount() To 1 Step -1
  158. If dw_replace.IsSelected(ll_i) Then
  159. dw_replace.DeleteRow (ll_i)
  160. End If
  161. Next
  162. dw_replace.SetRedraw(True)
  163. if_del = False
  164. If dw_replace.RowCount() = 0 Then dw_replace.InsertRow(0)
  165. dw_replace.TriggerEvent (RowFocusChanged!)
  166. End If
  167. end event
  168. event retrieve_mx();Long ll_row ,ll_proid
  169. ll_row = dw_index.GetRow()
  170. IF ll_row > 0 THEN
  171. ll_proid = dw_index.Object.proid[ll_row]
  172. dw_mx.SetRedraw(FALSE)
  173. dw_mx.Retrieve(ll_proid)
  174. dw_mx.SetRedraw(TRUE)
  175. IF dw_mx.RowCount() > 0 THEN
  176. dw_mx.SetRow(1)
  177. dw_mx.SelectRow(0,FALSE)
  178. dw_mx.SelectRow(1,TRUE)
  179. dw_mx.ScrollToRow(1)
  180. END IF
  181. dw_replace.SetRedraw(FALSE)
  182. dw_replace.Retrieve(ll_proid)
  183. dw_replace.SetRedraw(TRUE)
  184. IF dw_replace.RowCount() > 0 THEN
  185. dw_replace.SetRow(1)
  186. dw_replace.SelectRow(0,FALSE)
  187. dw_replace.SelectRow(1,TRUE)
  188. dw_replace.ScrollToRow(1)
  189. END IF
  190. ELSE
  191. dw_mx.Reset()
  192. dw_replace.Reset()
  193. END IF
  194. end event
  195. public function integer wf_lock_mx ();INT LS_INT
  196. long ls_row
  197. long uc_column_int
  198. uc_column_int = 3
  199. IF dw_edit_mode THEN
  200. FOR LS_INT=1 TO uc_column_int
  201. dw_mx.SetTabOrder (LS_INT,LS_INT*10 )
  202. NEXT
  203. FOR LS_INT=1 TO uc_column_int
  204. dw_replace.SetTabOrder (LS_INT,LS_INT*10 )
  205. NEXT
  206. ELSE
  207. FOR LS_INT=1 TO uc_column_int
  208. dw_mx.SetTabOrder (LS_INT,0 )
  209. NEXT
  210. FOR LS_INT=1 TO uc_column_int
  211. dw_replace.SetTabOrder (LS_INT,0 )
  212. NEXT
  213. END IF
  214. RETURN 1
  215. end function
  216. public function integer wf_face_change ();if dw_edit_mode then
  217. cb_func.enabled = false
  218. cb_retrieve.enabled = false
  219. cb_delet.enabled = false
  220. cb_print.enabled = false
  221. cb_choice.Enabled = FALSE
  222. sle_usual_query.Enabled = FALSE
  223. cb_edit.text = "放弃&E"
  224. cb_add.text = "保存&S"
  225. cb_edit.normalpicname = 'Undo.bmp'
  226. cb_add.normalpicname = 'Save.bmp'
  227. else
  228. cb_retrieve.enabled = true
  229. cb_delet.enabled = true
  230. cb_print.enabled = true
  231. cb_func.enabled = true
  232. sle_usual_query.Enabled = TRUE
  233. IF mode = 1 THEN
  234. cb_choice.Enabled = TRUE
  235. ELSE
  236. cb_choice.Enabled = FALSE
  237. END IF
  238. cb_edit.text = "修改&E"
  239. cb_add.text = "新建&S"
  240. cb_edit.normalpicname = 'OPEN.bmp'
  241. cb_add.normalpicname = 'new.bmp'
  242. end if
  243. cb_edit.of_init_draw()
  244. cb_add.of_init_draw()
  245. cb_edit.of_paint()
  246. cb_add.of_paint()
  247. cb_edit.triggerevent('ue_textchange')
  248. cb_add.triggerevent('ue_textchange')
  249. this.triggerevent('refresh_interface')
  250. wf_lock_mx()
  251. return 1
  252. end function
  253. on w_sc_workprocedure.create
  254. int iCurrent
  255. call super::create
  256. this.cb_other=create cb_other
  257. this.ddlb_publ=create ddlb_publ
  258. this.st_2=create st_2
  259. this.cb_help=create cb_help
  260. this.cb_addmx=create cb_addmx
  261. this.cb_delmx=create cb_delmx
  262. this.ddlb_wrkgrpid=create ddlb_wrkgrpid
  263. this.tab_1=create tab_1
  264. iCurrent=UpperBound(this.Control)
  265. this.Control[iCurrent+1]=this.cb_other
  266. this.Control[iCurrent+2]=this.ddlb_publ
  267. this.Control[iCurrent+3]=this.st_2
  268. this.Control[iCurrent+4]=this.cb_help
  269. this.Control[iCurrent+5]=this.cb_addmx
  270. this.Control[iCurrent+6]=this.cb_delmx
  271. this.Control[iCurrent+7]=this.ddlb_wrkgrpid
  272. this.Control[iCurrent+8]=this.tab_1
  273. end on
  274. on w_sc_workprocedure.destroy
  275. call super::destroy
  276. destroy(this.cb_other)
  277. destroy(this.ddlb_publ)
  278. destroy(this.st_2)
  279. destroy(this.cb_help)
  280. destroy(this.cb_addmx)
  281. destroy(this.cb_delmx)
  282. destroy(this.ddlb_wrkgrpid)
  283. destroy(this.tab_1)
  284. end on
  285. event ue_usual_query_retr;call super::ue_usual_query_retr;IF dw_edit_mode OR KeyDown(keyf4!) OR KeyDown(keyf5!) THEN RETURN
  286. String ls_querystrpart = ''
  287. ls_newselect = Lower(ori_oldselect)
  288. IF Trim(sle_usual_query.Text) <> '' THEN
  289. IF Pos(Trim(sle_usual_query.Text),'%') = 0 THEN
  290. ls_querystrpart = ls_querystrpart + "(code like '%"+Trim(sle_usual_query.Text)+"%'"
  291. ls_querystrpart = ls_querystrpart + " or name like '%"+Trim(sle_usual_query.Text)+"%')"
  292. ELSE
  293. ls_querystrpart = ls_querystrpart + "(code like '"+Trim(sle_usual_query.Text)+"'"
  294. ls_querystrpart = ls_querystrpart + " or name like '"+Trim(sle_usual_query.Text)+"')"
  295. END IF
  296. IF Pos(ls_newselect," where ") <> 0 THEN
  297. ls_newselect = ls_newselect+" AND ("+ls_querystrpart+')'
  298. ELSE
  299. ls_newselect = ls_newselect+" where ("+ls_querystrpart+')'
  300. END IF
  301. END IF
  302. wf_retrieveuc(dw_uc,ls_newselect,1)
  303. THIS.TriggerEvent('retrieve_uc') //注意必须有此句
  304. end event
  305. event ue_usual_query_filt;call super::ue_usual_query_filt;if dw_edit_mode or keydown(keyf4!) or keydown(keyf5!) then return
  306. string obj_expr=''
  307. if trim(sle_usual_query.text)<>'' then
  308. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  309. obj_expr=obj_expr+'( code LIKE "%'+trim(sle_usual_query.text)+'%" )'
  310. obj_expr=obj_expr+' or (name LIKE "%'+trim(sle_usual_query.text)+'%" )'
  311. ELSE
  312. obj_expr=obj_expr+'( code LIKE "'+trim(sle_usual_query.text)+'") '
  313. obj_expr=obj_expr+' or (name LIKE "'+trim(sle_usual_query.text)+'" )'
  314. END IF
  315. end if
  316. dw_UC.setfilter(obj_expr)
  317. dw_UC.SetRedraw(False)
  318. dw_INDEX.SetRedraw(False)
  319. dw_UC.filter()
  320. if dw_index.rowcount()>=1 then
  321. dw_index.selectrow(0,false)
  322. dw_index.selectrow(1,true)
  323. end if
  324. dw_UC.SetRedraw(TRUE)
  325. dw_INDEX.SetRedraw(TRUE)
  326. end event
  327. event close;call super::close;CLOSEWITHRETURN(THIS,INS_RT_STRU)
  328. //<INS_RT_STRU> 窗体级子定义结构变量,用于返回
  329. end event
  330. event refresh_interface;call super::refresh_interface;cb_other.Enabled = NOT dw_edit_mode
  331. ddlb_publ.Enabled = NOT dw_edit_mode
  332. cb_addmx.Enabled = dw_edit_mode
  333. cb_delmx.Enabled = dw_edit_mode
  334. end event
  335. event retrieve_uc;Boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  336. Boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  337. cb_firstpage_enabled = cb_firstpage.Enabled
  338. cb_nextpage_enabled = cb_nextpage.Enabled
  339. cb_retrieveall_enabled = cb_retrieveall.Enabled
  340. cb_priorpage_enabled = cb_priorpage.Enabled
  341. cb_func_enabled = cb_func.Enabled
  342. cb_retrieve_enabled = cb_retrieve.Enabled
  343. cb_firstpage.Enabled = FALSE
  344. cb_nextpage.Enabled = FALSE
  345. cb_retrieveall.Enabled = FALSE
  346. cb_priorpage.Enabled = FALSE
  347. cb_func.Enabled = FALSE
  348. cb_retrieve.Enabled = FALSE
  349. dw_UC.SetRedraw(FALSE)
  350. dw_index.ShareDataOff()
  351. SetPointer(HourGlass!)
  352. Int li_ifpubl
  353. IF ddlb_publ.Text = '全部' THEN
  354. li_ifpubl = -1
  355. ELSEIF ddlb_publ.Text = '公共' THEN
  356. li_ifpubl = 1
  357. ELSE
  358. li_ifpubl = 0
  359. END IF
  360. dw_UC.Retrieve(li_ifpubl,cur_wrkgrpid,ins_ifch)
  361. SetPointer(Arrow!)
  362. dw_UC.ShareData(dw_index)
  363. dw_UC.SetRedraw(TRUE)
  364. IF dw_index.RowCount() >= 1 THEN
  365. dw_index.SelectRow(0,FALSE)
  366. dw_index.SelectRow(1,TRUE)
  367. END IF
  368. cb_firstpage.Enabled = cb_firstpage_enabled
  369. cb_nextpage.Enabled = cb_nextpage_enabled
  370. cb_retrieveall.Enabled = cb_retrieveall_enabled
  371. cb_priorpage.Enabled = cb_priorpage_enabled
  372. cb_func.Enabled = cb_func_enabled
  373. cb_retrieve.Enabled = cb_retrieve_enabled
  374. end event
  375. event user_key;call super::user_key;IF KeyDown(KeyF1!) THEN
  376. THIS.TriggerEvent('ue_help')
  377. end if
  378. end event
  379. event open;This.TriggerEvent('ue_before_open')
  380. wf_movetocenter()
  381. if_ue_retr = True
  382. if_ue_filter = True
  383. if_ue_sort = True
  384. if_ue_sentdataout = True
  385. old_title = This.Title
  386. s_edit_index_tran s_tran //传递参数使用
  387. s_tran = Message.PowerObjectParm
  388. If Not IsNull(s_tran) Then
  389. retrieve_all = s_tran.if_retrieve_all
  390. mode = s_tran.work_mode
  391. arg_pkid = s_tran.arg_pkid
  392. arg_string_code = s_tran.arg_string_code
  393. if_select_all = s_tran.if_select_all
  394. cur_wrkgrpid = s_tran.f_long
  395. ins_ifch = mode
  396. If cur_wrkgrpid = 0 Then cur_wrkgrpid = ddlb_wrkgrpid.uo_wrkgrpid
  397. End If
  398. //choose case mode
  399. // case 0
  400. // this.title = old_title+' 编辑模式 [f4-新建/保存 f5-编辑/放弃]'
  401. // case 1
  402. // this.title = old_title+' 选择模式 [f4-新建/保存 f5-编辑/放弃]'
  403. //end choose
  404. dw_uc.SetTransObject (sqlca)
  405. dw_index.SetTransObject (sqlca)
  406. dw_index.rbutton_filter_use = True //右键查询功能开关
  407. pkcolumndbtname = wf_get_pkcolumndbtname(dw_uc) //取第一列为关键字
  408. ori_oldselect = dw_uc.Describe("datawindow.table.select")
  409. ls_newselect = ori_oldselect
  410. ds_curquery = Create datastore
  411. ds_curquery.DataObject = 'd_extr_find'
  412. ds_curquery.SetTransObject (sqlca)
  413. cbx_mlselect.Visible = False
  414. cbx_allselect.Visible = False
  415. If mode = 1 Then cb_mode_itfchg.TriggerEvent(Clicked!)
  416. wf_editindex_lockf()
  417. If Not retrieve_all And Trim(arg_string_code) <> '' Then
  418. sle_usual_query.Text = Trim(arg_string_code)
  419. This.TriggerEvent("ue_usual_query_retr") //修改ls_newselect,retrieve
  420. Else
  421. wf_retrieveuc(dw_uc,ls_newselect,1) //retrieve
  422. This.TriggerEvent('retrieve_uc')
  423. End If
  424. If retrieve_all And Trim(arg_string_code) <> '' Then
  425. This.TriggerEvent("ue_usual_query_filt")
  426. End If
  427. If if_select_all Then
  428. cbx_mlselect.Visible = True
  429. cbx_allselect.Visible = True
  430. Else
  431. cbx_mlselect.Visible = False
  432. cbx_allselect.Visible = False
  433. End If
  434. String ls_wrkGrpName_tmp,ls_wrkgrpcode_tmp,ls_wrkGrpName,ls_wrkgrpcode,ls_ddlbtext
  435. Select u_sc_wkp.wrkGrpName,
  436. u_sc_wkp.wrkgrpcode
  437. Into :ls_wrkGrpName_tmp,
  438. :ls_wrkgrpcode_tmp
  439. From u_sc_wkp
  440. Where u_sc_wkp.inuse = 1
  441. And u_sc_wkp.wrkGrpid = :cur_wrkgrpid;
  442. If sqlca.SQLCode = 0 Then
  443. ls_wrkGrpName = ls_wrkGrpName_tmp
  444. ls_wrkgrpcode = ls_wrkgrpcode_tmp
  445. ls_ddlbtext = f_scode_name(cur_wrkgrpid,ls_wrkgrpcode,ls_wrkGrpName)
  446. ddlb_wrkgrpid.Text = ls_ddlbtext
  447. Else
  448. cur_wrkgrpid = -1
  449. End If
  450. end event
  451. event ue_before_open;call super::ue_before_open;dw_mx = tab_1.tabpage_1.dw_1
  452. dw_replace = tab_1.tabpage_2.dw_2
  453. dw_mx.settransobject(sqlca)
  454. dw_replace.settransobject(sqlca)
  455. end event
  456. type cb_func from w_publ_edit_index`cb_func within w_sc_workprocedure
  457. integer x = 1403
  458. end type
  459. type cb_exit from w_publ_edit_index`cb_exit within w_sc_workprocedure
  460. integer x = 2144
  461. end type
  462. type sle_usual_query from w_publ_edit_index`sle_usual_query within w_sc_workprocedure
  463. integer x = 402
  464. integer width = 754
  465. end type
  466. type cb_nextpage from w_publ_edit_index`cb_nextpage within w_sc_workprocedure
  467. integer x = 3177
  468. integer width = 165
  469. end type
  470. type cb_priorpage from w_publ_edit_index`cb_priorpage within w_sc_workprocedure
  471. integer x = 3013
  472. integer width = 165
  473. end type
  474. type cb_firstpage from w_publ_edit_index`cb_firstpage within w_sc_workprocedure
  475. integer x = 2848
  476. integer width = 165
  477. end type
  478. type cb_retrieveall from w_publ_edit_index`cb_retrieveall within w_sc_workprocedure
  479. integer x = 2683
  480. integer width = 165
  481. end type
  482. type em_pagerowno from w_publ_edit_index`em_pagerowno within w_sc_workprocedure
  483. integer x = 2345
  484. end type
  485. type st_pagerowno from w_publ_edit_index`st_pagerowno within w_sc_workprocedure
  486. end type
  487. type st_1 from w_publ_edit_index`st_1 within w_sc_workprocedure
  488. integer width = 370
  489. long textcolor = 0
  490. string text = "工序号|名称含"
  491. end type
  492. type cb_add from w_publ_edit_index`cb_add within w_sc_workprocedure
  493. integer x = 151
  494. end type
  495. event cb_add::clicked;IF Not f_power_ind(33,sys_msg_pow) THEN
  496. MessageBox(publ_operator,sys_msg_pow)
  497. RETURN
  498. END IF
  499. Long ll_proid = 0
  500. String errmsg = ''
  501. String ls_pricestr
  502. Int li_ifdft
  503. string ls_replacestr,ls_opemp
  504. datetime ldt_opdate
  505. Long cnt ,ll_i,cnt_dft
  506. cnt = 0
  507. IF dw_edit_mode THEN
  508. dw_uc.AcceptText()
  509. dw_mx.AcceptText()
  510. IF dw_uc.GetNextModified(0, Primary!) = 0 And &
  511. dw_mx.GetNextModified(0, Primary!) = 0 and &
  512. dw_replace.GetNextModified(0, Primary!) = 0 and &
  513. dw_mx.DeletedCount() = 0 and dw_replace.DeletedCount() = 0 THEN
  514. MessageBox('系统提示','没有任何修改,不可以保存!')
  515. RETURN
  516. END IF
  517. dw_uc.Object.code[dw_uc.GetRow()] = Trim(dw_uc.Object.code[dw_uc.GetRow()])
  518. dw_uc.Object.Name[dw_uc.GetRow()] = Trim(dw_uc.Object.Name[dw_uc.GetRow()])
  519. dw_uc.Object.opemp[dw_uc.GetRow()] = publ_operator
  520. dw_uc.Object.opdate[dw_uc.GetRow()] = datetime(today(),now())
  521. IF dw_uc.Object.code[dw_uc.GetRow()] = '' THEN
  522. MessageBox('系统提示','请输入工序编号!')
  523. dw_uc.SetFocus()
  524. dw_uc.SetColumn('code')
  525. RETURN
  526. END IF
  527. IF IsNull(dw_uc.Object.Name[dw_uc.GetRow()]) THEN
  528. MessageBox('系统提示','请输入工序名称!')
  529. RETURN
  530. END IF
  531. IF dw_uc.Object.wrkgrpid[dw_uc.GetRow()] = 0 THEN
  532. MessageBox('系统提示','请选择工组!')
  533. RETURN
  534. END IF
  535. FOR ll_i = 1 To dw_mx.RowCount()
  536. IF dw_mx.Object.ifdft[ll_i] = 1 THEN
  537. cnt_dft++
  538. END IF
  539. NEXT
  540. IF cnt_dft > 1 THEN
  541. MessageBox('系统提示','明细不能设置多个默认,请检查!')
  542. RETURN
  543. END IF
  544. IF dw_uc.Object.proid[dw_uc.GetRow()] = 0 THEN
  545. ll_proid = f_sys_scidentity(0,"u_sc_workprocedure","proid",errmsg,True,id_sqlca)
  546. IF ll_proid < 0 THEN
  547. MessageBox("系统信息",errmsg)
  548. RETURN
  549. ELSE
  550. dw_uc.Object.proid[dw_uc.GetRow()] = ll_proid
  551. END IF
  552. ELSE
  553. ll_proid = dw_uc.Object.proid[dw_uc.GetRow()]
  554. newcode = dw_uc.Object.code[dw_uc.GetRow()]
  555. newname = dw_uc.Object.Name[dw_uc.GetRow()]
  556. String arg_msg
  557. f_setsysoplog('定义资料','工序修改,原:'+oldcode+','+oldname+'->新:'+newcode+','+newname,arg_msg,False)
  558. END IF
  559. DELETE u_sc_workprocedure_pricestrmx
  560. Where proid = :ll_proid;
  561. IF sqlca.SQLCode <> 0 THEN
  562. ROLLBACK;
  563. MessageBox('Error','删除原有明细失败')
  564. RETURN
  565. END IF
  566. cnt = 0
  567. dw_mx.AcceptText()
  568. FOR ll_i = 1 To dw_mx.RowCount()
  569. ls_pricestr = dw_mx.Object.pricestr[ll_i]
  570. li_ifdft = dw_mx.Object.ifdft[ll_i]
  571. IF Trim(ls_pricestr) = '' THEN CONTINUE
  572. cnt++
  573. INSERT INTO u_sc_workprocedure_pricestrmx
  574. (proid,
  575. printid,
  576. ifdft,
  577. pricestr)
  578. VALUES
  579. (:ll_proid,
  580. :cnt,
  581. :li_ifdft,
  582. :ls_pricestr);
  583. IF sqlca.SQLCode <> 0 THEN
  584. ROLLBACK;
  585. MessageBox('Error','插入明细失败,'+sqlca.SQLErrText)
  586. RETURN
  587. END IF
  588. NEXT
  589. DELETE u_sc_workprocedure_replacemx
  590. Where proid = :ll_proid;
  591. IF sqlca.SQLCode <> 0 THEN
  592. ROLLBACK;
  593. MessageBox('Error','删除原有替代工序明细失败')
  594. RETURN
  595. END IF
  596. cnt = 0
  597. dw_replace.AcceptText()
  598. FOR ll_i = 1 To dw_replace.RowCount()
  599. ls_replacestr = dw_replace.Object.replacestr[ll_i]
  600. ls_opemp = dw_replace.Object.opemp[ll_i]
  601. ldt_opdate = dw_replace.Object.opdate[ll_i]
  602. IF Trim(ls_replacestr) = '' THEN CONTINUE
  603. cnt++
  604. INSERT INTO u_sc_workprocedure_replacemx
  605. (proid,
  606. printid,
  607. replacestr,
  608. opemp,
  609. opdate)
  610. VALUES
  611. (:ll_proid,
  612. :cnt,
  613. :ls_replacestr,
  614. :ls_opemp,
  615. :ldt_opdate);
  616. IF sqlca.SQLCode <> 0 THEN
  617. ROLLBACK;
  618. MessageBox('Error','插入替代工序明细失败,'+sqlca.SQLErrText)
  619. RETURN
  620. END IF
  621. NEXT
  622. END IF
  623. CALL Super::Clicked
  624. IF dw_edit_mode THEN
  625. dw_uc.SetColumn('code')
  626. dw_mx.Reset()
  627. dw_replace.reset()
  628. ELSE
  629. Parent.TriggerEvent('retrieve_mx')
  630. END IF
  631. end event
  632. type cb_edit from w_publ_edit_index`cb_edit within w_sc_workprocedure
  633. integer x = 343
  634. end type
  635. event cb_edit::clicked;IF NOT f_power_ind(33,sys_msg_pow) THEN
  636. MessageBox(publ_operator,sys_msg_pow)
  637. RETURN
  638. END IF
  639. IF DW_UC.GetRow() <= 0 THEN
  640. MessageBox('系统提示','请选择目标行')
  641. RETURN
  642. END IF
  643. CALL SUPER::Clicked
  644. IF dw_edit_mode THEN
  645. oldcode = DW_UC.Object.code[DW_UC.GetRow()]
  646. oldname = DW_UC.Object.Name[DW_UC.GetRow()]
  647. DW_UC.SelectText(Len(String(DW_UC.Object.code[DW_UC.GetRow()]))+1,0)
  648. ELSE
  649. oldcode = ''
  650. oldname = ''
  651. PARENT.TriggerEvent('retrieve_mx')
  652. END IF
  653. PARENT.TriggerEvent("refresh_interface")
  654. end event
  655. type cb_delet from w_publ_edit_index`cb_delet within w_sc_workprocedure
  656. integer x = 535
  657. end type
  658. event cb_delet::clicked;IF Not f_power_ind(33,sys_msg_pow) THEN
  659. MessageBox(publ_operator,sys_msg_pow)
  660. RETURN
  661. END IF
  662. Long cnt = 0,ls_row,ls_id
  663. String ls_proname
  664. ls_row = dw_uc.GetRow()
  665. IF ls_row = 0 THEN
  666. MessageBox(publ_operator,'没有删除对象!')
  667. RETURN
  668. END IF
  669. ls_id = dw_uc.Object.proid[ls_row]
  670. ls_proname = dw_uc.Object.code[ls_row]
  671. IF MessageBox ("if","是否确定要删除当前记录["+ls_proname+"]?(选择确定后记录将不可恢复)",question!,yesno! ) = 2 THEN
  672. RETURN
  673. END IF
  674. SELECT count(*) as cnt
  675. INTO :cnt
  676. FROM u_sc_workprice
  677. Where u_sc_workprice.proid = :ls_id ;
  678. IF sqlca.SQLCode <> 0 THEN
  679. MessageBox(publ_operator,'查询工序['+ls_proname+']是否使用操作失败!>>'+sqlca.SQLErrText)
  680. RETURN
  681. END IF
  682. IF cnt > 0 THEN
  683. MessageBox(publ_operator,'工序['+ls_proname+']已经使用,不可以删除!')
  684. RETURN
  685. END IF
  686. DELETE u_sc_workprocedure_pricestrmx
  687. Where proid = :ls_id;
  688. IF sqlca.SQLCode <> 0 THEN
  689. ROLLBACK;
  690. MessageBox('Error','删除明细失败')
  691. RETURN
  692. END IF
  693. DELETE u_sc_workprocedure_replacemx
  694. Where proid = :ls_id;
  695. IF sqlca.SQLCode <> 0 THEN
  696. ROLLBACK;
  697. MessageBox('Error','删除替代工序明细失败')
  698. RETURN
  699. END IF
  700. DELETE u_sc_workprocedure_replacemx
  701. Where proid = :ls_id;
  702. IF sqlca.SQLCode <> 0 THEN
  703. ROLLBACK;
  704. MessageBox('Error','删除替代工序明细失败')
  705. RETURN
  706. END IF
  707. DELETE u_sc_workprocedure
  708. Where proid = :ls_id;
  709. IF sqlca.SQLCode <> 0 THEN
  710. ROLLBACK;
  711. MessageBox('Error','删除工序失败')
  712. RETURN
  713. END IF
  714. //IF dw_uc.Update() = -1 THEN
  715. // ROLLBACK;
  716. // MessageBox ("no","删除记录操作失败!",exclamation!,ok!)
  717. //ELSE
  718. COMMIT;
  719. Long ll_proid
  720. String arg_msg
  721. String ls_code, ls_name
  722. ll_proid = dw_uc.Object.proid[ls_row]
  723. ls_code = dw_uc.Object.code[ls_row]
  724. ls_name = dw_uc.Object.Name[ls_row]
  725. f_setsysoplog('定义资料','工序删除,工序ID:'+String(ll_proid)+',工序编号名称:'+ls_code+','+ls_name,arg_msg,True)
  726. //END IF
  727. dw_uc.SetRedraw (False)
  728. dw_uc.DeleteRow (ls_row)
  729. dw_uc.TriggerEvent (RowFocusChanged!)
  730. dw_uc.SetRedraw (True)
  731. wf_index_uc()
  732. end event
  733. type cb_choice from w_publ_edit_index`cb_choice within w_sc_workprocedure
  734. integer x = 1842
  735. end type
  736. event cb_choice::clicked;call super::clicked;Long ROW,ls_i,chC = 0
  737. String ls_pricestr
  738. Long ll_proid
  739. ROW = dw_index.GetRow()
  740. IF ROW <= 0 THEN
  741. MessageBox('系统提示','请先选择目标行!',StopSign!)
  742. RETURN
  743. END IF
  744. FOR ls_i = 1 To dw_index.RowCount()
  745. IF dw_index.IsSelected(ls_i) THEN
  746. chC++
  747. INS_RT_STRU.wrkproid[chC] = dw_index.Object.proid[ls_i]
  748. INS_RT_STRU.wrkprocode[chC] = dw_index.Object.code[ls_i]
  749. INS_RT_STRU.wrkproname[chC] = dw_index.Object.Name[ls_i]
  750. INS_RT_STRU.worklevel[chC] = dw_index.Object.u_sc_workprocedure_worklevel[ls_i]
  751. INS_RT_STRU.techlevel[chC] = dw_index.Object.u_sc_workprocedure_techlevel[ls_i]
  752. INS_RT_STRU.workhour[chC] = dw_index.Object.u_sc_workprocedure_workhour[ls_i]
  753. INS_RT_STRU.workprice[chC] = dw_index.Object.workprice[ls_i]
  754. INS_RT_STRU.wrkGrid[chC] = dw_index.Object.wrkgrpid[ls_i]
  755. INS_RT_STRU.ifgroup[chC] = dw_index.Object.wrkgrpid[ls_i]
  756. INS_RT_STRU.ifreplace[chC] = dw_index.Object.u_sc_workprocedure_ifreplace[ls_i]
  757. INS_RT_STRU.worktype[chC] = dw_index.Object.u_sc_workprocedure_worktype[ls_i]
  758. INS_RT_STRU.hourpay[chC] = dw_index.Object.hourpay[ls_i]
  759. INS_RT_STRU.rpcode[chC] = dw_index.Object.u_sc_workprocedure_rpcode[ls_i]
  760. INS_RT_STRU.ifdftpg[chC] = dw_index.Object.u_sc_workprocedure_ifdftpg[ls_i]
  761. INS_RT_STRU.ifdftjj[chC] = dw_index.Object.u_sc_workprocedure_ifdftjj[ls_i]
  762. INS_RT_STRU.jdtype[chC] = dw_index.Object.u_sc_workgroup_jdtype[ls_i]
  763. ll_proid = dw_index.Object.proid[ls_i]
  764. SELECT top 1 pricestr
  765. INTO :ls_pricestr
  766. FROM u_sc_workprocedure_pricestrmx
  767. WHERE proid = :ll_proid
  768. And ifdft = 1;
  769. IF sqlca.SQLCode <> 0 THEN ls_pricestr = ''
  770. INS_RT_STRU.pricestr[chC] = ls_pricestr
  771. END IF
  772. NEXT
  773. IF chC = 0 THEN
  774. MessageBox('系统提示','请至少选择一个目标行!',StopSign!)
  775. RETURN
  776. END IF
  777. Close(Parent)
  778. end event
  779. type cb_cancel from w_publ_edit_index`cb_cancel within w_sc_workprocedure
  780. integer x = 539
  781. integer y = 608
  782. end type
  783. type cbx_mlselect from w_publ_edit_index`cbx_mlselect within w_sc_workprocedure
  784. integer x = 2871
  785. end type
  786. type cbx_allselect from w_publ_edit_index`cbx_allselect within w_sc_workprocedure
  787. integer x = 3104
  788. end type
  789. type cb_mode_itfchg_b from w_publ_edit_index`cb_mode_itfchg_b within w_sc_workprocedure
  790. end type
  791. type cb_mode_itfchg from w_publ_edit_index`cb_mode_itfchg within w_sc_workprocedure
  792. integer x = 1746
  793. end type
  794. type gb_1 from w_publ_edit_index`gb_1 within w_sc_workprocedure
  795. end type
  796. type dw_uc from w_publ_edit_index`dw_uc within w_sc_workprocedure
  797. integer x = 2011
  798. integer width = 1568
  799. integer height = 1232
  800. string dataobject = "dw_sc_workprocedure_edit"
  801. end type
  802. event dw_uc::itemchanged;call super::itemchanged;String ls_worktype
  803. Decimal ld_hourpay
  804. IF row > 0 THEN
  805. IF dwo.Name = 'u_sc_workprocedure_worktype' THEN
  806. This.AcceptText()
  807. ls_worktype = This.Object.u_sc_workprocedure_worktype[row]
  808. SELECT hourpay
  809. INTO :ld_hourpay
  810. FROM u_worktype
  811. Where worktype = :ls_worktype;
  812. IF sqlca.SQLCode <> 0 THEN
  813. ld_hourpay = 0
  814. END IF
  815. This.Object.hourpay[row] = ld_hourpay
  816. END IF
  817. END IF
  818. end event
  819. type cb_retrieve from w_publ_edit_index`cb_retrieve within w_sc_workprocedure
  820. integer x = 0
  821. end type
  822. type cb_print from w_publ_edit_index`cb_print within w_sc_workprocedure
  823. integer x = 1554
  824. end type
  825. event cb_print::clicked;call super::clicked;S_print_MSG LS_PRMSG
  826. LS_PRMSG.obj_dwNAME='dw_sc_rp_workprocedure'
  827. //LS_PRMSG.SHARE_DW=DW_UC
  828. LS_PRMSG.TAG_TEXT='工序列表'
  829. LS_PRMSG.SETUP_FLAG=0
  830. LS_PRMSG.PAGECH_FLAG=1
  831. LS_PRMSG.retr_pram_falg = -1
  832. Openwithparm(w_publ_preview,LS_PRMSG)
  833. end event
  834. type ln_bar from w_publ_edit_index`ln_bar within w_sc_workprocedure
  835. end type
  836. type ln_bar2 from w_publ_edit_index`ln_bar2 within w_sc_workprocedure
  837. end type
  838. type r_bar from w_publ_edit_index`r_bar within w_sc_workprocedure
  839. integer x = 3232
  840. end type
  841. type ln_1 from w_publ_edit_index`ln_1 within w_sc_workprocedure
  842. end type
  843. type ln_2 from w_publ_edit_index`ln_2 within w_sc_workprocedure
  844. end type
  845. type dw_index from w_publ_edit_index`dw_index within w_sc_workprocedure
  846. integer width = 2002
  847. integer height = 1996
  848. string dataobject = "dw_sc_workprocedure_index"
  849. end type
  850. event dw_index::rowfocuschanged;call super::rowfocuschanged;IF NOT dw_edit_mode THEN
  851. PARENT.TriggerEvent('retrieve_mx')
  852. END IF
  853. end event
  854. type cb_other from uo_imflatbutton within w_sc_workprocedure
  855. integer x = 686
  856. integer width = 279
  857. integer height = 164
  858. integer taborder = 40
  859. boolean bringtotop = true
  860. string text = "其它功能"
  861. string normalpicname = "update.bmp"
  862. integer picsize = 16
  863. toolbaralignment pic_align = alignattop!
  864. boolean border = false
  865. end type
  866. event clicked;call super::clicked;m_Dfc_Control_PopupMenu dmPopupMenu
  867. String menustr
  868. IF NOT dw_edit_mode THEN
  869. menustr = "Text=批量修改工价表工序单价~tEvent=ue_pset_workpricetable"
  870. menustr = menustr + "|" + "Text=-"
  871. menustr = menustr + "|" + "Text=批量修改计件单工序单价~tEvent=ue_pmod_taskwork_workprice"
  872. END IF
  873. IF Len(Trim(menustr)) <> 0 THEN
  874. dmPopupMenu = CREATE m_Dfc_Control_PopupMenu
  875. dmPopupMenu.mf_BuildMenu(THIS, menustr)
  876. dmPopupMenu.mf_PopMenu()
  877. DESTROY dmPopupMenu
  878. END IF
  879. end event
  880. type ddlb_publ from dropdownlistbox within w_sc_workprocedure
  881. integer x = 1339
  882. integer y = 192
  883. integer width = 549
  884. integer height = 452
  885. integer taborder = 20
  886. boolean bringtotop = true
  887. integer textsize = -9
  888. integer weight = 400
  889. fontcharset fontcharset = gb2312charset!
  890. fontpitch fontpitch = variable!
  891. string facename = "宋体"
  892. long textcolor = 33554432
  893. string text = "全部"
  894. boolean sorted = false
  895. string item[] = {"非公共","公共","全部"}
  896. borderstyle borderstyle = stylelowered!
  897. end type
  898. event selectionchanged;parent.triggerevent('retrieve_uc')
  899. end event
  900. type st_2 from statictext within w_sc_workprocedure
  901. integer x = 1184
  902. integer y = 204
  903. integer width = 151
  904. integer height = 48
  905. boolean bringtotop = true
  906. integer textsize = -9
  907. integer weight = 400
  908. fontcharset fontcharset = gb2312charset!
  909. fontpitch fontpitch = variable!
  910. string facename = "宋体"
  911. long backcolor = 134217739
  912. string text = "类型"
  913. alignment alignment = center!
  914. boolean focusrectangle = false
  915. end type
  916. type cb_help from uo_imflatbutton within w_sc_workprocedure
  917. integer x = 1993
  918. integer width = 151
  919. integer height = 164
  920. integer taborder = 120
  921. boolean bringtotop = true
  922. string text = "帮助"
  923. string normalpicname = "help.bmp"
  924. integer picsize = 16
  925. toolbaralignment pic_align = alignattop!
  926. boolean border = false
  927. end type
  928. event clicked;call super::clicked;PARENT.TriggerEvent('ue_help')
  929. end event
  930. type cb_addmx from uo_imflatbutton within w_sc_workprocedure
  931. integer x = 965
  932. integer width = 219
  933. integer height = 164
  934. integer taborder = 50
  935. boolean bringtotop = true
  936. boolean enabled = false
  937. string text = "增明细"
  938. string normalpicname = "mx1.BMP"
  939. integer picsize = 16
  940. toolbaralignment pic_align = alignattop!
  941. boolean border = false
  942. end type
  943. event clicked;call super::clicked;parent.triggerevent('insert_childrow')
  944. end event
  945. type cb_delmx from uo_imflatbutton within w_sc_workprocedure
  946. integer x = 1184
  947. integer width = 219
  948. integer height = 164
  949. integer taborder = 60
  950. boolean bringtotop = true
  951. boolean enabled = false
  952. string text = "删明细"
  953. string normalpicname = "mx2.BMP"
  954. integer picsize = 16
  955. toolbaralignment pic_align = alignattop!
  956. boolean border = false
  957. end type
  958. event clicked;call super::clicked;parent.triggerevent('ue_deletemx')
  959. end event
  960. type ddlb_wrkgrpid from uo_ddlb_wrkgrpid within w_sc_workprocedure
  961. integer x = 1902
  962. integer y = 192
  963. integer width = 443
  964. integer height = 820
  965. integer taborder = 30
  966. boolean bringtotop = true
  967. boolean sorted = false
  968. end type
  969. event constructor;call super::constructor;cur_wrkgrpid = this.uo_wrkgrpid
  970. end event
  971. event selectionchanged;call super::selectionchanged;cur_wrkgrpid = this.uo_wrkgrpid
  972. cb_retrieve.triggerevent(clicked!)
  973. end event
  974. type tab_1 from tab within w_sc_workprocedure
  975. integer x = 2002
  976. integer y = 1532
  977. integer width = 1568
  978. integer height = 756
  979. integer taborder = 170
  980. integer textsize = -9
  981. integer weight = 400
  982. fontcharset fontcharset = gb2312charset!
  983. fontpitch fontpitch = variable!
  984. string facename = "宋体"
  985. long backcolor = 134217739
  986. boolean raggedright = true
  987. boolean focusonbuttondown = true
  988. integer selectedtab = 1
  989. tabpage_1 tabpage_1
  990. tabpage_2 tabpage_2
  991. end type
  992. on tab_1.create
  993. this.tabpage_1=create tabpage_1
  994. this.tabpage_2=create tabpage_2
  995. this.Control[]={this.tabpage_1,&
  996. this.tabpage_2}
  997. end on
  998. on tab_1.destroy
  999. destroy(this.tabpage_1)
  1000. destroy(this.tabpage_2)
  1001. end on
  1002. type tabpage_1 from userobject within tab_1
  1003. integer x = 18
  1004. integer y = 96
  1005. integer width = 1531
  1006. integer height = 644
  1007. long backcolor = 134217739
  1008. string text = "单价公式明细"
  1009. long tabtextcolor = 33554432
  1010. long tabbackcolor = 134217739
  1011. long picturemaskcolor = 536870912
  1012. dw_1 dw_1
  1013. end type
  1014. on tabpage_1.create
  1015. this.dw_1=create dw_1
  1016. this.Control[]={this.dw_1}
  1017. end on
  1018. on tabpage_1.destroy
  1019. destroy(this.dw_1)
  1020. end on
  1021. type dw_1 from u_dw_rbtnfilter within tabpage_1
  1022. integer width = 1531
  1023. integer height = 640
  1024. integer taborder = 20
  1025. string dataobject = "dw_sc_workprocedure_pricestrmx_edit"
  1026. boolean hscrollbar = true
  1027. boolean vscrollbar = true
  1028. end type
  1029. event doubleclicked;call super::doubleclicked;IF Not dw_edit_mode THEN RETURN
  1030. dw_mx.AcceptText()
  1031. String ls_pricestr
  1032. Long ll_row
  1033. s_edit_index_tran s_tran_str
  1034. ll_row = dw_mx.GetRow()
  1035. IF ll_row <= 0 THEN RETURN
  1036. ls_pricestr = dw_mx.Object.pricestr[ll_row]
  1037. s_tran_str.b_long = 0 // 0-工价,1-数量
  1038. s_tran_str.b_string = ls_pricestr
  1039. OpenWithParm(w_mtrl_workpricestr_compute_edit,s_tran_str)
  1040. ls_pricestr = Message.StringParm
  1041. dw_mx.Object.pricestr[ll_row] = ls_pricestr
  1042. dw_mx.AcceptText()
  1043. end event
  1044. event rowfocuschanged;call super::rowfocuschanged;Long ll_i
  1045. IF NOT dw_edit_mode THEN
  1046. IF currentrow <= 0 THEN RETURN
  1047. THIS.SelectRow(0,FALSE)
  1048. THIS.SelectRow(currentrow,TRUE)
  1049. ELSE
  1050. IF if_del THEN RETURN
  1051. IF KeyDown(keycontrol!) THEN
  1052. IF NOT THIS.IsSelected(currentrow) THEN
  1053. THIS.SelectRow(currentrow,TRUE)
  1054. if_changeselect = FALSE
  1055. ELSE
  1056. if_changeselect = TRUE
  1057. END IF
  1058. ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键
  1059. IF ll_lastrow = 0 THEN //上次没选中任何行
  1060. THIS.SelectRow(currentrow,TRUE)
  1061. ll_lastrow = currentrow //ll_lastrow为实例变量,记录上次单击的行
  1062. ELSE
  1063. THIS.SelectRow(0,FALSE) //全都不选中
  1064. IF currentrow > ll_lastrow THEN
  1065. FOR ll_i = ll_lastrow TO currentrow
  1066. THIS.SelectRow(ll_i,TRUE)
  1067. NEXT
  1068. ELSE
  1069. FOR ll_i = ll_lastrow TO currentrow STEP -1
  1070. THIS.SelectRow(ll_i,TRUE)
  1071. NEXT
  1072. END IF
  1073. END IF
  1074. ELSE
  1075. THIS.SelectRow(0,FALSE)
  1076. THIS.SelectRow(currentrow,TRUE)
  1077. ll_lastrow = currentrow
  1078. END IF
  1079. END IF
  1080. end event
  1081. event dwnkey;call super::dwnkey;If Not dw_edit_mode Then Return
  1082. If KeyDown(keydownarrow!) Then
  1083. If This.GetRow() = This.RowCount() Then
  1084. Parent.GetParent().GetParent().TriggerEvent("insert_childrow")
  1085. End If
  1086. End If
  1087. end event
  1088. type tabpage_2 from userobject within tab_1
  1089. boolean visible = false
  1090. integer x = 18
  1091. integer y = 96
  1092. integer width = 1531
  1093. integer height = 644
  1094. long backcolor = 134217739
  1095. string text = "替代工序明细"
  1096. long tabtextcolor = 33554432
  1097. long tabbackcolor = 134217739
  1098. long picturemaskcolor = 536870912
  1099. dw_2 dw_2
  1100. end type
  1101. on tabpage_2.create
  1102. this.dw_2=create dw_2
  1103. this.Control[]={this.dw_2}
  1104. end on
  1105. on tabpage_2.destroy
  1106. destroy(this.dw_2)
  1107. end on
  1108. type dw_2 from u_dw_rbtnfilter within tabpage_2
  1109. integer y = 48
  1110. integer width = 1531
  1111. integer height = 596
  1112. integer taborder = 20
  1113. string dataobject = "dw_sc_workprocedure_replacemx_edit"
  1114. boolean hscrollbar = true
  1115. boolean vscrollbar = true
  1116. end type
  1117. event rowfocuschanged;call super::rowfocuschanged;Long ll_i
  1118. IF NOT dw_edit_mode THEN
  1119. IF currentrow <= 0 THEN RETURN
  1120. THIS.SelectRow(0,FALSE)
  1121. THIS.SelectRow(currentrow,TRUE)
  1122. ELSE
  1123. IF if_del THEN RETURN
  1124. IF KeyDown(keycontrol!) THEN
  1125. IF NOT THIS.IsSelected(currentrow) THEN
  1126. THIS.SelectRow(currentrow,TRUE)
  1127. if_changeselect = FALSE
  1128. ELSE
  1129. if_changeselect = TRUE
  1130. END IF
  1131. ELSEIF KeyDown(keyshift!) THEN //按下SHIFT键
  1132. IF ll_lastrow = 0 THEN //上次没选中任何行
  1133. THIS.SelectRow(currentrow,TRUE)
  1134. ll_lastrow = currentrow //ll_lastrow为实例变量,记录上次单击的行
  1135. ELSE
  1136. THIS.SelectRow(0,FALSE) //全都不选中
  1137. IF currentrow > ll_lastrow THEN
  1138. FOR ll_i = ll_lastrow TO currentrow
  1139. THIS.SelectRow(ll_i,TRUE)
  1140. NEXT
  1141. ELSE
  1142. FOR ll_i = ll_lastrow TO currentrow STEP -1
  1143. THIS.SelectRow(ll_i,TRUE)
  1144. NEXT
  1145. END IF
  1146. END IF
  1147. ELSE
  1148. THIS.SelectRow(0,FALSE)
  1149. THIS.SelectRow(currentrow,TRUE)
  1150. ll_lastrow = currentrow
  1151. END IF
  1152. END IF
  1153. end event
  1154. event dwnkey;call super::dwnkey;If Not dw_edit_mode Then Return
  1155. If KeyDown(keydownarrow!) Then
  1156. If This.GetRow() = This.RowCount() Then
  1157. Parent.GetParent().GetParent().TriggerEvent("insert_childrow")
  1158. End If
  1159. Else
  1160. If This.GetColumnName( ) = 'replacestr' And This.GetRow() = This.RowCount() and Key = KeyEnter! Then
  1161. Parent.GetParent().GetParent().TriggerEvent("insert_childrow")
  1162. Return 1
  1163. End If
  1164. End If
  1165. end event