以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论]内部函数  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85821)

--  作者:江南小城
--  发布时间:2016/6/3 9:16:00
--  [讨论]内部函数
\'此函数用于更新主窗口左侧的Treeview控件
Dim TvwCtl As WinForm.TreeView = Args(0)   \'要更新的Treeview控件
Dim TblName As String = Args(1)            \'数据来源表
Dim Columns As String = Args(2)            \'要构建Treeview的字段
If Tables(TblName).Rows.Count = 0 Then Return Nothing
TvwCtl.Form.StopRedraw
TvwCtl.BuildTree(Tables(TblName).DataTable,Columns)
Dim ArrColName() As String = Columns.Split("|")
For i As Integer = 0 To Ubound(ArrColName)
    If Tables(TblName).DataTable.DataCols(ArrColName(i)).IsDate Then 
        Dim Dt As Date =  Tables(TblName).DataTable.DataRows(0)(ArrColName(i))
        If Dt.Hour = 0 And Dt.Minute = 0 And Dt.Minute = 0 Then
            For Each Nd As WinForm.TreeNode In TvwCtl.AllNodes
                If Nd.Level = i Then Nd.Text = Nd.Text.SubString(0,Nd.Text.IndexOf(" "))
            Next
        End If
    End If
Next
TvwCtl.Nodes.Insert("显示所有行",0)
TvwCtl.Form.ResumeRedraw


老师,上面函数不能对日期型的列进行筛选。望老师帮我修改。(函数是论坛上摘来的)谢谢

--  作者:大红袍
--  发布时间:2016/6/3 9:17:00
--  
上传实例,说明问题,这段代码本来,就是不是筛选的啊。
--  作者:江南小城
--  发布时间:2016/6/3 10:04:00
--  
加载日期内部函数出错
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加载.table


--  作者:大红袍
--  发布时间:2016/6/3 10:07:00
--  
\'此函数用于更新主窗口左侧的Treeview控件
Dim TvwCtl As WinForm.TreeView = Args(0)   \'要更新的Treeview控件
Dim TblName As String = Args(1)            \'数据来源表
Dim Columns As String = Args(2)            \'要构建Treeview的字段
If Tables(TblName).Rows.Count = 0 Then Return Nothing
TvwCtl.Form.StopRedraw
TvwCtl.BuildTree(Tables(TblName).DataTable,Columns)
Dim ArrColName() As String = Columns.Split("|")
For i As Integer = 0 To Ubound(ArrColName)
    If Tables(TblName).DataTable.DataCols(ArrColName(i)).IsDate Then
        For Each Nd As WinForm.TreeNode In TvwCtl.AllNodes
            Dim idx As Integer = nd.Text.IndexOf(" ")
            If idx >= 0 AndAlso Nd.Level = i Then Nd.Text = Nd.Text.SubString(0,Nd.Text.IndexOf(" "))
        Next
    End If
Next
TvwCtl.Nodes.Insert("显示所有行",0)
TvwCtl.Form.ResumeRedraw

--  作者:江南小城
--  发布时间:2016/6/3 10:31:00
--  
谢谢老师
--  作者:江南小城
--  发布时间:2016/6/3 12:46:00
--  
老师,还是内部函数,拷贝时发生错误。

图片点击可在新窗口打开查看此主题相关图片如下:图像 1.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建 文本文档.txt


--  作者:大红袍
--  发布时间:2016/6/3 14:20:00
--  

 你全局代码那里,要定义MySheet、MyBook才行啊。


--  作者:江南小城
--  发布时间:2016/6/3 15:07:00
--  
忘了,依赖思想太严重了。