我正在使用PowerApps创建一个包含两个comboboxes
的小型应用程序,该应用程序过滤正在data table
上显示的信息,并来自名为Table
的excel工作表。更具体地说,我的第一个组合框称为ColorCombo
并显示不同的值,这些值来自工作表Color
的列Table
,第二个组合框称为SizeCombo
并显示不同的值Size
Table
中包含的值
我的目标是根据对另一个组合框的选择来过滤一个组合框的信息。
例如,我有[Red, Blue,Green]
列出的颜色:ColorCombo
和[32,34,36]
列出的尺寸:SizeCombo
。如果红色仅在尺寸32上可用,那么当我在colorcombo上选择红色选项时,我只想在SizeCombo
上看到数字32,如果尺寸32在绿色和蓝色上可用,那么当我在SizeCombo
上选择它,我只想在ColorCombo
上看到绿色和蓝色的选项。到目前为止,我的代码是:
Sort(Distinct(Filter(Table, If(CountRows(ColorCombo.SelectedItems) = 0,true,
Size in SizeCombo.SelectedItems)),Color),Result,Ascending)
对于colorcombo来说可以正常使用。但是,当我为SizeCombo添加相同的语句时,也会收到循环引用错误。这是我输入的语句:
Sort(Distinct(Filter(Table, If(CountRows(SizeCombo.SelectedItems) = 0,true,
Color in ColorCombo.SelectedItems)),Size),Result,Ascending)
我知道发生这种情况是因为组合框的选择是相互依赖的,所以这是为了防止无限循环,但是我该如何解决呢?感谢您提供的任何帮助,因为很长一段时间以来我一直在努力寻找解决方案。
答案 0 :(得分:0)
可以通过UI / UX实现一些快速的解决方法:
sizecombo
开头(例如)。 colorcombo
的DisplayMode设置为If(IsBlank(Size.Selected.Value), DisplayMode.Disabled, DisplayMode.Edit
Available Colors
的色板。反之亦然,选择一种颜色,然后显示Available Sizes
。 Filter()