Erstellen einer Page in AL
Der grundlegende Aufbau einer Page in Business Central wird bei Verwendung des AL-Snippets tpage
ersichtlich:
Im Kopf der Page werden alle Properties festgelegt, wie z.B. die SourceTable
.
Im layout
-Bereich wird der sichtbare Aufbau der Seite definiert. Dazu werden die Felder ggf. den entsprechenden Gruppen untergeordnet, welche sich in der Content
-Area befinden.
Der actions
-Bereich dient zum Festlegen der Actions, die auf der Seite zugänglich sein sollen.
Nach dem Schlüsselwort var
können globale Variablen definiert werden. Darüber hinaus können Page-Trigger und Funktionen deklariert werden:
Arten von Pages
Die Art der Page wird durch die PageType
-Property festgelegt:
List Pages
List Pages dienen zum Anzeigen von Tabellen in Form einer Liste. Die in der Tabelle enthaltenen Felder können als Spalten in der Liste eingeblendet werden.
Zum Anzeigen der Felder wird ein repeater
in der Content
-Area benötigt:
area(Content) { repeater(General) { field(id; MyField; Blob) { } } }
Zusätzlich können List Pages auch noch eine FactBox
-Area enthalten.
Card Pages
Zum übersichtlichen Anzeigen und Bearbeiten einzelner Tabelleneinträge werden Card Pages verwendet, insbesondere dann, wenn zu jedem Eintrag viele Informationen in Feldern dargestellt werden müssen. Dazu werden die Felder in diverse FastTabs gruppiert, welche sich ein- und ausklappen lassen.
Ein FastTab entspricht einer Group vom SubType Group
. Die in einem FastTab enthaltenen Felder können durch Unterordnen weiterer Groups zusätzlich kategorisiert werden:
area(Content) { group(General) { field(id; MyField; Blob) { } } }
Zusätzliche Informationen können auch hier über eine FactBox
-Area eingeblendet werden.
Document Pages
Die Document Page entspricht einer Card Page, in welcher eine List Page als Page Part eingebunden werden kann. In dieser können mit dem Record verknüpfte Einträge aus einer anderen Tabelle angezeigt werden. Die Verknüpfung der Tabelleneinträge wird über die Property SubPageLink
festgelegt:
area(Content) { group(General) { field("No."; "No.") { ApplicationArea = All; } } part("SalesLines"; "Sales Order Subform") { SubPageLink = "Document No." = field("No."); } }
Ein Beispiel hierfür ist die Page 'Sales Order', auf welcher im FastTab 'Allgemein' sowohl die Detailinformationen eines Eintrags aus der Tabelle 'Sales Header' als auch eine Liste von Einträgen aus der Tabelle 'Sales Lines' angezeigt werden:
Worksheet Pages
Die Worksheet Page gleicht der List Page, da sie Tabelleneinträge in Listenform darstellt. Im Unterschied dazu werden die Einträge nicht sortiert, sondern bleiben in der Reihenfolge, in der sie vom Benutzer angelegt wurden. Voraussetzung dafür ist ein Integer als letztes Feld im Primärschlüssel der Tabelle sowie die AutoSplitKey
-Property auf der Page:
AutoSplitKey = true;
Zusätzlich können Fußzeilen eingeblendet werden, welche Detailinformationen über die ausgewählte Zeile oder Zusammenfassungen aller Zeilen anzeigen können.
Häufig werden Worksheet Pages in Buchblättern verwendet:
Role Center Page
Eine Role Center Page stellt eine vom Benutzer anpassbare Startseite dar, welche ihm die für seine Rolle wichtigsten Aufgaben präsentiert und ihm relevante Informationen anzeigt.
Zum Erstellen eines Role Centers wird eine RoleCenter
-Area benötigt, in welchem die anzuzeigenden Elemente als Parts eingebunden werden:
area(RoleCenter) { part(Activities; "SO Processor Activities") { } }
Auf Role Center Pages können weder trigger
noch actions
verwendet werden.