尝试过滤两个相互依赖的组合框的选择时,如何处理 powerapps 中的循环引用错误?

问题描述 投票:0回答:2

我正在使用 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)

我知道发生这种情况是因为组合框的选择递归地相互依赖,所以这恰好可以防止无限循环,但我该如何解决这个问题呢?我感谢您提供的任何帮助,因为很长一段时间以来我一直在努力寻找解决方案。

checkbox circular-reference powerapps
2个回答
0
投票

可以通过 UI/UX 实施一些快速解决方法:

  • 强制用户依次浏览两个框
    • sizecombo
      开头(例如)。
    • colorcombo
      的显示模式设置为
      If(IsBlank(Size.Selected.Value), DisplayMode.Disabled, DisplayMode.Edit
    • 相应地调整代码。
  • 另一个想法:让用户选择一个尺寸,而不是两个组合框,然后在小图库中显示
    Available Colors
    的样本。反之亦然,选择一种颜色然后显示
    Available Sizes
  • 您可以使用
    Filter()
  • 轻松实现这一点

0
投票

面临类似的问题。您找到解决方案或实施解决方法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.