以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 索引超出范围 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=162982) |
-- 作者:gaolei -- 发布时间:2021/4/19 15:20:00 -- 索引超出范围 If e.DataCol.name = "是否参与记账" And e.DataRow("是否参与记账") = True And E.DataRow("收款摘要") = "" MessageBox.Show("您好!您的收款摘要很可能为空白,请补充完整吧") End If Dim a As Integer If e.DataCol.name = "是否参与记账" And e.DataRow("是否参与记账") = True Dim DRS As List(OF DataRow) DRS = DataTables("续时账模板").Select("[记账参数匹配列] =\'"& E.DataRow("收款摘要") &"\'") A=DRS.Count For I As Integer = 1 To A Tables("销售续时账").AddNew(1) Tables("销售续时账").current("记账日期") = e.DataRow("日期") Tables("销售续时账").current("摘要") = e.DataRow("收款摘要") & e.DataRow("客户姓名") Tables("销售续时账").current("科目") = drs(I)("科目") MessageBox.Show(1) If drs(I)("方向") = "借" Then Tables("销售续时账").current("借方金额") = e.DataRow("收款金额") Tables("销售续时账").current("贷方金额") = e.DataRow("收款金额")-e.DataRow("收款金额") Else Tables("销售续时账").current("借方金额") = e.DataRow("收款金额") - e.DataRow("收款金额") Tables("销售续时账").current("贷方金额") = e.DataRow("收款金额") End If MessageBox.Show(2) Tables("销售续时账").current("核算项目1") = drs(I)("核算项目1") Tables("销售续时账").current("核算项目2") = drs(I)("核算项目2") Tables("销售续时账").current("核算项目3") = drs(I)("核算项目3") MessageBox.Show(3) Next End If 各位老师,下午好,我三条调试信息都能正常显示,但最后却总是蹦出来: 错误所在事件:表,收款台账_收银员,DataColChanged 详细错误信息: 调用的目标发生了异常。 索引超出范围。必须为非负值并小于集合大小。 参数名: index 我检查了几遍感觉我写的代码是没有问题的,是不是系统有bug啊 |
-- 作者:有点蓝 -- 发布时间:2021/4/19 15:36:00 -- For I As Integer = 1 To A 改为 For I As Integer = 0 To A - 1 集合索引是从0开始的,不是从1开始
|
-- 作者:gaolei -- 发布时间:2021/4/19 15:43:00 -- 嗷嗷嗷,吐血啊,原来错在这,我在这找了半天 |