Mobile Framework: Customize the Design and Layout for a List of Records

Starting in MYOB Acumatica 2026.1.1, you can customize the design and layout of lists of records in the Acumatica mobile app. In a list of records on a mobile app screen, users can review key information, open individual records, and perform actions.

With the new customization capabilities, you can control how records and their fields look in these lists and what users can do with them. You can do the following:

  • Highlight important fields
  • Specify the alignment of fields
  • Display fields in a table layout and organize the corresponding fields as name–value pairs on individual rows
  • Place fields in a vertical stack
  • Display available actions
  • Specify the default placement of actions associated with recordActionLink objects
  • Specify styles for actions associated with recordActionLink objects
  • Modify numeric values directly in the list, without having to open the record
  • Display the list of records as a selection list, which removes the ability to select or clear all records in the list

The following sections describe the new customization capabilities and how you can use them to improve lists of records in the mobile app.

Using the ListView Template

You can use the new ListView value to specify a template for the layout attribute of a layout object in Mobile Site Map Definition Language (MSDL).

Within a ListView template, you can control a field's visual emphasis by specifying one of the following options for the style property:

  • importance-low: Uses a smaller font size and lighter weight (Items 1, 2 and 3 below) than medium
  • importance-medium (default): Uses the medium font size and weight. You don’t need to specify this value explicitly.
  • importance-high: Uses a larger font size than medium and bold for the font weight (Item 4 below).

To specify the alignment of a field, you can specify one of the following values for the style property:

  • column-left (default): Aligns the field to the left side of its container. You don’t need to specify this value explicitly.
  • column-right: Aligns the field to the right side of its container (Item 3 below).
Figure 1. The styles and alignments in a ListView template


The following MSDL code corresponds to the screenshot above.

add container "Document" { 
  add layout "listview" {
    displayName = "listview"
    layout = "ListView"
    add layout "line1" {
      displayName = "line1"
      layout = "Inline"
   
      add field "OrderType" {
        style = "importance-low"
      }
      add field "OrderNbr" {
        style = "importance-low"
      }
      add field "Status" {
        style = "importance-low column-right"
      }
    }
    add field "Summary" {
      style = "importance-high"
    }
    ...
  }
}
  
Customizing the Appearance of RecordActionLink Objects

A ListView template may include recordActionLink objects. You can control the alignment of the corresponding actions by using the style property and specifying one of the alignment options described earlier in this section.

You can also use the style property for recordActionLink objects to control how an action is displayed in the UI and whether its button has a background. You can specify the following values:

  • text: Displays the action as text only without an icon
  • icon: Displays the action as an icon only without any accompanying text
  • text-icon: Displays the action with both an icon and text
  • background-none: Removes the background from the button that represents the action
Figure 2. The result of specifying the icon option


Using the CaptionValueTable Template

Within a ListView template, you can use CaptionValueTable as the value for the layout attribute of a nested layout object. This template displays fields in a table format, organized as name–value pairs in individual rows. This can improve the readability of fields, as shown below.

Figure 3. The CaptionValueTable template


The following MSDL code corresponds to the use of the CaptionValueTable template in the screenshot above.

add container "Document" { 
  add layout "listview" {
    displayName = "listview"
    layout = "ListView"
    ...
    add layout "table" {
      displayName = "table"
      layout = "CaptionValueTable"
      add field "Date"
      add field "Customer" {
        selectorDisplayFormat = Key
      }
        add field "CustomerName"
        add field "Severity"
        add field "Priority"
        add field "ServiceLocation"
    }
  }
  ...
}
  
Using the Column Template

Within a ListView template, you can also use Column as the value for the layout attribute of a nested layout object. This template lets you stack fields vertically, as shown below.

Figure 4. The Column layout


Attention: The following work only when they’re defined within the scope of the ListView template and are ignored outside of this scope:
  • The CaptionValueTable and Column templates
  • The options of the style property (described earlier in this section)

Displaying the Available Actions for a Record

You can display the available actions for each record in a list of records by setting the showActionsOnList property to True in the MSDL code of the corresponding container. The available actions are rendered at the bottom of each record, as shown below.

Figure 5. An action on a grid


The following MSDL code corresponds to the usage of the showActionsOnList property in the preceding screenshot.

add container "WorkTasks" {
  containerActionsToExpand = 1
  filter = "TicketWorkTasksFilter"
  showActionsOnList = True
  add layout "listview" {
    displayName = "listview"
    layout = "ListView"
    add layout "line1" {
        ...
    }
    add layout "line2" {
        ...
    }
  }
  ...
}
  
Attention: An action can be displayed for a record only if it has the DisplayOnMainToolbar property of the PXButton attribute set to true.

The system collects these actions in the following ways:

  • For substitute screens, the actions are typically collected from the graph of the corresponding entry screen. For example, actions for sales orders on the Sales Orders (SO3010PL) screen are collected from the Sales Orders (SO301000) screen.
  • For secondary containers on a screen—such as the container corresponding to the Details tab on the Sales Orders screen—the actions are collected from the current graph of the screen.

Editing Fields of a Record in a List

A user can now edit the values of certain fields of a record directly in a list of records without opening the record first. To make this possible, you specify the Special = Counter property in the MSDL code for the relevant fields of the record.

This property is particularly useful for numeric fields, such as those used to specify a quantity of items. The Special = Counter property makes a field editable (Item 1 below), and the UI provides buttons for increasing (Item 2) or decreasing (Item 3) its value.

Figure 6. Use of the Counter property in a record


Using The SelectionList Container

Version 2026.1.1 also introduces a new container type: SelectionList. To use this container type, you specify Type = SelectionList for a container. When this type is specified for a container displayed as a list, a user can't do the following in the resulting list:

  • Select all records
  • Clear all selected records

Below you can see a list of records based on this container.

Figure 7. Use of a SelectionList container


Learn More

For comprehensive guidance about customizing the design and layout for a list of records, see the following topics in the Mobile Framework Guide: