PFC中關(guān)于TreeView的用法講解
轉(zhuǎn)自:http://www.pb9.com.cn/showtopic-190.html
PFC中關(guān)于TreeView的用法講解
(lily_banana)
u_tvs
描述:
基于 TreeView 可視用戶對(duì)象祖先。該對(duì)象采用 數(shù)據(jù)存儲(chǔ)(DataStores)顯示TreeView 的數(shù)據(jù)。
U_tvs 是一個(gè)自更新的對(duì)象。
對(duì)應(yīng)的庫(kù):
PFCMAIN.PBL
PFEMAIN.PBL
對(duì)象關(guān)系:
Object relationships
PFC 可視用戶對(duì)象被設(shè)計(jì)用于從w_master繼承來(lái)的窗口。U_tvs 也用于:
m_tv
n_cst_infoattrib
n_ds
n_cst_luw
n_cst_tvsrv
n_cst_tvsrv_levelsource
n_cst_print
用法:
在窗口中用該可視用戶對(duì)象代替PowerBuilder的 TreeView 控件。 U_tvs 事件的腳本可以和PFC的菜單進(jìn)行集成。
要使用 u_tvs:
1 在窗口中添加一個(gè)u_tvs用戶對(duì)象控件。
2 根據(jù)需要使TreeView 的服務(wù)可用:
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 擴(kuò)展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ù)。
要獲取關(guān)于TreeView 的更多信息,參見(jiàn)《PowerBuilder User's Guide》
n_cst_tvsrv_print
描述:
TreeView 打印服務(wù)
對(duì)應(yīng)的庫(kù)
PFCAPSRV.PBL
PFEAPSRV.PBL
用法:
要使用該系統(tǒng):
1 調(diào)用u_tvs of_SetPrint 函數(shù)激活該服務(wù):
tv_1.of_SetPrint(TRUE)
2 調(diào)用of_PrintTree 函數(shù)來(lái)打印 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ù):
語(yǔ)法1 通過(guò)一個(gè)DataWindow 對(duì)象來(lái)顯示數(shù)據(jù)。
描述:
通過(guò)檢索DataWindow對(duì)象的行來(lái)建立TreeView的各級(jí)數(shù)據(jù)層
范圍:
Public
語(yǔ)法:
tvcontrol.instancename.of_Register ( level, labelcolumn, retrievespec, dwobject, trans, filterspec )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實(shí)例
instancename n_cst_tvsrv_levelsource的實(shí)例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定TreeView 數(shù)據(jù)的層次及數(shù)據(jù)
labelcolumn String 指定u_tvs 用于TreeView項(xiàng)標(biāo)簽的dwobject 的列名。
retrievespec String 包含用于dwobject 檢索條件
dwobject String 指定用于數(shù)據(jù)檢索的 DataWindow 對(duì)象
trans N_tr 用于檢索dwobject的事務(wù)對(duì)象。如果該參數(shù)未指定,則dwobject必須已含有數(shù)據(jù)。
filterspec String 包含需要的過(guò)濾條件
返回值
Integer. 具體如下:
? 1 成功
? -1 參數(shù)有效性錯(cuò)誤
? -2 Dwobject 沒(méi)有指定鍵列(key columns)
? -3 上一層被標(biāo)記為循環(huán)。
? -4 Column level datatype was not in the data source
? -5 為數(shù)據(jù)源設(shè)置事務(wù)對(duì)象出錯(cuò)
? -7 Cache 注冊(cè)錯(cuò)誤
用法:
TreeViwe的每一層調(diào)用該函數(shù)一次。
檢索參數(shù)的格式如下:
:scope.level.column
where:
? Scope 指定層(Level)或者父層(Parent):
? Level 絕對(duì)層數(shù)
? Parent 和當(dāng)前層相關(guān)的數(shù)
? 根據(jù)Scope指定的數(shù)的性質(zhì)不同,Level 來(lái)制定一個(gè)絕對(duì)或相對(duì)層數(shù)。
Scope 指定 Level 指定
Level
你指定的絕對(duì)數(shù)。例如::level.1.emp_name 表示檢索參數(shù)來(lái)自于祖先的-1層的emp_name 列
Parent 你指定的項(xiàng)相對(duì)于當(dāng)前層的值。例如, :parent.2.emp_name 表示檢索參數(shù)來(lái)源于上兩層祖先的emp_name 列
? Column 指定含有用于檢索參數(shù)值的DataWindow 對(duì)象的列名
of_SetPictureColumn 函數(shù):
描述:
指定未選中時(shí)的圖標(biāo)
范圍:
Public
語(yǔ)法:
tvcontrol.instancename.of_SetPictureColumn ( level, column )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實(shí)例
instancename n_cst_tvsrv_levelsource的實(shí)例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定被設(shè)置圖標(biāo)的層號(hào)
column String 指定下述之一:
? u_tvs 用于找到圖片的DataWindow 對(duì)象的列名,該列可以包括一個(gè)文件名或者一個(gè)值,指示 u_tvs 來(lái)找到 TreeView的圖片序列號(hào)
? 值, 指示 u_tvs 來(lái)找到 TreeView的圖片序列號(hào)
返回值:
Integer. 1,成功;-1,失敗。
用法:
調(diào)用該函數(shù)前需要調(diào)用of_Register函數(shù)
(lily_banana)
u_tvs
描述:
基于 TreeView 可視用戶對(duì)象祖先。該對(duì)象采用 數(shù)據(jù)存儲(chǔ)(DataStores)顯示TreeView 的數(shù)據(jù)。
U_tvs 是一個(gè)自更新的對(duì)象。
對(duì)應(yīng)的庫(kù):
PFCMAIN.PBL
PFEMAIN.PBL
對(duì)象關(guān)系:
Object relationships
PFC 可視用戶對(duì)象被設(shè)計(jì)用于從w_master繼承來(lái)的窗口。U_tvs 也用于:
m_tv
n_cst_infoattrib
n_ds
n_cst_luw
n_cst_tvsrv
n_cst_tvsrv_levelsource
n_cst_print
用法:
在窗口中用該可視用戶對(duì)象代替PowerBuilder的 TreeView 控件。 U_tvs 事件的腳本可以和PFC的菜單進(jìn)行集成。
要使用 u_tvs:
1 在窗口中添加一個(gè)u_tvs用戶對(duì)象控件。
2 根據(jù)需要使TreeView 的服務(wù)可用:
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 擴(kuò)展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ù)。
要獲取關(guān)于TreeView 的更多信息,參見(jiàn)《PowerBuilder User's Guide》
n_cst_tvsrv_print
描述:
TreeView 打印服務(wù)
對(duì)應(yīng)的庫(kù)
PFCAPSRV.PBL
PFEAPSRV.PBL
用法:
要使用該系統(tǒng):
1 調(diào)用u_tvs of_SetPrint 函數(shù)激活該服務(wù):
tv_1.of_SetPrint(TRUE)
2 調(diào)用of_PrintTree 函數(shù)來(lái)打印 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ù):
語(yǔ)法1 通過(guò)一個(gè)DataWindow 對(duì)象來(lái)顯示數(shù)據(jù)。
描述:
通過(guò)檢索DataWindow對(duì)象的行來(lái)建立TreeView的各級(jí)數(shù)據(jù)層
范圍:
Public
語(yǔ)法:
tvcontrol.instancename.of_Register ( level, labelcolumn, retrievespec, dwobject, trans, filterspec )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實(shí)例
instancename n_cst_tvsrv_levelsource的實(shí)例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定TreeView 數(shù)據(jù)的層次及數(shù)據(jù)
labelcolumn String 指定u_tvs 用于TreeView項(xiàng)標(biāo)簽的dwobject 的列名。
retrievespec String 包含用于dwobject 檢索條件
dwobject String 指定用于數(shù)據(jù)檢索的 DataWindow 對(duì)象
trans N_tr 用于檢索dwobject的事務(wù)對(duì)象。如果該參數(shù)未指定,則dwobject必須已含有數(shù)據(jù)。
filterspec String 包含需要的過(guò)濾條件
返回值
Integer. 具體如下:
? 1 成功
? -1 參數(shù)有效性錯(cuò)誤
? -2 Dwobject 沒(méi)有指定鍵列(key columns)
? -3 上一層被標(biāo)記為循環(huán)。
? -4 Column level datatype was not in the data source
? -5 為數(shù)據(jù)源設(shè)置事務(wù)對(duì)象出錯(cuò)
? -7 Cache 注冊(cè)錯(cuò)誤
用法:
TreeViwe的每一層調(diào)用該函數(shù)一次。
檢索參數(shù)的格式如下:
:scope.level.column
where:
? Scope 指定層(Level)或者父層(Parent):
? Level 絕對(duì)層數(shù)
? Parent 和當(dāng)前層相關(guān)的數(shù)
? 根據(jù)Scope指定的數(shù)的性質(zhì)不同,Level 來(lái)制定一個(gè)絕對(duì)或相對(duì)層數(shù)。
Scope 指定 Level 指定
Level
你指定的絕對(duì)數(shù)。例如::level.1.emp_name 表示檢索參數(shù)來(lái)自于祖先的-1層的emp_name 列
Parent 你指定的項(xiàng)相對(duì)于當(dāng)前層的值。例如, :parent.2.emp_name 表示檢索參數(shù)來(lái)源于上兩層祖先的emp_name 列
? Column 指定含有用于檢索參數(shù)值的DataWindow 對(duì)象的列名
of_SetPictureColumn 函數(shù):
描述:
指定未選中時(shí)的圖標(biāo)
范圍:
Public
語(yǔ)法:
tvcontrol.instancename.of_SetPictureColumn ( level, column )
參數(shù)描述:
tvcontrol u_tvs-based TreeView 控件的實(shí)例
instancename n_cst_tvsrv_levelsource的實(shí)例 ( u_tvs 的確省值為 inv_levelsource)
level Integer 指定被設(shè)置圖標(biāo)的層號(hào)
column String 指定下述之一:
? u_tvs 用于找到圖片的DataWindow 對(duì)象的列名,該列可以包括一個(gè)文件名或者一個(gè)值,指示 u_tvs 來(lái)找到 TreeView的圖片序列號(hào)
? 值, 指示 u_tvs 來(lái)找到 TreeView的圖片序列號(hào)
返回值:
Integer. 1,成功;-1,失敗。
用法:
調(diào)用該函數(shù)前需要調(diào)用of_Register函數(shù)