以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这个代码有啥问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62105)

--  作者:blackzhu
--  发布时间:2014/12/25 15:27:00
--  这个代码有啥问题?
For Each nd As WinForm.TreeNode In trw.AllNodes
    If nd.Name <> "全部BOM明细" Then
        Dim r As Row = Tables(e.Form.Name & "_Table1").AddNew
        For i1 As Integer = 0 To lv
            r("第" & i1 & "级") = nd.nodes(i1).Text.Split("|")(0)
        Next
    End If
Next


.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2014.10.23.1
错误所在事件:窗口,窗口1,Button1,Click
详细错误信息:
指定的参数已超出有效值的范围。
参数名: index

--  作者:jialihaha
--  发布时间:2014/12/25 15:29:00
--  
数组越界吧,lv是什么
--  作者:Bin
--  发布时间:2014/12/25 15:30:00
--  
 nd.nodes(i1).

i1 超大了

--  作者:blackzhu
--  发布时间:2014/12/25 15:30:00
--  
Dim dtb As New DataTableBuilder("统计")
Dim trw As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim lv As Integer = 0
For Each nd As WinForm.TreeNode In trw.AllNodes
    If nd.Level > lv
        lv=nd.Level
    End If
Next
For i As Integer = 0 To lv
    dtb.AddDef("第" & i & "级", Gettype(String), 32)
Next
dtb.AddDef("物品名称", Gettype(String), 32)
dtb.AddDef("规格", Gettype(String), 32)
Tables(e.Form.name & "_Table1").DataSource = dtb.BuildDataSource

For Each nd As WinForm.TreeNode In trw.AllNodes
    If nd.Name <> "全部BOM明细" Then
        Dim r As Row = Tables(e.Form.Name & "_Table1").AddNew
        For i1 As Integer = 0 To lv
            r("第" & i1 & "级") = nd.nodes(i1).Text.Split("|")(0)
        Next
    End If
Next


 整个代码

--  作者:有点甜
--  发布时间:2014/12/25 15:34:00
--  

If nd.Nodes.Count < i1 Then

    r("第" & i1 & "级") = nd.nodes(i1).Text.Split("|")(0)

End If


--  作者:jialihaha
--  发布时间:2014/12/25 15:34:00
--  
循环那里lv都有减1吧?因为是从0开始的