以文本方式查看主题

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

--  作者:jnletao
--  发布时间:2013/8/5 10:24:00
--  再议"临时表增加合计列合计行"的问题--已解决,感谢各位大神
在临时表增加合计列合计行,已有大神有点甜解决
不过现在还有一点小问题,如何初始临时表内有空值,则无法合计,现在我已解决合计行的空值合计,
请问合计列如何解决空值问题,请大神们支招.
以下是我的源码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:颜色尺码 (2).table


以下是部分关键代码
Dim dtb As New DataTableBuilder("输入")
Dim scs As List(of String) = DataTables("表A").GetUniqueValues("","颜色")
Dim cms As List(of String) = DataTables("表A").GetUniqueValues("","尺码")
dtb.AddDef("颜色", Gettype(String), 16)

Dim cs As String = ""
For Each cm As String In cms
dtb.AddDef(cm, Gettype(Integer), 16)
If cm = "" Or cm Is Nothing Then cm="0"
cs += cm & "+"
Next
cs = cs.Trim("+")
dtb.AddDef("合计", Gettype(Integer), cs)

Tables("窗口1_Table1").DataSource = dtb .BuildDataSource
For Each sc As String In scs
Dim rw As Row = Tables("窗口1_Table1").AddNew
Dim rs As List(of DataRow) = DataTables("表A").Select("颜色 = \'" & sc & "\'")
rw("颜色") = sc
For Each r As DataRow In rs
rw(r("尺码")) = r("数量")
Next
Next
Tables("窗口1_Table1").AllowEdit = True

Dim t As Table = Tables("窗口1_Table1")
Dim ndr As Row = t.AddNew
ndr(0) = "合计"
For i As Integer = 1 To t.Cols.Count - 2
ndr(i) = t.Compute("sum(" & t.Cols(i).Name & ")")
Next

[此贴子已经被作者于2013-8-5 11:14:20编辑过]

--  作者:Bin
--  发布时间:2013/8/5 10:42:00
--  
你拼接的表达式做一下 空值当0处理即可.
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:颜色尺码 (2) (1).table


--  作者:jnletao
--  发布时间:2013/8/5 11:02:00
--  
还有一个问题,在单元格中编辑数字时,合计会更新.不过如果选定单元格后按Delete键,只清空,则合计不会变.要从哪里改一下,请指教
--  作者:Bin
--  发布时间:2013/8/5 11:06:00
--  
经过测试,按Delete也会自动更新啊.
--  作者:jnletao
--  发布时间:2013/8/5 11:11:00
--  
晕,不好意思,我看错了.昨天也在为这个问题困扰呢.