Foxtable(狐表)用户栏目专家坐堂 → 一个幼狐给单位写的程序。我的问题汇总,大神略过


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

主题:一个幼狐给单位写的程序。我的问题汇总,大神略过

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


加好友 发短信
等级:幼狐 帖子:137 积分:1046 威望:0 精华:0 注册:2021/1/7 16:45:00
  发帖心情 Post By:2021/1/30 16:21:00 [只看该作者]

是不是有bug:从treeview1的事件中直接切换到treeview2相同事件中编写,控件名称虽然变了,但实际没变? 貌似???还是我脑子乱了

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


加好友 发短信
等级:超级版主 帖子:105877 积分:538442 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/30 16:23:00 [只看该作者]

这种用法treeview2事件是没有用的,只是一个过渡为了生成节点放到treeview1,请把代码都放到treeview1的事件中。

如果实在搞不清楚,就还是分开2个目录树显示吧,分别控制容易一点

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


加好友 发短信
等级:幼狐 帖子:137 积分:1046 威望:0 精华:0 注册:2021/1/7 16:45:00
  发帖心情 Post By:2021/1/30 17:05:00 [只看该作者]

treeview1 NodeMouseDoubleClick事件中:
'要两个目录树的条件联动起来
Dim Filter As String
Dim Filter1 As String
Dim Filter2 As String

Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.Text <> "按部门人员〓" Then  '
    
    Select Case e.Node.Level
        Case 0
            Filter1 = "[单位] = '" & dr("单位") &  "'"
        Case 1
            Filter1 = "[单位] = '" & dr("单位") & "' And [部门] = '" & dr("部门") & "'"
        Case 2
            Filter1 = "[单位] = '" & dr("单位") & "' And [部门] = '" & dr("部门") & "' And [责任人] = '" & dr("责任人") & "'"'
    End Select
End If

If e.Node.Text <> "按设备型号〓" Then
    Select Case e.Node.Level
        Case 0
            Filter2 = "[设备大类] = '" & dr("设备大类") & "'"
        Case 1
            Filter2 = "[设备大类] = '" & dr("设备大类") & "' And [设备二类] = '" & dr("设备二类") & "'"
        Case 2
            Filter2 = "[设备大类] = '" & dr("设备大类") & "' and [设备二类] = '" & dr("设备二类") & "' And [设备三类] = '" & dr("设备三类") & "'"'
            
    End Select
End If

Filter= Filter1 &  Filter2  
Tables("主表").Filter = Filter   'treeview1


类似这样吗?如果是我再去找正确语句

[此贴子已经被作者于2021/1/30 17:08:26编辑过]

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


加好友 发短信
等级:幼狐 帖子:137 积分:1046 威望:0 精华:0 注册:2021/1/7 16:45:00
  发帖心情 Post By:2021/1/30 17:11:00 [只看该作者]

两天两夜过去了,还在原地,我真FW图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:105877 积分:538442 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/30 17:28:00 [只看该作者]

Dim Filter1 As String

Dim dr As DataRow = e.Node.DataRow '获取生成此节点的行
If e.Node.FullName .StartsWith("按部门") Then  '
    
    Select Case e.Node.Level
        Case 1
            Filter1 = "[单位] = '" & dr("单位") &  "'"
        Case 2
            Filter1 = "[单位] = '" & dr("单位") & "' And [部门] = '" & dr("部门") & "'"
        Case 3
            Filter1 = "[单位] = '" & dr("单位") & "' And [部门] = '" & dr("部门") & "' And [责任人] = '" & dr("责任人") & "'"'
    End Select
ElseIf e.Node.FullName . StartsWith("按设备")  Then
    Select Case e.Node.Level
        Case 1
            Filter1  = "[设备大类] = '" & dr("设备大类") & "'"
        Case 2
            Filter1 = "[设备大类] = '" & dr("设备大类") & "' And [设备二类] = '" & dr("设备二类") & "'"
        Case 3
            Filter1 = "[设备大类] = '" & dr("设备大类") & "' and [设备二类] = '" & dr("设备二类") & "' And [设备三类] = '" & dr("设备三类") & "'"'
            
    End Select
End If

Tables("主表").Filter = Filter1

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


加好友 发短信
等级:幼狐 帖子:137 积分:1046 威望:0 精华:0 注册:2021/1/7 16:45:00
  发帖心情 Post By:2021/1/30 17:55:00 [只看该作者]

蓝老师,那么两个目录树联动起来呢?

图片点击可在新窗口打开查看此主题相关图片如下:111111.gif
图片点击可在新窗口打开查看

Dim nms As String() = {"","",""} '指定生成目录树的各列
Dim nms1 As String() = {"","",""} '指定生成目录树的各列
Dim nms2 As String() = {"","",""} '指定生成目录树的各列
Dim qts As String() = {"'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
Dim nd As WinForm.TreeNode
For Each nd In e.node.allNodes '清除子节点的选中标记
    nd.Checked = False
Next
nd = e.Node.ParentNode
Do While nd IsNot Nothing '清除父节点的选中标记
    nd.Checked = False
    nd = nd.ParentNode
Loop
For Each nd In trv.AllNodes
    If nd.Checked  Then
        If nd.FullPath Like "按设备*"
            nms1 = {"设备大类","设备二类","设备三类"}
        Else
            nms2 = {"单位","部门","责任人"}
        End If
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val As String = ""
        Dim val1 As String = ""
        Dim val2 As String = ""
        
        For i As Integer = 1 To rts.Length - 1
            If val > "" Then
                val = val & " And "
            End If
            '            val = val & nms(i-1) & " = " & qts(i-1) & rts(i) & qts(i-1)
            val1 = val & nms1(i-1) & " = " & qts(i-1) & rts(i) & qts(i-1)
            val2 = val & nms2(i-1) & " = " & qts(i-1) & rts(i) & qts(i-1)
        Next
        
        If flt > "" Then
            '           flt = flt & " or (" & val & ")"
            flt = flt & " and (" & val1 & ")" &" And " & "(" & val2 & ")"
        Else
            flt = val
        End If
        MessageBox.Show(VAL)
        MessageBox.Show(VAL1)
        MessageBox.Show(VAL2)
        MessageBox.Show(FLT)
    End If
Next
Tables("主表").Filter  = flt
[此贴子已经被作者于2021/1/30 18:43:06编辑过]

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


加好友 发短信
等级:幼狐 帖子:137 积分:1046 威望:0 精华:0 注册:2021/1/7 16:45:00
  发帖心情 Post By:2021/1/30 20:28:00 [只看该作者]

顶一下

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


加好友 发短信
等级:幼狐 帖子:109 积分:981 威望:0 精华:0 注册:2020/3/29 23:35:00
  发帖心情 Post By:2021/1/30 20:40:00 [只看该作者]

什么东东

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


加好友 发短信
等级:幼狐 帖子:148 积分:1066 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2021/1/31 10:05:00 [只看该作者]

图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:148 积分:1066 威望:0 精华:0 注册:2012/11/16 10:21:00
  发帖心情 Post By:2021/1/31 10:06:00 [只看该作者]

看看

 回到顶部
总数 41 上一页 1 2 3 4 5 下一页