以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树删除  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4369)

--  作者:lihe60
--  发布时间:2009/9/18 10:12:00
--  目录树删除
打开窗口后,选中“家电—电视机—海尔”后,单击“删除”按钮,为什么不能删除“家电—电视机—海尔”这一行记录?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:mr725
--  发布时间:2009/9/18 13:08:00
--  

去掉代码中的if .... end if 后,可以删除,但删除不准确,有时不是指定的, 可能是定位的问题。。。

[此贴子已经被作者于2009-9-18 13:28:26编辑过]

--  作者:lihe60
--  发布时间:2009/9/18 14:17:00
--  

关键问题是不能定位到所选节点所在的行。


--  作者:lihe60
--  发布时间:2009/9/18 14:24:00
--  
说白了,就是如何定位到被选中节点所在的行!
--  作者:mr725
--  发布时间:2009/9/18 15:22:00
--  
定位到被选中节点所在的行:这样?

For i As integer = 0 To Tables("存货编号").Count - 1
  if Tables("存货编号")(i,"大类") =  nd.text 
        Tables("存货编号").position = i
    end if
next

--  作者:czy
--  发布时间:2009/9/18 15:42:00
--  
如果觉得不好把握,可以增加一个全局变量,命名为del
然后将目录树的NodeMouseClick事件设置成:

Dim Value()As String
Value = e.Node.FullPath.Split("\\")
Select Case e.Node.Level
    Case 0
        Vars("del") = "[大类] = \'" & Value(0) & "\'"
    Case 1
        Vars("del") = "[大类] = \'" & Value(0) & "\' And [中类] = \'" & Value(1) & "\'"
    Case 2
        Vars("del") = "[大类] = \'" & Value(0) & "\' And [中类] = \'" & Value(1) & "\' And [小类] = \'" & Value(2) & "\'"
End Select

删除就可以是:DataTables("存货编号").DeleteFor(Vars("del"))