以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为什么导出数与勾选筛选全显行数不符?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=172954)

--  作者:采菊东篱下
--  发布时间:2021/11/8 21:48:00
--  为什么导出数与勾选筛选全显行数不符?

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

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

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20211108214432.png
图片点击可在新窗口打开查看
如题,我并没有隐藏数据。
[此贴子已经被作者于2021/11/8 21:59:30编辑过]

--  作者:采菊东篱下
--  发布时间:2021/11/8 21:48:00
--  
少了一行,
--  作者:有点蓝
--  发布时间:2021/11/8 21:50:00
--  
在哪里勾选?少了什么数据?怎么导出的?
--  作者:采菊东篱下
--  发布时间:2021/11/8 21:59:00
--  
勾选左边的加载树,少了excel中的第14行数据,我点系统杂项中的高速导出查看的,没导出前就已经觉少了数据了,导出后核对果然少了第14行。
--  作者:有点蓝
--  发布时间:2021/11/8 22:16:00
--  
根据什么条件做的分页加载?

我们的建议是:尽量采用主键列或者其他值不会重复的列(如身份证号码),作为分页依据列,因为如果分页依据列的值有重复,将会影响分页的准确性,例如上面的代码根据日期分页,每页显示20行,如果某一天有40个订单,那么这40个订单会显示在同一个页面中,而不会按我们期望的那样分成两页显示。

--  作者:采菊东篱下
--  发布时间:2021/11/8 22:38:00
--  
Dim cmd1 As New SQLCommand
Dim dt1 As DataTable
cmd1.CommandText = "SELECT DISTINCT 团体赛或个人赛,棋赛名称,所属团体或个人分组,姓名 Fr om {基本信息}"
dt1 = cmd1.ExecuteReader()
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree(dt1,"团体赛或个人赛|棋赛名称|所属团体或个人分组|姓名")
trv1.Nodes.Insert("加载数据",0) \'加载第一页数据
With DataTables("基本信息")
    .LoadFilter = "" \'清除加载条件
    .LoadPage = 0 \'加载第一页
    .LoadTop = 20 \'每页5行
    .LoadOrder = "团体赛或个人赛,棋赛名称 desc,所属团体或个人分组,姓名"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox3").Value = 1 & "/" & .TotalPages
End With

--  作者:采菊东篱下
--  发布时间:2021/11/8 22:42:00
--  
始终加载树全选显示的数据比后台数据少一行。
--  作者:采菊东篱下
--  发布时间:2021/11/8 22:48:00
--  
筛选显示裁判有5个,全显只有4个!

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


--  作者:有点蓝
--  发布时间:2021/11/8 23:01:00
--  
目录树勾选加载全部的代码发上来看看
--  作者:采菊东篱下
--  发布时间:2021/11/8 23:18:00
--  
Dim trv As WinForm.TreeView = e.Sender
Dim flt As String
If trv.Nodes(0).Name = e.Node.Name
    If e.Node.Checked
        For Each nd As WinForm.TreeNode In trv.AllNodes
            nd.Checked  = False
        Next
        e.Node.Checked = True
    Else
        flt = "1=2"
    End If
Else
    trv.Nodes(0).Checked = False
    Dim nms As String() = {"团体赛或个人赛","棋赛名称","所属团体或个人分组","姓名"} \'指定生成目录树的各列
    Dim qts As String() = {"\'","\'","\'","\'"} \'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号
    Dim n As WinForm.TreeNode = e.Node.ParentNode
    For Each nd As WinForm.TreeNode In e.Node.AllNodes
        nd.Checked = e.Node.Checked
    Next
    Do While n IsNot Nothing
        Dim chhh As Boolean = True
        For Each nd As WinForm.TreeNode In n.AllNodes
            If nd.Checked = False Then
                chhh = False
                Exit For
            End If
        Next
        n.Checked = chhh
        n = n.ParentNode
    Loop
    If e.node.Checked = False Then \'去除当前字节选勾
        Do While n IsNot Nothing
            n.Checked = False \'去掉父节点选中状态
            n = n.ParentNode
        Loop
    End If
    For Each nd As WinForm.TreeNode In trv.AllNodes
        If nd.Checked Then
            Dim rts() As String = nd.FullPath.Split("\\")
            Dim val As String = ""
            For i As Integer = 0 To rts.length - 1
                If val > "" Then
                    val = val & " And "
                End If
                val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i)
            Next
            If flt > "" Then
                flt = flt & " Or (" & val & ")"
            Else
                flt = val
            End If
        End If
    Next
End If
With DataTables("基本信息")
    .LoadFilter = flt \'设置加载条件
    .LoadPage = 0 \'加载第一页
    .LoadTop = 20 \'每页5行
    .LoadOrder = "团体赛或个人赛,棋赛名称 desc,所属团体或个人分组,姓名"
    .LoadReverse = True
    .Load()
    e.Form.Controls("TextBox3").Value = 1 & "/" & .TotalPages
End With