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

检查DataCard值并条件显示警告页面问题求助

问题排查与修复方案

核心问题分析

你的代码存在两个关键问题:

  1. 变量赋值语法错误:Power Apps中设置全局变量必须使用Set()函数,而非直接用=赋值。原代码里的varIsNotOK = true不会真正修改变量值,导致后续判断始终基于初始的false值。
  2. 逻辑冗余易出错:单独设置变量再判断的流程可以合并,既简化代码也能避免变量更新不及时的问题。

修复后的代码方案

方案1:直接判断执行(无需全局变量)

将判断逻辑与提交、导航操作合并,去掉冗余变量:

If(
    DataCardValue17.Selected.Value = "Not OK" ||
    DataCardValue18.Selected.Value = "Not OK" ||
    DataCardValue19.Selected.Value = "Not OK" ||
    DataCardValue20.Selected.Value = "Not OK" ||
    DataCardValue21.Selected.Value = "Not OK" ||
    DataCardValue22.Selected.Value = "Not OK" ||
    DataCardValue23.Selected.Value = "Not OK" ||
    DataCardValue24.Selected.Value = "Not OK" ||
    DataCardValue25.Selected.Value = "Not OK" ||
    DataCardValue26.Selected.Value = "Not OK" ||
    DataCardValue27.Selected.Value = "Not OK" ||
    DataCardValue28.Selected.Value = "Not OK" ||
    DataCardValue29.Selected.Value = "Not OK" ||
    DataCardValue30.Selected.Value = "Not OK",
    SubmitForm(frmPJInsp); Navigate(scrDNO),
    SubmitForm(frmPJInsp); Navigate(Main)
)

方案2:修正变量赋值逻辑(保留全局变量)

如果需要保留varIsNotOK供其他场景使用,需正确使用Set()函数:

Set(
    varIsNotOK,
    DataCardValue17.Selected.Value = "Not OK" ||
    DataCardValue18.Selected.Value = "Not OK" ||
    DataCardValue19.Selected.Value = "Not OK" ||
    DataCardValue20.Selected.Value = "Not OK" ||
    DataCardValue21.Selected.Value = "Not OK" ||
    DataCardValue22.Selected.Value = "Not OK" ||
    DataCardValue23.Selected.Value = "Not OK" ||
    DataCardValue24.Selected.Value = "Not OK" ||
    DataCardValue25.Selected.Value = "Not OK" ||
    DataCardValue26.Selected.Value = "Not OK" ||
    DataCardValue27.Selected.Value = "Not OK" ||
    DataCardValue28.Selected.Value = "Not OK" ||
    DataCardValue29.Selected.Value = "Not OK" ||
    DataCardValue30.Selected.Value = "Not OK"
);

If(
    varIsNotOK,
    SubmitForm(frmPJInsp); Navigate(scrDNO),
    SubmitForm(frmPJInsp); Navigate(Main)
)

额外优化建议

  • 可将所有需要检查的组合框存入集合,大幅简化判断逻辑:
    Set(
        varIsNotOK,
        !IsEmpty(
            Filter(
                [DataCardValue17, DataCardValue18, ..., DataCardValue30],
                Selected.Value = "Not OK"
            )
        )
    )
    
  • 确认组合框的取值方式正确:若组合框绑定的是复杂数据类型,需用Selected.'对应字段名'替代Selected.Value获取值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 14:55:15