• 全部
  • API 调用
  • 基础类
  • 控件与界面
  • 数据库相关
  • DataWindow
  • 项目管理
  • Web 应用
  • 脚本语言

treeview中小问题,送分。

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

我想把treeview与dw关联,dw检索参数为为‘计算机一班’与‘李‘两个字段 ,怎么才能得到这两个值?如何写代码?在何处写?
多谢!
...全文
10 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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


回复
相关推荐
发帖
PowerBuilder
创建于2007-09-28

864

社区成员

PowerBuilder 相关问题讨论
申请成为版主
帖子事件
创建了帖子
2003-05-08 01:14
社区公告
暂无公告