以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  目录树  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131644)

--  作者:qaz17909
--  发布时间:2019/3/3 22:43:00
--  目录树
目录树NodeMoseclick事件点击已完成、年、月都正常,但是加载所有行和刷新,报错:"未将对象引用设置到对象的实例。"这是为什么,代码见附件?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1.txt


--  作者:有点甜
--  发布时间:2019/3/3 22:45:00
--  
Dim t As Table = e.Form.Controls("Table1").Table
Dim dt As DataTable = e.Form.Controls("Table1").Table.DataTable
If e.node.Text = "加载所有行" Then
    Filter = ""
    With dt
        .LoadFilter = Filter \'设置加载条件
        .LoadPage = 0 \'加载第一页
        .LoadTop = 50 \'每页5行
        .Load()
        e.Form.Controls("TextBox页数").Value = 1 & "/" & .TotalPages
    End With
Else If e.node.Text = "刷新" Then
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Month As Integer = e.Node.DataRow("月")

    Dim Filter As String
    Dim cmd As New SQLCommand

--  作者:qaz17909
--  发布时间:2019/3/4 9:10:00
--  
加载所有行可以了,刷新还是同样报错
--  作者:有点甜
--  发布时间:2019/3/4 9:48:00
--  

Dim t As Table = e.Form.Controls("Table1").Table
Dim dt As DataTable = e.Form.Controls("Table1").Table.DataTable
Dim Filter As String
If e.node.Text = "加载所有行" Then
    Filter = ""
    With dt
        .LoadFilter = Filter \'设置加载条件
        .LoadPage = 0 \'加载第一页
        .LoadTop = 50 \'每页5行
        .Load()
        e.Form.Controls("TextBox页数").Value = 1 & "/" & .TotalPages
    End With
Else If e.node.Text = "刷新" Then
    Dim cmd As New SQLCommand
    cmd.C
    Dim dt0 As DataTable
    cmd.CommandText = "SELECT DISTINCT 已完成,Year(完成日期) As 年, Month(完成日期) As 月 From {工作安排}"
    dt0 = cmd.ExecuteReader()
    Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
    trv.BuildTree(dt0,"已完成|年|月")
    For Each nd As WinForm.TreeNode In trv.AllNodes
        Select Case nd.Level
            Case 0
                If nd.Text = "True"
                    nd.Text = "已完成"
                Else
                    nd.Text = "未完成"
                End If
            Case 1
                nd.Text = nd.text & "年"
            Case 2
                nd.Text = nd.text & "月"
        End Select
    Next
    trv.Nodes.Insert("加载所有行",0)
    trv.Nodes.Insert("刷新",0)
Else
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Month As Integer = e.Node.DataRow("月")
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的DataRow
    Select Case e.Node.Level
        Case 0
            Filter = "[已完成] = \'" & dr("已完成") & "\'"
        Case 1
            Filter = "[已完成] = \'" & dr("已完成") & "\'" & " And Year(完成日期) = " & Year
        Case 2
            Filter = "[已完成] = \'" & dr("已完成") & "\'" & " And Year(完成日期) = " & Year & " And Month(完成日期) = " & Month
    End Select
    With dt
        .LoadFilter = Filter \'设置加载条件
        .LoadPage = 0 \'加载第一页
        .LoadTop = 50 \'每页5行
        .Load()
        e.Form.Controls("TextBox页数").Value = 1 & "/" & .TotalPages
    End With
End If
t.AutoSizeCols()

[此贴子已经被作者于2019/3/4 9:48:09编辑过]