以文本方式查看主题 - 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开始的 |