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


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

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

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望: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

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/1/31 20:34:00 [显示全部帖子]

以下是引用宇哥在2021/1/30 17:55:00的发言:
蓝老师,那么两个目录树联动起来呢?
[此贴子已经被作者于2021/1/30 18:43:06编辑过

什么两个目录树联动?没看懂要做什么?

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/1 8:38:00 [显示全部帖子]

本来就可以联动的呀,如果是指2个目录树的条件是同时而不是或者,参考:
Dim nms As String() = {"单位","部门","责任人"} '指定生成目录树的各列
Dim qts As String() = {"'","'","'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
Dim trv As WinForm.TreeView = e.Sender
Dim flt1,flt2 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 "按设备*"
            nms = {"设备大类","设备二类","设备三类"}
        Else
            nms = {"单位","部门","责任人"}
        End If
        Dim rts() As String = nd.FullPath.Split("\")
        Dim val 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)
        Next
        If nd.FullPath Like "按设备*"
            If flt2 > "" Then
                flt2 = flt2 & " or (" & val & ")"
            Else
                flt2 = val
            End If
        Else
            If flt1 > "" Then
                flt1 = flt1 & " or (" & val & ")"
            Else
                flt1 = val
            End If
        End If
    End If
Next
Dim flt As String = flt1
If flt > "" Then
    If flt2 > "" Then
        flt = "(" & flt1 & ") and (" & flt2 & ")"
    End If
Else
    flt = flt2
End If
Tables("主表").Filter  = flt

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


加好友 发短信
等级:超级版主 帖子:106097 积分:539590 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/27 8:56:00 [显示全部帖子]

窗口afterload代码和上面错误信息发出来:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626

 回到顶部
总数 15 上一页 1 2