w_mtrl_configure_pzmx_ch.srw 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. $PBExportHeader$w_mtrl_configure_pzmx_ch.srw
  2. forward
  3. global type w_mtrl_configure_pzmx_ch from w_publ_choice
  4. end type
  5. end forward
  6. global type w_mtrl_configure_pzmx_ch from w_publ_choice
  7. integer width = 1810
  8. integer height = 1700
  9. string title = "产品选配类型-配置选择"
  10. event ue_allowedit ( )
  11. end type
  12. global w_mtrl_configure_pzmx_ch w_mtrl_configure_pzmx_ch
  13. type variables
  14. long cur_typeid = 0
  15. s_pzwin_open s_mt
  16. String rst_str
  17. boolean edit_mode = true
  18. s_mtrl_configure_array s_config
  19. end variables
  20. forward prototypes
  21. public subroutine wf_slpit (string arg_col_value)
  22. public subroutine wf_slpit_arr (s_mtrl_configure_array arg_configure_arr)
  23. end prototypes
  24. event ue_allowedit();IF dw_ch.GetRow( ) <= 0 THEN
  25. dw_ch.Modify("namemx.dddw.allowedit = no")
  26. RETURN
  27. END IF
  28. IF dw_ch.Object.inputtype[dw_ch.GetRow()] = 0 THEN
  29. dw_ch.Modify("namemx.dddw.allowedit = no")
  30. messagebox("",2)
  31. ELSE
  32. dw_ch.Modify("namemx.dddw.allowedit = yes")
  33. messagebox("",1)
  34. END IF
  35. end event
  36. public subroutine wf_slpit (string arg_col_value);Long i,j,k
  37. Long ll_start
  38. String ls_namemx[], ls_pzmx
  39. Long ll_pzid
  40. IF Trim(arg_col_value) = "" THEN RETURN
  41. IF dw_ch.RowCount() <= 0 THEN RETURN
  42. IF Pos(arg_col_value, "|") = 0 AND dw_ch.RowCount() > 0 THEN
  43. dw_ch.Object.namemx[1] = arg_col_value
  44. RETURN
  45. END IF
  46. IF Right(arg_col_value,1) <> "|" THEN
  47. arg_col_value += "|"
  48. END IF
  49. i = 0
  50. ll_start = Pos(arg_col_value, "|")
  51. DO WHILE ll_start > 0 AND arg_col_value <> "|"
  52. i++
  53. ls_namemx[i] = Left(arg_col_value, ll_start - 1)
  54. arg_col_value = Mid(arg_col_value, ll_start + 1)
  55. ll_start = Pos(arg_col_value, "|")
  56. LOOP
  57. FOR i = 1 TO dw_ch.RowCount()
  58. ll_pzid = dw_ch.Object.pzid[i]
  59. IF UpperBound(ls_namemx) < i THEN EXIT
  60. dw_ch.Object.namemx[i] = ls_namemx[i]
  61. NEXT
  62. RETURN
  63. //dw_1.Retrieve(ll_pzid)
  64. //for j = 1 to dw_1.rowcount( )
  65. // if ls_pzmx = dw_1.object.namemx[j] then
  66. //
  67. // end if
  68. //next
  69. end subroutine
  70. public subroutine wf_slpit_arr (s_mtrl_configure_array arg_configure_arr);Long i,j,k
  71. Long ll_start
  72. String ls_namemx[], ls_pzmx
  73. Long ll_pzid
  74. IF dw_ch.RowCount() <= 0 THEN RETURN
  75. IF UpperBound(arg_configure_arr.pzid) <= 0 THEN RETURN
  76. FOR i = 1 TO dw_ch.RowCount()
  77. ll_pzid = dw_ch.Object.pzid[i]
  78. FOR j = 1 TO UpperBound(arg_configure_arr.pzid)
  79. IF arg_configure_arr.pzid[j] = ll_pzid THEN
  80. dw_ch.Object.namemx[i] = arg_configure_arr.pznamemx[j]
  81. EXIT
  82. END IF
  83. NEXT
  84. NEXT
  85. RETURN
  86. end subroutine
  87. on w_mtrl_configure_pzmx_ch.create
  88. call super::create
  89. end on
  90. on w_mtrl_configure_pzmx_ch.destroy
  91. call super::destroy
  92. end on
  93. event open;if_ue_sort = TRUE
  94. wf_movetocenter()
  95. dw_CH.SetTransObject (sqlca)
  96. s_mt = Message.PowerObjectParm
  97. cur_typeid = s_mt.arg_mtrlid
  98. cb_retrieve.TriggerEvent(Clicked!)
  99. IF UpperBound(s_mt.arg_configure_arr.pzid) > 0 THEN
  100. //IF NOT IsNull(s_mt.arg_configure_arr) THEN
  101. wf_slpit_arr(s_mt.arg_configure_arr)
  102. ELSEIF NOT IsNull(s_mt.arg_col_value) THEN
  103. wf_slpit(s_mt.arg_col_value)
  104. END IF
  105. IF NOT IsNull(s_mt.arg_editmode) THEN
  106. edit_mode = s_mt.arg_editmode
  107. END IF
  108. IF NOT edit_mode THEN
  109. cb_choice.Enabled = FALSE
  110. END IF
  111. end event
  112. event close;call super::close;//CLOSEWITHRETURN(THIS,rst_str)
  113. CloseWithReturn(THIS,s_config)
  114. end event
  115. event dw_filter;call super::dw_filter;string obj_expr=''
  116. if trim(sle_ch.text)<>'' then
  117. IF POS(trim(sle_ch.text),'%')=0 THEN
  118. obj_expr=obj_expr+'( namemx LIKE "%'+trim(sle_ch.text)+'%" )'
  119. ELSE
  120. obj_expr=obj_expr+'(namemx LIKE "'+trim(sle_ch.text)+'" )'
  121. END IF
  122. end if
  123. //
  124. //if trim(sle_name.text)<>'' then
  125. // if obj_expr<>'' then obj_expr=obj_expr+ ' and '
  126. // IF POS(trim(sle_ch.text),'%')=0 THEN
  127. // obj_expr=obj_expr+' ( pzcodemx LIKE "%'+trim(sle_name.text)+'%" )'
  128. // ELSE
  129. // obj_expr=obj_expr+'( pzcodemx LIKE "'+trim(sle_name.text)+'" )'
  130. // END IF
  131. //end if
  132. //
  133. dw_ch.setfilter(obj_expr)
  134. dw_ch.SetRedraw(False)
  135. dw_ch.filter()
  136. if dw_ch.rowcount()>=1 then
  137. dw_ch.selectrow(0,false)
  138. dw_ch.selectrow(1,true)
  139. dw_ch.setrow( 1)
  140. end if
  141. dw_ch.SetRedraw(TRUE)
  142. end event
  143. type cb_func from w_publ_choice`cb_func within w_mtrl_configure_pzmx_ch
  144. end type
  145. type cb_exit from w_publ_choice`cb_exit within w_mtrl_configure_pzmx_ch
  146. end type
  147. type sle_ch from w_publ_choice`sle_ch within w_mtrl_configure_pzmx_ch
  148. boolean visible = false
  149. integer x = 325
  150. end type
  151. type dw_ch from w_publ_choice`dw_ch within w_mtrl_configure_pzmx_ch
  152. event ue_dwndropdown pbm_dwndropdown
  153. integer y = 180
  154. integer width = 1783
  155. integer height = 1432
  156. string dataobject = "dw_configure_pz_ch"
  157. end type
  158. event dw_ch::ue_dwndropdown;IF NOT edit_mode THEN RETURN
  159. Long row
  160. row = THIS.GetRow()
  161. IF row <= 0 OR IsNull(row) THEN RETURN
  162. THIS.AcceptText( )
  163. Long ll_pzid
  164. String rslt_pz
  165. s_pzwin_open arg_s_open
  166. arg_s_open.arg_x = THIS.X + THIS.PointerX() + PARENT.X
  167. arg_s_open.arg_y = THIS.Y + THIS.PointerY() + PARENT.Y
  168. arg_s_open.arg_dwname = "dddw_configure_pzmx"
  169. arg_s_open.arg_mtrlid = THIS.Object.pzid[row]
  170. OpenWithParm(w_pz_ch,arg_s_open)
  171. rslt_pz = Message.StringParm
  172. IF rslt_pz <> '' THEN
  173. dw_ch.Object.namemx[row] = rslt_pz
  174. END IF
  175. RETURN 1
  176. end event
  177. event dw_ch::doubleclicked;//if row<=0 then return
  178. //cb_CHOICE.PostEvent(Clicked!)
  179. end event
  180. event dw_ch::rowfocuschanged;call super::rowfocuschanged;IF NOT edit_mode THEN
  181. THIS.Modify("namemx.dddw.allowedit = no")
  182. RETURN
  183. END IF
  184. IF currentrow <= 0 OR IsNull(currentrow) THEN
  185. THIS.Modify("namemx.dddw.allowedit = no")
  186. RETURN
  187. END IF
  188. IF THIS.Object.inputtype[currentrow] = 0 THEN
  189. THIS.Modify("namemx.dddw.allowedit = NO")
  190. THIS.Modify("namemx.dddw.AutoHScroll = NO")
  191. ELSE
  192. THIS.Modify("namemx.dddw.allowedit = YES")
  193. THIS.Modify("namemx.dddw.AutoHScroll = YES")
  194. END IF
  195. end event
  196. type st_1 from w_publ_choice`st_1 within w_mtrl_configure_pzmx_ch
  197. boolean visible = false
  198. integer width = 293
  199. string text = "名称包含:"
  200. boolean righttoleft = false
  201. end type
  202. type cb_retrieve from w_publ_choice`cb_retrieve within w_mtrl_configure_pzmx_ch
  203. end type
  204. event cb_retrieve::clicked;dw_ch.retrieve(cur_typeid)
  205. if dw_ch.rowcount() > 0 then
  206. dw_ch.setrow(1)
  207. dw_ch.selectrow(0,false)
  208. dw_ch.selectrow(1,true)
  209. end if
  210. end event
  211. type cb_choice from w_publ_choice`cb_choice within w_mtrl_configure_pzmx_ch
  212. end type
  213. event cb_choice::clicked;call super::clicked;Long ls_row,i
  214. String ls_name
  215. Long chC
  216. dw_ch.accepttext()
  217. rst_str = ""
  218. FOR i = 1 TO dw_ch.RowCount( )
  219. IF dw_ch.Object.namemx[i] = "" THEN CONTINUE
  220. // rst_str += dw_ch.Object.namemx[i]+"|"
  221. chC++
  222. s_config.pzid[chC] = dw_ch.Object.pzid[i]
  223. s_config.pzname[chC] = dw_ch.Object.Name[i]
  224. s_config.pzcode[chC] = dw_ch.Object.pzcode[i]
  225. s_config.pznamemx[chC] = dw_ch.Object.namemx[i]
  226. NEXT
  227. IF chC = 0 THEN
  228. MessageBox('系统提示','请至少选择一个目标行!',StopSign!)
  229. RETURN
  230. END IF
  231. Close(PARENT)
  232. end event
  233. type ln_bar from w_publ_choice`ln_bar within w_mtrl_configure_pzmx_ch
  234. end type
  235. type ln_bar2 from w_publ_choice`ln_bar2 within w_mtrl_configure_pzmx_ch
  236. end type
  237. type r_bar from w_publ_choice`r_bar within w_mtrl_configure_pzmx_ch
  238. integer x = 1248
  239. integer y = 4
  240. end type
  241. type ln_1 from w_publ_choice`ln_1 within w_mtrl_configure_pzmx_ch
  242. boolean visible = false
  243. end type
  244. type ln_2 from w_publ_choice`ln_2 within w_mtrl_configure_pzmx_ch
  245. boolean visible = false
  246. end type