123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- $PBExportHeader$uo_tv_cusarea.sru
- forward
- global type uo_tv_cusarea from treeview
- end type
- end forward
- global type uo_tv_cusarea from treeview
- integer width = 549
- integer height = 452
- integer textsize = -12
- integer weight = 400
- fontcharset fontcharset = ansi!
- fontpitch fontpitch = variable!
- fontfamily fontfamily = swiss!
- string facename = "Arial"
- long backcolor = 16777215
- borderstyle borderstyle = stylelowered!
- boolean hideselection = false
- string picturename[] = {"Application!","LibraryList5!"}
- long picturemaskcolor = 553648127
- long statepicturemaskcolor = 536870912
- end type
- global uo_tv_cusarea uo_tv_cusarea
- type variables
- Long uo_deep = 0
- s_cusarea uo_cur_info
- datastore ds_area
- end variables
- forward prototypes
- public function integer pf_treegrowth (long arg_handl, long arg_parentid)
- public function integer f_maketree ()
- public function integer f_getinfo (long arg_cusareaid)
- end prototypes
- public function integer pf_treegrowth (long arg_handl, long arg_parentid);Int rslt = 1
- Long ll_CusareaID,ll_count = 0,ll_i
- String ls_Cusareaname,ls_areaname
- Int li_sonflag
- s_cusarea l_s_pfmx[]
- Long li_handl
- TreeViewItem l_tvi
- uo_deep++
- IF uo_deep > 10000 THEN //防止死递归
- RETURN 0
- END IF
- DECLARE pf_cur CURSOR FOR
- SELECT u_Cusarea.CusareaID,
- u_Cusarea.Cusareaname,
- u_Cusarea.areaname,
- u_Cusarea.sonflag
- FROM u_Cusarea
- Where ( u_Cusarea.parentid = :arg_parentid );
- OPEN pf_cur;
- ll_count = 1
- FETCH pf_cur INTO :l_s_pfmx[ll_count].CusareaID,:l_s_pfmx[ll_count].Cusareaname,&
- :l_s_pfmx[ll_count].areaname,:l_s_pfmx[ll_count].sonflag;
-
- DO WHILE sqlca.SQLCode = 0
- ll_count++
- FETCH pf_cur INTO :l_s_pfmx[ll_count].CusareaID,:l_s_pfmx[ll_count].Cusareaname,&
- :l_s_pfmx[ll_count].areaname,:l_s_pfmx[ll_count].sonflag;
- LOOP
- ll_count = ll_count - 1
- CLOSE pf_cur;
- //
- // //yyx 2011-2-15
- //ds_area.Retrieve(arg_parentid,sys_areaid)
- //ds_area.AcceptText()
- //FOR ll_i = 1 TO ds_area.rowcount()
- // ll_count++
- // l_s_pfmx[ll_count].CusareaID = ds_area.Object.CusareaID[ll_i]
- // l_s_pfmx[ll_count].Cusareaname = ds_area.Object.Cusareaname[ll_i]
- // l_s_pfmx[ll_count].areaname = ds_area.Object.areaname[ll_i]
- // l_s_pfmx[ll_count].sonflag = ds_area.Object.sonflag[ll_i]
- //NEXT
- ////
- FOR ll_i = 1 To ll_count
- IF Not (sys_power_issuper Or sys_areastr = '0') THEN
- IF Pos(sys_areastr,','+String(l_s_pfmx[ll_i].CusareaID)+',') = 0 THEN CONTINUE
- END IF
-
- li_handl = This.InsertItemSort(arg_handl,l_s_pfmx[ll_i].Cusareaname,2)
-
- IF This.GetItem ( li_handl, l_tvi) = 1 THEN
- l_tvi.Label = l_s_pfmx[ll_i].Cusareaname
- l_tvi.Data = l_s_pfmx[ll_i].CusareaID
- This.SetItem( li_handl, l_tvi )
- END IF
-
- pf_treegrowth(li_handl,l_s_pfmx[ll_i].CusareaID)
- NEXT
- RETURN 1
- end function
- public function integer f_maketree ();//wf_maketree()
- Long ll_hand
- uo_deep = 1
- Long tvi_hdl = 0
- This.SetRedraw(False)
- DO UNTIL This.FindItem(RootTreeItem!, 0) = -1
- This.DeleteItem(tvi_hdl)
- LOOP
- ll_hand = This.InsertItemLast(0,'全部地区',1)
- pf_treegrowth(ll_hand,0)
- This.ExpandItem(ll_hand)
- This.SetRedraw(True)
- RETURN 0
- end function
- public function integer f_getinfo (long arg_cusareaid);Int rslt = 1
- SELECT Cusareaid,
- Cusareaname,
- areaname,
- sonflag,
- parentid
- INTO :uo_cur_info.Cusareaid,
- :uo_cur_info.Cusareaname,
- :uo_cur_info.areaname,
- :uo_cur_info.sonflag,
- :uo_cur_info.parentid
- FROM u_Cusarea
- Where Cusareaid = :arg_Cusareaid;
-
- IF sqlca.SQLCode <> 0 THEN
- uo_cur_info.Cusareaid = 0
- uo_cur_info.Cusareaname = ''
- uo_cur_info.areaname = ''
- uo_cur_info.sonflag = 0
- uo_cur_info.parentid = 0
- uo_cur_info.parenthandtype = ''
- rslt = 0
- GOTO ext
- END IF
- String ls_parenthandtype
- Long ll_parentid
- ll_parentid = uo_cur_info.parentid
- IF uo_cur_info.parentid = 0 THEN
- uo_cur_info.parenthandtype = ''
- ELSE
- SELECT areaname
- INTO :ls_parenthandtype
- FROM u_Cusarea
- Where Cusareaid = :ll_parentid;
- IF sqlca.SQLCode <> 0 THEN
- uo_cur_info.parenthandtype = ''
- ELSE
- uo_cur_info.parenthandtype = ls_parenthandtype
- END IF
- END IF
- ext:
- RETURN rslt
- end function
- on uo_tv_cusarea.create
- end on
- on uo_tv_cusarea.destroy
- end on
- event constructor;ds_area = CREATE datastore
- ds_area.DataObject = 'ds_uo_tv_cusarea'
- ds_area.SetTransObject(sqlca)
- f_maketree()
- end event
- event selectionchanged;Long ll_hand
- Long ll_cusareaid
- TreeViewItem l_tvi
- ll_hand = THIS.FindItem(CurrentTreeItem!,0)
- IF THIS.GetItem(ll_hand,l_tvi) = 1 THEN
- IF ll_hand = 1 THEN
- ll_cusareaid = 0
- ELSE
- ll_cusareaid = l_tvi.Data
- END IF
- f_getinfo(ll_cusareaid)
- THIS.ExpandItem(ll_hand)
- END IF
- end event
- event destructor;DESTROY ds_area
- end event
|