如何为SSRS分组报表添加行号?

这篇SSRS文章将通过一个示例解释如何为分组表报添加行号。我们之前的文章描述了如何为完整的报表添加行号。然而,对于分组报表,过程可能会有所不同。我们必须更改表达式,以便为特定组限制行号,并在新组开始时重新计数。

右键单击“数据集”文件夹以创建新的数据集。编写以下SSMS代码将显示我们将用于此示例的数据集。

我们用于此 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

我们设计了一个简单的产品销售表报,并设置了字体和颜色。在“行组”下,单击“详细信息”旁边的下拉箭头,选择“添加组”,然后选择“父组”选项。我选择“类别”作为“按组”选项,然后单击“确定”。这意味着整个表将按类别分组。

如何为SSRS分组报表添加行号?

单击“预览”选项卡以查看表报。在这里,我们的任务是为每个组添加行号,例如配件、自行车和服装。请记住,行号必须为每个类别重新开始计数。

Repot Preview

我将在“产品名称”的左侧插入一个新列。为此,右键单击“产品名称”,选择“插入列”,然后选择“左侧”选项。将列标题重命名为“S.No.”。接下来,右键单击空单元格并选择“表达式”。

Edit the Column Expression

编写以下列表达式为SSRS分组表报添加行号。

=RowNumber(“CatDSet”)
Expression to add Row Numbers to the SSRS Group Table Report

下方的报表预览显示,行号显示的值与组无关。 

add Row Numbers to the SSRS Group Table Report Preview

这是因为我们将数据集名称用作RowNumber()函数的参数值。但是,要为分组报表添加行号,请将数据集名称替换为组名称(类别)。首先,编辑表达式,并为“S.No.”标题下的文本框写入以下代码。

=RowNumber(“Category”)

在SSRS表报预览中,您可以看到行号在每个组的成员处重新开始计数(例如,自行车)。

Add Row Numbers to the SSRS Group Table Report Preview