Foxtable(狐表)用户栏目专家坐堂 → TreeView 遍历所有子节点并实现多项目查询


  共有3407人关注过本帖树形打印复制链接

主题:TreeView 遍历所有子节点并实现多项目查询

帅哥哟,离线,有人找我吗?
lanbor
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
TreeView 遍历所有子节点并实现多项目查询  发帖心情 Post By:2017/5/12 16:38:00 [只看该作者]

问题如图片,就是不知道怎么写代码。
还希望专家指教一点点套路!
先谢谢了!
图片点击可在新窗口打开查看此主题相关图片如下:treeview1.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/12 16:55:00 [只看该作者]

 如果你的目录树已经生产,直接在 AfterSelectNode 写代码

 

Dim cs As String = "'" & e.node.name & "',"

For Each nd As winform.treenode In e.node.AllNodes
    cs &= "'" & nd.name & "',"
Next

msgbox(cs)

Tables("物料记录").Filter = "Category in (" & cs.trim(",") & ")"

 


 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
再请教  发帖心情 Post By:2017/5/12 22:04:00 [只看该作者]

 谢谢专家帮助,
遍历所有节点的方法完全明白了,也正是我所求的!

针对:Tables("物料记录").Filter = "Category in (" & cs.trim(",") & ")" 
       要实现上语句,前提是这狐表里面的"物料记录"必先存在所有记录,才能实现在本地表中Filter  Category

但当前我的"物料记录"只有一个结构,没有任何记录,我也只希望从SQL 库提取我需要的这一部分。
按照您提示,我想到了用下列语句

1.  Data Tables("物料记录").SQLSelect("Category in (" & cs.trim(",") & ")"
    测试了几次,一个记录也没有出来,应该是我不懂怎么正常用这个 IN 参数带“值”集的写法。

2.  cmd.Com mandText = "Select * fr om {物料记录} where Category IN (" & cs.trim(",") & ")" "

请求指教上例1,2句的IN 子句正确写法。 谢谢你!

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/12 22:08:00 [只看该作者]

Category列是整数还是字符型?

Data Tables("物料记录").SQLSelect("Category in ('" & cs.trim(",") & "')") 

cmd.Com mandText = "Select * fr om {物料记录} where Category IN ('" & cs.trim(",") & "')" 

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
Category列是字符型?  发帖心情 Post By:2017/5/12 22:32:00 [只看该作者]

 Category列是字符型

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/12 22:36:00 [只看该作者]

4楼代码测试有问题吗

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
实例.  发帖心情 Post By:2017/5/12 22:50:00 [只看该作者]

Dim cs As String = "'" & e.node.name & "',"
For Each nd As winfo rm.treenode In e.node.AllNodes
    cs &= "'" & nd.name & "',"
Next
msgbox(cs)
Dim su01 As Integer
Dim cmd As new SQLCommand
cmd.Com mandText = "Select * fr om {VW_BD_Product} where Category IN ('" & cs.trim(",") & "')" 
DTb03 = cmd.ExecuteReader()
Tables(e.Fo rm.name & "_Table1").DataSource = DTb03
su01=DTb03.dataRows.count  
msgbox("记录数:" & str(su01))
Tables(e.Fo rm.name & "_table1").setcolvisiblewidth("GoodsNO|80|GoodsName|150|Description|200|CZ|80|UnitD|60|CategoryD|100|Color|80|UllagePercent|80|isFlagD|60|BarCode|100")
Dim tb01 As Table = Tables(e.fo m.name & "_table1")  

'当我点击节点为“1001" 的行后,以上代码,执行到:msgbox(cs) ,显示: '1001',
接下来就开始报告:‘1001‘ 附件有语法错误



[此贴子已经被作者于2017/5/12 22:58:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:112380 积分:572162 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/12 23:00:00 [只看该作者]

Dim cs As String = "'" & e.node.name & "',"
For Each nd As winfo rm.treenode In e.node.AllNodes
    cs &= "'" & nd.name & "',"
Next

Dim su01 As Integer
Dim cmd As new SQLCommand
cmd.CommandText = "Select * from {VW_BD_Product} where Category IN (" & cs.trim(",") & ")" 
msgbox(cmd.CommandText ) ‘这里弹出什么内容
DTb03 = cmd.ExecuteReader()
Tables(e.Fo rm.name & "_Table1").DataSource = DTb03
su01=DTb03.dataRows.count  
msgbox("记录数:" & str(su01))
Tables(e.Fo rm.name & "_table1").setcolvisiblewidth("GoodsNO|80|GoodsName|150|Description|200|CZ|80|UnitD|60|CategoryD|100|Color|80|UllagePercent|80|isFlagD|60|BarCode|100")
Dim tb01 As Table = Tables(e.fo m.name & "_table1")  

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
msgbox(cmd.CommandText ) ‘这里弹出什么内容  发帖心情 Post By:2017/5/12 23:10:00 [只看该作者]

msgbox(cmd.CommandText ) ‘这里弹出什么
内容就CommandText后面的整个语句,其中IN 后面是:("1001' ')
[此贴子已经被作者于2017/5/12 23:10:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
msgbox(cmd.CommandText ) ‘这里弹出什么  发帖心情 Post By:2017/5/12 23:15:00 [只看该作者]

msgbox(cmd.CommandText ) ‘这里弹出什么
当我点节点1003 的行时。
报告如图所示。

图片点击可在新窗口打开查看此主题相关图片如下:新建位图图像.jpg
图片点击可在新窗口打开查看


 回到顶部
总数 15 1 2 下一页