Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教:Excel报表中的总计代码

1楼
yangming 发表于:2009/4/27 20:25:00

这是我的代码,意思是在表格的最后一行,逐列求和,请教,红色行错在何处?

For c As Integer = 5 To dt.Cols.Count -2 '
    Sheet(r1+1, c).Value = dt.Compute("Sum("& c &")")

    Sheet(r1+1, c).Style= Style
Next

 

2楼
菜鸟foxtable 发表于:2009/4/27 21:29:00
以下是引用yangming在2009-4-27 20:25:00的发言:

这是我的代码,意思是在表格的最后一行,逐列求和,请教,红色行错在何处?

For c As Integer = 5 To dt.Cols.Count -2 '
    Sheet(r1+1, c).Value = dt.Compute("Sum("& c &")")

    Sheet(r1+1, c).Style= Style
Next

 

dt.Compute("Sum("& c &")")这个不对吧....c只是整数变量,而不是某列列名....

我的代码..
rt.Cells(tbl.Rows.Count,9).Text = tbl.compute("SUM(金额)","[床位] = '" & Region & "'")

你的代码可能应该是这样.

For c As Integer = 5 To dt.Cols.Count -2 '
    Sheet(r1+1, c).Value = dt.Compute("Sum(dt.Cols(c).Name)")

    Sheet(r1+1, c).Style= Style
Next

 


 

[此贴子已经被作者于2009-4-27 21:43:14编辑过]
3楼
yangming 发表于:2009/4/27 21:44:00

你的方法我试过的,还是出错,不过还是要谢谢你啊

[此贴子已经被作者于2009-4-27 21:47:52编辑过]
4楼
菜鸟foxtable 发表于:2009/4/27 21:47:00
这个不行吗?EXCEL报表我没怎么研究.....但是SUM这个括号里的内容应该是出错的原因..
For c As Integer = 5 To dt.Cols.Count -2 '
    Sheet(r1+1, c).Value = dt.Compute("Sum(dt.Cols(c).Name)")

    Sheet(r1+1, c).Style= Style
Next

Compute

根据条件统计表中数据。

语法:

Compute(Expression, Filter)

Expression: 要计算的表达式
Filter:    可选参数,用于设置计算条件


计算产品PD01的销售数量:

Dim Total As Long
Total =
DataTables("订单").Compute("Sum(数量)", "产品 = 'PD01'"
)
Output.Show(Total)


-------------------------------------------------------------------------------

通过Name属性和Index属性,我们可以获得指定名称列的位置,也可以获得指定位置列的名称:

例如:

Output.Show("金额列的位置是:" & Tables("订单").Cols("金额").Index)
Output.Show(
"第三列的名称是:" & Tables("订单").Cols(2).Name)

[此贴子已经被作者于2009-4-27 21:55:55编辑过]
5楼
yangming 发表于:2009/4/27 22:33:00
如果只是计算一个数量列,而又没有条件,就用:Total = DataTables("订单").Compute("Sum(数量)"),我是要逐列求和,就不明白如何做了
6楼
ybtxdz 发表于:2009/4/28 0:11:00
试试

Sheet(r1+1, c).Value = dt.Compute("Sum(" & Tables("表名").Cols(c).Name & ")")
7楼
yangming 发表于:2009/4/28 0:39:00
谢谢ybtxdz,我不明白,这里为何要加表名呢?
8楼
yangming 发表于:2009/4/28 1:05:00
谢谢ybtxdz,我只是不明白,这里为何要加入表名呢?
9楼
ybtxdz 发表于:2009/4/28 1:29:00

首先Sum聚合函数的计算需要给出列的名称

你定义的的dt 可能是DataTable,  目前狐表DataTable不直接支持由列的编号得到列的名称

而通过Table 的Cols 可以由列的编号得到列的名称.  用Tables的时候当然就要指定表名.  如果是对当前表进行统计,  你还可以用CurrentTable,  就省了表名.

Sheet(r1+1, c).Value = dt.Compute("Sum(" & CurrentTable.Cols(c).Name & ")")

10楼
yangming 发表于:2009/4/28 15:15:00
明白了,呵呵,看来还是没搞清楚DataTable和Table 的区别,再次感谢!
共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.