Skip to main content

Form Design

The Design node (AxFormDesign) is the root of a form's visual layout. It contains the entire control tree — every group, tab, grid, field, button, and action pane that the user sees. The design node also holds form-level visual properties such as the form style, caption, window type, and sizing behaviour.

The design inherits from AxFormControlWithChildren, meaning it is itself a container that holds child controls. All controls in the form are descendants of this single design node.


Form Patterns

Every form design should follow a form pattern. A pattern is a predefined control-tree structure that the framework validates at compile time and that ensures visual and behavioural consistency across the application.

The Pattern and PatternVersion properties on the design node identify which pattern is applied. When a pattern is set, the Best Practice checker validates that the control tree matches the expected structure (e.g., a DetailsFormMaster pattern expects an Action Pane, a Header Group, Lines Grid, and so on).

tip

Always apply a form pattern to new forms. Patterned forms receive automatic layout, responsive behaviour, and accessibility support. Freeform (unpatterned) forms require manual layout management and are not recommended for new development.

For a complete reference on all form patterns — Details Master, Details Transaction, Simple List, Dialog, Workspace, and more — including their variations, structural diagrams, and example forms, see the Form Patterns section.


Control Tree Structure

The design node contains child controls arranged in a hierarchy. Container controls (groups, tabs, grids, action panes) can themselves contain child controls. Leaf controls (strings, dates, checkboxes, buttons) display or capture a single value.

Container Controls

Control TypeAOT TypePurpose
GroupAxFormGroupControlGroups related controls together. Renders as a FastTab, a frame, or a section depending on the form pattern.
TabAxFormTabControlA tabbed container with multiple tab pages. Each tab page is a separate visual panel.
Tab PageAxFormTabPageControlA single page within a tab control. Functions as a collapsible FastTab in many patterns.
GridAxFormGridControlA data-bound grid displaying multiple records in rows and columns. Binds to a data source.
Action PaneAxFormActionPaneControlThe ribbon-style toolbar at the top of the form containing action buttons.
Action Pane TabAxFormActionPaneTabControlA tab within the action pane that groups related buttons.
Button GroupAxFormButtonGroupControlGroups buttons within an action pane tab.

Data-Bound Input Controls

Control TypeAOT TypePurpose
StringAxFormStringControlA text input field bound to a string field or EDT.
IntegerAxFormIntegerControlA numeric input for integer values.
Int64AxFormInt64ControlA numeric input for 64-bit integer values (e.g., RecId).
RealAxFormRealControlA numeric input for decimal values.
DateAxFormDateControlA date picker control.
TimeAxFormTimeControlA time input control.
DateTimeAxFormDateTimeControlA combined date and time picker.
ComboBoxAxFormComboBoxControlA dropdown list bound to an enum field.
CheckBoxAxFormCheckBoxControlA boolean toggle bound to a NoYes field.
Reference GroupAxFormReferenceGroupControlA composite lookup control for foreign-key reference fields.
Segmented EntryAxFormSegmentedEntryControlA multi-segment control for financial dimensions and account structures.

Display and Navigation Controls

Control TypeAOT TypePurpose
Static TextAxFormStaticTextControlA read-only text label.
ImageAxFormImageControlDisplays an image from a resource or data field.
ButtonAxFormButtonControlA pushbutton that executes an action.
Menu Function ButtonAxFormMenuFunctionButtonControlA button that opens a menu item (form, report, or class).
Command ButtonAxFormCommandButtonControlA button bound to a system command (Save, Delete, New, etc.).
Menu ButtonAxFormMenuButtonControlA dropdown button containing multiple child menu items.

Example: Typical Control Hierarchy

Below is the control tree for a simplified SimpleList pattern form:

Design (AxFormDesign, Style = SimpleList, Pattern = SimpleList)
├── ActionPane (AxFormActionPaneControl)
│ └── ActionPaneTab (AxFormActionPaneTabControl)
│ └── ButtonGroup (AxFormButtonGroupControl)
│ ├── NewButton (AxFormCommandButtonControl, Command = New)
│ └── DeleteButton (AxFormCommandButtonControl, Command = DeleteRecord)
└── Grid (AxFormGridControl, DataSource = MyTable)
├── AccountNum (AxFormStringControl, DataSource = MyTable, DataField = AccountNum)
├── Name (AxFormStringControl, DataSource = MyTable, DataField = Name)
└── Status (AxFormComboBoxControl, DataSource = MyTable, DataField = Status)

Properties

The design node combines layout, styling, and behavioural properties.

66/66 properties
PropertyDisplay NameTypeDescription
NameNameStringThe name of the element.
TagsTagsStringTags for this element separated by semicolon.
PatternPatternStringIdentifies the form pattern applied to this design.
PatternVersionPatternVersionStringThe version of the applied pattern.
StyleStyleFormStyleSpecifies the style of the form. The specified value can affect other properties. Values: Auto (0), DetailsFormMaster (1), Dialog (2), DropDialog (3), ListPage (4), Lookup (5), SimpleList (6), SimpleListDetails (7), FormPart (8), DetailsFormTransaction (9), TableOfContents (10), Dashboard (11), EntityPage (12), Sitemap (13), Workspace (14), SimpleDetails (15), TaskSingle (16), TaskDouble (17), Wizard (18), Report (19).
CaptionCaptionStringSpecifies the heading that appears on the form. Use a pre-defined label when possible.
UseCaptionFromMenuItemUse Caption From Menu ItemNoYesSpecifies whether to replace the form caption with the label from the calling menu item when the form is opened. Values: No (0), Yes (1).
TitleDataSourceTitle Data SourceStringSpecifies the data source to be used for the form caption.
DataSourceData SourceStringSpecifies the data source that is used to obtain data for the form.
ModeModeFormMode_ITxtData entry mode. Values: Watch (0), Edit (1), Add (2), Delete (3).
ViewEditModeView Edit ModeViewEditModeSets the form in either View or Edit mode. Values: Auto (0), View (1), Edit (2).
WindowTypeWindow TypeWindowType_ITxtSpecifies the type of window used to display the form. Values: Standard (0), Popup (1), ListPage (2), Workspace (3), ContentPage (4), Slider (5).
FrameFrameFormFrame_ITxtForm frame style. Values: Standard (0), Dialog (1), Border (2), None (3).
WindowResizeWindow ResizeWindowResize_ITxtAllow resize of the form window. Values: Auto (0), Dynamic (1), Fixed (2).
LeftModeLeft ModeFormLeftModeHorizontal position of form or control. Values: AutoLeft (0), AutoRight (1), LeftEdge (2), RightEdge (3), Center (4), Manual (5).
LeftLeftInt32Horizontal position of form or control.
TopModeTop ModeFormTopModeVertical position of form or control. Values: Auto (0), TopEdge (1), BottomEdge (2), Center (3), Manual (4).
TopTopInt32Vertical position of form or control.
WidthModeWidth ModeFormWidthHeightModeWidth of form or control. Values: Auto (0), Column (1), SizeToContent (2), SizeToAvailable (3), Manual (4).
WidthWidthInt32Width of form or control.
HeightModeHeight ModeFormWidthHeightModeHeight of form or control. Values: Auto (0), Column (1), SizeToContent (2), SizeToAvailable (3), Manual (4).
HeightHeightInt32Height of form or control.
VisibleVisibleNoYesMake control visible. Values: No (0), Yes (1).
MaximizeBoxMaximize BoxNoYesDetermines whether a form has a maximize box in the upper-right corner of its caption bar. Values: No (0), Yes (1).
MinimizeBoxMinimize BoxNoYesDetermines whether a form has a minimize box in the upper-right corner of its caption bar. Values: No (0), Yes (1).
SaveSizeSave SizeNoYesSave size of form. Values: No (0), Yes (1).
AlwaysOnTopAlways On TopNoYesShould the form always be displayed as the top window? Values: No (0), Yes (1).
HideToolbarHide ToolbarNoYesDetermines whether the Toolbar and Menu should be shown on forms with a WindowType of Standard. Values: No (0), Yes (1).
ShowNewButtonShow New ButtonAutoNoYesSpecifies whether the system-defined New button is visible on the form. Values: No (0), Yes (1), Auto (99).
ShowDeleteButtonShow Delete ButtonAutoNoYesSpecifies whether the system-defined Delete button is visible on the form. Values: No (0), Yes (1), Auto (99).
SetCompanySet CompanyNoYesSpecifies whether the system should change the session company when the form gets focus. Values: No (0), Yes (1).
AllowFormCompanyChangeAllow Form Company ChangeNoYesSpecifies whether the form supports company changes when used as a child form with a cross-company dynalink. Values: No (0), Yes (1).
AllowDockingAllow DockingNoYesAllow the form to be glued to the edges of the main window. Values: No (0), Yes (1).
AllowUserSetupAllow User SetupAllowUserSetup_ITxtSpecifies whether a user can move and change properties of the controls on a form. Values: No (0), Restricted (1), Yes (2).
NewRecordActionNew Record ActionStringSpecifies the action to execute when a New command or task is initiated by the form.
WorkflowEnabledWorkflow EnabledNoYesSpecifies whether to show the workflow menu bar on the form. Values: No (0), Yes (1).
WorkflowDataSourceWorkflow Data SourceStringSpecifies the root data source for a workflow on the form.
WorkflowTypeWorkflow TypeStringSpecifies the workflow type to use to enable workflow for the form.
StatusBarStyleStatus Bar StyleStatusBarStyleDetermines how the Status bar displays on forms with a WindowType of Standard. Values: Auto (0), None (1), Simple (2), Full (3), SimpleWithoutClose (4).
ScrollbarsScrollbarsAutoNoYesSpecifies whether scrollbars will be enabled. Values: No (0), Yes (1), Auto (99).
ArrangeMethodArrange MethodArrangeMethod_ITxtSpecifies how controls are arranged in the form. Values: Auto (0), HorizontalWrap (1), HorizontalRight (2), HorizontalLeft (3), Vertical (4), None (5).
ArrangeWhenArrange WhenArrangeWhen_ITxtWhen to arrange controls on the container control. Values: Default (0), Auto (1), OnStartup (2), OnDemand (3), Never (4).
ColumnsModeColumns ModeFormColumnsModeSpecifies how the number of columns is calculated. Values: Fill (0), Fixed (1).
ColumnsColumnsInt32Specifies the number of columns when ColumnsMode = Fixed.
HideIfEmptyHide If EmptyNoYesAuto-hide the container if all contained controls are non-visible. Values: No (0), Yes (1).
AlignChildrenAlign ChildrenNoYesAlign child controls. Values: No (0), Yes (1).
AlignChildAlign ChildNoYesInclude in general alignment. Values: No (0), Yes (1).
ColorSchemeColor SchemeColorScheme_ITxtColor setting. Values: Default (0), WindowsPalette (1), RGB (2).
FontFontStringThe font for control text.
FontSizeFont SizeInt32The font size for the text in the control.
BoldBoldFontWeight_ITxtThe type of bold for the text in the control. Values: Default (0), Thin (1), Extralight (2), Light (3), Normal (4), Medium (5), Semibold (6), Bold (7), Extrabold (8), Heavy (9).
ItalicItalicNoYesItalicise the text in the control. Values: No (0), Yes (1).
UnderlineUnderlineNoYesUnderline the text in the control. Values: No (0), Yes (1).
ImageNameImage NameStringName of the image resource for the form.
ImageResourceImage ResourceInt32Resource ID for the form image.
ImageModeImage ModeImageMode_ITxtControls how the image is shown. Values: Normal (0), SizeToFit (1), SideBySide (2), Center (3).
TopMarginModeTop Margin ModeFormAutoModeSize of top margin. Values: Auto (0), Fixed (1).
TopMarginTop MarginInt32Size of top margin.
BottomMarginModeBottom Margin ModeFormAutoModeSize of bottom margin. Values: Auto (0), Fixed (1).
BottomMarginBottom MarginInt32Size of bottom margin.
LeftMarginModeLeft Margin ModeFormAutoModeSize of left margin. Values: Auto (0), Fixed (1).
LeftMarginLeft MarginInt32Size of left margin.
RightMarginModeRight Margin ModeFormAutoModeSize of right margin. Values: Auto (0), Fixed (1).
RightMarginRight MarginInt32Size of right margin.
ColumnSpaceModeColumn Space ModeFormAutoModeSpace between columns. Values: Auto (0), Fixed (1).
ColumnSpaceColumn SpaceInt32Space between columns.