图库过滤器 - powerapps
Gallery filter - powerapps
我的 table 有 60 列,例如 table 如下所示
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
我如何着手实现它 - 我知道我必须使用过滤器 - 但我如何遍历 table 中的所有列以找到所选用户大于 0 的值?
你不能有直接过滤并给出列名作为结果的表达式...你可以做的是 unpivot 你的 table,这样你就有了如下所示的结构:
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
获得该格式的数据后,您可以根据列值应用过滤器。
要创建未透视的 table,您可以使用这样的表达式(假设您的数据源名为 '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 }))
如果您在 App 的 OnStart 属性(或在更新数据源后可以刷新逆透视集合的其他地方)中有此表达式,则可以开始使用它。现在,如果您有一个 Dropdown 控件,其中的 Items 属性:
表达式如下
MyDataSource.Name
然后您可以拥有一个画廊,其中的项目具有以下表达式 属性:
Filter(
UnpivotedCollection,
Name = Dropdown1.Selected.Name
Value > 0)
您将在图库中看到给定名称的正值记录。
我的 table 有 60 列,例如 table 如下所示
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
我如何着手实现它 - 我知道我必须使用过滤器 - 但我如何遍历 table 中的所有列以找到所选用户大于 0 的值?
你不能有直接过滤并给出列名作为结果的表达式...你可以做的是 unpivot 你的 table,这样你就有了如下所示的结构:
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
获得该格式的数据后,您可以根据列值应用过滤器。
要创建未透视的 table,您可以使用这样的表达式(假设您的数据源名为 '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 }))
如果您在 App 的 OnStart 属性(或在更新数据源后可以刷新逆透视集合的其他地方)中有此表达式,则可以开始使用它。现在,如果您有一个 Dropdown 控件,其中的 Items 属性:
表达式如下MyDataSource.Name
然后您可以拥有一个画廊,其中的项目具有以下表达式 属性:
Filter(
UnpivotedCollection,
Name = Dropdown1.Selected.Name
Value > 0)
您将在图库中看到给定名称的正值记录。