Foxtable(狐表)用户栏目专家坐堂 → 代码含义


  共有9098人关注过本帖树形打印复制链接

主题:代码含义

帅哥哟,离线,有人找我吗?
netfox168
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:274 积分:2960 威望:0 精华:0 注册:2011/9/19 0:18:00
代码含义  发帖心情 Post By:2013/1/18 23:14:00 [只看该作者]

正在学习范例文件“会计科目”如何建立目录树,但对其中两个窗体的 AfterLoade 事件代码不甚理解。尤其第二段,“科目”是如何和“分类”挂上钩的?请高手简单解释一下。谢谢!

 

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
tr.Nodes.Add("全部")
For Each dr As DataRow In dt.datarows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then
        nd = tr.Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next
tr.ResumeRedraw()

---------------------------------

Dim tr As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim rts() As String = {"全部","资产","负债","权益","成本","损益"}
Dim nd As WinForm.TreeNode
Dim dt As DataTable = DataTables("会计科目")
tr.StopRedraw()
tr.Nodes.Clear
For Each rt As String In rts
    tr.Nodes.Add(rt)
Next
For Each dr As DataRow In dt.datarows
    If dr.IsNull("科目代码") = False AndAlso dr("科目代码").Length = 4 Then
        Dim i As Integer = CInt(dr("科目代码").Substring(0,1))
        nd = tr.Nodes(i).Nodes.Add(dr("科目代码"),dr("科目代码") & " " & dr("科目名称"))
        Functions.Execute("AddChildren",nd,dt)
    End If
Next
tr.ResumeRedraw()

 


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/19 9:24:00 [只看该作者]

 核心是递归。也就是执行到Functions.Execute("AddChildren",nd,dt)的时候,停下来,先跳到函数里执行,如此反复。你跟着这个规律去看代码就行了。

 回到顶部