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

无法通过Power Apps Patch函数更新SharePoint列表

解决Power Apps中Patch读取Label值失败的问题

问题根源

SubmitForm执行成功后,表单关联的Label控件可能因上下文失效或自动重置被清空值,导致Patch时读取到空文本,触发Value函数转换错误。硬编码值不受影响是因为它不依赖动态控件的上下文状态。

可行解决方案

方案1:使用表单LastSubmit属性获取提交记录(推荐)

直接通过Form1.LastSubmit获取刚提交的原记录数据,无需依赖Label传递值,彻底避免上下文失效问题:

Patch(
    你的SharePoint列表名称,
    LookUp(你的SharePoint列表名称, ID = Form1.LastSubmit.ID),
    {
        库存数量字段名: Form1.LastSubmit.库存数量字段名 - Value(TextInput_用户输入数量.Text)
    }
)
  • 替换你的SharePoint列表名称为实际列表名
  • 替换库存数量字段名为列表中存储库存的字段名称
  • TextInput_用户输入数量是用户输入要扣除数量的文本框控件名

方案2:提交前将计算结果存入变量

在提交按钮的OnSelect事件中先计算好新库存值并存入变量,再执行SubmitForm,OnSuccess中直接使用变量:

  1. 提交按钮OnSelect代码:
Set(
    varNewStock,
    LookUp(你的SharePoint列表名称, ID = Value(Label4.Text)).库存数量字段名 - Value(TextInput_用户输入数量.Text)
);
SubmitForm(Form1);
  1. EditForm的OnSuccess代码:
Patch(
    你的SharePoint列表名称,
    {ID: Form1.LastSubmit.ID},
    {库存数量字段名: varNewStock}
)

额外检查点

  • 确认Label3/Label4的Reset属性未设置为true,避免提交后被重置
  • 给用户输入数量的文本框添加非空校验,防止Value函数转换空文本失败

内容的提问来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:40:04