【问题标题】:Gallery filter - powerapps图库过滤器 - powerapps
【发布时间】:2020-08-14 16:26:26
【问题描述】:

我有 60 列的表格,例如表格如下所示

Name  Process1         Process2 ..............  Process59
A            1             2                         0
B            4             0                         0
C            2             3                         1

在 powerapp - 我已经从用户那里得到了名字。在我们的例子中,如果用户选择“A”,那么我希望我的画廊只显示 A 值大于 0 的进程列

在这种情况下,如果选择“A”,则图库将仅显示进程 1、进程 2 及其值

如果用户选择“B”,则只会显示进程 1

我该如何实现它 - 我知道我必须使用过滤器 - 但是我如何循环遍历表中的所有列以找到所选用户大于 0 的值?

【问题讨论】:

    标签: powerapps powerapps-formula powerapps-canvas powerapps-selected-items


    【解决方案1】:

    你不能有一个表达式直接过滤并给出列名作为结果......你可以做的是unpivot你的表,​​这样你就有一个如下结构:

    Name  Process    Value
    A     Process1   1
    A     Process2   2
    ...
    A     Process59  0
    B     Process1   4
    B     Process2   0
    ...
    B     Process59  0
    C     Process1   2
    C     Process2   3
    ...
    C     Process59  1
    

    获得该格式的数据后,您可以根据列值应用过滤器。

    要创建未透视表,您可以使用类似这样的表达式(假设您的数据源称为“MyDataSource”):

        Clear(UnpivotedCollection);
        ForAll(
                MyDataSource,
                Collect(
                        UnpivotedCollection,
                        { Name: Name, Attribute: "Process1", Value: Process1 },
                        { Name: Name, Attribute: "Process2", Value: Process2 },
                        { Name: Name, Attribute: "Process3", Value: Process3 },
                        ...
                        { Name: Name, Attribute: "Process58", Value: Process58 },
                        { Name: Name, Attribute: "Process59", Value: Process59 }))
    

    如果您在应用程序的 OnStart 属性中(或在更新数据源后可以刷新未透视集合的其他位置)中有此表达式,则可以开始使用它。现在,如果您有一个 Dropdown 控件,其 Items 属性的表达式如下:

    MyDataSource.Name
    

    然后,您可以拥有一个画廊,其 Items 属性具有以下表达式:

    Filter(
        UnpivotedCollection,
        Name = Dropdown1.Selected.Name
        Value > 0)
    

    您将在图库中获得具有正值的给定名称的记录。

    【讨论】:

    • 非常感谢卡洛斯提供如此详细的回答。是的,我最初试图避免更改表格格式 - 但这样做会更容易处理。
    • 还有一个问题,我在 powerapp 中插入 powerbi 磁贴,如果我为过滤器传递一个字符串 URL - 它不会过滤,它会显示相同的报告,就好像我嵌入了我可以过滤的报告一样它。任何想法
    • 我不确定 Power BI 的其他问题...您可以尝试为此创建一个新问题,其中包含有关如何嵌入、传递过滤器的 URL 的详细信息,以及任何相关的可以帮助某人找出问题的信息。
    猜你喜欢
    • 2022-10-13
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2019-11-18
    • 2020-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多