Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共25 条记录, 每页显示 10 条, 页签: [1] [2] [3]
[浏览完整版]

标题:如何把长目录树路径分开,组成筛选加载的条件

11楼
有点蓝 发表于:2024/4/15 8:38:00
AfterCheckNode事件完整代码发上来看看
12楼
采菊东篱下 发表于:2024/4/15 16:30:00
直接用
Dim rts() As String = e.node.FullPath.Split("\")
就可实现取当前目录树路径了。
13楼
采菊东篱下 发表于:2024/4/16 13:55:00

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240416133922.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240416133958.png
图片点击可在新窗口打开查看
目录树结构如上面两图,我省去多选的代码,勾选的代码我测试过没问题了,问题在生成的筛选数据,我这样写时只显示当前勾选的数据,不同一路径的没显示了,如何把不同路径的数据同时显示:
Dim trv As WinForm.TreeView = e.Sender
Dim flt, flt0, flt1, flt2, flt3, flt4 , flt5 As String
Dim nd As WinForm.TreeNode
Dim nms As String() = {"明细分类", "住址_巷", "住址_号", "住址_房", "车牌号码", "姓名", "手机号码"} '指定生成目录树的各列
    Dim qts As String() = {"'", "'", "'", "'", "'", "'", "'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim nms1 As String() = {"明细分类", "年", "月", "车牌号码", "姓名", "手机号码"} '指定生成目录树的各列
    Dim qts1 As String() = {"'", "", "", "'", "'", "'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim nms2 As String() = {"住址_巷", "住址_号", "住址_房", "单位名称", "姓名", "手机号码"} '指定生成目录树的各列
    Dim qts2 As String() = {"'", "'", "'", "'", "'", "'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim nms3 As String() = {"单位名称", "姓名", "手机号码"} '指定生成目录树的各列
    Dim qts3 As String() = {"'", "'", "'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim nms4 As String() = {"明细分类", "车牌号码", "姓名", "手机号码"} '指定生成目录树的各列
    Dim qts4 As String() = {"'", "'", "'", "'"} '指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    If e.node.Checked Then
        Dim rts() As String = e.node.FullPath.Split("\")
        Dim val As String = ""
        Dim val1 As String = ""
        If e.Node.Level = 0 Then
            flt = "分类 = '" & rts(0) & "'"
        ElseIf e.Node.Level >= 1 Then
            If rts(0) = DataTables("分类").DataRows(0)("分类") And (rts(1) = DataTables("用户明细分类").DataRows(0)("用户明细分类") Or rts(1) = DataTables("用户明细分类").DataRows(1)("用户明细分类")) Then
                For i As Integer = 1 To rts.length - 1
                    If val1 > "" Then
                        val1 = val1 & " And " & nms(i - 1) & " = " & qts(i - 1) & rts(i) & qts(i - 1)
                    End If
                    val1 = nms(i - 1) & " = " & qts(i - 1) & rts(i) & qts(i - 1)
                Next
                If flt1 > "" Then
                    flt1 = flt1 & " Or (([分类]= '" & DataTables("分类").DataRows(0)("分类") & "Or [分类] = '" & _
                    DataTables("分类").DataRows(1)("分类") & "') And " & val1 & ")"
                Else 
                    flt1 = "([分类]= '" & DataTables("分类").DataRows(0)("分类") & "' Or [分类] = '" & DataTables("分类").DataRows(1)("分类") & _
                    "') And " & val1
                End If
            End If
            If rts(0) = DataTables("分类").DataRows(0)("分类") And rts(1) = DataTables("用户明细分类").DataRows(2)("用户明细分类") Then
                For i As Integer = 1 To rts.length - 1
                    If val > "" Then
                        val = val & " And " & nms4(i - 1) & " = " & qts4(i - 1) & rts(i) & qts4(i - 1)
                    End If
                    val = nms4(i - 1) & " = " & qts4(i - 1) & rts(i) & qts4(i - 1)
                Next
                If flt2 > "" Then
                    flt2 = flt2 & " Or ([分类] = '" & DataTables("分类").DataRows(0)("分类") & "' And " & val & ")"
                Else
                    flt2 = "分类 = '" & DataTables("分类").DataRows(0)("分类") & "' And " & val 
                End If
            End If
[此贴子已经被作者于2024/4/16 13:57:19编辑过]
14楼
采菊东篱下 发表于:2024/4/16 13:56:00
            If nd.FullPath Like DataTables("分类").DataRows(1)("分类") & "*" Then
                Dim d1, d2 As Date
                Select Case e.Node.Level
                    Case 1
                        If val > "" Then
                            val = val & " And (" & nms1(0) & " = " & qts1(0) & rts(1) & qts1(0) & ")"
                        Else
                            val = nms1(0) & " = " & qts1(0) & rts(1) & qts1(0)
                        End If
                    Case 2
                        d1 = New Date(CInt(rts(2)), 1, 1)
                        d2 = New Date(CInt(rts(2)), 12, 31)
                        val = nms1(0) & " = " & qts1(0) & rts(1) & qts1(0) & " And 日期 >= #" & d1 & "# And 日期 <=#" & d2 & "#"
                        MessageBox.Show(val)
                    Case 3
                        d1 = New Date(CInt(rts(2)), CInt(rts(3)), 1)
                        d2 = New Date(CInt(rts(2)), CInt(rts(3)), Date.DaysInMonth(CInt(rts(2)), CInt(rts(3))))
                        val = nms1(0) & " = " & qts1(0) & rts(1) & qts1(0) & " And 日期 >= #" & d1 & "# And 日期 <=#" & d2 & "#"
                    Case 4
                        d1 = New Date(CInt(rts(2)), CInt(rts(3)), 1)
                        d2 = New Date(CInt(rts(2)), CInt(rts(3)), Date.DaysInMonth(CInt(rts(2)), CInt(rts(3))))
                        val = nms1(0) & " = " & qts1(0) & rts(1) & qts1(0) & " And 日期 >= #" & d1 & "# And 日期 <=#" & d2 & "# And 车牌号码 = '" & rts(4) & "'"
                    Case 5
                        d1 = New Date(CInt(rts(2)), CInt(rts(3)), 1)
                        d2 = New Date(CInt(rts(2)), CInt(rts(3)), Date.DaysInMonth(CInt(rts(2)), CInt(rts(3))))
                        val = nms1(0) & " = " & qts1(0) & rts(1) & qts1(0) & " And 日期 >= #" & d1 & "# And 日期 <=#" & d2 & "# And 车牌号码 = '" & rts(4) & "' And 手机号码 = '" & rts(5) & "'"
                End Select
                flt3 = "分类= '" & DataTables("分类").DataRows(1)("分类") & "' And " & val
                If nd.FullPath Like DataTables("分类").DataRows(2)("分类") & "*" Then
                    For i As Integer = 1 To rts.length - 1
                        If val > "" Then
                            val = val & " And "
                        End If
                        val = val & nms2(i - 1) & " = " & qts2(i - 1) & rts(i) & qts2(i - 1)
                    Next
                    If flt4 > "" Then
                        If flt4 > "" Then
                            flt4 = flt4 & " or (分类 = '" & DataTables("分类").DataRows(2)("分类") & "' And " & val & ")"
                        Else
                            flt4 = "分类 = '" & DataTables("分类").DataRows(2)("分类") & "' And " & val 
                        End If
                    End If
                End If
                If nd.FullPath Like DataTables("分类").DataRows(3)("分类") & "*" Then
                    For i As Integer = 1 To rts.length - 1
                        If val > "" Then
                            val = val & " And "
                        End If
                        val = val & nms3(i - 1) & " = " & qts3(i - 1) & rts(i) & qts3(i - 1)
                    Next
                    If val > "" Then
                        If flt5 > "" Then
                            flt5 = flt5 & " or (分类 = '" & DataTables("分类").DataRows(3)("分类") & "' And " & val & ")"
                        Else
                            flt5 = "分类 = '" & DataTables("分类").DataRows(3)("分类") & "' And " & val 
                        End If
                    End If
                End If
            End If
        End If
        If flt0 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt0 & ")"
        End If
        If flt1 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt1 & ")"
        End If
        If flt2 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt2 & ")"
        End If
        If flt3 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt3 & ")"
        End If
        If flt4 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt4 & ")"
        End If
        If flt5 > "" Then
            If flt > "" Then
                flt = flt & " Or "
            End If
            flt = flt & "(" & flt5 & ")"
        End If
    End If
With DataTables("车辆基本信息")
    .LoadFilter = flt '设置加载条件
    .LoadPage = 0 '加载第一页
    .LoadTop = 30 '每页5行
    .LoadOrder = "_Identify"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox2").Value = 1 & "/" & .TotalPages
End With
15楼
有点蓝 发表于:2024/4/16 14:04:00
请上传实例测试
16楼
采菊东篱下 发表于:2024/4/16 16:44:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多选加载目录树.rar

因为是临时导出的,很多表没导进去,你关闭报错提示,点任务栏的基本信息的加载树就可测试了。
17楼
有点蓝 发表于:2024/4/16 17:38:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.zip

18楼
采菊东篱下 发表于:2024/4/16 21:32:00

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20240416212943.png
图片点击可在新窗口打开查看
你安我图上这样勾选,报错。
19楼
有点蓝 发表于:2024/4/16 21:34:00
建议不要一次性筛选过多数据,筛选条件的长度是有限制的哦
20楼
采菊东篱下 发表于:2024/4/16 22:38:00
图片点击可在新窗口打开查看,全选后去除一个勾选,也就是除没勾选的这个外,其他都显示,这样操作常有啊!如此说来这方法失败!
共25 条记录, 每页显示 10 条, 页签: [1] [2] [3]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 4 queries.