以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  新手求助,列不固定,如何求各列合计?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=20323)

--  作者:pbcti
--  发布时间:2012/6/5 9:23:00
--  新手求助,列不固定,如何求各列合计?

有一个表,各列均为数值字段,但列数不固定,如下表所示:

 

数值字段1

数值字段2 数值字段3 数值字段N
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00
1.00 2.00 3.00 4.00

 

如何以编程方式求各列合计,并把合计列放在各列后面,计算后变成这样:

 

 

数值字段1 数值字段2 数值字段3 数值字段N            合计列
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00
1.00 2.00 3.00 4.00 10.00

 

 

先谢谢了!


--  作者:狐狸爸爸
--  发布时间:2012/6/5 9:52:00
--  

DataColChanged事件:

 

if e.DataCol.IsNumeric then

    Dim sum AS double

    For Each dc As DataCol  in e.DataTable.DataCols

           sum = sum + e.datarow(dc.name)

    Next

    e.datarow("合计列") = sum

end if


--  作者:pbcti
--  发布时间:2012/6/5 11:18:00
--  

谢谢


--  作者:wjl-se
--  发布时间:2012/6/7 15:00:00
--  
以下是引用狐狸爸爸在2012-6-5 9:52:00的发言:

DataColChanged事件:

 

if e.DataCol.IsNumeric then

    Dim sum AS double

    For Each dc As DataCol  in e.DataTable.DataCols

           sum = sum + e.datarow(dc.name)

    Next

    e.datarow("合计列") = sum

end if

执行代码出错,程序关闭。翻看帮助没找出原因。再次请教。谢谢!


--  作者:wjl-se
--  发布时间:2012/6/7 16:26:00
--  

原来是要加个条件,需要把合计列排除在外。


--  作者:blackzhu
--  发布时间:2012/6/7 16:51:00
--  

if e.DataCol.IsNumeric then

    Dim sum AS double

    For Each dc As DataCol  in e.DataTable.DataCols

       if dc.Name <> "合计列" then

           sum = sum + e.datarow(dc.name)

end if

    Next

    e.datarow("合计列") = sum

end if