Power Apps中如何将集合与列引用至变量?附代码示例
Power Apps中集合与列名的变量引用问题
在Power Apps中可以将集合和列名存储到变量中,但你提供的代码写法存在错误,无法实现预期的动态引用效果,以下是具体说明和修正方案:
1. 集合存储到变量(正确写法)
你代码里的Set(MyCollectionC, MyTable1)是完全可行的:
- 变量
MyCollectionC会保存MyTable1的集合引用,后续直接通过这个变量就能对原集合进行操作,比如Collect(MyCollectionC, ...)是有效的写法。
2. 列名存储到变量(修正写法)
你当前的Set(MyCollectionColumn, MyColumn)写法错误,因为直接写MyColumn会被Power Apps识别为控件或字段值,而非列名字符串。需要调整为:
- 存储列名字符串到变量:
Set(MyCollectionColumn, "MyColumn") - 动态引用变量中的列名时,不能用
.语法,要改用**方括号[]**解析变量,比如FieldCombo.Selected[MyCollectionColumn],这样Power Apps才会把MyCollectionColumn的值当作列名来读取。
修正后的完整代码示例
// 存储集合到变量 Set(MyCollectionC, MyTable1); // 存储列名字符串到变量 Set(MyCollectionColumn, "MyColumn"); // 动态引用列名,向集合添加新记录 Collect(MyCollectionC, { ID: myId, MyColumn: FieldCombo.Selected[MyCollectionColumn] });
扩展:动态指定新增列的列名
如果你的需求是动态定义要添加的列名(而非固定写死MyColumn),可以把列名也设为变量,写法如下:
Set(DynamicColumnName, "CustomColumn"); Set(MyCollectionColumn, "TargetColumn"); Collect(MyCollectionC, { ID: myId, // 用方括号解析变量作为新增列的名称 [DynamicColumnName]: FieldCombo.Selected[MyCollectionColumn] });
内容的提问来源于stack exchange,提问作者The Hawk
相关产品推荐
相关产品推荐

