checkbox - 尝试根据彼此过滤两个组合框的选择时,如何处理 powerapps 中的循环引用错误?
问题描述
我正在使用 PowerApps 创建一个包含两个的小应用程序comboboxes
,它们过滤显示在 a 上的信息data table
并来自名为Table
. 更具体地说,我的第一个组合框被调用ColorCombo
并显示不同的值,这些值来自Color
工作表的列,Table
第二个组合框被调用SizeCombo
并显示包含在列Size
中的不同值Table
我的目标是根据另一个组合框的选择过滤一个组合框的信息。
例如,我有颜色:[Red, Blue,Green]
列在ColorCombo
和尺寸:[32,34,36]
列在SizeCombo
. 如果红色仅适用于 32 号,那么当我在颜色组合上选择红色选项时,我只想看到数字 32 SizeCombo
,如果 32 号适用于绿色和蓝色,那么当我在 I 上选择它SizeCombo
时只想看到绿色和蓝色的选项ColorCombo
。我到目前为止的代码是:
Sort(Distinct(Filter(Table, If(CountRows(ColorCombo.SelectedItems) = 0,true,
Size in SizeCombo.SelectedItems)),Color),Result,Ascending)
这适用于颜色组合。当我也为 SizeCombo 添加相同的语句时,我得到一个循环引用错误。这是我输入的语句:
Sort(Distinct(Filter(Table, If(CountRows(SizeCombo.SelectedItems) = 0,true,
Color in ColorCombo.SelectedItems)),Size),Result,Ascending)
我知道发生这种情况是因为组合框的选择递归地相互依赖,所以这恰好防止了无限循环,但我该如何解决这个问题?感谢您提供的任何帮助,因为长期以来我一直在努力寻找解决方案。
解决方案
可以通过 UI/UX 实现一些快速的解决方法:
- 强制用户依次通过两个框
- 从
sizecombo
(例如)开始。 - 将 DisplayMode 设置
colorcombo
为If(IsBlank(Size.Selected.Value), DisplayMode.Disabled, DisplayMode.Edit
- 相应地调整代码。
- 从
- 另一个想法:不是两个组合框,而是让用户选择一个大小,然后
Available Colors
在一个小画廊中显示样本。反之亦然,选择一种颜色然后显示Available Sizes
。 - 你可以很容易地使用
Filter()
推荐阅读
- javascript - 我正在使用javascript制作密码生成器。密码生成后不显示
- javascript - 无法弄清楚为什么这不起作用
- python - 如何使用来自wordsegment内部的segment()到re.sub从python中的主题标签中提取单词?
- arrays - 将 tableview 单元格文本标签附加到空数组中
- r - R:将字符串值更改为 NA,出现强制错误
- discord.js - 如何设置无法踢出具有更高角色的成员 - Discord.js
- python - Python Pandas:计算正数的连续窗口计数
- elasticsearch - Flink 弹性搜索源连接器
- android - 旋转设备时如何不丢失 EditText 内容 - EditText 在 RecyclerView 项目内
- perl - Perl如何在关键字(匹配)前面引入文本并将其余部分保留在文件中