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

基于全局变量设置MinValue/MaxValue:Business Central技术疑问

Business Central字段MaxValue绑定变量失败的原因及解决方法

问题描述

在Business Central中,以下将字段Editable属性绑定全局布尔变量的配置可正常运行:

}   
    field(5; "From"; Integer)
    {
         Caption = 'From';
         DataClassification = SystemMetadata;
         Editable = FromEditable
    }
}

var
FromEditable: Boolean

但尝试将字段MaxValue属性绑定全局整数变量ToValue时多次失败,相关代码如下:

}   
    field(5; "From"; Integer)
    {
         Caption = 'From';
         DataClassification = SystemMetadata;
         MaxValue = ToValue
    }
}

var
ToValue: Integer

原因分析

核心问题在于Business Central表字段的属性类型限制:

  • Editable属于可计算属性,这类属性支持绑定变量或运行时可计算的表达式,值会在运行阶段动态评估。
  • MaxValue属于静态属性,这类属性要求值在编译阶段就能确定,只能使用常量、枚举值或编译时可解析的常量表达式,无法绑定运行时才会变化的变量。

替代解决方案

若需动态控制字段最大值,可采用以下两种方式:

1. 利用字段OnValidate触发器校验

在表的字段触发器中手动判断输入值是否超出ToValue范围,超出则抛出错误:

field(5; "From"; Integer)
{
     Caption = 'From';
     DataClassification = SystemMetadata;

     trigger OnValidate()
     begin
         if "From" > ToValue then
             Error('输入值不能大于%1', ToValue);
     end;
}

var
ToValue: Integer;

2. 在页面控件中绑定变量(针对页面展示场景)

如果是在页面中使用该字段,可设置页面控件的MaxValue属性绑定变量——页面控件的该属性支持动态值:

page 50100 "Sample Page"
{
    PageType = Card;
    SourceTable = SampleTable;

    layout
    {
        area(content)
        {
            group(General)
            {
                field("From"; "From")
                {
                    Caption = 'From';
                    MaxValue = ToValue;
                }
            }
        }
    }

    var
    ToValue: Integer;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 13:52:09