尝试根据彼此筛选两个组合框的选择时,如何处理 powerapps 中的循环引用错误?



我正在使用PowerApps创建一个包含两个comboboxes的小应用程序,用于过滤data table上显示的信息,这些信息来自名为Table的Excel工作表。更具体地说,我的第一个组合框称为ColorCombo,显示不同的值,这些值来自工作表Table的列Color,第二个组合框称为SizeCombo,显示包含在Table的列Size上的不同值

我的目标是根据另一个组合框的选择过滤一个组合框的信息。

例如,我在ColorCombo上列出了颜色:[Red, Blue,Green]SizeCombo上列出了尺寸:[32,34,36]。如果红色仅在尺寸 32 上可用,那么当我在 colorcombo 上选择红色选项时,我只想在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()轻松完成此操作

相关内容

  • 没有找到相关文章

最新更新