如何使用Attachments表单控件批量更新多条记录?
如何通过Patch将附件表单控件内容保存到筛选后的集合记录中
问题背景
已通过集合筛选出数据源中的目标记录,需要用Patch函数将附件表单控件内的内容保存到这些记录中。此前尝试formName.Updates,但该方法仅会将父记录追加至数据库,与当前筛选后的集合无关。
期望效果
- 将
test1.png和test2.png上传至Power Apps附件表单控件 - 将附件保存到集合对应的关联记录中
原示例代码
ForAll( collection, Patch( datasource, First(Filter(datasource, collection_col_name = 'RecordID')), { column1: DataCardValue2_5.SelectedDate // Attachments: DataCardValue23.Attachments } ) )
解决方案
直接在Patch的字段参数中指定附件控件的Attachments属性即可,同时优化目标记录的定位逻辑提升性能:
修改后的代码
ForAll( collection, Patch( datasource, // 若集合中是数据源的完整记录,直接用ThisRecord定位目标 ThisRecord, // 若集合仅存储记录ID,保留原筛选逻辑:First(Filter(datasource, RecordID = collection_col_name)) { column1: DataCardValue2_5.SelectedDate, Attachments: DataCardValue23.Attachments } ) )
关键说明
- 附件字段格式匹配:Power Apps的附件字段本质是包含
DisplayName、Id、Value属性的记录数组,附件控件的Attachments属性完全符合该格式,可直接赋值。 - 追加附件而非覆盖:如果需要保留原有附件并新增,需合并原有附件数组与新附件,代码调整为:
若需去重,可替换为Attachments: Collect(ThisRecord.Attachments, DataCardValue23.Attachments)Union(ThisRecord.Attachments, DataCardValue23.Attachments)。 - 控件默认值检查:确保附件控件的
Default属性未绑定错误数据源,避免赋值失败。
内容的提问来源于stack exchange,提问作者QuaziMoodo
相关产品推荐
相关产品推荐

