这篇SSRS文章将通过一个示例解释如何为分组表报添加行号。我们之前的文章描述了如何为完整的报表添加行号。然而,对于分组报表,过程可能会有所不同。我们必须更改表达式,以便为特定组限制行号,并在新组开始时重新计数。
右键单击“数据集”文件夹以创建新的数据集。编写以下SSMS代码将显示我们将用于此示例的数据集。
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分组报表添加行号?
单击“预览”选项卡以查看表报。在这里,我们的任务是为每个组添加行号,例如配件、自行车和服装。请记住,行号必须为每个类别重新开始计数。

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

编写以下列表达式为SSRS分组表报添加行号。
=RowNumber(“CatDSet”)

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

这是因为我们将数据集名称用作RowNumber()函数的参数值。但是,要为分组报表添加行号,请将数据集名称替换为组名称(类别)。首先,编辑表达式,并为“S.No.”标题下的文本框写入以下代码。
=RowNumber(“Category”)
在SSRS表报预览中,您可以看到行号在每个组的成员处重新开始计数(例如,自行车)。
