以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 动态目录树 求助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140492) |
-- 作者:yifan3429 -- 发布时间: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 时失败。 [此贴子已经被作者于2019/9/6 18:57:34编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/6 20:19:00 -- PrepareEdit不适合使用这种用法,会导致项目假死,只能放到maintablechanged事件 ...Where 启用 = \'1\'"
|
-- 作者:yifan3429 -- 发布时间:2019/9/7 9:29:00 -- 如何让目录树的字体变得大点 |
-- 作者:有点蓝 -- 发布时间:2019/9/7 9:39:00 -- 这个无法控制。除非自己使用下拉窗口做,如:http://www.foxtable.com/webhelp/topics/2893.htm |
-- 作者:yifan3429 -- 发布时间: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 上面的代码应该是从后台获取数据 实际上不能,只有下拉框架没有数据 我如果将数据 会计科目 全部加载后是可以的 找不到原因了 |
-- 作者:有点蓝 -- 发布时间:2019/9/7 10:41:00 -- tb.SourceTable = dt \'指定目录树表 |
-- 作者:yifan3429 -- 发布时间: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("会计科目") \'指定目录树表 加载数据后正常 不得其解 求助
|
-- 作者:有点蓝 -- 发布时间:2019/9/7 14:16:00 -- 11 [此贴子已经被作者于2019/9/7 16:33:30编辑过]
|
-- 作者:yifan3429 -- 发布时间:2019/9/7 16:26:00 -- 本页地址:http://www.foxtable.com/webhelp/topics/0696.htm 示例二 同样有了ExecuteReader,就可以直接利用后台数据给列生成下拉目录树: \'生成数据表 代码放在哪呢 那个这个怎么实现呢 [此贴子已经被作者于2019/9/7 16:26:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/9/7 16:30:00 -- 汗,测试了一下,没有问题啊。上传您的实例说明 |