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


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

主题: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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  2楼 | 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 子句正确写法。 谢谢你!

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


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

 Category列是字符型

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  4楼 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  5楼 | 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
  6楼 | 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
图片点击可在新窗口打开查看


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


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
感谢专家 一路指引!OK了。  发帖心情 Post By:2017/5/12 23:24:00 [显示全部帖子]

感谢专家 一路指引:

最后修改成为下面就对了,去除了(" & cs.trim(",") & ") ,两边的单点
cmd.Com mandText = "Select * fr om {VW_BD_Product} where Category IN (" & cs.trim(",") & ")  order by GoodsNo" 


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


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
再请教:如何实现带树状表记录输出  发帖心情 Post By:2017/5/13 21:40:00 [显示全部帖子]

再请教如图所述。

请教如何编写关键代码:

1. 通过指定的 “表列值”(GoodsNO 字符型),去SQL库中的BOM明细表中遍历所有记录,关键栏GoodsNO ,ParentGoodsNo 字符型

2. 以表格式输出指定列,并以树状结构形式输出遍历到的所有行。


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


谢谢狐表专家!
[此贴子已经被作者于2017/5/14 9:04:23编辑过]

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


加好友 发短信
等级:一尾狐 帖子:435 积分:4390 威望:0 精华:0 注册:2017/3/20 21:08:00
再请教一下。  发帖心情 Post By:2017/5/15 11:35:00 [显示全部帖子]

这个递归功能生成目录我会操作。

我是希望生成如下图格式的BOM明线表格式,但首列又是树结构。
我就是不懂,这个控件应该如何定义。
1. 它是一个TreeView? 还是一个Table? 还是一个Table+TreeVeiw 的组控件呢?
2. 如果它就是一个TreeView , 那目录树后面的列是以什么形式输出的?

谢谢你!


图片点击可在新窗口打开查看此主题相关图片如下:新建位图图像.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/5/15 11:38:10编辑过]

 回到顶部