【问题标题】:Populate Dynamic table columns based on parameter drop down values selection in SSRS report根据 SSRS 报告中的参数下拉值选择填充动态表列
【发布时间】:2021-02-12 05:06:02
【问题描述】:

*场景:

我们有一个包含以下列的表格:我只需要使用这个表格

ID ACCOUNTID STATUS COMPARE MODFIEDUSERNAME FILENAME FILEDESP
1 A2 IN MATCH Sam abc wew
2 A4 OUT MATCH Ken xcr wew
3 A2 IN MISMATCH Roy abc wew
4 A3 OUT MISMATCH Roy xcr wew

在报告中,我们应该有一个下拉列表(SingleValue),用于比较列的值(MATCH/MISMATCH),用户可以在其中选择一个值。

如果用户选择 MATCH 选项,则报告应显示包含以下列的下拉列表(多值)(报告字段数据集): ID 帐号状态

如果用户选择 MISMATCH 选项,则报表应显示包含以下列的下拉列表(多值)(报表字段数据集): ID COMPARE MODFIEDUSERNAME FILENAME FILEDESP

基本上,根据 MA​​TCH 和 MISMATCH 选择动态填充列名,当用户点击查看报告时,报告应显示相应的列数据。

我创建了如下数据集 -ReportFields:

SELECT 1 ID, 'Id' AS ColumnName UNION
SELECT 2 ID, ACCOUNTID AS ColumnName UNION
SELECT 3 ID, 'Status' AS ColumnName UNION
SELECT 4 ID, COMPARE AS ColumnName

我创建了两个参数:@Compare 和@ReportFields

问题: 需要基于用户从第一个下拉列表中选择(匹配/不匹配)值来填充动态列的逻辑。

【问题讨论】:

    标签: reporting-services


    【解决方案1】:

    您的示例有点令人困惑,但我将向您展示一个典型场景,它应该为您提供足够的信息来解决您的问题。

    如果我们有一个水果和蔬菜销售表,并且我们希望用户从下拉菜单中选择水果或蔬菜,那么有一个下拉菜单,他们可以从中选择单个项目可以这样做。

    桌子看起来像这样。 (为简单起见,我在此处包含了一些销售数字,但这些数字很容易出现在另一个表格中)。

    Category ItemName Month Amount
    Fruit Apple Jan 10
    Fruit Apple Feb 20
    Fruit Apple Mar 30
    Fruit Orange Jan 40
    Fruit Orange Feb 50
    Vegetable Carrot Jan 15
    Vegetable Peas Jan 16
    Vegetable Cucumber Jan 17
    Vegetable Carrot Feb 18

    我们的第一个参数的数据集是

    SELECT DISTINCT Category FROM myTable
    

    这会给我们“水果”和“蔬菜” 我们将其分配为第一个参数的可用值,我们将其称为pCategory

    我们的第二个数据集是

    SELECT DISTINCT ItemName FROM myTable WHERE Category IN(@pCategory)
    

    我在这里使用了IN,所以如果 pCategory 是多值的,它会从两个类别中正确选择。

    我们将此秒数据集指定为秒参数的可用值,我们将其称为pItems。这应该是一个多值参数。我们还可以将相同的数据集分配给该参数的默认值,以便默认选择所有项目。

    最后我们的最后一个数据集将获得一些数据以显示在表格/矩阵中,看起来像这样

    SELECT ItemName, Month, SUM(Amount) AS SalesAmount
        FROM myTable t
        WHERE t.ItemName IN(@pItems)
    

    注意:在数据集查询中指定参数名称时,它必须与报表设计中的参数名称完全匹配,区分大小写。

    【讨论】:

    • 感谢艾伦的回复。您的示例适用于列中的数据。我正在更新我的帖子以使其足够清晰。请根据此建议我。
    • 更新了我的问题。请提供一些解决方案。
    猜你喜欢
    • 2015-01-08
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多