以文本方式查看主题

-  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=54825)

--  作者:zcgmxf
--  发布时间:2014/8/5 15:14:00
--  [原创]
您好!

Dim drs As List(of DataRow) = DataTables("表A").Select("", "项目,日期") \'注意排序参数
drs(0)("累计支出") = drs(0)("支出"
) \'设置第一行的累计支出
For
i As Integer = 1 To drs.Count - 1  \'从第二行开始逐行计算累计支出
    If
drs(i)("项目") = drs(i - 1)("项目") Then
        drs(i)("累计支出") = drs(i-1)("累计支出") + drs(i)("支出"
)
    Else

        drs(i)("累计支出") = drs(i)("支出"
)
   
End If
Next

这一组代码,单独用如果增加第一行没问题,但是如果套用在其它有默认值什么的表中,增加第一行总是提示运行错误:索引超出范围,必须为非负值或小于集合大小。默认值等越多提示越多。这是为什么啊?

    初学者,拜各位为师!请多指教!

[此贴子已经被作者于2014-8-5 15:22:06编辑过]

--  作者:有点甜
--  发布时间:2014/8/5 15:16:00
--  

 例子发上来,单独一段代码别人不知道你什么情况


--  作者:yan2006l
--  发布时间:2014/8/5 15:31:00
--  
Dim drs As List(of DataRow) = DataTables("表A").Select("", "项目,日期") \'注意排序参数
在其他表你要保证以上集合的DataRow的数量要>0
--  作者:zcgmxf
--  发布时间:2014/8/5 15:33:00
--  
我一个疫苗出入库登记表,要用到逐行累计,套用教材上的“非等于比较。。。比较合适,“项目--去向单位,日期--出入库日期,支出--疫苗数量,累计支出--累计疫苗数量”,就这样套用增加第一行没问题,如果将“去向单位列”设为默认值“接种消耗”,就出现:索引超出范围。。。


--  作者:有点甜
--  发布时间:2014/8/5 15:37:00
--  
 做个例子发上来
--  作者:zcgmxf
--  发布时间:2014/8/5 15:39:00
--  
谢谢!我再学习学习!