w_saletask_scll_ch.srw 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519
  1. $PBExportHeader$w_saletask_scll_ch.srw
  2. forward
  3. global type w_saletask_scll_ch from w_pageretr_ch
  4. end type
  5. type cbx_mlselect from checkbox within w_saletask_scll_ch
  6. end type
  7. type cb_other from uo_imflatbutton within w_saletask_scll_ch
  8. end type
  9. type cbx_ifzero from checkbox within w_saletask_scll_ch
  10. end type
  11. type cbx_ifinware from checkbox within w_saletask_scll_ch
  12. end type
  13. type dw_mx from u_dw_rbtnfilter within w_saletask_scll_ch
  14. end type
  15. end forward
  16. global type w_saletask_scll_ch from w_pageretr_ch
  17. integer width = 3611
  18. integer height = 2380
  19. string title = "订单产品选择 [按Ctrl键反选]"
  20. cbx_mlselect cbx_mlselect
  21. cb_other cb_other
  22. cbx_ifzero cbx_ifzero
  23. cbx_ifinware cbx_ifinware
  24. dw_mx dw_mx
  25. end type
  26. global w_saletask_scll_ch w_saletask_scll_ch
  27. type variables
  28. s_saletask_mtrl INS_RT_STRU
  29. Int if_mlselect = 0
  30. Boolean if_changeselect = TRUE
  31. long rtr_mtrlid = 0
  32. long cur_scid
  33. long cur_areaid_arr[]
  34. long if_inware = 1
  35. long cur_storageid
  36. long select_mode
  37. end variables
  38. on w_saletask_scll_ch.create
  39. int iCurrent
  40. call super::create
  41. this.cbx_mlselect=create cbx_mlselect
  42. this.cb_other=create cb_other
  43. this.cbx_ifzero=create cbx_ifzero
  44. this.cbx_ifinware=create cbx_ifinware
  45. this.dw_mx=create dw_mx
  46. iCurrent=UpperBound(this.Control)
  47. this.Control[iCurrent+1]=this.cbx_mlselect
  48. this.Control[iCurrent+2]=this.cb_other
  49. this.Control[iCurrent+3]=this.cbx_ifzero
  50. this.Control[iCurrent+4]=this.cbx_ifinware
  51. this.Control[iCurrent+5]=this.dw_mx
  52. end on
  53. on w_saletask_scll_ch.destroy
  54. call super::destroy
  55. destroy(this.cbx_mlselect)
  56. destroy(this.cb_other)
  57. destroy(this.cbx_ifzero)
  58. destroy(this.cbx_ifinware)
  59. destroy(this.dw_mx)
  60. end on
  61. event ue_before_open;call super::ue_before_open;if_ue_retr=true
  62. if_ue_sort=true
  63. end event
  64. event close;call super::close;cLOSEWITHRETURN(THIS,INS_RT_STRU)
  65. //<INS_RT_STRU> 窗体级子定义结构变量,用于返回
  66. end event
  67. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  68. if trim(sle_usual_query.text)<>'' then
  69. IF POS(trim(sle_usual_query.text),'%')=0 THEN
  70. obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "%'+trim(sle_usual_query.text)+'%" )'
  71. ELSE
  72. obj_expr=obj_expr+'( u_mtrldef_mtrlcode LIKE "'+trim(sle_usual_query.text)+'" )'
  73. END IF
  74. end if
  75. dw_pageretr.setfilter(obj_expr)
  76. dw_pageretr.SetRedraw(False)
  77. dw_pageretr.filter()
  78. if dw_pageretr.rowcount()>=1 then
  79. dw_pageretr.selectrow(0,false)
  80. dw_pageretr.selectrow(1,true )
  81. end if
  82. dw_pageretr.SetRedraw(TRUE )
  83. end event
  84. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  85. ls_newselect=lower(ori_oldselect)
  86. if trim(sle_usual_query.text)<>'' then
  87. if pos(trim(sle_usual_query.text),'%')=0 then
  88. ls_querystrpart=" u_mtrldef.mtrlcode like '%"+trim(sle_usual_query.text)+"%'"
  89. else
  90. ls_querystrpart=" u_mtrldef.mtrlcode like '"+trim(sle_usual_query.text)+"'"
  91. end if
  92. if Pos(ls_newselect," where ") <> 0 then
  93. ls_newselect=ls_newselect+" AND ("+ls_querystrpart+')'
  94. else
  95. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  96. end if
  97. end if
  98. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  99. this.triggerevent('retrieve_pageretr')
  100. end event
  101. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  102. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  103. cb_nextpage_enabled=cb_nextpage.enabled
  104. cb_retrieveall_enabled=cb_retrieveall.enabled
  105. cb_func_enabled=cb_func.enabled
  106. cb_nextpage.enabled=false
  107. cb_retrieveall.enabled=false
  108. cb_func.enabled=false
  109. SetPointer(HourGlass!)
  110. dw_pageretr.retrieve(cur_scid,cur_areaid_arr,if_inware)
  111. if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1)
  112. SetPointer(Arrow!)
  113. cb_nextpage.enabled=cb_nextpage_enabled
  114. cb_retrieveall.enabled=cb_retrieveall_enabled
  115. cb_func.enabled=cb_func_enabled
  116. IF cbx_mlselect.Checked AND dw_pageretr.RowCount() > 1 THEN
  117. dw_pageretr.SelectRow(1,FALSE)
  118. END IF
  119. end event
  120. event open;THIS.TriggerEvent('ue_before_open')
  121. wf_movetocenter()
  122. OLD_TITLE = THIS.Title
  123. s_tran = Message.PowerObjectParm
  124. IF NOT IsNull(s_tran) THEN
  125. retrieve_all = s_tran.if_retrieve_all
  126. mode = s_tran.work_mode
  127. arg_pkid = s_tran.arg_pkid
  128. arg_string_code = s_tran.arg_string_code
  129. if_sharedata = s_tran.if_sharedata //是否应用sharedata,当retrieve_all=true是生效
  130. ds_share = s_tran.ds_share
  131. cur_storageid = s_tran.d_long
  132. cur_areaid_arr = s_tran.arr_long
  133. select_mode = s_tran.e_long
  134. END IF
  135. IF select_mode = 1 THEN
  136. if_mlselect = 0
  137. cbx_mlselect.Visible = FALSE
  138. END IF
  139. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  140. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  141. dw_pageretr.SetTransObject (sqlca)
  142. dw_mx.SetTransObject (sqlca)
  143. pkcolumndbtname = wf_get_pkcolumndbtname(dw_pageretr) //取第一列为关键字
  144. ori_oldselect = dw_pageretr.Describe("DataWindow.Table.Select")
  145. ls_newselect = ori_oldselect
  146. ds_curquery = CREATE DATASTORE
  147. ds_curquery.DataObject = 'd_extr_find'
  148. ds_curquery.SetTransObject (sqlca)
  149. wf_editindex_lockf()
  150. sle_usual_query.Text = Trim(arg_string_code)
  151. IF NOT retrieve_all THEN
  152. THIS.TriggerEvent("ue_usual_query_RETR") //修改ls_newselect,retrieve
  153. ELSE
  154. IF if_sharedata THEN
  155. ds_share.ShareData(dw_pageretr)
  156. ELSE
  157. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  158. THIS.TriggerEvent('RETRIEVE_pageretr')
  159. END IF
  160. END IF
  161. IF retrieve_all THEN
  162. THIS.TriggerEvent("ue_usual_query_filt")
  163. END IF
  164. end event
  165. type cb_func from w_pageretr_ch`cb_func within w_saletask_scll_ch
  166. end type
  167. type cb_exit from w_pageretr_ch`cb_exit within w_saletask_scll_ch
  168. integer x = 965
  169. end type
  170. type sle_usual_query from w_pageretr_ch`sle_usual_query within w_saletask_scll_ch
  171. integer x = 197
  172. integer y = 184
  173. end type
  174. type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_saletask_scll_ch
  175. integer x = 1413
  176. end type
  177. type em_pagerowno from w_pageretr_ch`em_pagerowno within w_saletask_scll_ch
  178. integer x = 1115
  179. integer y = 32
  180. end type
  181. type dw_pageretr from w_pageretr_ch`dw_pageretr within w_saletask_scll_ch
  182. integer width = 3547
  183. integer height = 1268
  184. string dataobject = "dw_saletask_scll_ch"
  185. end type
  186. event dw_pageretr::clicked;if row>0 then
  187. this.setrow(row)
  188. if if_mlselect=1 then
  189. if if_changeselect then
  190. this.selectrow(row,not this.IsSelected(row))
  191. else
  192. if_changeselect=true
  193. end if
  194. else
  195. this.selectrow(0,false)
  196. this.selectrow(row,true)
  197. end if
  198. end if
  199. end event
  200. event dw_pageretr::doubleclicked;cb_choice.TRIGGEREVENT(CLICKED!)
  201. end event
  202. event dw_pageretr::rowfocuschanged;if if_mlselect=1 then
  203. if currentrow <=0 then return
  204. if keydown(keycontrol!) then
  205. if this.isselected(currentrow) then
  206. this.selectrow(currentrow,false)
  207. if_changeselect=false
  208. else
  209. if_changeselect=true
  210. end if
  211. else
  212. if not this.isselected(currentrow) then
  213. this.selectrow(currentrow,true)
  214. if_changeselect=false
  215. else
  216. if_changeselect=true
  217. end if
  218. end if
  219. else
  220. if dw_edit_mode then return
  221. if currentrow <=0 then return
  222. this.selectrow(0,false)
  223. this.selectrow(currentrow,true)
  224. end if
  225. long ll_scid
  226. long ll_taskid
  227. long ll_printid
  228. if currentrow = 0 then return
  229. ll_scid = dw_pageretr.object.scid[currentrow]
  230. ll_taskid = dw_pageretr.object.u_saletask_taskid[currentrow]
  231. ll_printid = dw_pageretr.object.printid[currentrow]
  232. dw_mx.retrieve(ll_scid,ll_taskid,ll_printid )
  233. end event
  234. event dw_pageretr::dwnkey;call super::dwnkey;if keydown(keyenter!) then return 1
  235. end event
  236. type st_1 from w_pageretr_ch`st_1 within w_saletask_scll_ch
  237. integer x = 18
  238. end type
  239. type cb_nextpage from w_pageretr_ch`cb_nextpage within w_saletask_scll_ch
  240. integer x = 1563
  241. end type
  242. type cb_choice from w_pageretr_ch`cb_choice within w_saletask_scll_ch
  243. integer x = 814
  244. integer taborder = 120
  245. end type
  246. event cb_choice::clicked;call super::clicked;Long ROW,ls_i = 0,chC = 0
  247. ROW = dw_pageretr.GetRow()
  248. IF ROW <= 0 THEN
  249. MessageBox('提示','请先选择目标行!',information!,OK!)
  250. RETURN
  251. END IF
  252. FOR ls_i = 1 TO dw_pageretr.RowCount()
  253. IF dw_pageretr.IsSelected(ls_i) THEN
  254. chC++
  255. INS_RT_STRU.mtrlid[chC] = dw_pageretr.Object.u_saletaskmx_mtrlid[ls_i]
  256. INS_RT_STRU.mtrlcode[chC] = dw_pageretr.Object.u_mtrldef_mtrlcode[ls_i]
  257. INS_RT_STRU.mtrlname[chC] = dw_pageretr.Object.u_mtrldef_mtrlname[ls_i]
  258. INS_RT_STRU.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i]
  259. INS_RT_STRU.unit[chC] = dw_pageretr.Object.u_mtrldef_unit[ls_i]
  260. INS_RT_STRU.printid[chC] = dw_pageretr.Object.printid[ls_i]
  261. INS_RT_STRU.scid[chC] = dw_pageretr.Object.scid[ls_i]
  262. INS_RT_STRU.cusid[chC] = dw_pageretr.Object.u_cust_cusid[ls_i]
  263. INS_RT_STRU.noassignqty[chC] = dw_pageretr.Object.noassignqty[ls_i]
  264. INS_RT_STRU.taskid[chC] = dw_pageretr.Object.u_saletask_taskid[ls_i]
  265. INS_RT_STRU.taskcode[chC] = dw_pageretr.Object.u_saletask_taskcode[ls_i]
  266. INS_RT_STRU.cusname[chC] = dw_pageretr.Object.u_cust_name[ls_i]
  267. INS_RT_STRU.mxdscrp[chC] = dw_pageretr.Object.u_saletaskmx_mxdscrp[ls_i]
  268. INS_RT_STRU.status[chC] = dw_pageretr.Object.u_saletaskmx_status[ls_i]
  269. INS_RT_STRU.woodcode[chC] = dw_pageretr.Object.u_saletaskmx_woodcode[ls_i]
  270. INS_RT_STRU.pcode[chC] = dw_pageretr.Object.u_saletaskmx_pcode[ls_i]
  271. INS_RT_STRU.requiredate[chC] = dw_pageretr.Object.u_saletask_requiredate[ls_i]
  272. INS_RT_STRU.relcode[chC] = dw_pageretr.Object.u_saletask_relcode[ls_i]
  273. INS_RT_STRU.saletaskcode[chC] = dw_pageretr.Object.u_saletask_taskcode[ls_i]
  274. INS_RT_STRU.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i]
  275. INS_RT_STRU.mtrlsectype[chC] = dw_pageretr.Object.u_mtrldef_mtrlsectype[ls_i]
  276. INS_RT_STRU.zxmtrlmode[chC] = dw_pageretr.Object.u_mtrldef_zxmtrlmode[ls_i]
  277. END IF
  278. NEXT
  279. IF chC = 0 THEN
  280. MessageBox('提示','请至少选择一个目标行!',information!,OK!)
  281. RETURN
  282. END IF
  283. Close(PARENT)
  284. end event
  285. type cb_refresh from w_pageretr_ch`cb_refresh within w_saletask_scll_ch
  286. end type
  287. type cb_help from w_pageretr_ch`cb_help within w_saletask_scll_ch
  288. end type
  289. type ln_bar from w_pageretr_ch`ln_bar within w_saletask_scll_ch
  290. end type
  291. type ln_bar2 from w_pageretr_ch`ln_bar2 within w_saletask_scll_ch
  292. end type
  293. type r_bar from w_pageretr_ch`r_bar within w_saletask_scll_ch
  294. end type
  295. type ln_1 from w_pageretr_ch`ln_1 within w_saletask_scll_ch
  296. end type
  297. type ln_2 from w_pageretr_ch`ln_2 within w_saletask_scll_ch
  298. end type
  299. type cbx_mlselect from checkbox within w_saletask_scll_ch
  300. integer x = 837
  301. integer y = 200
  302. integer width = 256
  303. integer height = 60
  304. boolean bringtotop = true
  305. integer textsize = -9
  306. integer weight = 400
  307. fontcharset fontcharset = gb2312charset!
  308. fontpitch fontpitch = variable!
  309. string facename = "宋体"
  310. long backcolor = 134217739
  311. string text = "多选"
  312. end type
  313. event clicked;if this.checked then
  314. if_mlselect=1
  315. else
  316. if_mlselect=0
  317. end if
  318. f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect))
  319. end event
  320. event constructor;if_mlselect=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", '0'))
  321. if if_mlselect =0 then
  322. this.checked=false
  323. else
  324. this.checked=true
  325. end if
  326. end event
  327. type cb_other from uo_imflatbutton within w_saletask_scll_ch
  328. integer x = 453
  329. integer width = 361
  330. integer height = 164
  331. integer taborder = 30
  332. boolean bringtotop = true
  333. string text = "产品相关查询"
  334. string normalpicname = "imexport.BMP"
  335. integer picsize = 16
  336. toolbaralignment pic_align = alignattop!
  337. boolean border = false
  338. end type
  339. event clicked;call super::clicked;Long ll_row
  340. ll_row = dw_pageretr.GetRow()
  341. IF ll_row <= 0 THEN
  342. MessageBox('提示','请选择物料',information!,OK!)
  343. RETURN
  344. END IF
  345. Long ll_mtrlid
  346. ll_mtrlid = dw_pageretr.Object.u_saletaskmx_mtrlid[ll_row]
  347. IF IsValid(w_mtrl_info) THEN
  348. w_mtrl_info.WindowState = Normal!
  349. w_mtrl_info.ins_mtrlid = ll_mtrlid
  350. w_mtrl_info.wf_retrieve(ll_mtrlid)
  351. ELSE
  352. OpenWithParm(w_mtrl_info,ll_mtrlid)
  353. END IF
  354. end event
  355. type cbx_ifzero from checkbox within w_saletask_scll_ch
  356. integer x = 1966
  357. integer y = 200
  358. integer width = 686
  359. integer height = 60
  360. boolean bringtotop = true
  361. integer textsize = -9
  362. integer weight = 400
  363. fontcharset fontcharset = gb2312charset!
  364. fontpitch fontpitch = variable!
  365. string facename = "宋体"
  366. long textcolor = 33554432
  367. long backcolor = 134217739
  368. string text = "按订单出仓时考虑零库存"
  369. boolean checked = true
  370. end type
  371. event clicked;int if_zeromtrlware
  372. if this.checked then
  373. if_zeromtrlware=1
  374. else
  375. if_zeromtrlware=0
  376. end if
  377. f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_zeromtrlware", string(if_zeromtrlware))
  378. end event
  379. event constructor;int if_zeromtrlware
  380. if_zeromtrlware=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_zeromtrlware", '1'))
  381. if if_zeromtrlware =0 then
  382. this.checked=false
  383. else
  384. this.checked=true
  385. end if
  386. end event
  387. type cbx_ifinware from checkbox within w_saletask_scll_ch
  388. integer x = 2729
  389. integer y = 200
  390. integer width = 576
  391. integer height = 60
  392. boolean bringtotop = true
  393. integer textsize = -9
  394. integer weight = 400
  395. fontcharset fontcharset = gb2312charset!
  396. fontpitch fontpitch = variable!
  397. string facename = "宋体"
  398. long textcolor = 33554432
  399. long backcolor = 134217739
  400. string text = "只显示未进仓订单"
  401. end type
  402. event clicked;
  403. if this.checked then
  404. if_inware=1
  405. else
  406. if_inware=0
  407. end if
  408. f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_inware", string(if_inware))
  409. cb_refresh.TriggerEvent(clicked!)
  410. end event
  411. type dw_mx from u_dw_rbtnfilter within w_saletask_scll_ch
  412. integer y = 1568
  413. integer width = 3547
  414. integer height = 640
  415. integer taborder = 20
  416. boolean bringtotop = true
  417. string dataobject = "dw_saletask_scll_ch_mx"
  418. boolean hscrollbar = true
  419. boolean vscrollbar = true
  420. end type