You are on page 1of 21

How To: Select a Form Pattern

Author(s): Jason Green, Chris Garty

Contents
Introduction ............................................................................................................................................................................................................................................. 1
Selecting a Form Pattern via Metadata ................................................................................................................................................................................................... 2
Use the Form.Design.Style for guidance .............................................................................................................................................................................................. 2
Form.Design.Style Quick Reference Table ........................................................................................................................................................................................... 2
When a form isn’t what it says it is ...................................................................................................................................................................................................... 3
Selecting a Form Pattern via Visuals ........................................................................................................................................................................................................ 3
Form Patterns .......................................................................................................................................................................................................................................... 3
Full list of form patterns ...................................................................................................................................................................................................................... 3
Finding forms that currently use a particular Form Pattern ................................................................................................................................................................ 4
Form Pattern Visuals ............................................................................................................................................................................................................................ 5
SubPatterns ............................................................................................................................................................................................................................................ 16
Full list of subpatterns........................................................................................................................................................................................................................ 16
Finding containers that need a subpattern applied on a form .......................................................................................................................................................... 17
Subpattern Visuals ............................................................................................................................................................................................................................. 17

Introduction
The selection of a Form Pattern is an important step in migrating a form. Trying a pattern that is a close to the target form will result in a small set of errors.
Trying the wrong pattern might result in some wasted time and effort, so do some investigation to help select the best form pattern for the form being migrated:

1. Investigate the form’s metadata


a. Have a look through the form metadata in the form designer.
b. Pay close attention to:
i. Form name
ii. Form.Design.Style
iii. Control names
iv. The way that the controls are organized
v. The number and names of the datasources
2. Investigate the form’s visuals
a. Run the form and look at the way information is displayed.
b. If the form cannot be run directly (using f=), try running from the corresponding MenuItem (using mi=).
c. If the form requires record context, search for the form or its corresponding menu item in the Application Explorer in Visual Studio. Right-click
on the metadata artifact and click Find references.

Selecting a Form Pattern via Metadata


Use the Form.Design.Style for guidance
The Form.Design.Style property often contains the name of the pattern that was previously being targeted for the form.

Form.Design.Style Quick Reference Table


Form.Design.Style value Pattern to try
DetailsFormMaster Details Master
DetailsFormTransaction Details Transaction
Dialog Dialog
DropDialog Drop Dialog
FormPart - with just fields Form Part FactBox Card
FormPart - with a grid Form Part FactBox Grid
ListPage List Page
Lookup Lookup Grid Only
SimpleList Simple List
SimpleListDetails - and 2-3 fields in navigation list (recommended) Simple List Details – List Grid
SimpleListDetails - and 4-5 fields in navigation list Simple List Details – Tabular Grid
SimpleListDetails - with tree (rare) Simple List Details – Tree
TableOfContents Table of Contents
Auto - with Overview General & single datasource Task Single
Auto - with two sets of Overview General and/or header+lines Task Double
Auto - with focus on a single record Simple Details
Auto - with form name ending in “Lookup” Lookup Grid Only
Auto - with a single tab control and next/previous buttons Wizard
Auto - with form name ending in “Wizard” Wizard
Auto - with just a grid and some buttons SimpleList
When a form isn’t what it says it is
Sometimes a form will have an incorrect Form.Design.Style property value.

Form.Design.Style value What it might actually be


DetailsFormMaster If there is lines detail or controls with names containing
“lines”, then it might actually be a DetailsFormTransaction.
SimpleList If there is more than just a grid and some custom filter fields,
then it might actually be a SimpleListDetails.
SimpleListDetails If there is just a grid and some custom filter fields, then it
might actually be a SimpleList.
SimpleList If there are a bunch of FactBoxes in the Parts node or has a
corresponding Details Form, then it might actually be a
ListPage.

Selecting a Form Pattern via Visuals


Although less useful than looking at form metadata, a lot of information about a form can be obtained by seeing what a form looks like when run. Use the form
visuals as an additional data point to help in selecting a form pattern.

Look through the screenshots of migrated forms to find a form that looks like the target form.

Form Patterns
Full list of form patterns
Form Pattern Used for
Details Master Form displays the details of a complex entity
Details Transaction Form displays the details of a complex transaction entity and
its lines e.g. order + lines.
Dialog Form is used as a dialog to gather a set of information.
Drop Dialog Form is used as a drop dialog to gather a small set of
information to provide context for an action.
Form Part FactBox Card AX2012 FactBox displaying a single related record
Form Part FactBox Grid AX2012 FactBox displaying grid of related records
List Page AX2012 List Pages
Lookup Grid Only Form is used as a lookup
Simple Details with Fast Tabs Form is focused on a single record and uses Fast Tabs for
details
Simple Details with Fields and Field Form is focused on a single record and uses Fields and Field
Groups Groups for details
Simple Details with Standard Tabs Form is focused on a single record and uses Standard Tabs for
details
Simple Details with Toolbar and Fields Form is focused on a single record and uses Toolbar and Fields
for details
Simple List Form displays details for a simple entity as a grid with less than
10 fields per record.
Simple List Details – List Grid Form displays information about an entity of medium
complexity and needs 2-3 fields in the navigation list.
Simple List Details – Tabular Grid Form displays information about an entity of medium
complexity and needs 4-5 fields in the navigation list.
Simple List Details – Tree Form displays information about an entity of medium
complexity and needs a tree in the navigation list.
Table of Contents Form displays setup information or loosely related information
sets
Task Double Legacy form pattern used to display transaction entities
Task Single Legacy form pattern used to display entities
Wizard Form displays a set of tabpages to the user to gather
information in a predetermined order.
Workspace Form used to display an overview of an activity and is meant
to be a primary means of navigation.

Finding forms that currently use a particular Form Pattern


For a full list of forms that are currently using a particular Form Pattern, generate the Form Patterns Report from within Visual Studio. Click on the Dynamics ‘AX
7’ menu, expand the Addins option, and click on Run form patterns report. A background process will be initiated that will generate a report. After several
seconds, a dialog will be shown in Visual Studio signalling the report has been generated and informing the user of the location of the Form Patterns Report file.
This file can be filtered by Pattern to find forms that use a particular pattern.
Form Pattern Visuals
The following are some example images of forms that have been built with a particular Form Pattern.

DETAILS MASTER
Details Master Form: CustTable
[Default]

This form style is


used for
displaying the
details of a
complex entity in
FastTabs. It
includes a grid
view and a
details view.

Details Master Form: HcmWorker


w/ Standard
Tabs

Use this Details


Master variant
when your form
has a large
number of
FastTabs (>15)
that can be
grouped into
categories
DETAILS TRANSACTION
Details Form: SalesTable
Transaction

This form style is


used to display
the details of a
complex
transaction
entity and its
lines (e.g. order +
lines.)

DIALOG
Dialog – Basic Form: ProjTableCreate Dialog – Read Form: SalesTablePostings
[Default] Only

This form style is Use this Dialog


used to gather or variant when
show a set of your Dialog is
information simply
displaying
information
that cannot be
edited. Only
has a Close
button.
Dialog – None currently in product. Dialog – Tabs Form: CaseDetailCreate
FastTabs
Use this Dialog
Use this Dialog variant when
variant when your Dialog
your Dialog content needs
content is to be grouped
grouped into into Tabs
FastTabs

Dialog – Double Form: PurchTableReferences


Tabs

Use this Dialog


variant when
your Dialog
content has two
tabs stacked on
top of each other
DROP DIALOG
Drop Dialog Form: CustCollectionsNewActivityAction Drop Dialog – None currently in product.
[Default] Read Only

This form style is Use this variant


used to initiate when the fields
actions when the in the drop
number of fields dialog are not
is small (less editable. No
than 5) OK/Close
button is
modelled.

FACTBOX
Factbox Grid Form: ContactsInfoPart Factbox Card Form: CustStatisticsStatistics

Use this Factbox Use this


variant when Factbox variant
showing a child when showing
collection of a set of related
related fields
information
LIST PAGE
List Page Form: SalesTableListPage

The AX2012 list


page that is
simply a grid
optimized for
browsing records
and acting on
those records

LOOKUP
Lookup Basic Form: SysLanguageLookup Lookup Form: HcmWorkerLookup
w/Preview
This pattern is
used if the Use this variant
lookup form is a when in
grid or tree with addition to the
optional filters or basic pattern,
buttons at the there is also a
bottom preview of the
current record
shown
Lookup w/Tabs Form: CaseCategoryLookup

Use this variant


when there are
multiple views of
a lookup (e.g.
grid view/tree
view or multiple
filtered lists)

PANORAMA SECTIONS
Form Part Form Part
Section List Section List -
Double
Use this pattern
to show a list in a Use this variant
workspace when you also
section. This need to show a
should be secondary list.
modelled as a This secondary
separate form list is not visible
and rendered in initially.
the workspace
via a
FormPartControl.
Hub Part Chart Form: VendInvoiceJourCountChart
Use this variant
to show a chart
in a workspace
section. This
should be
modelled as a
separate form
and rendered in
the workspace
via a
FormPartControl

SIMPLE DETAILS
Simple Details Form: AgreementLine Simple Details Form: PlanActivityServiceDetails
w/Toolbar and w/FastTabs
Fields
Use this
Use this pattern SImpleDetails
when showing a variant when
fields for a single the record’s
base record information is
organized into
FastTabs

Simple Details Form: HcmEmploymentDateManager Simple Details Form: PdsMRCEventTracker


w/Standard w/Panorama
Tabs
Use this variant
Use this variant when
when the displaying a
record’s record’s
information is information in
organized into a horizontally-
regular tabs scrolling
panorama

SIMPLE LIST
Simple List Form: CustGroup

This pattern is
used to maintain
data for simple
entities.

SIMPLE LIST AND DETAILS


Simple List & Form: PaymTerm Simple List & Form: ExchangeRate
Details – List Details –
Grid Tabular Grid

This pattern is Use this variant


used to maintain if you have
data for need more
medium- than 3 fields in
complexity the list portion
entities. A list of the form.
grid is the
preferred
pattern for this
form style in AX7

Simple List & Form: FiscalCalendars


Details – Tree

Use this variant if


the list portion of
the form is a
tree.

TABLE OF CONTENTS
Table of Form: CustParameters
Contents

Use this pattern


when displaying
setup
information or
loosely related
information sets

TASK
Task Single Form: LedgerJournalTable Task Double Form: HRMAbsenceTableHistory

Legacy pattern This is a legacy


used to display pattern used to
entities. Only for display
migration, not transaction
new forms. entities. Only
for migration,
not new forms.

WIZARD
Wizard Form: WrkCtrBulkResReqEditWizard

This pattern is
used to display a
set of page views
to the user to
gather
information in a
predetermined
order.

WORKSPACE
Workspace Form: EcoResProductMaintainWorkspace

This pattern
provides a single
page overview of
an activity and
provides the user
with the current
status, the
upcoming
workload, and
performance
indicators

Operational Form: FmClerkWorkspace


Workspace

This is the
preferred,
performance
enhanced variant
of the workspace
pattern

SubPatterns
Full list of subpatterns
Form Pattern Used for
Custom Filters Subpatterns used for container with QuickFilters and any
custom filters modelled on the form
Dimension Entry Control Subpattern used for tab pages that contain only a Dimension
Entry Control
Fields and Field Groups Subpattern that provides a responsive layout for containers
that contain only fields.
Fill Text Subpattern used when a single input control needs to span the
full container width
Horizontal Fields and Button Group Subpattern used when needing to include buttons inline with a
field
Image Preview Subpattern used for containers containing an image and
(optionally) a set of fields
List Panel Subpattern used for containers with two lists that users move
items between
Nested Simple List and Details Subpattern used for embedding a simpler Simple List and
Details inside a container on a form
Tabular Fields Subpattern used to arrange fields in a format similar to a
HTML table
Toolbar and Fields Subpattern used for containers with actions above a set of
fields
Toolbar and List Subpatterns used for containers with actions and 1-2 grids
Workspace-related Subpatterns used to build sections inside a workspace

Finding containers that need a subpattern applied on a form


When a form is open in the Visual Studio designer, you can easily search for containers that still need subpatterns applied by searching for “unspecified” in the
control search box at the top of the designer (as shown).

Subpattern Visuals
The following are some example images of containers using a particular subpattern.

CUSTOM FILTERS
Custom Filters Form: LedgerJournalTable (TopFields) Custom and Form: CustTable (CustomFilterGroup)
Quick Filters
Use this pattern
where custom Use this variant
filters are when a
modelled. QuickFilter is
QuickFilter is not required.
required.
FIELDS
Fields and Field Form: InventLocation (LocationNames) Tabular Fields Form: LedgerJournalTransVendPaym (Balances)
Groups
Use this pattern
Use this pattern to get a
to get a structured layout
responsive layout of fields.
for containers Primarily
that contain only intended for
fields. totals.

Fill Text Form: FmRental (Notes) Horizontal Fields Form: SalesTable (GroupHeaderAddressHeaderOverview)
and Button
Use this pattern Group
when a single
input control Use this pattern
needs full width when a field has
an inline action.

Image Preview Form: RetailVisualProfile (Login)

Use this pattern


for containers
with image
controls (and
optional related
fields)
TOOLBAR AND LIST

Toolbar and List Form: VendTable (TabCommunication) Toolbar and List Form: SalesQuickQuote (TabPageExistingItems)
– Double
Use this pattern
on containers Use this variant
with only actions when the
and a grid containers has
two grids.

WORKSPACE-RELATED

Section Tiles Form: SalesOrderProcessingWorkspace Section Related Form: SalesOrderProcessingWorkspace


Links
Use this variant
to show a set of Use this variant
tiles/charts in a to show a set of
workspace hyperlinks in a
section. This workspace
should be section. This
modelled in a tab should be
page on the modelled in a tab
workspace form. page on the
Charts are workspace form.
defined with
FormPart
controls

Section Tabbed Section Stacked


List Chart
Use this variant Use this variant
when multiple when you need
list variants need to include up to
to be included. two charts in an
Only one is operational
shown at a time workspace

Filters and Filters and


Toolbar – Toolbar – Inline
Stacked
Use this
Use this subpattern in the
subpattern in the Form Part
Form Part Section List
Section List pattern so that
pattern so that filters and
actions appear actions appear
below filters. on the same line.
Workspace Page
Filter Group

Use this pattern


to add a single
filter to you
workspace

OTHER
Nested Simple Form: HcmJob (TaskTabPage) List Panel Form: CLIControls_ListPanel (FormTabPageControl1)
List & Details
Use this pattern
Use this pattern when users need
when embedding to move items
a simpler Simple back and forth
List & Details between two
inside a tab or lists.
group
Toolbar and Form: HcmPosition (WorkerAssignmentTabPage) Dimension Entry Form: CustTable (TabFinancialDimensions)
Fields Control

Use this pattern Use this pattern


on containers on tab pages that
with only actions have only a
and fields Dimension Entry
Control.

You might also like