实现常用表属性
表中经常用于设置数值字段格式的属性为 DecimalPlaces 和 AutoFormatType。
DecimalPlaces 属性
DecimalPlaces 属性设置 Decimal 数据类型的显示和存储要求。 您可以输入小数位数的最小值和/或最大值,如以下示例中所示。
field(5; MyDecimalField; Decimal)
{
DecimalPlaces = 1; // A minimum of 1 and a maximum of 1 decimal place
}
field(5; MyDecimalField; Decimal)
{
DecimalPlaces = 1:4; // A minimum of 1 and a maximum of 4 decimal places
}
field(5; MyDecimalField; Decimal)
{
DecimalPlaces = 2:; // At least 2 decimal places
}
field(5; MyDecimalField; Decimal)
{
DecimalPlaces = 0:2; // No more than 2 decimal places
}
对于小数字段,DecimalPlaces 属性指定要存储的小数位数。 Decimal 数据类型的默认存储要求是为金额保留两个小数位。 使用本属性可指定不同于默认值的存储要求。 验证期间,将对文本框和字段评估本设置。
当您创建具有 Decimal 数据类型的新字段时,值将自动设置为货币格式。 如果您的小数字段不包含货币值,则可以使用 DecimalPlaces 属性确定显示在屏幕上的小数位数。 例如,在总帐条目表中,数量字段的 DecimalPlaces 属性设置为 0:5,这表示可以输入的小数位数下限为零,可以输入的小数位数上限为 5。
AutoFormatType 和 AutoFormatExpression 属性
AutoFormatType 属性与 AutoFormatExpression 属性中的 AL 表达式一起设置用于确定数据格式的值。 这两个属性仅用于设置 Decimal 数据类型的格式,例如可以用外币或比率表示的金额。
要设置数据格式,可以组合使用字段的 AutoFormatType 属性、AutoFormatExpression 属性和 DecimalPlaces 属性。
这些属性共同工作以帮助您指定以下参数:
以其他币种显示的金额和单位金额
小数位数
是否显示千位分隔符
值前后的字符,如币种符号或百分比 (%)
当您使用 AutoFormatType 和 AutoFormatExpression 属性为字段设置格式时,将会调用 codeunit 45 Auto Format 中名为 ResolveAutoFormat 的触发器。 Auto Format codeunit 是 ALAppExtensions 存储库中的对象。 ResolveAutoFormat 采用两个参数,一个来自 AutoFormatType 属性(自动格式类型的枚举),一个来自 AutoFormatExpression(文本类型)。
Auto Format 枚举具有以下可能的值:
0:DefaultFormat
1:AmountFormat
2:UnitAmountFormat
10:CurrencySymbolFormat
11:CustomFormatExpr
当某个字段显示在页面或报表上时,您可以直接在该页面字段或报表字段(列)中设置 AutoFormatType 和 AutoFormatExpression 属性,也可以在基础表字段中设置这些属性。 如果在表字段中指定上述属性,则格式将应用于使用该字段的任何位置。 在页面字段或报表字段中指定上述属性只会在特定页面或报表中应用该格式。 如果您在表字段以及页面字段或报表字段中指定上述属性,则页面字段或报表字段中的设置将优先。
AutoFormatType、AutoFormatExpression 和 DecimalPlaces 属性的设置将取决于所显示的数据类型,例如币种金额和单位金额或其他类型的数据(如简单小数或比率)。 基本上,对于用于设置 DecimalPlaces 和 AutoFormatExpression 属性的选项,AutoFormatType 属性是确定相应选项的主要设置。