Der European Article Number (EAN) 13-Barcode ist einer der führenden Barcode-Arten in Europa.
Insbesondere Handelsunternehmen erleichtert EAN 13 die Arbeit sichtlich, sodass das Abscannen in zahlreichen Abläufe genutzt wird.
Bisher ist in Dynamics NAV keine native Lösung zur einfachen Barcode-Generierung verfügbar. Verbreitet sind Techniken, die entweder auf Automation-Controls, die nicht mit aktuellen NAV-Versionen kompatibel sind, basieren. Oder aber handelt es sich um Automation-Controls, die mittels eines Lizenzmodells Gebühren pro User erhebt.
Um die Nutzerfreundlichkeit zu unterstreichen, haben wir uns für die kostenfreie Zugänglichkeit zu unserem Barcodegenerator entschieden. Im Gegenzug freuen wir uns über ein kurzes Feedback: info@navconsulting.de
Installation
Die Bereitstellung einer neuen DotNET Komponente durch den Einsatz der 3-Tier-Architekturr ist sehr einfach. Um die Datei auf dem MiddleTier und den Clients zur Verfügung zu stellen, muss diese nicht umständlich im GAC (Global Assambly Cache) eingetragen und mit administrativen Rechten verteilt werden, sondern wird durch das Kopieren der DLL in den AddIns Ordner direkt verfügbar gemacht.
Der Standardpfad lautet: „C:Program FilesMicrosoft Dynamics NAV90ServiceAdd-ins“. An dieser Stelle können Sie für eine bessere Übersicht einen Unterordner erstellen, oder die Datei direkt in dem Verzeichnis ablegen.
Funktionsweise in einer Codeunit
Für die folgende, beispielhafte Barcode-Generierung werden drei Variablen genutzt. Die Codeunit „File Management“ stellt Funktionen zur Verfügung, die den einfachen Download vom Middle Tier auf den Computer des Users ermöglichen. EAN13 stellt die Referenz auf die bereitgestellte DotNET-Komponente dar. In der Textvariablen wird der Pfad, der auf die temporäre Datei verweist, auf dem Server gespeichert:
Um mit einer Klasse im DotNET arbeiten zu können, muss diese zunächst mit Hilfe eines Konstruktors eine Instanz initialisert werden. Dies geschieht mit dem zuvor aufgeführten Aufruf.
Entsprechend der Vorgaben des zu generierenden Codes müssen die entsprechenden Properties gesetzt werden. Dazu zählen Länder-Hersteller- und Produktcode, ebenso die Prüfziffer.
Des Weiteren sind Parameter für die Darstellung anzugeben. Die Breite und Höhe des zu erstellenden Bildes, können konfiguriert werden, ebenso wie die Schriftgröße. Die genannten Einstellungsmöglichkeiten können über den Parameter Skalierung entsprechend angepasst werden.
Zwecks Debugging haben wir ein weiteres Property erstellt. Dieses ermöglicht die Invertierung der Farben, ist für den tatsächlichen Betrieb jedoch nicht zu empfehlen.
An dieser Stelle wird der Barcode erzeugt und steht in der Klasse zum Abruf bereit.
Der letzte Schritt besteht darin das Bild aus der DotNET-Instanz auf den Client zu transportieren. In Zeile 27 wird der Pfad gesichert, der auf eine temporäre Datei verweist, welcher daraufhin als Speicherort für das Bild verwendet wird. Die letzte Zeile des Programmcode ist dafür verantwortlich die Datei auf den Client zu transferieren.
Funktionsweise in einer Page
Die Funktionsweise innerhalb der Page ist nahezu identisch mit der Implementierung einer Codeunit. Als prägnanter Unterschied hebt sich im Besonderen die benutzerfreundliche Konfiguration einer Page hervor, ebenso wie die Ausgabe. Letztere schreibt nicht mehr lediglich ins Dateisystem, sondern speichert den generierten Barcode im BLOB-Feld einer Tabelle.