Layouts
report bietet Ihnen für alle unterstützten Berichte ein integriertes Set an Layouts, die über eine Einrichtung auf Ihre individuellen Anforderungen hin angepasst werden können. Es wird immer empfohlen, diese zu nutzen, damit Sie auch in Zukunft auf neue Techniken und Features vollen Zugriff haben, wenn Sie ein Update durchführen. Die Idee und die Grundidee ist es sich nicht mit dem eigentlichen Report-Design auseinandersetzen zu müssen.
Nichtsdestotrotz ist es natürlich möglich, eigene Layout Dateien im .rdl Format einzusetzen.
Caution
Wir empfehlen dringend, sich mit den Standard Layouts zu arrangieren, da Sie bei einem Update der report Version immer prüfen müssen, ob sich die Standards verändert haben. Sie müssen ihre individual Layouts daher regelmäßig darauf prüfen, ob diese weiterhin mit dem Standard kompatibel sind.
Integrierte Layouts übersteuern
Die von report genutzten integrierten Layouts automatisch erkannt, und den jeweiligen Einrichtungen zugewiesen. Damit die internen Prozesse Ihre eigenen Layouts erkennen und finden können sind drei Schritte notwendig:
Erstellen eines eigenen Layouts
Eigene Layouts werden über eine normale Report Extension erstellt. Hier können Sie ganz normale AL Standard einsetzen um eigene Layouts zu definieren.
Note
Diese Aktion ist ab Version 25 notwendig und kann in älteren Versionen entfallen, hier werden indivbiduelle Layout innerhalb des Einrichtungs-Assistenten manuell hochgeladen.
Das eigene Layout benennen
Damit Sie den internen report Prozessen einen eigenes Layout mitteilen können, müssen Sie diesem Individual Layout einen Namen geben, damit in Folgeprozessen dieses erkannt wird.
[EventSubscriber(ObjectType::Table, Database::"RPT_Object Setup", OnBeforeSaveLayout, '', true, true)]
local procedure CustomLayout(ReportID: Integer; var ReportLayout: Text)
begin
case ReportID of
75010: ReportLayout := 'Custom 1';
end;
end;
Parameter:
- ReportID: Die Nummer des aktuell abgefragten Reports
- ReportLayout: Der Name des aktuell zugewiesene Layout wird hier gespeichert und kann beliebig übersteuert werden.
Standarnamen für das Layout sind in der Basis Installation die Werte: Standard und PrePay (alternatives Layout für Vorauszahlungen), andere Namen können zum vorliegen, wenn Sie eines der offiziellen Addons nutzen.
Das eigene Layout finden
Alle Report-Layouts werden Systemseitig in den Standard Berichtslayouts gespeichert, egal aus welcher Quelle diese ursprünglich in das System gekommen sind. Berichtslayout können aus beliebiegen Apps stammen, mannuell angelegt worden sein, oder generieren sich aus den Standardprozessen des Moduls report.
Damit das passende Layout genutzt wird, muss der internen Routine gesagt werden, welche App as Basis für die Layout-Erstellung genutzt werden soll.
[EventSubscriber(ObjectType::Codeunit, Codeunit::"RPT_RDLC Management", 'OnBeforeGetLayoutList', '', true, true)]
local procedure OnBeforeGetLayoutList(LayoutName: Text; var ReportLayoutList: Record "Report Layout List")
begin
if LayoutName <> 'Custom 1' then
exit;
ReportLayoutList.SetRange("Report ID", Report::"RPT_Sales - Invoice");
ReportLayoutList.SetRange("Application ID", YourCustomAppID);
end;
Parameter:
- LayoutName: Der Name des Layouts, welches aktuell zugewisen werden soll.
- ReportLayoutList: Die interne Datenquelle in der Systemseitig alle Layouts gespeichert sind. Diese muss so gefiltert werden, das das richtige Layout genutzt wird. In der Regel über die "Report ID" und der ID ihrer individuellen App.
Note
Diese Aktion ist ab Version 25 notwendig und kann in älteren Versionen entfallen.
Layout Generierung deaktivieren
Die Einrichtung der report Belege kann in Bereichen wie Belegkopf, Belegfuß, Informationsblock oder den Belegzeilen über die Einrichtung weitestgehend frei konfiguriert werden. Sollten Sie mit diesen Möglichkeiten Ihre Anforderungen nicht ausreichend realisieren können und auf ein individuelles Layout zurückgreifen kann die Anforderung bestehen zu verhindern, das report versucht die Belegbereiche zum Beispiel über den Einrichtungs-Assistenten neu zu erstellen.
Sie können somit frei wählen, ob Sie die Möglichkeiten des Addons nutzen, oder Anforderungen klassisch mit RDLC Programmierung programmieren.
Sie können die Layout generierung mit den Mitteln der Spezial Einrichtungen der Einrichtung Pro Beleg beeinflussen mit den Optionen:
- Layout deaktivieren: Informationsblock
- Layout deaktivieren: Belegzeilen
- Layout deaktivieren: Belegkopf
- Layout deaktivieren: Belegfuß
- Layout deaktivieren: Zusatztabelle (z.b. in Service Belegen)
Caution
Diese Einrichtung muss in dem Beleg vorgenommen werden, der im Original auch für das Layout zuständig gewesen wäre. Zum Beispiel Teilen sich viele Belege die Einrichtung der Belegzeilen, wollen Sie die Belegzeilen abschalten, wird dieses in dem Report getan, der auch die eigentliche initiale Einrichtung hat. Eine Mindest-Einrichtung ist daher immer notwendig