Vb.net 如何使用表格在每页末尾打印逐页总计
我试图制作一份报告,每行都包含一些价格,我想在每一页的底部打印价格的总和,打印在页面上。至少就我的情况而言,我觉得在每一页上打印总数并不明智 例如: 首页Vb.net 如何使用表格在每页末尾打印逐页总计,vb.net,reporting-services,report,reporting,rdlc,Vb.net,Reporting Services,Report,Reporting,Rdlc,我试图制作一份报告,每行都包含一些价格,我想在每一页的底部打印价格的总和,打印在页面上。至少就我的情况而言,我觉得在每一页上打印总数并不明智 例如: 首页 Name | Price1 | Price2 | Price3 | Price4 -table header Record 1 | 10 | 15 | 15 | 20 Record 2 | 15 | 15 | 15 | 15 T
Name | Price1 | Price2 | Price3 | Price4 -table header
Record 1 | 10 | 15 | 15 | 20
Record 2 | 15 | 15 | 15 | 15
Total 2 records | 25 | 30 | 30 | 35 -table footer for page 1
第二页
Name | Price1 | Price2 | Price3 | Price4 -starting 2. page, table header
Record 3 | 20 | 30 | 30 | 30
Total 1 records | 20 | 30 | 30 | 30 -end of the table
Grand T. (3 rec) | 45 | 60 | 60 | 65 -end of the table
我在第一页放了2条记录,第二页放了1条记录,这只是为了证明我想要什么。我尽了最大努力使它看起来清晰。我可以看到两种可能的方法 既然您说每页有可预测的行数(为了便于构建示例,假设有25行),那么您可以执行以下操作: 在查询中,为每行分配一个连续的序列号。你可以这样做:
WITH Cte
AS (
SELECT Name,
Price1,
Price2,
Price3,
Price4,
RecordNumber = Row_Number() OVER (ORDER BY [whatever])
FROM [tables]
)
SELECT Name,
Price1,
[etc]
RowGroup = Floor((RecordNumber * 1.0) / 25 )
FROM Cte
ORDER BY RecordNumber
然后,在报告中,按RowGroup
分组,并小计行数
如果报告中有其他更高级别的分组,则可能必须在每个更高级别的分组之后开始一个新页面,因为否则,页面小计的位置将被取消
(您也可以在SSRS中使用RowNumber()函数来实现这一点,而无需修改基础查询,但关于何时可以使用哪些函数,有很多规则,我不知道是否允许这样做。)
我能想到的另一个选项更复杂,包括使用报告代码部分和设置一些模块级功能。如果你认为那是你需要看的东西,请告诉我 每页打印的价格行数是可预测的,还是会有所不同?@AnnL。我没有启用“自动增长”属性,因此所有页面都应包含固定数量的行,但最后一页除外。我已编辑了您的标题。请参阅“”,其中的共识是“不,他们不应该”。谢谢,这是一个可接受的答案,顺便说一句,您可能希望将
记录编号替换为…
为。。。就像RecordNumber一样,这只是一个小的语法错误,但方法是聪明的。如果您的意思与报告属性中的“代码”部分不同,请参见“报告代码隐藏”
,是的,我想了解一下。@SmT感谢您的更正!是的,我说的“报告代码隐藏”是指代码部分。