Foxtable(狐表)用户栏目专家坐堂 → 动态目录树 求助


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

主题:动态目录树 求助

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
动态目录树 求助  发帖心情 Post By:2019/9/6 18:30:00 [显示全部帖子]

代码放在

PrepareEdit

准备编辑单元格的时候执行。


外部数据源 希望从后台获取数据
筛选出逻辑 启用列 为是的行作为目录树列表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELEC T DIS TINCT 大类,一级科目,明细科目 From {会计科目} Where 启用 = 1"

dt = cmd.ExecuteReader()
'生成目录树
Dim tb As New DropTreeBuilder
tb.SourceTable = DataTables("会计科目") '指定目录树表
tb.TreeCols = "大类|一级科目|明细科目" '指定用于生成目录树的列
tb.SourceCols = "一级科目|明细科目" '指定数据来源列
tb.ReceiveCols = "一级科目|明细科目" '指定数据接收列
Tables("凭证明细").Cols("会计科目_一级科目").DropTree = tb.Build()


---------------------------
错误
在将 nvarchar 值 '启用' 转换成数据类型 int 时失败。


替换下图设置
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20190906182919.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/9/6 18:57:34编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2019/9/7 9:29:00 [显示全部帖子]

如何让目录树的字体变得大点

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2019/9/7 10:17:00 [显示全部帖子]

If MainTable.Name = "凭证明细" Then '如果选择的主表是订单表
'生成数据表
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELEC T DIS TINCT 大类,一级科目,明细科目 From {会计科目} Where 启用 = '1'"
dt = cmd.ExecuteReader()
'生成目录树
Dim tb As New DropTreeBuilder
tb.SourceTable = DataTables("会计科目") '指定目录树表
tb.TreeCols = "大类|一级科目|明细科目" '指定用于生成目录树的列
tb.SourceCols = "大类|一级科目|明细科目" '指定数据来源
tb.ReceiveCols = "大类|会计科目_一级科目|会计科目_明细科目" '指定数据接收列
Tables("凭证明细").Cols("会计科目_一级科目").DropTree = tb.Build()
End If


上面的代码应该是从后台获取数据
实际上不能,只有下拉框架没有数据
我如果将数据  会计科目  全部加载后是可以的
找不到原因了


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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2019/9/7 12:46:00 [显示全部帖子]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELE CT DIST INCT 大类,一级科目,明细科目 From {会计科目} Where 启用 = '1'"
dt = cmd.ExecuteReader()
'生成目录树
Dim tb As New DropTreeBuilder
tb.SourceTable = dt
tb.TreeCols = "大类|一级科目|明细科目" '指定用于生成目录树的列
tb.SourceCols = "大类|一级科目|明细科目" '指定数据来源
tb.ReceiveCols = "大类|会计科目_一级科目|会计科目_明细科目" '指定数据接收列
Tables("凭证明细").Cols("会计科目_一级科目").DropTree = tb.Build()


还是不能用,只有框架没有数据
换回 'tb.SourceTable = DataTables("会计科目") '指定目录树表
加载数据后正常
不得其解  求助

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


加好友 发短信
等级:九尾狐 帖子:2482 积分:22932 威望:0 精华:0 注册:2011/3/29 17:14:00
  发帖心情 Post By:2019/9/7 16:26:00 [显示全部帖子]

本页地址:http://www.foxtable.com/webhelp/topics/0696.htm

示例二

同样有了ExecuteReader,就可以直接利用后台数据给列生成下拉目录树:

'生成数据表
Dim 
cmd As New SQLCommand
Dim
 dt As DataTable
cmd.ConnectionName = 
"region"
cmd.CommandText = 
"SELE CT DIS TINCT 省,市县,区号,邮编 From {行政区域}"
dt = cmd.ExecuteReader()

'生成目录树

Dim
 tb As New DropTreeBuilder
tb.SourceTable = dt
tb.TreeCols = 
"省|市县"
tb.SourceCols = "省|市县|区号|邮编" 
tb.ReceiveCols = 
"省|市县|区号|邮编"
Tables(
"客户").Cols("省").DropTree = tb.Build()


代码放在哪呢

那个这个怎么实现呢



[此贴子已经被作者于2019/9/7 16:26:36编辑过]

 回到顶部