Zusätzliche Tabellen ergänzen
mandatory bietet eine Reihe von vordefinierten Tabellen, die mit Pflichtfeldern in vordefinierten Prozessen versehen werden können. Sie können aber auch eigene Tabellen in den Funktionsumfang aufnehmen. Damit diese benutzerdefinierten Tabellen in allen internen Funktionalitäten erkannt werden, sind die folgenden Schritte notwendig.
Eine neue Tabelle ergänzen
Um eine neue Tabelle zu mandatory hinzuzufügen, nutzen Sie einen Code wie hier exemplarisch beschrieben.
[EventSubscriber(ObjectType::Table, Database::"MND_Mandatory Field Setup", 'CustomTables', '', true, true)]
local procedure AddCustomTable(var TableList: Dictionary of [Integer, Boolean])
begin
TableList.Add(Database::"My Record", false);
end;
Parameter:
- TableList: Dieses Dictionary können Sie um Ihre eigene Tabellennummer erweitern. Der zweite Wert steuert, ob es sich bei der neuen Tabelle um eine Stammdaten-Tabelle handelt
Eine neue Unter-Tabelle ergänzen
Zu jeder Tabelle die können beliebig viele zugehörige Unter-Tabellen definiert werten. Diese Unter-Tabellen werden geprüft, wenn der Haupt Datensatz eine Pflichtfeldprüfung unterzogen wird.
[EventSubscriber(ObjectType::Table, Database::"MND_Mandatory Field Setup", 'CustomSubTables', '', true, true)]
local procedure AddCustomSubTable(var SubTableList: Dictionary of [Integer, Boolean]; ParentRecordNo: Integer)
begin
if ParentRecordNo = Database::”My Record” then begin
SubTableList.Add(Database::"My sub Record", false);
SubTableList.Add(Database::"My sub Record 2", false);
end;
end;
Parameter:
- SubTableList: Dieses Dictionary können Sie um Ihre eigene Tabellennummer erweitern. Der zweite Wert steuert, ob es sich bei der neuen Tabelle um eine Stammdaten-Tabelle handelt
- ParentRecordNo: Hier ist die Nummer des der Übergeordneten Tabelle hinterlegt.
Tip
Sie können eine Unter-Tabelle auch zu einer Tabelle hinzufügen, die selber eine Unter-Tabelle ist.
Eine Verknüpfung zur Untertabelle definieren
mandatory kann eine Untertabelle in der Regel automatisch mit dem Übergeordneten Datensatz verknüpfen. In dem die ersten Felder der jeweiligen Datenquellen verglichen werden. Wenn diese Standardmethode nicht funktioniert, müssen Sie diese Verknüpfung manuell herstellen.
[EventSubscriber(ObjectType::Table, Database::"MND_Mandatory Field Setup", 'CustomSubTablesLink', '', true, true)]
local procedure AddCustomSubTableLink(var ParentRecRef: RecordRef; var ChildRecRef: RecordRef; var CustomLink: Boolean)
begin
case ChildRecRef.Number of
Database::"Job Planning Line":
ChildRecRef.FIELD(2).SetRange(Format(ParentRecRef.Field(1).VALUE));
Database::"Job Task":
ChildRecRef.FIELD(1).SetRange(Format(ParentRecRef.Field(1).VALUE));
else
exit;
end;
CustomLink := true;
end;
Parameter:
- CustomLink: Dieser parameter wird auf true gesetzt um mandatory eine individuelle Verknüpfung mitzuteilen.
- ChildRecRef: Der zu filternde Datensatz
- ParentRecRef: Der übergeordnete Datensatz.