treeview中小问题,送分。

OldCox 2003-05-08 01:14:05
treeview中有两层:
计算机一班
     张
     李
     王
计算机二班
计算机三班

我想把treeview与dw关联,dw检索参数为为‘计算机一班’与‘李‘两个字段 ,怎么才能得到这两个值?如何写代码?在何处写?
多谢!
...全文
30 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dengxun78 2003-05-08
  • 打赏
  • 举报
回复
gz!
fengzeng 2003-05-08
  • 打赏
  • 举报
回复
IF This.GetItem( Handle, ltvi_Item ) < 0 THEN Return
IF ltvi_Item.Level = 2 THEN
ls_dh = ltvi_Item.data
ls_name = ltvi_Item.label//李
ll_Handle = This.FindItem( ParentTreeItem!, Handle )
IF This.GetItem( ll_Handle, ltvi_Item ) < 0 THEN Return //得到父级别TreeView信息.
ls_p_dh = ltvi_Item.data
ls_p_name = ltvi_Item.label//计算机一班
ls_retrueve = 检索条件
dw_1.Retrieve( ltvi_Item.Label, ls_Retrieve )
END IF
th820901 2003-05-08
  • 打赏
  • 举报
回复
li_tree = tv_1.GetItem(handle,tree_emp)//当前节点数据
ls_dh = tree_emp.data
ls_name = tree_emp.label

ll_p_handle = tv_1.Finditem(ParentTreeItem!,ll_current_handle)
li_p_tree = tv_1.GetItem(ll_p_handle,tree_emp)//当前节点父节点数据
ls_p_dh = tree_emp.data
ls_p_name = tree_emp.label
OldCox 2003-05-08
  • 打赏
  • 举报
回复
我是想当我单击'李'时,我怎么能获得‘李’和‘计算机一班’这两个值(data)或label
谢谢
zjianabc 2003-05-08
  • 打赏
  • 举报
回复
Clicked()事件:
TreeViewItem ltvi_Item
String ls_Temp
Long ll_Handle

IF This.GetItem( Handle, ltvi_Item ) < 0 THEN Return

ls_Temp = ltvi_Item.Label //保存人员信息(李)

IF ltvi_Item.Level = 2 THEN
ll_Handle = This.FindItem( ParentTreeItem!, Handle )
IF This.GetItem( ll_Handle, ltvi_Item ) < 0 THEN Return //得到父级别TreeView信息. ltvi_Item.Data 就是班机
dw_1.Retrieve( ltvi_Item.Label, ls_Temp )
END IF

dlt123 2003-05-08
  • 打赏
  • 举报
回复
我忘了提一点,data_area.dataobject="d_list" d_list 十个数据窗口。grip的你自己订一号额。。
dlt123 2003-05-08
  • 打赏
  • 举报
回复
TreeViewItem tvi1,tvi2,ltvi_root
long i,j,l_rowcount,l_tv
datastore data_area

integer i_index
long l_lev0

string str_root = '中国'
string name
ltvi_root.PictureIndex = 1
ltvi_root.SelectedPictureIndex = 1

// 根
ltvi_root.label = str_root
l_lev0 = this.InsertItemLast(0, ltvi_root)

data_area=create datastore
data_area.dataobject="d_list"
data_area.settransobject( sqlca)
l_rowcount=data_area.retrieve( )

tvi1.pictureindex=1
tvi1.children=true

for i=1 to l_rowcount
if trim(data_area.getitemstring( i,"district"))="" then
tvi1.label=data_area.getitemstring(i,"prov_name")
l_tv=this.insertitemlast(l_lev0,tvi1)
name=data_area.getitemstring(i,"prov_name")
if name="北京市" or name="天津市" or name="上海市"or name="重庆市"then
for j=1 to l_rowcount
if data_area.getitemstring(j,"prov_name")=name and not trim(data_area.getitemstring(j,"district"))="" then
tvi2.label=data_area.getitemstring(j,"district")
this.insertitemlast(l_tv,tvi2)
end if
next
else
for j=1 to l_rowcount
if data_area.getitemstring(j,"prov_name")=name and not trim(data_area.getitemstring(j,"county"))="" then
tvi2.label=data_area.getitemstring(j,"county")
this.insertitemlast(l_tv,tvi2)
end if
next
end if
end if
next

shabi119 2003-05-08
  • 打赏
  • 举报
回复
你在数据库了设置计算机1班比如为01,计算机2班为02,计算机3班为03
在constructor
treeviewitem ltvi_item
datastore ids_source
ids_source=create datastore
ids_source.settransobject(sqlca)

ltvi_item.bold=true
ltvi_item.children=true
ltvi_item.selectedpictureindex="具体数字”

ltvi_item.label="计算机1班“
ltvi_item.data=01,
ltvi_item.pictureindex=“一个数字”
tv_1.inseritemlast(0,ltvi_item)

ltvi_item.label="计算机2班"
ltvi_item.data=02
ltvi_item.pictureindex="一个数字"
tv_1.insertitemlast(0,ltvi_item)

ltvi_item.label="计算机3班"
ltvi_item.data="03"
tv_1.insertitemlast(0,ltvi_item)
然后在tv_1.itempopulate的事件中进行展开了
long ll_rowcount,ll_i,ll_handle,//当前接点的句柄
treeviewitem ltvi_item,ltvi_tree
this.getitem(ll_handle,ltvi_item)
ll_rowcount=ids_source.retrieve(string(ltvi_item.data))
if ll_rowcount>0 then
ltvi_tree.bold=false
ltvi_tree.children=false
ltvi_tree.selectedpictureindex="一个数字"
for ll_i=1 to ll_rowcount
ltvi_tree.label=ids_source.object.name[ll_i]
ltvi_tree.data=ids_source.object.emp_id[ll_i]
tv_1.insertitemsort(ll_handle,ltvi_tree)
next
end if
如果是简单的两层的treeview,就可以这样写了,如果要动态的加的话,就要通过游标来判断加入了。

gf_iLoveU 2003-05-08
  • 打赏
  • 举报
回复

Clicked()事件:
TreeViewItem ltvi_Item
String ls_Temp
Long ll_Handle

IF This.GetItem( Handle, ltvi_Item ) < 0 THEN Return

ls_Temp = ltvi_Item.Data //保存人员信息(李)

IF ltvi_Item.Level = 2 THEN
ll_Handle = This.FindItem( ParentTreeItem!, Handle )
IF This.GetItem( ll_Handle, ltvi_Item ) < 0 THEN Return //得到父级别TreeView信息. ltvi_Item.Data 就是班机
dw_1.Retrieve( ltvi_Item.Data, ls_Temp )
END IF


1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧