uo_aifmb_tv_class.sru 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643
  1. $PBExportHeader$uo_aifmb_tv_class.sru
  2. forward
  3. global type uo_aifmb_tv_class from userobject
  4. end type
  5. type sle_1 from singlelineedit within uo_aifmb_tv_class
  6. end type
  7. type tv_1 from treeview within uo_aifmb_tv_class
  8. end type
  9. type cb_1 from uo_imflatbutton within uo_aifmb_tv_class
  10. end type
  11. type cb_reflash from uo_imflatbutton within uo_aifmb_tv_class
  12. end type
  13. end forward
  14. global type uo_aifmb_tv_class from userobject
  15. integer width = 795
  16. integer height = 1128
  17. long backcolor = 67108864
  18. string text = "none"
  19. borderstyle borderstyle = stylelowered!
  20. long tabtextcolor = 33554432
  21. long picturemaskcolor = 536870912
  22. event ue_size pbm_size
  23. event ue_selectionchanged ( )
  24. event ue_retrieve ( )
  25. event ue_retrieve_all ( )
  26. sle_1 sle_1
  27. tv_1 tv_1
  28. cb_1 cb_1
  29. cb_reflash cb_reflash
  30. end type
  31. global uo_aifmb_tv_class uo_aifmb_tv_class
  32. type variables
  33. long uo_nodeid_arr[]
  34. string uo_keyword
  35. boolean uo_withindex = false
  36. private:
  37. datastore ds_classgroup
  38. datastore ds_classnode
  39. datastore ds_relation
  40. datastore ds_shortcut
  41. long ins_root = 0
  42. long ins_select = 0
  43. s_aifmb_tvi cur_data
  44. long ins_userid = 0
  45. end variables
  46. forward prototypes
  47. public function s_aifmb_tvi pf_getdata (long arg_handle)
  48. private subroutine pf_build_child (long arg_handle)
  49. public subroutine pf_getnodeid (long arg_handle, ref long arg_nodeid_arr[])
  50. public subroutine uf_build_tree ()
  51. public function long pf_tv_next (long arg_handle)
  52. end prototypes
  53. event ue_size;tv_1.Width = this.Width - tv_1.X
  54. tv_1.Height = this.Height - tv_1.Y
  55. end event
  56. event ue_selectionchanged();// long uo_nodeid_arr[]
  57. end event
  58. event ue_retrieve();uo_aifmb = Create uo_aifmb
  59. String ls_msg
  60. IF uo_aifmb.uf_sync_node_bytime(ls_msg) <> 1 THEN
  61. MessageBox('ERROR', ls_msg)
  62. GOTO ext
  63. END IF
  64. uf_build_tree()
  65. ext:
  66. Destroy uo_aifmb
  67. end event
  68. event ue_retrieve_all();uo_aifmb = Create uo_aifmb
  69. String ls_msg
  70. IF uo_aifmb.uf_sync_node(ls_msg) <> 1 THEN
  71. MessageBox('ERROR', ls_msg)
  72. GOTO ext
  73. END IF
  74. uf_build_tree()
  75. ext:
  76. Destroy uo_aifmb
  77. end event
  78. public function s_aifmb_tvi pf_getdata (long arg_handle);s_aifmb_tvi rslt
  79. rslt.reltype = 0
  80. rslt.relid = 0
  81. treeviewitem tvi
  82. IF arg_handle > 0 THEN
  83. IF tv_1.GetItem(arg_handle, tvi) = 1 THEN
  84. IF Not IsNull(tvi.Data) THEN
  85. rslt = tvi.Data
  86. END IF
  87. END IF
  88. END IF
  89. RETURN rslt
  90. end function
  91. private subroutine pf_build_child (long arg_handle);s_aifmb_tvi s_data
  92. treeviewitem tvi
  93. Long ll_handles[]
  94. Long ll_cnt = 0, ll_handle
  95. Long i, j
  96. // // 根
  97. // s_data.reltype = 0
  98. // s_data.relid = 0
  99. // tvi.Data = s_data
  100. // tvi.PictureIndex = 1
  101. // tvi.SelectedPictureIndex = 1
  102. // tvi.Label = '全部类别'
  103. // ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  104. // IF ll_handle > 0 THEN
  105. // ll_cnt++
  106. // ll_handles[ll_cnt] = ll_handle
  107. // ins_root = ll_handle
  108. // END IF
  109. // IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  110. // ins_select = ll_handle
  111. // END IF
  112. IF arg_handle = 0 THEN
  113. // 标准分类根
  114. s_data.reltype = 11
  115. s_data.relid = 0
  116. tvi.Data = s_data
  117. tvi.PictureIndex = 1
  118. tvi.SelectedPictureIndex = 1
  119. tvi.Label = '标准分类'
  120. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  121. IF ll_handle > 0 THEN
  122. ll_cnt++
  123. ll_handles[ll_cnt] = ll_handle
  124. ins_root = ll_handle
  125. END IF
  126. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  127. ins_select = ll_handle
  128. END IF
  129. // 行业分类根
  130. s_data.reltype = 12
  131. s_data.relid = 0
  132. tvi.Data = s_data
  133. tvi.PictureIndex = 1
  134. tvi.SelectedPictureIndex = 1
  135. tvi.Label = '行业分类'
  136. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  137. IF ll_handle > 0 THEN
  138. ll_cnt++
  139. ll_handles[ll_cnt] = ll_handle
  140. END IF
  141. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  142. ins_select = ll_handle
  143. END IF
  144. IF ins_userid > 0 THEN
  145. // 我的分类根
  146. s_data.reltype = 13
  147. s_data.relid = 0
  148. tvi.Data = s_data
  149. tvi.PictureIndex = 1
  150. tvi.SelectedPictureIndex = 1
  151. tvi.Label = '我的分类'
  152. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  153. IF ll_handle > 0 THEN
  154. ll_cnt++
  155. ll_handles[ll_cnt] = ll_handle
  156. END IF
  157. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  158. ins_select = ll_handle
  159. END IF
  160. END IF
  161. IF uo_withindex THEN
  162. s_data.reltype = 2
  163. s_data.relid = 0
  164. tvi.Data = s_data
  165. tvi.PictureIndex = 3
  166. tvi.SelectedPictureIndex = 3
  167. tvi.Label = '指数'
  168. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  169. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  170. ins_select = ll_handle
  171. END IF
  172. END IF
  173. ELSE
  174. s_data = pf_getdata(arg_handle)
  175. IF s_data.reltype = 11 THEN
  176. // 分类
  177. ds_classgroup.SetFilter("parentid = 0")
  178. ds_classgroup.Filter()
  179. FOR i = 1 To ds_classgroup.RowCount()
  180. s_data.reltype = 1
  181. s_data.relid = ds_classgroup.Object.classid[i]
  182. tvi.Data = s_data
  183. tvi.PictureIndex = 2
  184. tvi.SelectedPictureIndex = 2
  185. tvi.Label = ds_classgroup.Object.ClassName[i]
  186. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  187. IF ll_handle > 0 THEN
  188. ll_cnt++
  189. ll_handles[ll_cnt] = ll_handle
  190. END IF
  191. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  192. ins_select = ll_handle
  193. END IF
  194. NEXT
  195. ELSEIF s_data.reltype = 12 THEN
  196. // 行业分类
  197. ds_shortcut.SetFilter("parentid = 0 AND userid = 0")
  198. ds_shortcut.Filter()
  199. FOR i = 1 To ds_shortcut.RowCount()
  200. s_data.reltype = 3
  201. s_data.relid = ds_shortcut.Object.linkid[i]
  202. tvi.Data = s_data
  203. tvi.PictureIndex = 3
  204. tvi.SelectedPictureIndex = 3
  205. tvi.Label = ds_shortcut.Object.linkname[i]
  206. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  207. IF ll_handle > 0 THEN
  208. ll_cnt++
  209. ll_handles[ll_cnt] = ll_handle
  210. END IF
  211. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  212. ins_select = ll_handle
  213. END IF
  214. NEXT
  215. ELSEIF s_data.reltype = 13 THEN
  216. // 我的分类
  217. ds_shortcut.SetFilter("parentid = 0 AND userid = " + String(ins_userid))
  218. ds_shortcut.Filter()
  219. FOR i = 1 To ds_shortcut.RowCount()
  220. s_data.reltype = 3
  221. s_data.relid = ds_shortcut.Object.linkid[i]
  222. s_data.queryvalue = ds_shortcut.Object.queryvalue[i]
  223. tvi.Data = s_data
  224. tvi.PictureIndex = 3
  225. tvi.SelectedPictureIndex = 3
  226. tvi.Label = ds_shortcut.Object.linkname[i]
  227. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  228. IF ll_handle > 0 THEN
  229. ll_cnt++
  230. ll_handles[ll_cnt] = ll_handle
  231. END IF
  232. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  233. ins_select = ll_handle
  234. END IF
  235. NEXT
  236. ELSEIF s_data.reltype = 3 THEN
  237. // 快捷方式
  238. ds_shortcut.SetFilter("parentid = " + String(s_data.relid))
  239. ds_shortcut.Filter()
  240. FOR i = 1 To ds_shortcut.RowCount()
  241. s_data.reltype = 3
  242. s_data.relid = ds_shortcut.Object.linkid[i]
  243. s_data.queryvalue = ds_shortcut.Object.queryvalue[i]
  244. tvi.Data = s_data
  245. tvi.PictureIndex = 3
  246. tvi.SelectedPictureIndex = 3
  247. tvi.Label = ds_shortcut.Object.linkname[i]
  248. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  249. IF ll_handle > 0 THEN
  250. ll_cnt++
  251. ll_handles[ll_cnt] = ll_handle
  252. END IF
  253. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  254. ins_select = ll_handle
  255. END IF
  256. NEXT
  257. ELSEIF s_data.reltype = 1 THEN
  258. ds_classgroup.SetFilter("parentid = " + String(s_data.relid))
  259. ds_classgroup.Filter()
  260. ds_relation.SetFilter("classid = " + String(s_data.relid))
  261. ds_relation.Filter()
  262. // 分类
  263. FOR i = 1 To ds_classgroup.RowCount()
  264. s_data.reltype = 1
  265. s_data.relid = ds_classgroup.Object.classid[i]
  266. tvi.Data = s_data
  267. tvi.PictureIndex = 2
  268. tvi.SelectedPictureIndex = 2
  269. tvi.Label = ds_classgroup.Object.ClassName[i]
  270. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  271. IF ll_handle > 0 THEN
  272. ll_cnt++
  273. ll_handles[ll_cnt] = ll_handle
  274. END IF
  275. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  276. ins_select = ll_handle
  277. END IF
  278. NEXT
  279. // 基类
  280. FOR i = 1 To ds_relation.RowCount()
  281. j = ds_classnode.Find("nodeid = " + String(ds_relation.Object.nodeid[i]), 1, ds_classnode.RowCount())
  282. IF j > 0 THEN
  283. s_data.reltype = 2
  284. s_data.relid = ds_relation.Object.nodeid[i]
  285. tvi.Data = s_data
  286. tvi.PictureIndex = 3
  287. tvi.SelectedPictureIndex = 3
  288. tvi.Label = ds_classnode.Object.nodename[j] + '['+ds_classnode.Object.nodecode[j]+']'
  289. ll_handle = tv_1.InsertItemLast(arg_handle, tvi)
  290. IF s_data.reltype = cur_data.reltype And s_data.relid = cur_data.relid THEN
  291. ins_select = ll_handle
  292. END IF
  293. END IF
  294. NEXT
  295. END IF
  296. END IF
  297. FOR i = 1 To ll_cnt
  298. pf_build_child(ll_handles[i])
  299. NEXT
  300. end subroutine
  301. public subroutine pf_getnodeid (long arg_handle, ref long arg_nodeid_arr[]);s_aifmb_tvi s_data
  302. s_data = pf_getdata(arg_handle)
  303. Long i, j, ll_nodeid
  304. Long ll_pos
  305. String ls_nodeid
  306. Boolean lb_find = False
  307. i = UpperBound(arg_nodeid_arr)
  308. IF s_data.reltype = 2 THEN // 基类
  309. FOR j = 1 To i
  310. IF arg_nodeid_arr[j] = s_data.relid THEN
  311. RETURN
  312. END IF
  313. NEXT
  314. arg_nodeid_arr[j] = s_data.relid
  315. RETURN
  316. ELSEIF s_data.reltype = 3 THEN
  317. ll_pos = Pos(cur_data.queryvalue, ';')
  318. IF ll_pos > 0 THEN
  319. ls_nodeid = Mid(cur_data.queryvalue, 1, ll_pos - 1)
  320. IF IsNumber(ls_nodeid) THEN
  321. ll_nodeid = Long(ls_nodeid)
  322. lb_find = False
  323. FOR j = 1 To i
  324. IF arg_nodeid_arr[j] = ll_nodeid THEN
  325. lb_find = True
  326. EXIT
  327. END IF
  328. NEXT
  329. IF Not lb_find THEN
  330. arg_nodeid_arr[j] = ll_nodeid
  331. END IF
  332. END IF
  333. END IF
  334. END IF
  335. Long ll_first
  336. ll_first = tv_1.FindItem(ChildTreeItem!, arg_handle)
  337. DO WHILE ll_first > 0
  338. pf_getnodeid(ll_first, arg_nodeid_arr)
  339. ll_first = tv_1.FindItem(NextTreeItem!, ll_first)
  340. LOOP
  341. end subroutine
  342. public subroutine uf_build_tree ();long ll_handle
  343. s_aifmb_tvi old_data
  344. old_data = cur_data
  345. ll_handle = tv_1.FindItem(RootTreeItem!, 0)
  346. do while ll_handle > 0
  347. tv_1.DeleteItem(ll_handle)
  348. ll_handle = tv_1.FindItem(RootTreeItem!, 0)
  349. loop
  350. cur_data = old_data
  351. ds_classgroup.SetTransObject(sqlca)
  352. ds_classnode.SetTransObject(sqlca)
  353. ds_relation.SetTransObject(sqlca)
  354. ds_shortcut.SetTransObject(sqlca)
  355. ds_classgroup.Retrieve()
  356. ds_classnode.Retrieve()
  357. ds_relation.Retrieve()
  358. uo_aifmb = create uo_aifmb
  359. ins_userid = uo_aifmb.sf_userid()
  360. ds_shortcut.Retrieve(ins_userid)
  361. destroy uo_aifmb
  362. pf_build_child(0)
  363. tv_1.ExpandAll(ins_root)
  364. IF ins_select > 0 THEN
  365. tv_1.SelectItem(ins_select)
  366. tv_1.SetFirstVisible(ins_select)
  367. tv_1.trigger event selectionchanged(0, ins_select)
  368. ELSE
  369. tv_1.SelectItem(ins_root)
  370. tv_1.SetFirstVisible(ins_root)
  371. tv_1.trigger event selectionchanged(0, ins_root)
  372. END IF
  373. end subroutine
  374. public function long pf_tv_next (long arg_handle);Long nexthandle = -1
  375. nexthandle = tv_1.FindItem(ChildTreeItem!, arg_handle)
  376. IF nexthandle > 0 THEN RETURN nexthandle
  377. nexthandle = tv_1.FindItem(NextTreeItem!, arg_handle)
  378. IF nexthandle > 0 THEN RETURN nexthandle
  379. Long p
  380. p = tv_1.FindItem(ParentTreeItem!, arg_handle)
  381. DO WHILE p > 0
  382. nexthandle = tv_1.FindItem(NextTreeItem!, p)
  383. IF nexthandle > 0 THEN RETURN nexthandle
  384. p = tv_1.FindItem(ParentTreeItem!, p)
  385. LOOP
  386. RETURN nexthandle
  387. end function
  388. on uo_aifmb_tv_class.create
  389. this.sle_1=create sle_1
  390. this.tv_1=create tv_1
  391. this.cb_1=create cb_1
  392. this.cb_reflash=create cb_reflash
  393. this.Control[]={this.sle_1,&
  394. this.tv_1,&
  395. this.cb_1,&
  396. this.cb_reflash}
  397. end on
  398. on uo_aifmb_tv_class.destroy
  399. destroy(this.sle_1)
  400. destroy(this.tv_1)
  401. destroy(this.cb_1)
  402. destroy(this.cb_reflash)
  403. end on
  404. event constructor;this.backcolor = 14215660
  405. ds_classgroup = Create datastore
  406. ds_classnode = Create datastore
  407. ds_relation = Create datastore
  408. ds_shortcut = create datastore
  409. ds_classgroup.DataObject = 'ds_aifmb_classgroup'
  410. ds_classnode.DataObject = 'ds_aifmb_classnode'
  411. ds_relation.DataObject = 'ds_aifmb_relation'
  412. ds_shortcut.DataObject = 'ds_aifmb_shortcut'
  413. string ls_data
  414. ls_data = f_ProfileString(sys_empid, classname(parent), classname(this), '0_0')
  415. long ll_pos
  416. ll_pos = pos(ls_data, '_')
  417. if ll_pos > 0 then
  418. cur_data.reltype = long(mid(ls_data, 1, ll_pos - 1))
  419. cur_data.relid = long(mid(ls_data, ll_pos + 1))
  420. end if
  421. uf_build_tree()
  422. end event
  423. event destructor;Destroy ds_classgroup
  424. Destroy ds_classnode
  425. Destroy ds_relation
  426. destroy ds_shortcut
  427. f_SetProfilestring(sys_empid, ClassName(Parent), ClassName(This), String(cur_data.reltype) + '_' + String(cur_data.relid))
  428. end event
  429. type sle_1 from singlelineedit within uo_aifmb_tv_class
  430. event ue_keydown pbm_keydown
  431. integer x = 238
  432. integer y = 4
  433. integer width = 402
  434. integer height = 84
  435. integer taborder = 30
  436. integer textsize = -9
  437. integer weight = 400
  438. fontcharset fontcharset = gb2312charset!
  439. fontpitch fontpitch = variable!
  440. string facename = "宋体"
  441. long textcolor = 33554432
  442. borderstyle borderstyle = stylelowered!
  443. end type
  444. event ue_keydown;
  445. String ls_keyword = ''
  446. ls_keyword = Trim(sle_1.Text, True)
  447. Long cur_handle = 0
  448. Long next_handle = 0
  449. treeviewitem tvi
  450. IF Key = keyenter! THEN
  451. IF ls_keyword = '' THEN RETURN
  452. cur_handle = tv_1.FindItem(CurrentTreeItem!,0)
  453. IF cur_handle > 0 THEN
  454. next_handle = pf_tv_next(cur_handle)
  455. DO WHILE next_handle > 0
  456. IF tv_1.GetItem(next_handle, tvi) = 1 THEN
  457. IF Pos(tvi.Label, ls_keyword) > 0 THEN
  458. tv_1.SelectItem(next_handle)
  459. tv_1.SetFirstVisible(next_handle)
  460. RETURN
  461. END IF
  462. END IF
  463. next_handle = pf_tv_next(next_handle)
  464. LOOP
  465. next_handle = tv_1.FindItem(RootTreeItem!, 0)
  466. DO WHILE next_handle > 0
  467. IF next_handle = cur_handle THEN RETURN
  468. IF tv_1.GetItem(next_handle, tvi) = 1 THEN
  469. IF Pos(tvi.Label, ls_keyword) > 0 THEN
  470. tv_1.SelectItem(next_handle)
  471. tv_1.SetFirstVisible(next_handle)
  472. RETURN
  473. END IF
  474. END IF
  475. next_handle = pf_tv_next(next_handle)
  476. LOOP
  477. END IF
  478. END IF
  479. end event
  480. type tv_1 from treeview within uo_aifmb_tv_class
  481. integer y = 88
  482. integer width = 736
  483. integer height = 916
  484. integer taborder = 30
  485. integer textsize = -9
  486. integer weight = 400
  487. fontcharset fontcharset = gb2312charset!
  488. fontpitch fontpitch = variable!
  489. string facename = "宋体"
  490. long textcolor = 33554432
  491. borderstyle borderstyle = stylelowered!
  492. boolean hideselection = false
  493. string picturename[] = {"Application!","Structure5!","UserObject5!"}
  494. long picturemaskcolor = 536870912
  495. long statepicturemaskcolor = 536870912
  496. end type
  497. event selectionchanged;Long arr_nodeid[]
  498. Long ll_pos, ll_p2
  499. uo_keyword = ''
  500. String ls_nodeid
  501. cur_data = pf_getdata(newhandle)
  502. pf_getnodeid(newhandle, arr_nodeid)
  503. IF cur_data.reltype = 3 THEN
  504. ll_pos = Pos(cur_data.queryvalue, ';')
  505. IF ll_pos > 0 THEN
  506. ll_pos = Pos(cur_data.queryvalue, ';', ll_pos + 1)
  507. IF ll_pos > 0 THEN
  508. ll_p2 = Pos(cur_data.queryvalue, ';', ll_pos + 1)
  509. IF ll_p2 > 0 THEN
  510. uo_keyword = Mid(cur_data.queryvalue, ll_pos + 1, ll_p2 - ll_pos - 1)
  511. ELSE
  512. uo_keyword = Mid(cur_data.queryvalue, ll_pos + 1)
  513. END IF
  514. END IF
  515. END IF
  516. END IF
  517. IF UpperBound(arr_nodeid) = 0 THEN
  518. arr_nodeid[1] = -1
  519. END IF
  520. uo_nodeid_arr = arr_nodeid
  521. Parent.TriggerEvent('ue_selectionchanged')
  522. end event
  523. type cb_1 from uo_imflatbutton within uo_aifmb_tv_class
  524. integer x = 114
  525. integer width = 114
  526. integer height = 88
  527. integer taborder = 20
  528. string text = ""
  529. string normalpicname = "imexport.BMP"
  530. integer picsize = 16
  531. boolean border = false
  532. end type
  533. event clicked;call super::clicked;parent.triggerevent('ue_retrieve_all')
  534. end event
  535. type cb_reflash from uo_imflatbutton within uo_aifmb_tv_class
  536. integer width = 114
  537. integer height = 88
  538. integer taborder = 10
  539. string text = ""
  540. string normalpicname = "refresh.BMP"
  541. integer picsize = 16
  542. boolean border = false
  543. end type
  544. event clicked;call super::clicked;parent.triggerevent('ue_retrieve')
  545. end event