w_client_list.srw 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598
  1. $PBExportHeader$w_client_list.srw
  2. forward
  3. global type w_client_list from w_pageretr_ch
  4. end type
  5. type cbx_mlselect from checkbox within w_client_list
  6. end type
  7. type cbx_allselect from checkbox within w_client_list
  8. end type
  9. type cb_1 from uo_imflatbutton within w_client_list
  10. end type
  11. type cbx_1 from checkbox within w_client_list
  12. end type
  13. type cb_2 from uo_imflatbutton within w_client_list
  14. end type
  15. end forward
  16. global type w_client_list from w_pageretr_ch
  17. integer width = 3301
  18. integer height = 2108
  19. string title = "在线用户列表"
  20. boolean minbox = true
  21. windowtype windowtype = popup!
  22. cbx_mlselect cbx_mlselect
  23. cbx_allselect cbx_allselect
  24. cb_1 cb_1
  25. cbx_1 cbx_1
  26. cb_2 cb_2
  27. end type
  28. global w_client_list w_client_list
  29. type variables
  30. //s_mtrldef_buytask_array INS_RT_STRU
  31. boolean if_changeselect=true
  32. int if_mlselect=0
  33. long cur_sptid
  34. end variables
  35. forward prototypes
  36. public subroutine wf_retrieve (string arg_msg)
  37. end prototypes
  38. public subroutine wf_retrieve (string arg_msg);//IF arg_msg <> "" THEN
  39. dw_pageretr.Reset()
  40. dw_pageretr.ImportString(arg_msg)
  41. //END IF
  42. //long i
  43. //string username,userid
  44. //for i = 1 to dw_pageretr.rowcount()
  45. // userid = dw_pageretr.object.userid[i]
  46. // select username
  47. // into :username
  48. // from u_user
  49. // where userid = :userid;
  50. // if sqlca.sqlcode <> 0 then username = ''
  51. // dw_pageretr.object.username[i] = username
  52. //next
  53. end subroutine
  54. on w_client_list.create
  55. int iCurrent
  56. call super::create
  57. this.cbx_mlselect=create cbx_mlselect
  58. this.cbx_allselect=create cbx_allselect
  59. this.cb_1=create cb_1
  60. this.cbx_1=create cbx_1
  61. this.cb_2=create cb_2
  62. iCurrent=UpperBound(this.Control)
  63. this.Control[iCurrent+1]=this.cbx_mlselect
  64. this.Control[iCurrent+2]=this.cbx_allselect
  65. this.Control[iCurrent+3]=this.cb_1
  66. this.Control[iCurrent+4]=this.cbx_1
  67. this.Control[iCurrent+5]=this.cb_2
  68. end on
  69. on w_client_list.destroy
  70. call super::destroy
  71. destroy(this.cbx_mlselect)
  72. destroy(this.cbx_allselect)
  73. destroy(this.cb_1)
  74. destroy(this.cbx_1)
  75. destroy(this.cb_2)
  76. end on
  77. event ue_usual_query_filt;call super::ue_usual_query_filt;string obj_expr=''
  78. if trim(sle_usual_query.text)<>'' then
  79. if pos(trim(sle_usual_query.text),'%')=0 then
  80. obj_expr=obj_expr+'( u_mtrldef_mtrlcode like "%'+trim(sle_usual_query.text)+'%" )'
  81. else
  82. obj_expr=obj_expr+'( u_mtrldef_mtrlcode like "'+trim(sle_usual_query.text)+'" )'
  83. end if
  84. end if
  85. dw_pageretr.setfilter(obj_expr)
  86. dw_pageretr.setredraw(false)
  87. dw_pageretr.filter()
  88. if dw_pageretr.rowcount()>=1 then
  89. dw_pageretr.selectrow(0,false)
  90. dw_pageretr.selectrow(1,true)
  91. end if
  92. dw_pageretr.setredraw(true)
  93. end event
  94. event ue_usual_query_retr;call super::ue_usual_query_retr;string ls_querystrpart=''
  95. ls_newselect=lower(ori_oldselect)
  96. if trim(sle_usual_query.text)<>'' then
  97. if pos(trim(sle_usual_query.text),'%')=0 then
  98. ls_querystrpart="(u_mtrldef.mtrlcode like '%"+trim(sle_usual_query.text)+"%')"
  99. else
  100. ls_querystrpart="(u_mtrldef.mtrlcode like '"+trim(sle_usual_query.text)+"')"
  101. end if
  102. if pos(ls_newselect," where ") <> 0 then
  103. ls_newselect=ls_newselect+" and ("+ls_querystrpart+')'
  104. else
  105. ls_newselect=ls_newselect+" where ("+ls_querystrpart+')'
  106. end if
  107. end if
  108. wf_retrieveuc(dw_pageretr,ls_newselect,1)
  109. this.triggerevent('retrieve_pageretr')
  110. end event
  111. event open;THIS.TriggerEvent('ue_before_open')
  112. wf_movetocenter()
  113. OLD_TITLE = THIS.Title
  114. dw_pageretr.RBUTTON_FILTER_USE = TRUE //右键查询功能开关
  115. dw_pageretr.titleclick_sort_use = TRUE //单击标题排序功能开关
  116. dw_pageretr.SetTransObject (sqlca)
  117. IF sys_wsc.getstate() = 7 THEN
  118. cb_refresh.TriggerEvent(Clicked!)
  119. END IF
  120. end event
  121. event ue_before_open;call super::ue_before_open;if_ue_sort=true
  122. end event
  123. event retrieve_pageretr;boolean cb_firstpage_enabled,cb_nextpage_enabled,cb_retrieveall_enabled
  124. boolean cb_priorpage_enabled,cb_func_enabled,cb_retrieve_enabled
  125. //cb_firstpage_enabled=cb_firstpage.enabled
  126. cb_nextpage_enabled=cb_nextpage.enabled
  127. cb_retrieveall_enabled=cb_retrieveall.enabled
  128. //cb_priorpage_enabled=cb_priorpage.enabled
  129. cb_func_enabled=cb_func.enabled
  130. //cb_firstpage.enabled=false
  131. cb_nextpage.enabled=false
  132. cb_retrieveall.enabled=false
  133. //cb_priorpage.enabled=false
  134. cb_func.enabled=false
  135. SetPointer(HourGlass!)
  136. dw_pageretr.retrieve(cur_sptid)
  137. if dw_pageretr.rowcount()>0 and dw_pageretr.getrow()=0 then dw_pageretr.setrow(1)
  138. SetPointer(Arrow!)
  139. //cb_firstpage.enabled=cb_firstpage_enabled
  140. cb_nextpage.enabled=cb_nextpage_enabled
  141. cb_retrieveall.enabled=cb_retrieveall_enabled
  142. //cb_priorpage.enabled=cb_priorpage_enabled
  143. cb_func.enabled=cb_func_enabled
  144. IF cbx_mlselect.Checked AND dw_pageretr.RowCount() > 1 THEN
  145. dw_pageretr.SelectRow(1,FALSE)
  146. END IF
  147. end event
  148. type cb_func from w_pageretr_ch`cb_func within w_client_list
  149. integer x = 576
  150. boolean enabled = false
  151. end type
  152. type cb_exit from w_pageretr_ch`cb_exit within w_client_list
  153. integer x = 727
  154. end type
  155. type sle_usual_query from w_pageretr_ch`sle_usual_query within w_client_list
  156. boolean visible = false
  157. integer x = 347
  158. boolean enabled = false
  159. end type
  160. type cb_retrieveall from w_pageretr_ch`cb_retrieveall within w_client_list
  161. boolean visible = false
  162. integer x = 1097
  163. end type
  164. type em_pagerowno from w_pageretr_ch`em_pagerowno within w_client_list
  165. boolean visible = false
  166. integer x = 768
  167. end type
  168. type dw_pageretr from w_pageretr_ch`dw_pageretr within w_client_list
  169. integer y = 176
  170. integer width = 3241
  171. integer height = 1820
  172. string dataobject = "dw_clientlist"
  173. end type
  174. event dw_pageretr::clicked;if row>0 then
  175. this.setrow(row)
  176. if if_mlselect=1 then
  177. if if_changeselect then
  178. this.selectrow(row,not this.IsSelected(row))
  179. else
  180. if_changeselect=true
  181. end if
  182. else
  183. this.selectrow(0,false)
  184. this.selectrow(row,true)
  185. end if
  186. end if
  187. end event
  188. event dw_pageretr::rowfocuschanged;if if_mlselect=1 then
  189. if currentrow <=0 then return
  190. if keydown(keycontrol!) then
  191. if this.isselected(currentrow) then
  192. this.selectrow(currentrow,false)
  193. if_changeselect=false
  194. else
  195. if_changeselect=true
  196. end if
  197. else
  198. if not this.isselected(currentrow) then
  199. this.selectrow(currentrow,true)
  200. if_changeselect=false
  201. else
  202. if_changeselect=true
  203. end if
  204. end if
  205. else
  206. if dw_edit_mode then return
  207. if currentrow <=0 then return
  208. this.selectrow(0,false)
  209. this.selectrow(currentrow,true)
  210. end if
  211. end event
  212. event dw_pageretr::dwnkey;call super::dwnkey;if keydown(keyenter!) then return 1
  213. end event
  214. type st_1 from w_pageretr_ch`st_1 within w_client_list
  215. boolean visible = false
  216. integer width = 315
  217. boolean enabled = false
  218. string text = "物料编码含:"
  219. end type
  220. type cb_nextpage from w_pageretr_ch`cb_nextpage within w_client_list
  221. boolean visible = false
  222. integer x = 1243
  223. end type
  224. type cb_choice from w_pageretr_ch`cb_choice within w_client_list
  225. boolean visible = false
  226. end type
  227. event cb_choice::clicked;call super::clicked;//Long ROW,ls_i = 0,chC = 0
  228. //ROW = dw_pageretr.GetRow()
  229. //IF ROW <= 0 THEN
  230. // MessageBox('提示','请先选择目标行!', Information!, OK! )
  231. // RETURN
  232. //END IF
  233. //FOR ls_i = 1 TO dw_pageretr.RowCount()
  234. // IF dw_pageretr.IsSelected(ls_i) THEN
  235. // chC++
  236. // INS_RT_STRU.mtrlid[chC] = dw_pageretr.Object.u_buytaskmx_mtrlid[ls_i]
  237. // INS_RT_STRU.mtrlname[chC] = dw_pageretr.Object.u_mtrldef_mtrlname[ls_i]
  238. // INS_RT_STRU.mtrlcode[chC] = dw_pageretr.Object.u_mtrldef_mtrlcode[ls_i]
  239. // INS_RT_STRU.mtrlmode[chC] = dw_pageretr.Object.u_mtrldef_mtrlmode[ls_i]
  240. // INS_RT_STRU.unit[chC] = dw_pageretr.Object.u_mtrldef_unit[ls_i]
  241. // INS_RT_STRU.mxunit[chC] = dw_pageretr.Object.u_buytaskmx_unit[ls_i]
  242. // INS_RT_STRU.planprice[chC] = dw_pageretr.Object.u_mtrldef_planprice[ls_i]
  243. // INS_RT_STRU.qty[chC] = dw_pageretr.Object.u_buytaskmx_uqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedqty[ls_i]
  244. // INS_RT_STRU.fprice[chC] = dw_pageretr.Object.u_buytaskmx_fprice[ls_i]
  245. // INS_RT_STRU.rebate[chC] = dw_pageretr.Object.u_buytaskmx_rebate[ls_i]
  246. // INS_RT_STRU.uqty[chC] = dw_pageretr.Object.u_buytaskmx_uqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedqty[ls_i]
  247. // INS_RT_STRU.addqty[chC] = dw_pageretr.Object.u_buytaskmx_addqty[ls_i] - dw_pageretr.Object.u_buytaskmx_consignedaddqty[ls_i]
  248. // INS_RT_STRU.uprice[chC] = dw_pageretr.Object.u_buytaskmx_uprice[ls_i]
  249. // INS_RT_STRU.rate[chC] = dw_pageretr.Object.u_buytaskmx_rate[ls_i]
  250. // INS_RT_STRU.buytaskid[chC] = dw_pageretr.Object.u_buytask_taskid [ls_i]
  251. // INS_RT_STRU.buytaskcode[chC] = dw_pageretr.Object.u_buytask_taskcode[ls_i]
  252. // INS_RT_STRU.status[chC] = dw_pageretr.Object.u_buytaskmx_status[ls_i]
  253. // INS_RT_STRU.woodcode[chC] = dw_pageretr.Object.u_buytaskmx_woodcode[ls_i]
  254. // INS_RT_STRU.pcode[chC] = dw_pageretr.Object.u_buytaskmx_pcode[ls_i]
  255. // INS_RT_STRU.orderid[chC] = dw_pageretr.Object.u_buytaskmx_orderid[ls_i]
  256. // INS_RT_STRU.banktypeid[chC] = dw_pageretr.Object.u_buytask_banktypeid[ls_i]
  257. // INS_RT_STRU.dscrp[chC] = dw_pageretr.Object.u_buytaskmx_dscrp[ls_i]
  258. // INS_RT_STRU.mtrlsectype[chC] = dw_pageretr.Object.u_mtrldef_mtrlsectype[ls_i]
  259. // INS_RT_STRU.zxmtrlmode[chC] = dw_pageretr.Object.u_mtrldef_zxmtrlmode[ls_i]
  260. // INS_RT_STRU.relcode[chC] = dw_pageretr.Object.u_buytask_relcode[ls_i]
  261. // END IF
  262. //NEXT
  263. //IF chC = 0 THEN
  264. // MessageBox('提示','请至少选择一个目标行!', Information!, OK! )
  265. // RETURN
  266. //END IF
  267. //
  268. //Close(PARENT)
  269. //
  270. //
  271. //
  272. //
  273. end event
  274. type cb_refresh from w_pageretr_ch`cb_refresh within w_client_list
  275. end type
  276. event cb_refresh::clicked;s_msgframe s_msg
  277. s_msg.framehead = 20
  278. sys_wsc.setsendmsg( s_msg, 0)
  279. sys_wsc.TriggerEvent('ue_send') //发送命令
  280. IF IsValid(w_ws) THEN
  281. w_ws.ins_HeartBeatSec = 0
  282. END IF
  283. //rslt = //20秒内超时
  284. IF f_waitforrslt_ws(sys_retritime) = 0 THEN
  285. MessageBox('系统提示','服务器超时!')
  286. return
  287. END IF
  288. if not isnull(sys_buf_s_msgFrame.frame_str[1]) then
  289. wf_retrieve(sys_buf_s_msgFrame.frame_str[1])
  290. end if
  291. end event
  292. type ln_bar from w_pageretr_ch`ln_bar within w_client_list
  293. end type
  294. type ln_bar2 from w_pageretr_ch`ln_bar2 within w_client_list
  295. end type
  296. type r_bar from w_pageretr_ch`r_bar within w_client_list
  297. end type
  298. type ln_1 from w_pageretr_ch`ln_1 within w_client_list
  299. integer beginy = 168
  300. integer endy = 168
  301. end type
  302. type ln_2 from w_pageretr_ch`ln_2 within w_client_list
  303. integer beginy = 172
  304. integer endy = 172
  305. end type
  306. type cbx_mlselect from checkbox within w_client_list
  307. boolean visible = false
  308. integer x = 663
  309. integer y = 92
  310. integer width = 256
  311. integer height = 60
  312. boolean bringtotop = true
  313. integer textsize = -9
  314. integer weight = 400
  315. fontcharset fontcharset = gb2312charset!
  316. fontpitch fontpitch = variable!
  317. string facename = "宋体"
  318. long backcolor = 134217739
  319. boolean enabled = false
  320. string text = "多选"
  321. end type
  322. event clicked;if this.checked then
  323. if_mlselect=1
  324. else
  325. if_mlselect=0
  326. end if
  327. f_SetProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", string(if_mlselect))
  328. end event
  329. event constructor;if_mlselect=integer(f_ProfileString (sys_empid,dw_pageretr.DATAOBJECT, "if_mlselect", '0'))
  330. if if_mlselect =0 then
  331. this.checked=false
  332. else
  333. this.checked=true
  334. end if
  335. end event
  336. type cbx_allselect from checkbox within w_client_list
  337. boolean visible = false
  338. integer x = 1010
  339. integer y = 92
  340. integer width = 256
  341. integer height = 60
  342. boolean bringtotop = true
  343. integer textsize = -9
  344. integer weight = 400
  345. fontcharset fontcharset = gb2312charset!
  346. fontpitch fontpitch = variable!
  347. string facename = "宋体"
  348. long backcolor = 134217739
  349. boolean enabled = false
  350. string text = "全选"
  351. end type
  352. event clicked;Int li
  353. IF THIS.Checked AND cbx_mlselect.Checked THEN
  354. FOR li = 1 TO dw_pageretr.RowCount()
  355. dw_pageretr.SelectRow(li,TRUE)
  356. NEXT
  357. ELSE
  358. FOR li = 1 TO dw_pageretr.RowCount()
  359. dw_pageretr.SelectRow(li,FALSE)
  360. NEXT
  361. END IF
  362. end event
  363. event constructor;Int li
  364. IF THIS.Checked AND cbx_mlselect.Checked THEN
  365. FOR li = 1 TO dw_pageretr.RowCount()
  366. dw_pageretr.SelectRow(li,TRUE)
  367. NEXT
  368. ELSE
  369. FOR li = 1 TO dw_pageretr.RowCount()
  370. dw_pageretr.SelectRow(li,FALSE)
  371. NEXT
  372. END IF
  373. end event
  374. type cb_1 from uo_imflatbutton within w_client_list
  375. integer x = 151
  376. integer width = 151
  377. integer height = 164
  378. integer taborder = 70
  379. boolean bringtotop = true
  380. string text = "终止"
  381. string normalpicname = "delete.bmp"
  382. integer picsize = 16
  383. toolbaralignment pic_align = alignattop!
  384. boolean border = false
  385. end type
  386. event clicked;call super::clicked;Long ll_spid
  387. String ls_spid_str
  388. Long row
  389. Long ll_selcnt
  390. IF dw_pageretr.RowCount() <= 0 THEN RETURN
  391. ll_selcnt = dw_pageretr.Object.selcnt[1]
  392. IF ll_selcnt = 0 THEN
  393. row = dw_pageretr.GetRow()
  394. IF NOT row > 0 THEN
  395. MessageBox("系统提示","请选择要操作的用户!")
  396. RETURN
  397. END IF
  398. ls_spid_str = String(dw_pageretr.Object.clientdbspid[row])
  399. ELSE
  400. FOR row = 1 TO dw_pageretr.RowCount()
  401. IF dw_pageretr.Object.sel[row] = 1 THEN
  402. ls_spid_str += String(dw_pageretr.Object.clientdbspid[row])+","
  403. END IF
  404. NEXT
  405. END IF
  406. s_msgframe s_msg
  407. s_msg.framehead = 22
  408. s_msg.frame_str[1] = ls_spid_str
  409. sys_wsc.setsendmsg( s_msg, 1)
  410. sys_wsc.TriggerEvent('ue_send') //发送命令
  411. //rslt = //20秒内超时
  412. IF f_waitforrslt_ws(sys_retritime) = 0 THEN
  413. MessageBox('系统提示','服务器超时!')
  414. RETURN
  415. END IF
  416. cb_refresh.TriggerEvent(Clicked!)
  417. end event
  418. type cbx_1 from checkbox within w_client_list
  419. integer x = 1367
  420. integer y = 76
  421. integer width = 402
  422. integer height = 60
  423. boolean bringtotop = true
  424. integer textsize = -9
  425. integer weight = 400
  426. fontcharset fontcharset = gb2312charset!
  427. fontpitch fontpitch = variable!
  428. string facename = "宋体"
  429. long textcolor = 33554432
  430. long backcolor = 67108864
  431. string text = "全选"
  432. end type
  433. event constructor;this.backcolor = 14215660
  434. end event
  435. event clicked;Int i
  436. IF THIS.Checked THEN
  437. FOR i = 1 TO dw_pageretr.RowCount()
  438. dw_pageretr.Object.sel[i] = 1
  439. NEXT
  440. ELSE
  441. FOR i = 1 TO dw_pageretr.RowCount()
  442. dw_pageretr.Object.sel[i] = 0
  443. NEXT
  444. END IF
  445. end event
  446. type cb_2 from uo_imflatbutton within w_client_list
  447. integer x = 302
  448. integer width = 274
  449. integer height = 164
  450. integer taborder = 20
  451. boolean bringtotop = true
  452. string text = "发送信息"
  453. string normalpicname = "update2.BMP"
  454. integer picsize = 16
  455. toolbaralignment pic_align = alignattop!
  456. boolean border = false
  457. end type
  458. event clicked;call super::clicked;Long ll_spid
  459. String ls_spid_str
  460. Long row
  461. Long ll_selcnt
  462. IF dw_pageretr.RowCount() <= 0 THEN RETURN
  463. ll_selcnt = dw_pageretr.Object.selcnt[1]
  464. IF ll_selcnt = 0 THEN
  465. row = dw_pageretr.GetRow()
  466. IF NOT row > 0 THEN
  467. MessageBox("系统提示","请选择要操作的用户!")
  468. RETURN
  469. END IF
  470. ls_spid_str = String(dw_pageretr.Object.clientdbspid[row])
  471. ELSE
  472. FOR row = 1 TO dw_pageretr.RowCount()
  473. IF dw_pageretr.Object.sel[row] = 1 THEN
  474. ls_spid_str += String(dw_pageretr.Object.clientdbspid[row])+","
  475. END IF
  476. NEXT
  477. END IF
  478. string LS_STR
  479. s_inputbox S_SREU
  480. S_SREU.Title = '请输入要发送的内容'
  481. S_SREU.OLD_TEXT = ''
  482. OpenWithParm(w_inputbox,S_SREU)
  483. LS_STR = Message.StringParm
  484. IF Trim(LS_STR) = '' OR IsNull(LS_STR) THEN RETURN
  485. s_msgframe s_msg
  486. s_msg.framehead = 100
  487. s_msg.frame_str[1] = ls_spid_str
  488. s_msg.frame_str[2] = LS_STR
  489. sys_wsc.setsendmsg( s_msg, 2)
  490. sys_wsc.TriggerEvent('ue_send') //发送命令
  491. //rslt = //20秒内超时
  492. IF f_waitforrslt_ws(sys_retritime) = 0 THEN
  493. MessageBox('系统提示','服务器超时!')
  494. RETURN
  495. END IF
  496. cb_refresh.TriggerEvent(Clicked!)
  497. end event