PFC中關于TreeView的用法講解
轉(zhuǎn)自:http://www.pb9.com.cn/showtopic-190.html
PFC中關于TreeView的用法講解
(lily_banana)
u_tvs
描述:
基于 TreeView 可視用戶對象祖先。該對象采用 數(shù)據(jù)存儲(DataStores)顯示TreeView 的數(shù)據(jù)。
U_tvs 是一個自更新的對象。
對應的庫:
PFCMAIN.PBL
PFEMAIN.PBL
對象關系:
Object relationships
PFC 可視用戶對象被設計用于從w_master繼承來的窗口。U_tvs 也用于:
m_tv
n_cst_infoattrib
n_ds
n_cst_luw
n_cst_tvsrv
n_cst_tvsrv_levelsource
n_cst_print
用法:
在窗口中用該可視用戶對象代替PowerBuilder的 TreeView 控件。 U_tvs 事件的腳本可以和PFC的菜單進行集成。
要使用 u_tvs:
1 在窗口中添加一個u_tvs用戶對象控件。
2 根據(jù)需要使TreeView 的服務可用:
this.of_SetPrint(TRUE)
this.of_SetLevelSource(TRUE)
this.of_SetBase(TRUE)
3 為樹的每一層指定數(shù)據(jù)源:
String ls_sql
Integer li_return
ls_keys[1] = "dept_id"
this.inv_levelsource.of_Register(1, "dept_name", "", "d_deptlist", SQLCA, "")
ls_keys[1] = "emp_id"
this.inv_levelsource.of_Register(2, "emp_lname", ":parent.1.dept_id", &
"d_empbydept", SQLCA, "")
4 根據(jù)需要為樹脂定其余的顯示信息:
this.inv_levelsource.of_SetPictureColumn(1, "1")
this.inv_levelsource.of_SetSelectedPictureColumn(1,"2")
this.inv_levelsource.of_SetPictureColumn(2, "4")
this.inv_levelsource.of_SetSelectedPictureColumn(2, "5")
5 檢索 TreeView的第一行:
this.event pfc_populate(0)
6 擴展pfc_Retrieve 事件使檢索參數(shù)生效:
Any la_args[20]
Integer li_level
IF IsValid(inv_levelsource) THEN
li_level = this.of_GetNextLevel(al_parent)
this.inv_levelsource.of_GetArgs(al_parent, li_level, la_args)
END IF
Return this.of_Retrieve(al_parent, la_args, ads_data)
7 根據(jù)需要調(diào)用u_tvs 的其他函數(shù)。
要獲取關于TreeView 的更多信息,參見《PowerBuilder User's Guide》
n_cst_tvsrv_print
描述:
TreeView 打印服務
對應的庫
PFCAPSRV.PBL
PFEAPSRV.PBL
用法:
要使用該系統(tǒng):
1 調(diào)用u_tvs of_SetPrint 函數(shù)激活該服務:
tv_1.of_SetPrint(TRUE)
2 調(diào)用of_PrintTree 函數(shù)來打印 TreeView 數(shù)據(jù):
String ls_levelpicts[10]
String ls_levelselpicts[10]
ls_levelpicts[1] = "dept.bmp"
ls_levelpicts[2] = "emp.bmp"
ls_levelselpicts[1] = "deptsel.bmp"
ls_levelselpicts[2] = "empsel.bmp"
tv_1.inv_print.of_PrintTree(0, TRUE, ls_levelpicts, ls_levelselpicts)
of_Register 函數(shù):
語法1 通過一個DataWindow 對象來顯示數(shù)據(jù)。
描述:
通過檢索DataWindow對象的行來建立TreeView的各級數(shù)據(jù)層
范圍:
Public
語法:
tvcontrol.instancename.of_Register ( level, labelcolumn, retrievespec, dwobject, trans, filterspec )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實例
instancename n_cst_tvsrv_levelsource的實例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定TreeView 數(shù)據(jù)的層次及數(shù)據(jù)
labelcolumn String 指定u_tvs 用于TreeView項標簽的dwobject 的列名。
retrievespec String 包含用于dwobject 檢索條件
dwobject String 指定用于數(shù)據(jù)檢索的 DataWindow 對象
trans N_tr 用于檢索dwobject的事務對象。如果該參數(shù)未指定,則dwobject必須已含有數(shù)據(jù)。
filterspec String 包含需要的過濾條件
返回值
Integer. 具體如下:
? 1 成功
? -1 參數(shù)有效性錯誤
? -2 Dwobject 沒有指定鍵列(key columns)
? -3 上一層被標記為循環(huán)。
? -4 Column level datatype was not in the data source
? -5 為數(shù)據(jù)源設置事務對象出錯
? -7 Cache 注冊錯誤
用法:
TreeViwe的每一層調(diào)用該函數(shù)一次。
檢索參數(shù)的格式如下:
:scope.level.column
where:
? Scope 指定層(Level)或者父層(Parent):
? Level 絕對層數(shù)
? Parent 和當前層相關的數(shù)
? 根據(jù)Scope指定的數(shù)的性質(zhì)不同,Level 來制定一個絕對或相對層數(shù)。
Scope 指定 Level 指定
Level
你指定的絕對數(shù)。例如::level.1.emp_name 表示檢索參數(shù)來自于祖先的-1層的emp_name 列
Parent 你指定的項相對于當前層的值。例如, :parent.2.emp_name 表示檢索參數(shù)來源于上兩層祖先的emp_name 列
? Column 指定含有用于檢索參數(shù)值的DataWindow 對象的列名
of_SetPictureColumn 函數(shù):
描述:
指定未選中時的圖標
范圍:
Public
語法:
tvcontrol.instancename.of_SetPictureColumn ( level, column )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實例
instancename n_cst_tvsrv_levelsource的實例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定被設置圖標的層號
column String 指定下述之一:
? u_tvs 用于找到圖片的DataWindow 對象的列名,該列可以包括一個文件名或者一個值,指示 u_tvs 來找到 TreeView的圖片序列號
? 值, 指示 u_tvs 來找到 TreeView的圖片序列號
返回值:
Integer. 1,成功;-1,失敗。
用法:
調(diào)用該函數(shù)前需要調(diào)用of_Register函數(shù)
posted on 2010-07-04 10:40
Ke 閱讀(801)
評論(0) 編輯 收藏 所屬分類:
powerBuilder