电源应用程序分组功能组合框所选值

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

我的电源应用程序中有一个组合框和一个图库。我想对组合框中选定的值进行分组。 这不起作用,因为 Groupby 函数需要文本文字作为第二个参数。 GroupBy(表名;ComboBox1.Selected;"分组")

有谁知道如何解决这个问题吗?

我还没有找到将 ComboBox.Selected.Value 转换为 String 的函数。

string group-by combobox powerapps
1个回答
0
投票

GroupBy 不能采用任意字符串值,因为它需要知道何时写入表达式(而不是何时执行)将对哪些列进行分组,因为它将定义其结果的 schema(类型)。

例如,如果我们有这个集合:

ClearCollect(
  CoffeeShops,
  { Country: "USA", StateOrProvince: "WA", City: "Seattle", NumberOfCoffeeShops: 153 },
  { Country: "USA", StateOrProvince: "WA", City: "Bellevue", NumberOfCoffeeShops: 34 },
  { Country: "USA", StateOrProvince: "WA", City: "Spokane", NumberOfCoffeeShops: 27 },
  { Country: "USA", StateOrProvince: "NY", City: "New York City", NumberOfCoffeeShops: 236 },
  { Country: "USA", StateOrProvince: "NY", City: "Albany", NumberOfCoffeeShops: 15 },
  { Country: "USA", StateOrProvince: "NY", City: "Rochester", NumberOfCoffeeShops: 30 },
  { Country: "Canada", StateOrProvince: "BC", City: "Vancouver", NumberOfCoffeeShops: 98 },
  { Country: "Canada", StateOrProvince: "BC", City: "Burnaby", NumberOfCoffeeShops: 10 },
  { Country: "Canada", StateOrProvince: "ON", City: "Toronto", NumberOfCoffeeShops: 105 },
  { Country: "Canada", StateOrProvince: "ON", City: "Windsor", NumberOfCoffeeShops: 20 })

GroupBy(CoffeeShops, "Country", "Grouped")
结果的模式是一个包含 2 列的表:“Country”(文本类型)和“Grouped”(表类型,包含“StateOrProvince”和“NumberOfCoffeeShops”列)。

GroupBy(CoffeeShops, "StateOrProvince", "Grouped")
结果的架构相比,是一个包含 2 列的表:“StateOrProvince”(文本类型)和“Grouped”(表类型,包含“Country”和“NumberOfCoffeeShops”列)。

这种语言的“强类型”允许应用程序使用该表达式作为图库的 Items 属性,并在第一种情况下引用

ThisItem.Country
Sum(ThisItem.Grouped, NumberOfCoffeeShops)
- 在第二种情况下,它将不起作用(没有 ThisItem.Country)。

如果您事先了解所有选项,则可以使用一些表整形函数将两个 GroupBy 调用的结果转换为通用模式,以便您能够使用它。例如,使用类似于以下的表达式:

Switch(
  ComboBox1.Selected.Value,
  "Country",
    RenameColumns(
      GroupBy(CoffeeShops, "Country", "Grouped"),
      "Country", "GroupValue"),
  "StateOrProvince",
    RenameColumns(
      GroupBy(CoffeeShops, "StateOrProvince", "Grouped"),
      "StateOrProvince", "GroupValue"))

此表达式的结果是一个表,其中包含一个名为“GroupValue”的列和一个名为“Grouped”的列。这样我就可以使用带有两个标签的画廊:

  • ComboBox1.Selected.Value & ": " & ThisItem.GroupValue
  • "Total of coffee places: " & Sum(ThisItem.Grouped, NumberOfCoffeeShops)

看起来有点像下图:

或者选择其他选项:

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