我正在使用 PowerApps 创建一个小应用程序,其中包含两个
comboboxes
,它们过滤显示在 data table
上并来自名为 Table
的 Excel 工作表的信息。更具体地说,我的第一个组合框称为 ColorCombo
并显示不同的值,这些值来自工作表 Color
的列 Table
,第二个组合框称为 SizeCombo
并显示列 中包含的不同值
Size
的Table
我的目标是根据另一个组合框的选择来过滤一个组合框的信息。
例如,我的颜色:
[Red, Blue,Green]
列在ColorCombo
上,尺寸:[32,34,36]
列在SizeCombo
上。如果红色仅在尺寸 32 上可用,那么当我在颜色组合上选择红色选项时,我只想在 SizeCombo
上看到数字 32,如果尺寸 32 在绿色和蓝色上可用,那么当我选择它时在 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
开头(例如)。 colorcombo
的显示模式设置为If(IsBlank(Size.Selected.Value), DisplayMode.Disabled, DisplayMode.Edit
Available Colors
的样本。反之亦然,选择一种颜色然后显示 Available Sizes
。 Filter()
面临类似的问题。您找到解决方案或实施解决方法了吗?