在 SSRS 报表中限制每页的行数

本 SSRS 文章介绍如何通过将行号除以 10 来限制表报中每页显示的行数总数,并附带一个示例。要执行此操作,请右键单击“数据集”文件夹以创建新的数据集。

下面的代码显示了我们将用于此代码的数据集,以限制 SSRS 报表示例中每页的行数。

我们用于此 SSRS 示例的 SQL 查询是

SELECT Cat.[EnglishProductCategoryName] AS Category, 
SubCat.[EnglishProductSubcategoryName] AS SubCategory,
Prod.EnglishProductName AS ProductName, Prod.Color,
SUM(Fact.OrderQuantity) AS Orders, SUM(Fact.TotalProductCost) AS ProductCost,
SUM(Fact.SalesAmount) AS Sales, SUM(Fact.TaxAmt) AS Tax
FROM FactInternetSales AS Fact
INNER JOIN DimProduct AS Prod ON Fact.ProductKey = Prod.ProductKey
INNER JOIN DimProductSubcategory AS SubCat ON Prod.ProductSubcategoryKey = SubCat.ProductSubcategoryKey
INNER JOIN DimProductCategory AS Cat ON SubCat.ProductCategoryKey = Cat.ProductCategoryKey
GROUP BY Cat.[EnglishProductCategoryName], SubCat.[EnglishProductSubcategoryName],
Prod.EnglishProductName, Prod.Color

我们设计了一个简单的产品销售表报,并格式化了字体和颜色。接下来,我们在“产品名称”的左侧添加了一个新列,并命名为“S.No”。

如何限制 SSRS 报表中每页的行数?

为此,请右键单击“产品名称”列,选择“插入列”,然后选择“左侧”选项以在左侧创建一个新列。接下来,右键单击空白单元格并选择“表达式”选项。在“表达式”窗口中,我们使用了 `RowNumber()` 函数来显示行号。

RowNumber(Nothing)

带有行号的表报。请参考为 SSRS 表格添加行号文章以了解这些步骤。接下来,在“行组”部分下,单击详细信息旁边的向下箭头,然后选择“添加组”和“父组”。

Add Parent Group

我将单击 ƒx 按钮来编写一个分组表达式。

Add Group By Column

在表达式窗口中,我们将行号除以十,因为我们希望每页显示或限制十行。在这里,我们还使用了 `Ceiling` 来获取大于或等于结果的最小整数值。

限制 SSRS 报表中每页行数的表达式是:

Ceiling(RowNumber(Nothing)/10)
Limit the Number of Rows Per Page in SSRS Report Expression

分组将默认根据给定的列对表记录进行排序。在这里,它是一个表达式,并且会引发错误。因此,右键单击“Group1”并选择“组属性”窗口以打开新窗口。

在属性窗口中,转到“排序”选项卡,然后单击“删除”按钮以删除“排序依据”,如下所示。

Group Properties and delete the sort by option

在“页面中断”选项卡下,选择“组的每个实例之间”的“页面中断”选项。

Use Page Breaks to Limit the Number of Rows Per Page

我不想在最终报表中显示这个额外的组列。因此,我将右键单击它并选择“删除列”选项。然后,如果需要,可以保留它。

这将打开一个弹出窗口;选择“仅删除列”选项。如果选择第一个选项,它还将删除我们之前创建的组。

Limit the Number of Rows Per Page in SSRS Report 12

现在,如果您查看 SSRS 报表预览中每页行数的限制,它会显示每页 10 行。

Limit the Number of Rows Per Page in SSRS Report Preview

我将导航到另一页。

Preview to Limit the Number of Rows Per Page in Report

限制 SSRS 分组表报每页的行数

本 SSRS 文章介绍如何通过一个示例来限制分组表报每页显示的行数总数。要执行此操作,请右键单击“数据集”文件夹以创建新的数据集。

我们设计了一个简单的产品子类别销售表报,并格式化了字体和颜色。在“行组”部分下,单击“详细信息”旁边的向下箭头,然后选择“添加组”和“父组”。选择“类别”列作为分组选项,然后单击“确定”按钮。

接下来,我们在“类别”和“子类别”之间添加了一个名为“S.No”的新列。为此,请右键单击“子类别”列,选择“插入列”,然后选择“左侧”选项。接下来,右键单击空白单元格并选择“表达式”选项。

在“表达式”窗口中,我们使用了 `RowNumber()` 函数,并将数据集名称作为参数值来显示行号。这是可选的。请检查报表预览。它有四页,产品按类别分组,并且 S.No 列返回序号或行号。请参考为 SSRS 分组报表添加行号文章以了解这些步骤。

RowNumber("CatDSet")

接下来,在“行组”部分下,单击“类别”旁边的向下箭头,然后选择“添加组”和“子组”。单击 ƒx 按钮来编写分组表达式。在此示例中,我们希望每页限制 10 行,因此我们将行号除以 10。

这里,`Ceiling` 函数用于获取大于或等于结果的最小整数值。请记住,不要忘记将组名称(即类别)作为 `RowNumber` 参数。表达式“限制 SSRS 分组表报每页的行数”

=Ceiling(RowNumber("Category")/10)
Expression to Limit Rows on each Page of the SSRS Grouped Table Report

默认情况下,分组将应用于对整个表进行排序。在这里,我们没有按任何列进行分组,而是使用一个会引发错误的表达式。因此,右键单击“Group1”并选择“组属性”。

请转到“排序”选项卡,然后单击“删除”按钮以删除“排序依据”,如上一节所示。接下来,在“页面中断”选项卡下,选择“组的每个实例之间”的“页面中断”选项。

右键单击额外的组列,然后选择“删除列”选项以将其从最终报表中删除。如果需要,可以保留它。从弹出窗口中选择“仅删除列”选项。请不要选择第一个选项(“删除列及关联组”选项);它将删除先前创建的组。请参考上一节。

现在,如果您查看 SSRS 分组表报预览中“限制每页的行数”,它会显示来自组的 10 行。

Limit Rows on each Page of the SSRS Grouped Table Report Preview

我将检查最终报表的另一页。

Another Limit Rows on each Page of the Grouped Table Report Preview