以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请帮助解决?列的计算问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=25982)

--  作者:lyfxybc
--  发布时间:2012/11/21 12:26:00
--  请帮助解决?列的计算问题。

请帮助解决?我有一个表,共6列,1列、2列、3列、4列、5列、6列。

5列的值为1列+2列+3列,6列的值=3列+4列

 

用下列代码

Dim Z As DataRow = e.DataRow
Select Case e.DataCol.Name
        Case  "1列","2列","3列"
           

            Z("5列") = Z("1列") + Z("2列") + Z("3列") 
        Case "3列","4列"

            Z("6列") = Z("3列") + Z("4列")

End Select

 

出现下列问题

(1)在第3列输入任意值,这里输入10,第5列显示10,而6列不显示,只有第4列输入0后,

       第6 列才显示10.

(2)第5列的值,第1、2、3列输入顺序随意。而第6列的值必须按顺序先输入3列再输入4列,如 

       果先输入4列再输入3列则不显示计算结果。

(3)为什么上式可以不按顺序,而下式必须按顺序输入,在生产过程中问题的出现不可能按顺序出现?

(4)输入数值时只要第5列不出现值,就行。也就是第3列不输入数据。一旦第3列输入数据,第5列即显示值,要得到第6列的值必须按顺序输入,如更改3 列的值,5列改变,6列不改变。应该6列也改变。

[此贴子已经被作者于2012-11-21 12:38:10编辑过]

--  作者:lin_hailun
--  发布时间:2012/11/21 12:37:00
--  
代码改成……
 

Dim Z As DataRow = e.DataRow


Select Case e.DataCol.Name
        Case  "1列","2列","3列"
           

            Z("5列") = Z("1列") + Z("2列") + Z("3列") 
End Select


Select Case e.DataCol.Name
        Case "3列","4列"

            Z("6列") = Z("3列") + Z("4列")

End Select


--  作者:lyfxybc
--  发布时间:2012/11/21 12:45:00
--  

非常感谢,

     改变代码结构后已解决。因为开始是增加表达式列,这样就不用添加表达式列了,直接出结果,也不用重置列。

 

 

再次感谢。