Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 如何使用表格在每页末尾打印逐页总计_Vb.net_Reporting Services_Report_Reporting_Rdlc - Fatal编程技术网

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感谢您的更正!是的,我说的“报告代码隐藏”是指代码部分。