Skip to content

Latest commit

 

History

History
136 lines (102 loc) · 4.99 KB

devenv-page-object.md

File metadata and controls

136 lines (102 loc) · 4.99 KB
title description author ms.date ms.topic ms.author ms.custom ms.collection ms.reviewer
Page object
Description of the page object and its syntax in AL for Business Central.
SusanneWindfeldPedersen
04/26/2024
conceptual
solsen
evergreen
get-started
solsen

Page object

Pages are the main way to display and organize visual data in [!INCLUDE prod_short]. They are the primary object that a user will interact with and have a different behavior based on the type that you choose. Pages are designed independently of the device they are to be rendered on, and in this way the same page can be reused across phone, tablet, and web clients.

When developing a solution for [!INCLUDE prod_short], you follow the code layout for a page as shown in the page example below, but for more details on the individual controls and properties that are available, see Page property overview.

If you want to, for example, add functionality to a page that already exists in [!INCLUDEprod_short], you can create a page extension object that changes an existing page object. For more information, see Page extension object. Depending on how much you want to change on an existing page, you can also create a page customization object, which offers modifications on actions and layout. For more information, see Page customization object.

Important

Only pages with the Extensible property set to true can be extended.

Note

Extension objects can have a name with a maximum length of 30 characters.

Page syntax

The structure of a page object is hierarchical and breaks down into three sections:

  • The first block contains metadata for the overall page; the type of the page and the source table it's showing data from.
  • The next section; the layout, describes the visual parts on the page.
  • The final section details the actions that are published on the page.

The order in which the sections appear matters. The following example illustrates the ordering:

page ObjectId PageName
{
    // page properties such as 
    PageType = Card;
    SourceTable = Customer;
    ContextSensitiveHelpPage = 'my-feature';

    layout {}

    actions {}

    views {} // only for pages of type ListPage

    // optionally, add AL code here
}

Snippet support

Typing the shortcut tpage will create the basic layout for a page object when using the [!INCLUDEd365al_ext_md] in Visual Studio Code.

[!INCLUDEintelli_shortcut]

Add tooltips on page fields

Starting in [!INCLUDEprod_short] 2024 release wave 1, you can define tooltips on table fields. When a tooltip is defined on a table field, any page that uses the field automatically inherits the tooltip.

For more information, see Add tooltips to table and page fields.

Views

Views in [!INCLUDE prod_short] are used on list pages to define a different view of the data on a given page. Views can be defined for Pages, Page extensions, and Page customization. For more information, see Views.

Page example

page 50101 SimpleCustomerCard
{
    PageType = Card;
    SourceTable = Customer;
    ContextSensitiveHelpPage = 'my-feature';

    layout
    {
        area(content)
        {
            group(General)
            {
                field("No."; "No.")
                {
                    ApplicationArea = All;
                    CaptionML = ENU = 'Hello';

                    trigger OnValidate()
                    begin
                        if "No." < '' then
                            Message('Number too small')
                    end;
                }

                field(Name; Name)
                {
                    ApplicationArea = All;
                }
                field(Address; Address)
                {
                    ApplicationArea = All;
                }
            }
        }
    }
    actions
    {
        area(Navigation)
        {
            action(NewAction)
            {
                ApplicationArea = All;
                RunObject = codeunit "Document Totals";
            }
        }
    }
}

See also

AL development environment
Views
Adding help links from pages, reports, and XMLports
Page extension object
Page, page fields, and page extension properties
Page properties
Developing extensions
Configure context-sensitive help