123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- $PBExportHeader$uo_tv_menu_fx.sru
- $PBExportComments$协同系统的treeview menu
- forward
- global type uo_tv_menu_fx from treeview
- end type
- end forward
- global type uo_tv_menu_fx from treeview
- integer width = 549
- integer height = 476
- integer textsize = -9
- integer weight = 400
- fontcharset fontcharset = gb2312charset!
- fontpitch fontpitch = variable!
- string facename = "宋体"
- long textcolor = 33554432
- borderstyle borderstyle = stylelowered!
- string picturename[] = {"graphics\application_fx.gif","graphics\Shell32 005.bmp","graphics\application_fx.gif","graphics\application_fx.gif","graphics\application_fx.gif","graphics\application_fx.gif","graphics\application_fx.gif","graphics\application_fx.gif","graphics\application_fx.gif","graphics\task.bmp"}
- integer picturewidth = 16
- integer pictureheight = 16
- long picturemaskcolor = 536870912
- long statepicturemaskcolor = 536870912
- end type
- global uo_tv_menu_fx uo_tv_menu_fx
- type variables
- datastore ins_ds
- end variables
- forward prototypes
- public subroutine init (readonly datastore arg_ds)
- public subroutine uof_treegrowth (long arg_handl, long arg_parentid)
- end prototypes
- public subroutine init (readonly datastore arg_ds);//
- IF IsValid(ins_ds) THEN
- Destroy ins_ds
- END IF
- ins_ds = Create datastore
- if arg_ds.DataObject <> 'ds_menu_fx' then
- MessageBox('提示', '使用的arg_ds参数有误')
- return
- end if
- ins_ds = arg_ds
- ins_ds.SetSort('parentid,sortflag')
- ins_ds.Sort()
- this.SetRedraw(false)
- DO UNTIL This.FindItem(RootTreeItem!, 0) = -1
- This.DeleteItem(0)
- LOOP
- long ll_hand_root
- ll_hand_root = This.InsertItemLast(0, '协同系统',1)
- uof_treegrowth(ll_hand_root, 0)
- This.ExpandItem(ll_hand_root)
- long ll_hand
- ll_hand = This.FindItem(ChildTreeItem!, ll_hand_root)
- DO UNTIL ll_hand = - 1
- This.ExpandItem(ll_hand)
- ll_hand = This.FindItem(NextTreeItem!, ll_hand)
- LOOP
- this.SetRedraw(true)
- //Destroy ins_ds ChildTreeItem! NextTreeItem!
- end subroutine
- public subroutine uof_treegrowth (long arg_handl, long arg_parentid);//
- Long li_handl
- TreeViewItem l_tvi
- Long ll_row, ll_rowChild
- ll_row = ins_ds.Find("parentid = " + String(arg_parentid) + ' and functype <> 9', 1, ins_ds.RowCount())
- //ll_row = ins_ds.Find("parentid = " + String(arg_parentid), 1, ins_ds.RowCount())
- string treename, objname
- long funcid, functype
- DO WHILE ll_row > 0
- treename = ins_ds.Object.treename[ll_row]
- // objname = ins_ds.Object.objname[ll_row]
- funcid = ins_ds.Object.funcid[ll_row]
- functype = ins_ds.Object.functype[ll_row]
-
- li_handl = This.InsertItemLast(arg_handl, treename, functype + 2)
-
- ll_rowChild = ins_ds.Find("parentid = " + String(funcid) + ' and functype <> 9', 1, ins_ds.RowCount())
- // ll_rowChild = ins_ds.Find("parentid = " + String(funcid), 1, ins_ds.RowCount())
-
- IF This.GetItem(li_handl, l_tvi) = 1 THEN
- l_tvi.Label = treename
- l_tvi.Data = funcid
- IF ll_rowChild > 0 THEN
- l_tvi.Children = True
- END IF
- This.SetItem(li_handl, l_tvi)
-
- uof_treegrowth(li_handl, funcid)
- END IF
-
- IF ll_row >= ins_ds.RowCount() THEN EXIT
- ll_row = ins_ds.Find("parentid = " + String(arg_parentid) + ' and functype <> 9', ll_row + 1, ins_ds.RowCount())
- // ll_row = ins_ds.Find("parentid = " + String(arg_parentid), ll_row + 1, ins_ds.RowCount())
- LOOP
- end subroutine
- on uo_tv_menu_fx.create
- end on
- on uo_tv_menu_fx.destroy
- end on
- event doubleclicked;//
- long ll_hand, funcid
- treeviewitem tvi
- ll_hand = THIS.FindItem(currenttreeitem!, 0)
- THIS.GetItem(ll_hand, tvi)
- funcid = long(tvi.Data)
- if IsNull(funcid) then return
- if (funcid <= 0) then return
- long row
- string objname
- if IsValid(w_main_fx) and IsValid(sys_func_pwr) then
- sys_func_pwr.SetFilter('')
- sys_func_pwr.Filter()
-
- row = sys_func_pwr.Find('funcid = ' + string(funcid), 1, sys_func_pwr.RowCount())
- if (row <= 0) then return
- objname = sys_func_pwr.Object.objname[row]
- if IsNull(objname) then return
- if (objname = '') then return
-
- w_main_fx.PostEvent('ue_main_menu_commnd', 0, funcid)
- // Message.LongParm = funcid
- // w_main_fx.Post Event ue_main_menu_commnd()
- end if
- end event
|