以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]函数  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=70119)

--  作者:深蓝
--  发布时间:2015/6/16 10:51: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

 

 

狐狸老师,这个内部函数是我抄来的现求狐老师修改。其中一个节点修改成日期型。


--  作者:大红袍
--  发布时间:2015/6/16 10:56:00
--  
 什么意思?代码就已经处理了日期类型的列了啊
--  作者:深蓝
--  发布时间:2015/6/16 11:02:00
--  
那我的日期类型列为报错啊
图片点击可在新窗口打开查看此主题相关图片如下:函数.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2015/6/16 11:19:00
--  
 函数没有问题,出错,就上传出错的例子。
--  作者:深蓝
--  发布时间:2015/6/16 11:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:股票.rar


--  作者:大红袍
--  发布时间:2015/6/16 11:44: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
            If Nd.Text.IndexOf(" ") = -1 Then
                Exit For
            End If
            If Nd.Level = i Then Nd.Text = Nd.Text.SubString(0,Nd.Text.IndexOf(" "))
        Next
    End If
Next
TvwCtl.Nodes.Insert("显示所有行",0)
TvwCtl.Form.ResumeRedraw

--  作者:大红袍
--  发布时间:2015/6/16 11:45:00
--  
 同时,你的窗口的->全局事件->TextChanged事件的代码,去掉
--  作者:深蓝
--  发布时间:2015/6/16 12:06:00
--  
谢谢