Eigene Textbaustein-Tabellen definieren
report bietet die Möglichkeit, Standardtexte zu erstellen, die als Kopf-, Fuß- oder Zeilentext gedruckt werden. Diese Texte können mit vordefinierten Datensätzen verknüpft werden um aus diesen zum Beispiel beliebige Felder als Platzhalter einzusetzen. Wenn Sie zusätzliche Untertabellen hinzufügen wollen, sind folgende Schritte notwendig.
Eine neue Tabellenverknüpfung ergänzen
Als erstes müssen Sie die Tabelle selbst hinzufügen.
[EventSubscriber(ObjectType::Table, Database::"RPT_Document Text", 'AdditionalLinkedTable', '', true, true)]
local procedure MyCustomSubtable(var NameValueBuffer: Record "Name/Value Buffer"; Where: Option; ReportID: Integer)
var
ItemVariant: Record "Item Variant";
begin
case Where of
2: NameValueBuffer.AddNewEntry(ItemVariant.TableCaption, '5401');
end;
end;
Parameter:
- NameValueBuffer: Dieser temporäre Datensatz wird genutzt um den Tabellennamen und die Tabellennummer abzuspeichern (Standard Funktionalität)
- Where: Option der aktuellen Textposition (0 : Belegkopf, 1: Belegfuß, 3 : Belegzeile)
- ReportID: The ID / Nummer des Reports, für den gerade Textbausteine eingerichtet werden sollen.
Bei korrekter Einrichtung erscheint die neue Tabelle in der Auswahl, wenn Sie eine Untertabelle in der Einrichtung auswählen.
Die neue Tabelle ermitteln
Damit die neue Tabelle zur Laufzeit korrekt ermittelt wird ist folgende Anpassung notwendig.
[EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_Report Functions", 'GetCustomLinkedTable', '', true, true)]
local procedure FindMyCustomSubtable(var RecFound: Boolean; var ParentRecRef: RecordRef; var SubTableRecRef: RecordRef; SubTableID: Integer)
var
ItemVariant: Record "Item Variant";
begin
case SubTableID of
Database::"Item Variant":
begin
// ##
//do some coding
// ##
SubTableRecRef.GetTable(ItemVariant);
RecFound := true;
end;
end;
end;
Parameter:
- RecFound: Boolean um dem Addon zu sagen, das der gewünschte Datensatz ermittelt wurde.
- ParentRecRef: Der aktuelle Datensatz für den die Untertabelle gesucht wird.
- SubTableRecRef: In dieser Variable wird der gefundene Datensatz gespeichert.
- SubtableID: Tabellen-ID der zu suchenden Tabelle