根据 SSRS 报告中的列表输入创建多个表
Create Multiple Tables according to a list input in SSRS Reports
我是 SSRS 报告的新手。
我有一个 SSRS 报告,其中包含类别 ID 列表
我存储了调用 SP_GetProductsByCategory 的过程,该过程采用 categoryId
我想根据列表动态创建表格。
如果需要 3 个 ID,将使用 3 个过程调用创建 3 个表。
使用子报表很容易做到这一点。
首先创建一个接受单个 categoryId 作为参数的报告(我们称之为 singleCategory
)(例如调用参数 pCategoryId
)。设置报告,使其生成您需要的 table,但仅针对此单个类别。
完成后,对其进行测试并确保其按预期工作。请记住,这应该只接受一个 categoryId。
注:
我假设您的用户将从数据库驱动的参数列表中 select 类别...
接下来,创建一个新报告(例如 CategoryMasterReport
)并添加一个数据集(dsCategories
)以获得可供用户选择的可用类别的完整列表。这可能像 SELECT categoryId, categoryName FROM myCategoryTable
.
一样简单
接下来,添加一个参数(例如pCategories
)。将其设为 multi-value 参数
将 pCategories
参数的可用值设置为 dsCategories
数据集,并根据需要选择标签和值列。
现在创建另一个数据集,这个数据集将列出用户select编辑的所有类别。将其命名为 dsSelectedCategories
并将查询设置为类似...
SELECT categoryId
FROM myCategoryTable
WHERE categoryId IN(@pCategories)
接下来,将 table 添加到您的报告中,并将其 DataSetName
属性 设置为我们刚刚创建的数据集的名称 (dsSelectedCategories
)。我们只需要此 table 中的一列,因此您可以删除其余部分。您还可以删除 header 行。
在 table 的剩余文本框中,right-click 并选择“插入 ==> 子报表”。这将使用子报表占位符填充文本框。 Right-Click 子报表占位符并选择 'subreport properties'。
在常规选项卡中,将子报表设置为我们在一开始创建的子报表(例如 singleCategory
)。
在参数选项卡中,单击 'Add',然后从下拉列表中选择参数名称或输入(按照前面的示例名称,这将是 pCategoryId
)。对于值 属性,单击下拉菜单并选择 categoryId
字段(如果您密切关注,这可能是唯一列出的字段。
就是这样。
现在 运行 主报告 (CategoryMasterReport
),select 列表中的一些类别,您应该会看到每个 selected 的 table类别。
我是 SSRS 报告的新手。 我有一个 SSRS 报告,其中包含类别 ID 列表 我存储了调用 SP_GetProductsByCategory 的过程,该过程采用 categoryId
我想根据列表动态创建表格。 如果需要 3 个 ID,将使用 3 个过程调用创建 3 个表。
使用子报表很容易做到这一点。
首先创建一个接受单个 categoryId 作为参数的报告(我们称之为 singleCategory
)(例如调用参数 pCategoryId
)。设置报告,使其生成您需要的 table,但仅针对此单个类别。
完成后,对其进行测试并确保其按预期工作。请记住,这应该只接受一个 categoryId。
注: 我假设您的用户将从数据库驱动的参数列表中 select 类别...
接下来,创建一个新报告(例如 CategoryMasterReport
)并添加一个数据集(dsCategories
)以获得可供用户选择的可用类别的完整列表。这可能像 SELECT categoryId, categoryName FROM myCategoryTable
.
接下来,添加一个参数(例如pCategories
)。将其设为 multi-value 参数
将 pCategories
参数的可用值设置为 dsCategories
数据集,并根据需要选择标签和值列。
现在创建另一个数据集,这个数据集将列出用户select编辑的所有类别。将其命名为 dsSelectedCategories
并将查询设置为类似...
SELECT categoryId
FROM myCategoryTable
WHERE categoryId IN(@pCategories)
接下来,将 table 添加到您的报告中,并将其 DataSetName
属性 设置为我们刚刚创建的数据集的名称 (dsSelectedCategories
)。我们只需要此 table 中的一列,因此您可以删除其余部分。您还可以删除 header 行。
在 table 的剩余文本框中,right-click 并选择“插入 ==> 子报表”。这将使用子报表占位符填充文本框。 Right-Click 子报表占位符并选择 'subreport properties'。
在常规选项卡中,将子报表设置为我们在一开始创建的子报表(例如 singleCategory
)。
在参数选项卡中,单击 'Add',然后从下拉列表中选择参数名称或输入(按照前面的示例名称,这将是 pCategoryId
)。对于值 属性,单击下拉菜单并选择 categoryId
字段(如果您密切关注,这可能是唯一列出的字段。
就是这样。
现在 运行 主报告 (CategoryMasterReport
),select 列表中的一些类别,您应该会看到每个 selected 的 table类别。