Erweiterung von Berichten mit dem Document Central Barcode
In dieser Dokumentation erstellen wir eine Erweiterung, die einen Bericht in Business Central mit Document Central erweitert. Das Erweitern eines Berichts mit Document Central-Code wird verwendet, damit beim Drucken eines Berichts oder beim Buchen/Konvertieren eines Dokuments automatisch ein Document Central Barcode in diesem Prozess generiert und hinzugefügt werden kann.
Es gibt zwei Möglichkeiten, dies zu tun:
Im Falle eines benutzerdefinierten Berichts können Sie den Code direkt in den Bericht einfügen. Im Falle anderer Berichte können Sie eine Berichtserweiterung erstellen, die den Code ausführt. Es gibt auch einen Unterschied zwischen Word-Berichten und RDLC-Berichten.
Die folgenden Voraussetzungen müssen erfüllt sein:
- Das Document Central-Modul muss lizenziert sein.
- CORE muss in der Erweiterung als Referenz verfügbar sein.
- Document Central muss in der Erweiterung als Referenz vorhanden sein.
Erweiterung von RDLC-Berichten mit einem Document Central Barcode:
- Wir werden nun einen Document Central Barcode auf einen von Ihnen ausgewählten Bericht anwenden.
- Bitte erstellen Sie eine neue .al-Datei in VS Code.
- Fügen Sie nun den folgenden Code in die neu erstellte Datei ein:
reportextension 5227509 "DMS_EXT Test" extends XXX
{
dataset
{
add(Header)
{
column(Global_Barcode; GlobalBarcode)
{ }
}
modify(Header)
{
trigger OnAfterAfterGetRecord()
var
LocalBarcodeText: Text;
LocalEnumSIMDMSBarcodeType: Enum "SIM_DMS Barcode Type";
LocalCodeunitSIMDMSBarcodeMgt: Codeunit "SIM_DMS Barcode Management";
LocalRRef: RecordRef;
begin
LocalRRef.Get(Header.RecordId());
LocalBarcodeText := LocalCodeunitSIMDMSBarcodeMgt.CreateBarcode(LocalRRef, Header."No.", '', XXX, false);
GlobalBarcode := LocalCodeunitSIMDMSBarcodeMgt.CreateLabel(LocalBarcodeText, 250, 600, true, Format(LocalEnumSIMDMSBarcodeType::Code128), 'PNG');
end;
}
}
var
GlobalBarcode: Text;
}
Info
Im Enum LocalEnumSIMDMSBarcodeType sind alle unterstützten Barcode-Typen gespeichert. Um den Barcode-Typ zu ändern, wählen Sie den entsprechenden Wert des Enums.
- Ändern Sie XXX in die ID des Berichts, den Sie bearbeiten möchten.
- Veröffentlichen Sie diese Erweiterung.
- Öffnen Sie das personalisierte Berichtsdesign in Business Central.
- Klicken Sie auf die Aktion Neu.
- Geben Sie die Berichts-ID des Berichts ein, den Sie mit dem Barcode erweitern möchten.
- Wählen Sie RDLC-Layout.
- Öffnen Sie die .rdl-Datei.
- Unter dem Tab Einfügen müssen Sie nun ein Bild zum Layout hinzufügen:

- Finden Sie einen Platz, wo Sie den Barcode platzieren möchten.
- Rechtsklicken Sie auf das hinzugefügte Bild und drücken Sie Bildeigenschaften.
- Die folgenden Änderungen müssen vorgenommen werden:
- Allgemein:
- Name -> Barcode
- Bildherkunft -> Datenbank
- Dieses Feld verwenden -> =System.Convert.FromBase64String(Fields!Global_Barcode.Value)
- Diesen MIME-Typ verwenden -> image/bmp
- Größe:
- Anzeige -> Proportional anpassen
- Sichtbarkeit:
- Ausdruck -> =IsNothing(Fields!Global_Barcode.Value) OR (Globals!PageNumber>1)
- Allgemein:
- Speichern Sie die .rdl-Datei.
- Öffnen Sie das personalisierte Berichtsdesign erneut in Business Central und klicken Sie auf den Eintrag, den Sie erstellt haben.
- Klicken Sie unter dem Tab Layout auf die Aktion Bildlayout und wählen Sie die .rdl-Datei, die Sie bearbeitet haben.
- Gehen Sie zur Berichtslayoutauswahl.
- Wählen Sie den Bericht, den Sie bearbeitet haben, und ändern Sie das Layout auf das, das Sie gerade erstellt haben.
- Wenn Sie diesen Bericht drucken, sollte ein Barcode gedruckt werden.
Erweiterung von Word-Berichten mit einem Document Central Barcode:
- Wenden Sie einen Document Central Barcode auf einen von Ihnen ausgewählten Bericht an.
- Erstellen Sie eine neue .al-Datei in VS Code.
- Fügen Sie den folgenden Code in die neu erstellte Datei ein oder verwenden Sie Ihr eigenes Blob-Feld anstelle des Blob-Felds des Datensatzes SIM_CORE Temp Table. Dieses Feld muss nur den Subtyp Bitmap oder gar keinen Subtyp haben.:
reportextension 5227509 "DMS_EXT Test" extends XXX
{
dataset
{
add(Header)
{
column(Global_Barcode; GlobalRecordSIMCORETempTable."Blob 1")
{ }
}
modify(Header)
{
trigger OnAfterAfterGetRecord()
var
LocalSIMDMSBarcodeMgt: Codeunit "SIM_DMS Barcode Management";
LocalCodeunitBase64Convert: Codeunit "Base64 Convert";
LocalEnumSIMDMSBarcodeType: Enum "SIM_DMS Barcode Type";
LocalRecordRef: RecordRef;
LocalOutStream: OutStream;
LocalBarcodeText: Text;
LocalBarcodeBase64Text: Text;
begin
LocalRecordRef.Get(Header.RecordId());
LocalBarcodeText := LocalSIMDMSBarcodeMgt.CreateBarcode(LocalRecordRef, Header."No.", '', XXX, false);
LocalBarcodeBase64Text := LocalSIMDMSBarcodeMgt.CreateLabel(LocalBarcodeText, 250, 600, true, Format(LocalEnumSIMDMSBarcodeType::Code128), 'PNG');
GlobalRecordSIMCORETempTable."Blob 1".CreateOutStream(LocalOutStream);
LocalCodeunitBase64Convert.FromBase64(LocalBarcodeBase64Text, LocalOutStream);
end;
}
}
var
GlobalRecordSIMCORETempTable: Record "SIM_CORE Temp Table";
}
Info
Im Enum LocalEnumSIMDMSBarcodeType sind alle unterstützten Barcode-Typen gespeichert. Um den Barcode-Typ zu ändern, wählen Sie den entsprechenden Wert des Enums.
- Ändern Sie XXX in die ID des Berichts, den Sie bearbeiten möchten.
- Veröffentlichen Sie diese Erweiterung.
- Öffnen Sie die Word-Datei des Berichts.
- Unter dem Tab Entwickler müssen Sie das XML-Zuordnungsfenster auswählen:

- Wählen Sie die hinzugefügte Zeile aus und fügen Sie sie als Bild hinzu:

- Speichern Sie die Word-Datei.
- Wenn Sie diesen Bericht drucken, sollte ein Barcode gedruckt werden.