如何解决图库过滤器-PowerApps
Name Process1 Process2 .............. Process59
A 1 2 0
B 4 0 0
C 2 3 1
在powerapp中-我已经从用户那里得到了名字。在我们的例子中,如果用户选择“ A”,那么我希望我的画廊仅显示A的值大于0的过程列。
在这种情况下,如果选择“ A”,则图库将仅显示进程1,进程2及其值。
我要如何实现它-我知道我必须使用过滤器-但是如何遍历表中的所有列以找到所选用户的大于0的值?
解决方法
您不能有一个直接过滤并给出列名称作为结果的表达式...您可以做的是 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 },Attribute: "Process2",Value: Process2 },Attribute: "Process3",Value: Process3 },...
{ Name: Name,Attribute: "Process58",Value: Process58 },Attribute: "Process59",Value: Process59 }))
如果您在App的OnStart属性中拥有此表达式(或在更新数据源后可以刷新未透视集合的其他位置),则可以开始使用它。现在,如果您有一个Dropdown控件,其中Items属性具有以下表达式:
MyDataSource.Name
然后,您可以为其图库的Items属性添加以下表达式:
Filter(
UnpivotedCollection,Name = Dropdown1.Selected.Name
Value > 0)
您将在画廊中找到具有正值的给定名称的记录。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。