w_saletask_mtrl_ch.srw 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419
  1. $PBExportHeader$w_saletask_mtrl_ch.srw
  2. forward
  3. global type w_saletask_mtrl_ch from w_pageretr_ch
  4. end type
  5. type cbx_mlselect from checkbox within w_saletask_mtrl_ch
  6. end type
  7. type cb_other from uo_imflatbutton within w_saletask_mtrl_ch
  8. end type
  9. end forward
  10. global type w_saletask_mtrl_ch from w_pageretr_ch
  11. integer width = 3611
  12. integer height = 2280
  13. string title = "订单产品选择 [按Ctrl键反选]"
  14. cbx_mlselect cbx_mlselect
  15. cb_other cb_other
  16. end type
  17. global w_saletask_mtrl_ch w_saletask_mtrl_ch
  18. type variables
  19. s_saletask_mtrl INS_RT_STRU
  20. Int if_mlselect = 0
  21. Boolean if_changeselect = TRUE
  22. long rtr_mtrlid = 0
  23. end variables
  24. on w_saletask_mtrl_ch.create
  25. int iCurrent
  26. call super::create
  27. this.cbx_mlselect=create cbx_mlselect
  28. this.cb_other=create cb_other
  29. iCurrent=UpperBound(this.Control)
  30. this.Control[iCurrent+1]=this.cbx_mlselect
  31. this.Control[iCurrent+2]=this.cb_other
  32. end on
  33. on w_saletask_mtrl_ch.destroy
  34. call super::destroy
  35. destroy(this.cbx_mlselect)
  36. destroy(this.cb_other)
  37. end on
  38. event ue_before_open;call super::ue_before_open;if_ue_retr=true
  39. if_ue_sort=true
  40. end event
  41. event close;call super::close;cLOSEWITHRETURN(THIS,INS_RT_STRU)
  42. //<INS_RT_STRU> 窗体级子定义结构变量,用于返回
  43. end event
  44. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  45. if trim(sle_usual_query.text)<>'' then
  46. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  47. obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  48. ELSE
  49. obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "'+trim(sle_usual_query.text)+'" )'
  50. END IF
  51. end if
  52. dw_pageretr.setfilter(obj_expr)
  53. dw_pageretr.SetRedraw(False)
  54. dw_pageretr.filter()
  55. if dw_pageretr.rowcount()>=1 then
  56. dw_pageretr.selectrow(0,false)
  57. dw_pageretr.selectrow(1,true )
  58. end if
  59. dw_pageretr.SetRedraw(TRUE )
  60. end event
  61. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  62. ls_newselect=lower(ori_oldselect)
  63. if trim(sle_usual_query.text)<>'' then
  64. if pos(trim(sle_usual_query.text),'%')=0 then
  65. ls_querystrpart="u_mtrldef.mtrlcode like '%"+trim(sle_usual_query.text)+"%'"
  66. else
  67. ls_querystrpart="u_mtrldef.mtrlcode like '"+trim(sle_usual_query.text)+"'"
  68. end if
  69. if Pos(Lower(ls_newselect)," where ") <> 0 then
  70. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  71. else
  72. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  73. end if
  74. end if
  75. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  76. this.triggerevent('retrieve_pageretr')
  77. end event
  78. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  79. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  80. cb_nextpage_enabled=cb_nextpage.enabled
  81. cb_retrieveall_enabled=cb_retrieveall.enabled
  82. cb_func_enabled=cb_func.enabled
  83. cb_nextpage.enabled=false
  84. cb_retrieveall.enabled=false
  85. cb_func.enabled=false
  86. SetPointer(HourGlass!)
  87. dw_pageretr.retrieve(rtr_mtrlid)
  88. if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1)
  89. SetPointer(Arrow!)
  90. cb_nextpage.enabled=cb_nextpage_enabled
  91. cb_retrieveall.enabled=cb_retrieveall_enabled
  92. cb_func.enabled=cb_func_enabled
  93. IF cbx_mlselect.Checked AND dw_pageretr.RowCount() > 1 THEN
  94. dw_pageretr.SelectRow(1,FALSE)
  95. END IF
  96. end event
  97. event open;this.triggerevent('ue_before_open')
  98. wf_movetocenter()
  99. OLD_TITLE=THIS.TITLE
  100. s_tran=Message.PowerObjectParm
  101. IF not ISNULL(s_tran) then
  102. retrieve_all=s_tran.if_retrieve_all
  103. mode=s_tran.work_mode
  104. arg_pkid=s_tran.arg_pkid
  105. arg_string_code=s_tran.arg_string_code
  106. if_sharedata=s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  107. ds_share=s_tran.ds_share
  108. rtr_mtrlid = s_tran.d_long
  109. if s_tran.e_long = 1 then
  110. cbx_mlselect.checked = false
  111. cbx_mlselect.enabled = false
  112. end if
  113. end if
  114. dw_pageretr.RBUTTON_FILTER_USE=true //右键查询功能开关
  115. dw_pageretr.titleclick_sort_use=true //单击标题排序功能开关
  116. dw_pageretr.SetTransObject (sqlca)
  117. pkcolumndbtname=wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  118. ori_oldselect=dw_pageretr.Describe("DataWindow.Table.Select")
  119. ls_newselect=ori_oldselect
  120. ds_curquery=CREATE DATASTORE
  121. ds_curquery.DATAOBJECT='d_extr_find'
  122. ds_curquery.SetTransObject (sqlca)
  123. wf_editindex_lockf()
  124. s_hide_col s_col_mtrlsectype
  125. s_col_mtrlsectype.col_1 = 'u_mtrldef_mtrlsectype'
  126. f_hide_col(1308,dw_pageretr,s_col_mtrlsectype)
  127. s_hide_col s_col_zxmtrlmode
  128. s_col_zxmtrlmode.col_1 = 'u_mtrldef_zxmtrlmode'
  129. f_hide_col(1309,dw_pageretr,s_col_zxmtrlmode)
  130. sle_usual_query.text=trim(arg_string_code)
  131. if NOT retrieve_all then
  132. THIS.TRIGGEREVENT("ue_usual_query_RETR") //修改ls_newselect,retrieve
  133. else
  134. if if_sharedata then
  135. ds_share.sharedata(dw_pageretr)
  136. else
  137. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  138. this.TRIGGEREVENT('RETRIEVE_pageretr')
  139. end if
  140. end if
  141. IF retrieve_all THEN
  142. THIS.TRIGGEREVENT("ue_usual_query_filt")
  143. END IF
  144. end event
  145. type cb_func from w_pageretr_ch`cb_func within w_saletask_mtrl_ch
  146. end type
  147. type cb_exit from w_pageretr_ch`cb_exit within w_saletask_mtrl_ch
  148. integer x = 965
  149. end type
  150. type sle_usual_query from w_pageretr_ch`sle_usual_query within w_saletask_mtrl_ch
  151. integer x = 197
  152. integer y = 184
  153. end type
  154. type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_saletask_mtrl_ch
  155. integer x = 1413
  156. end type
  157. type em_pagerowno from w_pageretr_ch`em_pagerowno within w_saletask_mtrl_ch
  158. integer x = 1115
  159. integer y = 32
  160. end type
  161. type dw_pageretr from w_pageretr_ch`dw_pageretr within w_saletask_mtrl_ch
  162. integer width = 3593
  163. integer height = 1904
  164. string dataobject = "dw_saletask_mtrl_ch"
  165. boolean rbutton_filter_use = true
  166. boolean rbutton_setposition_use = true
  167. boolean titleclick_sort_use = true
  168. end type
  169. event dw_pageretr::clicked;if row>0 then
  170. this.setrow(row)
  171. if if_mlselect=1 then
  172. if if_changeselect then
  173. this.selectrow(row,not this.IsSelected(row))
  174. else
  175. if_changeselect=true
  176. end if
  177. else
  178. this.selectrow(0,false)
  179. this.selectrow(row,true)
  180. end if
  181. end if
  182. end event
  183. event dw_pageretr::doubleclicked;cb_choice.TRIGGEREVENT(CLICKED!)
  184. end event
  185. event dw_pageretr::rowfocuschanged;if if_mlselect=1 then
  186. if currentrow <=0 then return
  187. if keydown(keycontrol!) then
  188. if this.isselected(currentrow) then
  189. this.selectrow(currentrow,false)
  190. if_changeselect=false
  191. else
  192. if_changeselect=true
  193. end if
  194. else
  195. if not this.isselected(currentrow) then
  196. this.selectrow(currentrow,true)
  197. if_changeselect=false
  198. else
  199. if_changeselect=true
  200. end if
  201. end if
  202. else
  203. if dw_edit_mode then return
  204. if currentrow <=0 then return
  205. this.selectrow(0,false)
  206. this.selectrow(currentrow,true)
  207. end if
  208. end event
  209. event dw_pageretr::dwnkey;call super::dwnkey;if keydown(keyenter!) then return 1
  210. end event
  211. type st_1 from w_pageretr_ch`st_1 within w_saletask_mtrl_ch
  212. integer x = 18
  213. end type
  214. type cb_nextpage from w_pageretr_ch`cb_nextpage within w_saletask_mtrl_ch
  215. integer x = 1563
  216. end type
  217. type cb_choice from w_pageretr_ch`cb_choice within w_saletask_mtrl_ch
  218. integer x = 814
  219. integer taborder = 120
  220. end type
  221. event cb_choice::clicked;call super::clicked;Long ROW,ls_i = 0,chC = 0
  222. ROW = dw_pageretr.GetRow()
  223. IF ROW <= 0 THEN
  224. MessageBox('提示','请先选择目标行!',information!,OK!)
  225. RETURN
  226. END IF
  227. FOR ls_i = 1 To dw_pageretr.RowCount()
  228. IF dw_pageretr.IsSelected(ls_i) THEN
  229. chC++
  230. INS_RT_STRU.mtrlid[chC] = dw_pageretr.Object.u_saletaskmx_mtrlid[ls_i]
  231. INS_RT_STRU.mtrlcode[chC] = dw_pageretr.Object.u_mtrldef_mtrlcode[ls_i]
  232. INS_RT_STRU.mtrlname[chC] = dw_pageretr.Object.u_mtrldef_mtrlname[ls_i]
  233. INS_RT_STRU.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i]
  234. INS_RT_STRU.unit[chC] = dw_pageretr.Object.u_mtrldef_unit[ls_i]
  235. INS_RT_STRU.cusid[chC] = dw_pageretr.Object.u_cust_cusid[ls_i]
  236. // INS_RT_STRU.noassignqty[chC] = dw_pageretr.Object.noassignqty[ls_i]
  237. INS_RT_STRU.taskid[chC] = dw_pageretr.Object.u_saletask_taskid[ls_i]
  238. INS_RT_STRU.taskcode[chC] = dw_pageretr.Object.u_saletask_taskcode[ls_i]
  239. INS_RT_STRU.cusname[chC] = dw_pageretr.Object.u_cust_name[ls_i]
  240. INS_RT_STRU.mxdscrp[chC] = dw_pageretr.Object.u_saletaskmx_mxdscrp[ls_i]
  241. INS_RT_STRU.status[chC] = dw_pageretr.Object.u_saletaskmx_status[ls_i]
  242. INS_RT_STRU.woodcode[chC] = dw_pageretr.Object.u_saletaskmx_woodcode[ls_i]
  243. INS_RT_STRU.pcode[chC] = dw_pageretr.Object.u_saletaskmx_pcode[ls_i]
  244. INS_RT_STRU.requiredate[chC] = dw_pageretr.Object.u_saletask_requiredate[ls_i]
  245. INS_RT_STRU.relcode[chC] = dw_pageretr.Object.u_saletask_relcode[ls_i]
  246. INS_RT_STRU.noassignqty[chC] = dw_pageretr.Object.noassignqty[ls_i]
  247. INS_RT_STRU.orderqty[chC] = dw_pageretr.Object.u_saletaskmx_orderqty[ls_i]
  248. INS_RT_STRU.printid[chC] = dw_pageretr.Object.u_saletaskmx_printid[ls_i]
  249. END IF
  250. NEXT
  251. IF chC = 0 THEN
  252. MessageBox('提示','请至少选择一个目标行!',information!,OK!)
  253. RETURN
  254. END IF
  255. Close(Parent)
  256. end event
  257. type cb_refresh from w_pageretr_ch`cb_refresh within w_saletask_mtrl_ch
  258. end type
  259. type cb_help from w_pageretr_ch`cb_help within w_saletask_mtrl_ch
  260. end type
  261. type ln_bar from w_pageretr_ch`ln_bar within w_saletask_mtrl_ch
  262. end type
  263. type ln_bar2 from w_pageretr_ch`ln_bar2 within w_saletask_mtrl_ch
  264. end type
  265. type r_bar from w_pageretr_ch`r_bar within w_saletask_mtrl_ch
  266. end type
  267. type ln_1 from w_pageretr_ch`ln_1 within w_saletask_mtrl_ch
  268. end type
  269. type ln_2 from w_pageretr_ch`ln_2 within w_saletask_mtrl_ch
  270. end type
  271. type cbx_mlselect from checkbox within w_saletask_mtrl_ch
  272. integer x = 837
  273. integer y = 200
  274. integer width = 256
  275. integer height = 60
  276. boolean bringtotop = true
  277. integer textsize = -9
  278. integer weight = 400
  279. fontcharset fontcharset = gb2312charset!
  280. fontpitch fontpitch = variable!
  281. string facename = "宋体"
  282. long backcolor = 134217739
  283. string text = "多选"
  284. end type
  285. event clicked;if this.checked then
  286. if_mlselect=1
  287. else
  288. if_mlselect=0
  289. end if
  290. f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect))
  291. end event
  292. event constructor;if_mlselect=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", '0'))
  293. if if_mlselect =0 then
  294. this.checked=false
  295. else
  296. this.checked=true
  297. end if
  298. end event
  299. type cb_other from uo_imflatbutton within w_saletask_mtrl_ch
  300. integer x = 453
  301. integer width = 361
  302. integer height = 164
  303. integer taborder = 30
  304. boolean bringtotop = true
  305. string text = "产品相关查询"
  306. string normalpicname = "imexport.BMP"
  307. integer picsize = 16
  308. toolbaralignment pic_align = alignattop!
  309. boolean border = false
  310. end type
  311. event clicked;call super::clicked;Long ll_row
  312. ll_row = dw_pageretr.GetRow()
  313. IF ll_row <= 0 THEN
  314. MessageBox('提示','请选择物料',information!,OK!)
  315. RETURN
  316. END IF
  317. Long ll_mtrlid
  318. ll_mtrlid = dw_pageretr.Object.u_saletaskmx_mtrlid[ll_row]
  319. IF IsValid(w_mtrl_info) THEN
  320. w_mtrl_info.WindowState = Normal!
  321. w_mtrl_info.ins_mtrlid = ll_mtrlid
  322. w_mtrl_info.wf_retrieve(ll_mtrlid)
  323. ELSE
  324. OpenWithParm(w_mtrl_info,ll_mtrlid)
  325. END IF
  326. end event