You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power Apps Patch仅同步前55行数据问题求助

问题根源

Power Apps的Gallery控件为了性能优化,只会渲染当前可见区域内的控件,未滚动到的行对应的控件不会被完全加载。直接通过ThisRecord.IS2_TI_SourceAlt1.Text这类方式读取控件值时,未渲染的控件会返回空白——即便你手动滚动到过底部,执行Patch时这些控件可能已经被卸载,导致值丢失。

解决方案

1. 从数据源集合读取值(推荐)

你的Gallery数据源是colInternalProcessed,集合里已经保存了完整的SourceAlt、DestAlt、ExactCross等值,完全不需要通过Gallery控件的Text属性读取,直接用集合字段即可。修改后的代码如下:

ForAll(
    // 关联集合和Gallery的复选框状态,筛选不需要删除的记录
    Filter(
        AddColumns(
            colInternalProcessed,
            "IsDelete",
            LookUp(IS2_Gallery1.AllItems, ID = colInternalProcessed[@ID], IS2_Checkbox_Delete.Checked)
        ),
        !IsDelete && !IsBlank(SourceAlt)
    ),
    Patch(
        'OBC Stage Table',
        Defaults('OBC Stage Table'),
        {
            _SourceAlt: SourceAlt,
            _DestAlt: DestAlt,
            _ExactCross: ExactCross,
            _SubmitEmail: useremail,
            _SubmitName: username
        }
    )
);

注意:如果colInternalProcessed没有ID字段,用集合里唯一标识每条记录的字段替换,确保能和Gallery的AllItems对应上。

2. 改用批量创建提升效率(可选)

如果你的SharePoint列表支持批量操作,用Collect代替循环Patch会更高效,也能避免循环带来的控件渲染问题:

Collect(
    'OBC Stage Table',
    ForAll(
        Filter(
            AddColumns(
                colInternalProcessed,
                "IsDelete",
                LookUp(IS2_Gallery1.AllItems, ID = colInternalProcessed[@ID], IS2_Checkbox_Delete.Checked)
            ),
            !IsDelete && !IsBlank(SourceAlt)
        ),
        {
            _SourceAlt: SourceAlt,
            _DestAlt: DestAlt,
            _ExactCross: ExactCross,
            _SubmitEmail: useremail,
            _SubmitName: username
        }
    )
);

3. 强制Gallery渲染所有控件(临时方案)

如果必须使用Gallery控件的值,可以在执行Patch前强制滚动Gallery到所有行,确保控件都被渲染:

// 先滚动到Gallery底部
IS2_Gallery1.ScrollTo(IS2_Gallery1.AllItemsCount);
// 延迟执行Patch,确保渲染完成
Delay(1000);
// 执行原Patch逻辑(不推荐,性能差)
ForAll(
    Filter(IS2_Gallery1.AllItems, !(IS2_Checkbox_Delete.Checked)),
    Patch(
        'OBC Stage Table',
        Defaults('OBC Stage Table'),
        {
            _SourceAlt: ThisRecord.IS2_TI_SourceAlt1.Text,
            _DestAlt: ThisRecord.IS2_TI_DestAlt1.Text,
            _ExactCross: ThisRecord.IS2_TI_ExactCross1.Text,
            _SubmitEmail: useremail,
            _SubmitName: username
        }
    )
);
额外排查点
  • 打开View > Collections检查colInternalProcessed是否包含所有行的完整数据
  • 确认SharePoint列表的字段类型和集合字段类型匹配,避免类型转换导致空白
  • 排查是否有其他逻辑在修改colInternalProcessed集合,导致部分行数据丢失

内容的提问来源于stack exchange,提问作者T. Hughes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:37:42