Foxtable(狐表)用户栏目专家坐堂 → [求助]两表两列取值目录树


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

主题:[求助]两表两列取值目录树

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/11 13:40:00 [显示全部帖子]

Dim erow As Row = Tables("室内设计项目").Current
If erow Is Nothing Then Return
Dim filter As String = ""
Dim fdr As DataRow = DataTables("下拉目录树").find("省市='" & eRow("设计任务要求_设计类别") & "'")
If fdr IsNot Nothing Then
    Dim dq As DataRow = erow.Table.DataTable.find("设计任务要求_设计类别='" & eRow("设计任务要求_设计类别") & "' and _Identify <> " & eRow("_Identify"), "_Identify desc")
    If dq IsNot Nothing Then
        Dim fdr1 As DataRow = DataTables("下拉目录树").find("省市='" & eRow("设计任务要求_设计类别") & "' and 县市 = '" & dq("工程状态") & "'")
        If fdr1 IsNot Nothing Then
            Filter = "省市='" & eRow("设计任务要求_设计类别") & "' and _Identify > " & fdr1("_Identify")
        Else
            Filter = "省市='" & eRow("设计任务要求_设计类别") & "'"
        End If
    Else
        Filter = "省市='" & eRow("设计任务要求_设计类别") & "'"
    End If
Else
    Filter = "省市='其他'"
End If
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("下拉目录树","省市|县市", filter)

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/11 16:44:00 [显示全部帖子]

没看懂。需要这么效果,截图说明一下

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/11 17:31:00 [显示全部帖子]

根据多列内容生成目录树

目录树有一个BuildTree方法,可以根据指定的数据表内容生成目录树节点。

语法:

BuildTree(DataTableName, Columns, Filter, Sort)

BuildTree(DataTable, Columns, Filter, Sort)

DataTableName: 数据表名
DataTable:    数据表
Columns:       指定数据列,不同的列之间用符号“|”隔开,例如:产品|客户|雇员”
Filter:        可选参数,指定过滤条件,
请参考表达式的运算符和函数 和 条件表达式
Sort:         可选参数,指定排序列。


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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/11 17:31:00 [显示全部帖子]


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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/12 16:05:00 [显示全部帖子]

DropDownOpening事件


Dim filter As String = ""
Dim fdr As DataRow = DataTables("下拉目录树").find("省市='" & eRow("设计任务要求_设计类别") & "'")
If fdr IsNot Nothing Then
    Filter = "省市='" & eRow("设计任务要求_设计类别") & "' and _Identify > " & fdr("_Identify")
Else
    Filter = "省市='其他'"
End If
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("下拉目录树","省市|县市", filter,"_Identify")
trv.ExpandAll()

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/12 16:34:00 [显示全部帖子]

有这个必要?理由?既然不能录入,又何必给出选择?如果一个下拉项有几十项,只有几项可以录入,难道还要用户从几十项里找出这几项?

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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/12 17:27:00 [显示全部帖子]

那要到表事件处理,和窗口没有什么关系


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


加好友 发短信
等级:超级版主 帖子:107861 积分:548662 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/15 9:19:00 [显示全部帖子]

把afterload代码去掉

DropDownOpening事件

Dim erow As Row = Tables("室内设计项目").Current
If erow Is Nothing Then Return
Dim filter As String = ""
Dim fdr As DataRow = DataTables("下拉目录树").find("省市='" & eRow("设计任务要求_设计类别") & "'")
If fdr IsNot Nothing Then
    fdr = DataTables("下拉目录树").find("省市='" & eRow("设计任务要求_设计类别") & "' and 县市='" & eRow("工程状态") & "'")
    If fdr IsNot Nothing Then
        Filter = "省市='" & eRow("设计任务要求_设计类别") & "' and _Identify > " & fdr("_Identify")
    Else
        Filter = "省市='" & eRow("设计任务要求_设计类别") & "'"
    End If
Else
    Filter = "省市='其他'"
End If
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree("下拉目录树","省市|县市", filter,"_Identify")
trv.ExpandAll()

 回到顶部