EPC-QR-Code per DLL

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Das Bezahlen von Rechnungen macht heutzutage noch weniger Spaß als es ohnehin schon tut – neben der unausweichlichen Verminderung des Kontostandes ist es auch keine Freude, ellenlange IBAN-Folgen und kryptische Verwendungszwecke einzugeben. Wie Ihre Kunden demnächst wenigstens letzteres schwungvoll erledigen können, haben wir im Artikel EPC-QR-Code für Rechnungen (www.datenbankentwickler.net/300) gezeigt. Damit gelingt das Erzeugen eines QR-Codes, der alle notwendigen Informationen enthält, die von den gängigen Smartphone-Apps der Banken problemlos per Kamera eingelesen und in die Felder des Überweisungsformulars füllt. Im genannten Artikel können Sie den QR-Code für eine Rechnung vorbereiten, aber wenn Sie mehrere Rechnungen auf einen Rutsch stellen wollen, dann wollen Sie die Daten beispielsweise aus einer Datenbank direkt per Code verarbeiten und den erstellten QR-Code direkt in eine Rechnung einbetten. Die Voraussetzungen erledigen wir im vorliegenden Artikel, indem wir eine DLL mit allen notwendigen Funktionen zum Erstellen des notwendigen QR-Codes programmieren.

Aufgaben der DLL

Was soll diese DLL erledigen? Grob gefasst soll sie die Daten entgegennehmen, die für eine Überweisung benötigt werden, und auf irgendeine Art und Weise den dann zu erstellenden EPC-QR-Code zurückliefern.

Auf welche Weise könnte das geschehen? Dazu gibt es zum Beispiel die folgenden Möglichkeiten:

  • Man übergibt beim Initialisieren der DLL einen Pfad zu einer Datei, in welcher der Code dann gespeichert wird.
  • Oder die DLL stellt ein direkt weiterverarbeitbares Objekt mit dem entsprechenden Objekttyp zurück – für die Weiterverarbeitung unter Access beispielsweise als StdPicture. Hier wäre zu klären, ob .NET dies kann.

Übergabe der benötigten Daten

Welche Werte wollen wir der DLL zum Verarbeiten im EPC-QR-Code übergeben?

  • BIC
  • IBAN
  • Verwendungszweck
  • Empfängername
  • Betrag

Art der Übergabe der benötigten Informationen

Wie wollen wir die Informationen an die DLL übergeben? Für diese Informationen können wir entweder Eigenschaften für die in der DLL enthaltenen Klasse, denen wir die Werte zuweisen können, oder wir statten die Funktion, welche den QR-Code erstellt und dann in der einen oder anderen Form zurückliefert, mit den entsprechenden Parametern aus. Wir implementieren einfach beide Varianten, damit der Benutzer die DLL nach seinen eigenen Wünschen einsetzen kann.

Projekt erstellen

Als Erstes erstellen wir ein neues Projekt mit der Vorlage Klassenbibliothek (.NET Framework) für die Sprache Visual Basic (siehe Bild 1).

Auswahl des Projekttyps

Bild 1: Auswahl des Projekttyps

Anschließend geben wir als Namen amvFoto-ueber-weisung ein und wählen den gewünschten Pfad aus (siehe Bild 2). Hier wählen wir auch das gewünschte Zielframework aus, in diesem Fall .NET 4.7.2.

Konfigurieren des neuen Projekts

Bild 2: Konfigurieren des neuen Projekts

Klassennamen anpassen

Danach stellen wir den Klassennamen von Class1.vb auf EPCQRCode.vb um. Die anschließende Nachfrage, ob auch alle Verweise auf die Klasse geändert werden sollen, akzeptieren wir mit einem Klick auf Ja.

Öffentliche Eigenschaften hinzufügen

Anschließend erweitern wir die noch leere Klasse um mehrere Elemente, als Erstes um den Import des Namespaces System.Runtime.InteropServices:

Imports System.Runtime.InteropServices

Danach könnten wir bereits die Klasse EPCQRCode hinzufügen und für diese die fünf öffentlichen Eigenschaften definieren, die für die Übergabe der für das Erstellen des QR-Codes notwendigen Daten verwendet werden. Wenn wir diese Klasse später im VBA-Editor einer Access-Anwendung referenzieren, zeigt diese Klasse jedoch nicht nur die von uns hinzugefügten Eigenschaften an, sondern auch die Standardeigenschaften einer Klasse wie GetHashCode, GetType und ToString. Diese verwirren in diesem Kontext jedoch mehr als dass sie helfen, also sorgen wir dafür, dass unsere Klasse nur die von uns definierten Member anzeigt.

Dies erreichen wir, indem wir eine öffentliche Schnittstelle namens IEPCQRCode definieren, welche nur die gewünschten Eigenschaften vorgibt. Für diese legen wir überdies ein Attribut fest, und zwar InterfaceType mit dem Wert ComInterfaceType.InterfaceIsDual (dafür benötigen wir den oben genannten Namespace-Verweis):

 

Schreibe einen Kommentar