AutoFormatExpression Property in Business Central – Wave 1 2025

Amol SalviBusiness Central8 hours ago21 Views

With the release of Business Central 2025 Wave 1, Microsoft continues enhancing the AL language to make development cleaner, more flexible, and maintainable. One of the updates includes improvements around the AutoFormatExpression property — a property that may seem minor but plays a crucial role in controlling how data is displayed, especially in reports and pages.

In essence, the AutoFormatExpression property allows you to define a specific format for how numeric and date/time values are displayed in your Business Central application. This goes beyond the basic formatting options and provides granular control over aspects like decimal places, thousands separators, date and time patterns, and more.

What is the AutoFormatExpression Property?

The AutoFormatExpression property in AL is used to specify a formatting expression that overrides the default formatting behavior of a control. It works in conjunction with the AutoFormatType property and is typically used in pages and reports to control how numeric or date values are displayed.

For example, you might want to display a date in DD-MM-YYYY format instead of the system default, or format a decimal with specific currency or precision rules.

How Does AutoFormatExpression Work?

The AutoFormatExpression property accepts a string that defines the desired format. The syntax of this string follows specific rules depending on whether you are formatting numeric or date/time data.

For Numeric Data:

The expression can include placeholders for:

  • Decimal Places: Use # for optional digits and 0 for mandatory digits after the decimal point.
  • Thousands Separator: Typically a comma (,), but this can be influenced by regional settings.
  • Currency Symbol: The currency symbol is usually determined by the AutoFormatType and AutoFormatSubType properties.

Example:

  • #,##0.00: Displays numbers with two decimal places and thousands separators (e.g., 1,234.56).
  • 0.0: Displays numbers with one mandatory decimal place (e.g., 123.4).

For Date/Time Data:

The expression uses specific codes to represent different parts of the date and time:

  • Days: d (day of the month), dd (day of the month with leading zero), ddd (abbreviated day name), dddd (full day name).
  • Months: M (month number), MM (month number with leading zero), MMM (abbreviated month name), MMMM (full month name).
  • Years: yy (two-digit year), yyyy (four-digit year).
  • Hours: h (12-hour format), hh (12-hour format with leading zero), H (24-hour format), HH (24-hour format with leading zero).
  • Minutes: m (minutes), mm (minutes with leading zero).
  • Seconds: s (seconds), ss (seconds with leading zero).
  • Milliseconds: f, ff, fff (fractional seconds).
  • AM/PM: tt (AM/PM designator).
  • Time Separator: Typically a colon (:), but this can be influenced by regional settings.
  • Date Separator: Typically a slash (/), hyphen (-), or period (.), but this can be influenced by regional settings.

Examples:

  • MM/dd/yyyy: Displays date as month/day/year (e.g., 12/25/2025).
  • dd-MMM-yy hh:mm tt: Displays date and time with abbreviated month and 12-hour format (e.g., 25-Dec-25 06:36 PM).
  • dddd, MMMM dd, yyyy: Displays the full day, month, and year (e.g., Monday, December 25, 2025).
table AutformatTable
{
    fields
    {
        field(1; "Amount"; Decimal)
        {
            AutoFormatType = 10; // Currency
            AutoFormatExpression = "#,##0.00";
        }
        field(2; "Order Date"; Date)
        {
            AutoFormatExpression = "MM/dd/yyyy";
        }
        field(3; "Order Time"; Time)
        {
            AutoFormatExpression = "hh:mm:ss tt";
        }
    }
}

page AutoFormatPage
{
    layout
    {
        area(content)
        {
            group(GroupName)
            {
                field("Amount"; Rec.Amount)
                {
                    // Inherits AutoFormatExpression from the table field
                }
                field("Formatted Amount"; Rec.Amount)
                {
                    AutoFormatExpression = "0.##"; // Overrides table field format for this instance
                }
                field("Order Date"; Rec."Order Date")
                {
                    // Inherits AutoFormatExpression from the table field
                }
                field("Order Time"; Rec."Order Time")
                {
                    // Inherits AutoFormatExpression from the table field
                }
            }
        }
    }
}

Another example could be as follows

pageextension 50100 CustomerListExt extends "Customer List"
{
    layout
    {
        addlast(content)
        {
            field("Balance LCY"; Rec."Balance (LCY)")
            {
                ApplicationArea = All;
                AutoFormatType = 1;
                AutoFormatExpression = Rec."Currency Code";
            }
        }
    }
}

While AutoFormatExpression gives you precise control, be aware that regional settings can still influence aspects like decimal and thousands separators, as well as date and time formats if not explicitly defined.

The AutoFormatExpression property in Business Central Wave 1 2025 is a significant enhancement for developers looking to control the presentation of numeric and date/time data.

Stay tuned for more !!!

Original Post https://ammolhsaallvi.blog/2025/04/22/autoformatexpression-property-in-business-central-wave-1-2025/

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Join Us
  • X Network2.1K
  • LinkedIn3.8k
  • Bluesky0.5K
Support The Site
Events
April 2025
MTWTFSS
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30     
« Mar   May »
Follow
Sign In/Sign Up Sidebar Search
Popular Now
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...