Zusatz-Tabellen
Die Standardbelege die im report innkludiert sind, verwenden ein einheitliches Layout, welches sich auf alle Belege des Moduls anwenden lässt. Dieses Standard-Layout hat bereits Bereiche definiert, in dem zusätzliche Tabellen erscheinen können.
Die Erweiterung der Service-Belege nutzt diese zum Beispiel optional.
![]() |
|---|
| Grundlegende Beleg-Struktur |
Sie können diese Tabellen ebenfalls nutzen und für die Belege verfügbar machen.
Important
Diese Optionen sollten Sie nur nutzen, wenn die Möglichkeiten und Darstellung der zusätzlichen Tabellen für Sie ausreichend sind und Sie einfach und schnell eine der zusätzlichen Tabellen einsetzen wollen. Sie haben jederzeit die Möglickeit mit Hilfe einer regulären ReportExtension komplett eigene Berichtbestandteile zu Programmieren und mit einem individualen Layout zu versehen.
Zusätzliche Tabellen aktivieren
Werden Standard, oder Individuale Berichte im Modul aktiviert, werden Informationen über die Tabellen, die für Kopf oder Zeilenbereich genutzt werden bereits mitgegeben. Soll eine weitere Tabelle genutzt werden, so muss diese dem Modul zuerst beigebracht werden.
[EventSubscriber(ObjectType::Table, Database::"RPT_Object Setup", 'AddAdditionalTableIDs', '', true, false)]
local procedure AddAdditionalTable(ReportID: Integer; var TableID: Integer)
begin
case TempReportList."Report ID" of
Report::"My Custom Report",
TempReportList."Line Table No. 2" := Database::"My Custom Table";
end;
end;
Im Anschluß werden in der Einrichtung pro Beleg die Schaltflächen zur Einrichtung der zusätzlichen Tabellen sichtbar und aktiviert und Sie können die Zusätzliche Tabelle wie gewohnt einrichten.
Die zusäztlichen Tabellendaten bereitstellen
Um die zusätzlichen Tabellendaten zu ermitteln und dem Modul bereitzustellen, muss dieses analog dieses Beispieles erfolgen:
[EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_Report Functions", 'OnGetTable2Record', '', true, true)]
local procedure OnGetTable2Record(sender: Codeunit "RPT_Report Functions"; DocHeader: Variant; ReportID: Integer; var Handled: Boolean; var ReturnRecRef: RecordRef)
var
MyTable: Record "My Custom Table";
RecRef: RecordRef;
begin
if ReportID <> Report::"My Custom Report" then
exit;
// ##
//do some coding
// ##
RecRef.GetTable(DocHeader);
MyTable.Reset();
MyTable.SetRange("Document Type", DocHeader."Document Type");
MyTable.SetRange("Document No.", DocHeader."No.");
ReturnRecRef.GetTable(MyTable);
IsHanded := true;
end;
Somit werden die relevanten Tabellen ermittelt und gemäß der Einrichtung angedruckt.
