{"id":55001400,"date":"2023-06-01T00:00:00","date_gmt":"2023-06-17T09:18:42","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=1400"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Rechnungsbericht_mit_EPCQRCode","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/","title":{"rendered":"Rechnungsbericht mit EPC-QR-Code"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Nachdem wir in einigen vorherigen Beitr&auml;gen eine feine Verwaltung f&uuml;r Kunden, Produkte und Bestellungen programmiert haben, wagen wir uns nun an ein Thema heran, das noch recht neu ist und das auch erst durch die wachsende Anzahl von Anwendungen im Finanzbereich f&uuml;r mobile Ger&auml;te entstanden ist. Wir wollen Rechnungen nun nicht mehr nur auf einem schn&ouml;den Blatt Papier oder als PDF-Dokument erzeugen, sondern diese auch noch mit einem schicken QR-Code versehen, der die f&uuml;r die Begleichung der Rechnung &uuml;ber die Banking-App notwendige Bilddatei anzeigt. Und wenn wir schon dabei sind, erkl&auml;ren wir auch direkt, wie Sie auf Basis der bisherigen Teile dieser Beitragsreihe einen Rechnungsbericht erstellen.<\/b><\/p>\n<h2>Hinweis<\/h2>\n<p>Die Downloads zu diesem Beitrag enthalten die DLL zur Generierung des hier verwendeten EPC-QR-Codes. Diese DLL kann hier erworben werden:<\/p>\n<pre>https:\/\/shop.minhorst.com\/access-tools\/372\/amvepcqrcode?c=78<\/pre>\n<p>Als Abonnent dieses Magazins erhalten Sie eine Kopie der DLL, die Sie f&uuml;r den privaten Gebrauch nutzen k&ouml;nnen. F&uuml;r gesch&auml;ftliche Zwecke oder f&uuml;r den Einbau in Anwendungen f&uuml;r Ihre Kunden k&ouml;nnen Sie eine oder mehrere Lizenzen erwerben.<\/p>\n<h2>Vorbereitungen<\/h2>\n<p>Bevor wir uns mit der Erstellung des eigentlichen Berichts besch&auml;ftigen, erledigen wir ein paar vorbereitende Arbeiten:<\/p>\n<ul>\n<li>Hinzuf&uuml;gen einer Schaltfl&auml;che zum Formular <b>frmBestellungDetails <\/b>zum &Ouml;ffnen der Rechnung<\/li>\n<li>Erstellen einer Optionentabelle mit den Daten des Rechnungsversenders<\/li>\n<li>Erstellen eines Formulars zum Verwalten der Optionen dieses Formulars<\/li>\n<\/ul>\n<p>Danach k&uuml;mmern wir uns um den Bericht selbst.<\/p>\n<h2>Hinzuf&uuml;gen einer Schaltfl&auml;che zum &Ouml;ffnen des Rechnungsberichts<\/h2>\n<p>Zum Erstellen von Rechnungen eignen sich verschiedene Orte in einer Datenbank. Wir k&ouml;nnten in der &Uuml;bersicht aller Bestellungen eine Schaltfl&auml;che hinzuf&uuml;gen, die alle aktuell angezeigten Bestellungen in Rechnung stellt, aber wir wollen es erst einmal einfacher halten und nur eine Rechnung gleichzeitig anzeigen. Dazu verwenden wir das Formular <b>frmBestellungDetails<\/b>, das jeweils eine Bestellung anzeigt. Diesem f&uuml;gen wir eine Schaltfl&auml;che namens <b>cmdRechnungsberichtErstellen <\/b>hinzu (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_001.png\" alt=\"Schaltfl&auml;che zum Anzeigen des Rechnungsberichts\" width=\"524,559\" height=\"482,3239\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Schaltfl&auml;che zum Anzeigen des Rechnungsberichts<\/span><\/b><\/p>\n<p>F&uuml;r diese Schaltfl&auml;che hinterlegen wir die folgende Ereignisprozedur:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdRechnungsberichtErstellen_Click()\r\n     DoCmd.OpenReport \"rptRechnung\", _\r\n         View:=acViewPreview, _\r\n         WhereCondition:=\"ID = \" & Me!ID\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Dies &ouml;ffnet den noch zu erstellenden Bericht namens <b>rptRechnung <\/b>in der Seitenansicht &#8211; das ist die Ansicht, welche die Druckansicht anzeigt. Au&szlig;erdem &uuml;bergeben wir dem Bericht die <b>ID <\/b>der aktuell im Formular angezeigten Bestellung.<\/p>\n<h2>Tabelle f&uuml;r die Optionen des Rechnungssenders erstellen<\/h2>\n<p>Unter Optionen des Rechnungssenders verstehen wir solche Daten, die im Bericht landen sollen, aber bisher nirgends gespeichert werden. Dazu geh&ouml;ren Informationen wie Firmenname, Briefkopf, Bankverbindung, Umsatzsteuer-Identifikationsnummer et cetera.<\/p>\n<p>Diese k&ouml;nnten wir auch direkt im Bericht anlegen, aber wenn der Benutzer diese dann &auml;ndern m&ouml;chte, m&uuml;sste er den Entwurf des Berichts anpassen &#8211; und das wollen wir tunlichst vermeiden. Also wollen wir solche Informationen in einer Optionentabelle speichern, deren Daten in einem entsprechenden Formular angezeigt werden.<\/p>\n<p>Der Entwurf dieser Tabelle wird in Bild 2 dargestellt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_003.png\" alt=\"Tabelle zum Speichern der Optionen f&uuml;r den Bericht\" width=\"599,559\" height=\"478,5299\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Tabelle zum Speichern der Optionen f&uuml;r den Bericht<\/span><\/b><\/p>\n<h2>Formular zum Verwalten der Optionen<\/h2>\n<p>Das Formular, mit dem wir die Optionen f&uuml;r den Bericht eingeben wollen, finden Sie in Bild 3. Es verwendet die Tabelle <b>tblOptionen <\/b>als Datensatzquelle. Wir ziehen alle Felder au&szlig;er dem Feld <b>ID <\/b>in den Detailbereich des Formularentwurfs.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_004.png\" alt=\"Formular zum Eingeben der Optionen in der Entwurfsansicht\" width=\"424,5589\" height=\"357,0154\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Formular zum Eingeben der Optionen in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Dadurch, dass wir in den vorherigen Teilen der Beitragsreihe bereits ein Formular namens <b>Normal <\/b>erstellt haben, in dem wir auch einige Standardeinstellungen f&uuml;r Beschriftungsfelder vorgenommen haben, werden die Beschriftungen direkt mit Doppelpunkten abgeschlossen.<\/p>\n<p>Da das Formular immer nur einen Datensatz anzeigen und keinen Wechsel zu einem neuen, leeren Datensatz erm&ouml;glichen soll, stellen wir die Eigenschaft <b>Zyklus <\/b>auf <b>Aktueller Datensatz <\/b>ein. Au&szlig;erdem stellen wir die Eigenschaften <b>Bildlaufleisten<\/b>, <b>Trennlinien<\/b>, <b>Navigationsschaltfl&auml;chen <\/b>und <b>Datensatzmarkierer <\/b>auf den Wert <b>Nein <\/b>und <b>Automatisch zentrieren <\/b>auf den Wert <b>Ja <\/b>ein.<\/p>\n<p>Schlie&szlig;lich legen wir den Namen der Schaltfl&auml;che mit der Beschriftung <b>OK <\/b>auf <b>cmdOK <\/b>fest und hinterlegen f&uuml;r diese die folgende Ereignisprozedur:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdOK_Click()\r\n     DoCmd.Close acForm, Me.Name\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Au&szlig;erdem legen wir f&uuml;r die Textfelder <b>Firmenname<\/b>, <b>Briefkopf<\/b>, <b>Empfaengername <\/b>und <b>Adresszeile <\/b>die Eigenschaft <b>Horizontaler Anker <\/b>auf <b>Beide <\/b>ein, damit die Gr&ouml;&szlig;e dieser Steuerelemente mit dem Vergr&ouml;&szlig;ern des Formulars ebenfalls vergr&ouml;&szlig;ert wird. Diese Eigenschaft m&uuml;ssen wir f&uuml;r die dazugeh&ouml;rigen Bezeichnungsfelder anschlie&szlig;end wieder auf Links zur&uuml;cksetzen.<\/p>\n<p>Wechseln wir zur Formularansicht und geben wir einige Daten in der Formular ein, sieht dieses wie in Bild 4 aus. Nach der Eingabe der Daten k&ouml;nnen wir es mit einem Klick auf <b>OK <\/b>schlie&szlig;en.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_005.png\" alt=\"Formular zum Eingeben der Optionen in Aktion\" width=\"499,5589\" height=\"312,3401\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Formular zum Eingeben der Optionen in Aktion<\/span><\/b><\/p>\n<h2>Neuen Bericht erstellen<\/h2>\n<p>Den neuen Bericht erstellen wir mit dem Ribbonbefehl <b>Erstellen|Berichte|Berichtsentwurf<\/b>. Danach landen wir in der Entwurfsansicht und nehmen direkt die erste Einstellung vor.<\/p>\n<p>Dabei legen wir f&uuml;r den Detailbereich die Eigenschaft <b>Alternative Hintergrundfarbe <\/b>auf den Wert der Eigenschaft <b>Hintergrundfarbe <\/b>ein, in diesem Fall von <b>Hintergrund 1, Dunkler 5% <\/b>zu <b>Hintergrund 1<\/b> (siehe Bild 5).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_002.png\" alt=\"Einstellen der alternativen Hintergrundfarbe f&uuml;r den Detailbereich\" width=\"649,559\" height=\"379,252\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Einstellen der alternativen Hintergrundfarbe f&uuml;r den Detailbereich<\/span><\/b><\/p>\n<h2>Abfrage f&uuml;r den Bericht<\/h2>\n<p>Nun f&uuml;gen wir die Datensatzquelle f&uuml;r den Bericht hinzu. Und im Gegensatz zu Formularen, wo man immer m&ouml;glichst eine Tabelle pro Haupt-\/Unterformular verwendet, damit die Daten noch bearbeitet werden k&ouml;nnen, statten wir die Abfrage f&uuml;r den Bericht mit allen Daten aus, die wir darin anzeigen wollen.<\/p>\n<p>Da wir wollen, dass die Abfrage optimiert wird, um schnell die ben&ouml;tigten Daten zusammenstellen zu k&ouml;nnen, speichern wir ihn als eigene Abfrage, die auch im Navigationsbereich angezeigt wird. Diese Abfrage nennen wir <b>qryRechnung<\/b>. Wir f&uuml;gen dieser fast alle Tabellen der Datenbank hinzu (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_006.png\" alt=\"Abfrage als Datensatzquelle des Rechnungsberichts\" width=\"700\" height=\"390,7555\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Abfrage als Datensatzquelle des Rechnungsberichts<\/span><\/b><\/p>\n<p>Aus diesen Tabellen ziehen wir die folgenden Felder in den Abfrageentwurf, beginnend mit der Tabelle <b>tblBestellungen<\/b>, dann nach rechts und anschlie&szlig;end nach links:<\/p>\n<ul>\n<li><b>tblBestellungen<\/b>: <b>ID<\/b>, <b>Bestellnummer<\/b>, <b>BestelltAm<\/b>, <b>RechnungAm<\/b>, <b>Zahlungsziel<\/b><\/li>\n<li><b>tblBestellpositionen<\/b>: <b>Einzelpreis<\/b>, <b>Mehrwertsteuersatz<\/b>, <b>Menge<\/b>, <b>Rabatt<\/b><\/li>\n<li><b>tblProdukte<\/b>: <b>Produktbezeichnung<\/b><\/li>\n<li><b>tblEinheiten<\/b>: <b>Einheitsbezeichnung<\/b><\/li>\n<li><b>tblKunden<\/b>: <b>Kundennummer<\/b>, <b>Firma<\/b>, <b>Vorname<\/b>, <b>Nachname<\/b>, <b>Strasse<\/b>, <b>PLZ<\/b>, <b>Ort<\/b>, <b>UstIDNr<\/b><\/li>\n<li><b>tblAnrede<\/b>: <b>AnredeBrief<\/b><\/li>\n<li><b>tblLaender<\/b>: <b>LandBezeichnung<\/b><\/li>\n<li><b>tblOptionen<\/b>: alle au&szlig;er <b>ID<\/b><\/li>\n<\/ul>\n<p>Wir f&uuml;gen also selbst alle Felder der Tabelle <b>tblOptionen <\/b>hinzu, obwohl diese mit keiner der hier vorliegenden Tabellen verkn&uuml;pft ist. Aber ist das ein Problem, weil ja dann alle Kombinationen der Datens&auml;tze der Tabellen <b>tblOptionen <\/b>und der Datens&auml;tze der &uuml;brigen Tabellen ausgegeben werden? Nein, das ist kein Problem &#8211; solange die Tabelle <b>tblOptionen <\/b>nur den einen vorgesehenen Datensatz enth&auml;lt.<\/p>\n<p>Sollte man einmal mehrere S&auml;tze von <b>Optionen <\/b>verwenden wollen, um Rechnungen mit verschiedenen Erstellern zu erzeugen, dann muss man noch eine entsprechende Verkn&uuml;pfung hinzuf&uuml;gen. Das wollen wir im Rahmen dieses Beitrags jedoch nicht tun.<\/p>\n<h2>Hinzuf&uuml;gen der Felder zum Bericht<\/h2>\n<p>Nun stellen wir f&uuml;r den Bericht die Abfrage <b>qryRechnung <\/b>als <b>Datensatzquelle <\/b>ein. Au&szlig;erdem blenden wir den Bereich Berichtskopf\/-fu&szlig; ein. Diesen ziehen wir in der H&ouml;he ein wenig gr&ouml;&szlig;er und stellen die Hintergrundfarbe auf <b>Automatisch <\/b>ein. Die Bereiche <b>Seitenkopf <\/b>und <b>Seitenfu&szlig; <\/b>minimieren wir zun&auml;chst in der H&ouml;he &#8211; diese holen wir sp&auml;ter wieder dazu.<\/p>\n<p>[<\/p>\n<p>Danach k&ouml;nnen wir beginnen, die Felder in der gew&uuml;nschten Anordnung in den Bericht zu ziehen. Dabei landen zuerst einmal die Elemente der Tabelle <b>tblOptionen <\/b>an den entsprechenden Stellen. Diese ziehen wir dabei einfach aus der Feldliste an die jeweilige Stelle im Bericht, wie Bild 7 zeigt.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_007.png\" alt=\"Hinzuf&uuml;gen der Elemente der Tabelle tblOptionen\" width=\"700\" height=\"495,3845\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: Hinzuf&uuml;gen der Elemente der Tabelle tblOptionen<\/span><\/b><\/p>\n<p>Wenn Sie die drei Felder <b>Firmenname<\/b>, <b>Briefkopf <\/b>und <b>tblOptionen.UstIdNr <\/b>rechts oben anordnen, sollten Sie diese noch rechtsb&uuml;ndig ausrichten.<\/p>\n<p>Au&szlig;erdem sollten Sie, sp&auml;testens nach dem Hinzuf&uuml;gen aller Steuerelemente, einmal alles markieren und die Eigenschaft <b>Rahmenart <\/b>f&uuml;r alle Elemente auf <b>Transparent <\/b>einstellen &#8211; mit Ausnahme der Linie, die wir unter dem Element <b>Adresszeile <\/b>im Bereich f&uuml;r das Adressfenster untergebracht haben.<\/p>\n<h2>Empf&auml;ngeradresse hinzuf&uuml;gen<\/h2>\n<p>Der n&auml;chste Schritt ist das Hinzuf&uuml;gen der Empf&auml;ngeradresse. Hier kann es sein, dass der Kunde eine Firma angegeben hat oder auch nicht.<\/p>\n<p>F&uuml;r den Fall, dass eine Firma vorliegt, soll diese in der ersten Zeile der Adresse erscheinen und die Anrede samt Vorname und Nachname des Empf&auml;ngers in der zweiten Zeile. Finden wir keine Firma vor, soll die Anrede des Empf&auml;ngers in der ersten Zeile ausgegeben werden. Beispiel:<\/p>\n<pre>M&uuml;ller GmbH\r\nHerrn Dieter M&uuml;ller\r\n...<\/pre>\n<p>oder<\/p>\n<pre>Herrn\r\nDieter M&uuml;ller\r\n...<\/pre>\n<p>In den weiteren Zeilen sollen die Stra&szlig;e sowie PLZ und Ort folgen. Bei Adressen au&szlig;erhalb Deutschlands geben wir in der letzten Zeile das Land an.<\/p>\n<p>F&uuml;r den Inhalt der Empf&auml;ngeradresse w&auml;hlen wir also den folgenden Ausdruck, basierend auf den zur Verf&uuml;gung stehenden Feldern:<\/p>\n<pre>=Wenn(\r\nIstNull([Firma]);[AnredeBrief];[Firma]) \r\n& Zchn(13) & Zchn(10) \r\n& Wenn(IstNull([Firma]);\"\";[AnredeBrief] & \" \") \r\n& [Vorname] & \" \" & [Nachname] \r\n& Zchn(13) & Zchn(10) \r\n& [Strasse] \r\n& Zchn(13) & Zchn(10) \r\n& [PLZ] & \" \" & [Ort] \r\n& Zchn(13) & Zchn(10) \r\n& Wenn([LandBezeichnung]=\"Deutschland\";\"\";\r\n[LandBezeichnung])<\/pre>\n<p>Diesen Ausdruck bringen wir in der Eigenschaft <b>Steuerelementinhalt <\/b>eines neuen Textfeldes namens <b>txtEmpfaenger <\/b>unter. Auch f&uuml;r dieses Feld stellen wir die Eigenschaft <b>Rahmenart <\/b>auf <b>Transparent <\/b>ein.<\/p>\n<p>Au&szlig;erdem positionieren wir das Textfeld so, dass es im Fenster eines Briefumschlags erscheint.<\/p>\n<p>Die Position lautet:<\/p>\n<ul>\n<li>Abstand zum linken Seitenrand: 25 mm<\/li>\n<li>Abstand zum oberen Seitenrand: 50,8 mm<\/li>\n<\/ul>\n<p>Die Ma&szlig;e lauten:<\/p>\n<ul>\n<li>Breite: 90 mm<\/li>\n<li>H&ouml;he: 45 mm<\/li>\n<\/ul>\n<p>Dabei berechnen wir das Textfeld mit dem Absender mit ein und sehen 10 mm H&ouml;he daf&uuml;r vor, das Textfeld mit der Empf&auml;ngeradresse darf also 35 mm hoch sein.<\/p>\n<p>Beim Bericht ziehen wir von diesen Werten noch den oberen und den linken Seitenrand ab. Der linke Seitenrand soll 25 mm betragen, also platzieren wir das Textfenster am linken Rand des Berichtsentwurfs. Auch f&uuml;r den oberen Rand planen wir 10 mm ein, sodass die Absenderadresse in 40,8 mm Abstand vom oberen Rand des Entwurfs landet. Insgesamt sieht das Textfeld nun wie in Bild 8 aus.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_008.png\" alt=\"Einf&uuml;gen des Textfeldes f&uuml;r die Empf&auml;ngeradresse\" width=\"574,559\" height=\"493,5983\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Einf&uuml;gen des Textfeldes f&uuml;r die Empf&auml;ngeradresse<\/span><\/b><\/p>\n<h2>Einstellen der Seitenr&auml;nder<\/h2>\n<p>Damit die Abmessungen im Berichtsentwurf sp&auml;ter zum Ausdruck passen, stellen wir noch sicher, dass die Seitenr&auml;nder des Berichts entsprechende Werte aufweisen. Dazu w&auml;hlen wir von der Entwurfsansicht des Berichts aus den Ribbonbefehl <b>Seite einrichten|Seitenlayout|Seite einrichten<\/b> (siehe Bild 9).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_009.png\" alt=\"Aufrufen der Einstellungen f&uuml;r die Seitenr&auml;nder des Berichts\" width=\"549,559\" height=\"220,763\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Aufrufen der Einstellungen f&uuml;r die Seitenr&auml;nder des Berichts<\/span><\/b><\/p>\n<p>Dies &ouml;ffnet den Dialog <b>Seite einrichten <\/b>aus Bild 10. Hier legen wir den linken Seitenrand auf 25 mm fest.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_010.png\" alt=\"Einstellungen f&uuml;r die Seitenr&auml;nder\" width=\"424,5589\" height=\"423,402\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 10: Einstellungen f&uuml;r die Seitenr&auml;nder<\/span><\/b><\/p>\n<p>Wechseln wir anschlie&szlig;end zur Seitenansicht des Berichts, erhalten wir die Ausgabe aus Bild 11. Das passt &#8211; wir k&ouml;nnen uns also nun den weiteren Daten zuwenden.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_011.png\" alt=\"Test der Position des Adressblocks\" width=\"424,5589\" height=\"351,4723\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 11: Test der Position des Adressblocks<\/span><\/b><\/p>\n<h2>Hinzuf&uuml;gen der Bestellpositionen<\/h2>\n<p>Die Bestellpositionen f&uuml;gen wir hinzu, indem wir zun&auml;chst alle ben&ouml;tigten Felder in den Detailbereich ziehen: <b>Produktbezeichnung<\/b>, <b>Einheitbezeichnung<\/b>, <b>Einzelpreis<\/b>, <b>Steuersatz<\/b>, <b>Menge <\/b>und <b>Rabatt<\/b>. Au&szlig;erdem f&uuml;gen wir noch ein Feld hinzu, das den Preis bezogen auf die Menge und den Rabatt f&uuml;r die aktuelle Position angibt. Dieses Textfeld soll <b>txtGesamt <\/b>hei&szlig;en.<\/p>\n<p>Von all diesen Steuerelementen schneiden wir nun die Bezeichnungsfelder aus und f&uuml;gen diese im Berichtskopf wieder ein. Danach positionieren wir die Steuerelemente im Detailbereich nebeneinander und die Bezeichnungsfelder im Berichtskopf dar&uuml;ber, sodass der Bericht anschlie&szlig;end wie in Bild 12 aussieht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_012.png\" alt=\"Felder f&uuml;r die Bestellpositionen\" width=\"649,559\" height=\"396,1435\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 12: Felder f&uuml;r die Bestellpositionen<\/span><\/b><\/p>\n<p>F&uuml;r das Feld <b>txtGesamt <\/b>legen wir den folgenden Ausdruck an:<\/p>\n<pre>=[Einzelpreis]*[Menge]*(1-[Rabatt])<\/pre>\n<h2>Summen im Berichtsfu&szlig;<\/h2>\n<p>Die Gesamtsumme des Rechnungsbetrags wollen wir im Berichtsfu&szlig; &uuml;ber den Bankangaben platzieren. Dazu verschieben wir die Bankangaben etwas nach unten und f&uuml;gen oben im Berichtsfu&szlig; ein neues Textfeld namens <b>txtSummeGesamt <\/b>ein.<\/p>\n<p>Das Bezeichnungsfeld verschieben wir ganz nach links, das Textfeld nach rechts, sodass es unterhalb des Textfeldes <b>txtGesamt <\/b>angezeigt wird. F&uuml;r dieses Textfeld stellen wir die Eigenschaft <b>Steuerelementinhalt <\/b>auf den folgenden Ausdruck ein:<\/p>\n<pre>=Summe([Einzelpreis]*[Menge]*(1-[Rabatt]))<\/pre>\n<p>Au&szlig;erdem f&uuml;gen wir im Berichtsfu&szlig; &uuml;ber den beiden Steuerelementen noch eine horizontale Linie und darunter zwei Linien hinzu, sodass dieser Bereich nun mit den markierten Linien wie in Bild 13 aussieht.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_013.png\" alt=\"Summenfeld f&uuml;r den Gesamtbetrag\" width=\"649,559\" height=\"159,9514\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 13: Summenfeld f&uuml;r den Gesamtbetrag<\/span><\/b><\/p>\n<h2>Zusammenfassung der Mehrwertsteuerbetr&auml;ge<\/h2>\n<p>In einer Rechnung m&uuml;ssen auch noch die Mehrwertsteuerbetr&auml;ge f&uuml;r die verschiedenen Mehrwertsteuers&auml;tze enthalten sein. Diese wollen wir in einem Satz unter der Rechnungssumme angeben. Daf&uuml;r hinterlegen wir dort ein neues Textfeld ohne Bezeichnungsfeld &uuml;ber die gesamte Breite.<\/p>\n<p>Beim Inhalt des Textfeldes wird es spannend. Wenn wir nur einen Steuersatz pro Rechnung h&auml;tten, k&ouml;nnten wir einen einfachen Ausdruck wie den folgenden Nutzen:<\/p>\n<pre>=\"Der Rechnungsbetrag enth&auml;lt \" & Format(Summe([Einzelpreis]*[Mehrwertsteuersatz]*(1-[Rabatt])*[Menge]);\"0,00 &euro;\") & \" Mehrwertsteuer zu einem MwSt.-Satz von \" & Format([Mehrwertsteuersatz];\"0 %\") & \".\"<\/pre>\n<p>Wir ermitteln also wie schon beim Summenfeld f&uuml;r den Gesamtbetrag einfach die Summe &uuml;ber die Berechnung der Mehrwertsteuer f&uuml;r alle Positionen.<\/p>\n<p>Dies w&uuml;rde in der Seitenansicht wie in Bild 14 aussehen.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_014.png\" alt=\"Hinweis auf die enthaltene Mehrwertsteuer\" width=\"549,559\" height=\"182,9053\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 14: Hinweis auf die enthaltene Mehrwertsteuer<\/span><\/b><\/p>\n<p>Allerdings kann es auch geschehen, dass einmal Positionen mit verschiedenen Mehrwertsteuers&auml;tzen in einer Rechnung auftauchen. Dann hilft dieser Satz nicht mehr weiter, denn hier w&uuml;rde zwar die Summe der Mehrwertsteuer korrekt berechnet, aber nur der Mehrwertsteuersatz der letzten Position angezeigt werden.<\/p>\n<p>Wir k&ouml;nnen allerdings die Betr&auml;ge der verschiedenen Mehrwertsteuers&auml;tze aufsummieren, indem wir diese in jeweils in eine <b>Wenn<\/b>-Bedingung einfassen. Daraus resultiert nun der folgende Ausdruck:<\/p>\n<pre>=\"Enthaltene Mehrwertsteuer (7 %): \" & \r\n   Format(\r\n     Summe(\r\n       Wenn(\r\n         [Mehrwertsteuersatz]=0,07;\r\n         [Einzelpreis]*[Mehrwertsteuersatz]*          (1-[Rabatt])*[Menge]\r\n         ;0)\r\n       );\r\n     \"0,00\"\" EUR\"\"\") \r\n& Zchn(13) & Zchn(10) \r\n& \"Enthaltene Mehrwertsteuer (19 %): \" \r\n& Format(\r\n   Summe(\r\n     Wenn(\r\n       [Mehrwertsteuersatz]=0,19;\r\n       [Einzelpreis]*[Mehrwertsteuersatz]*        (1-[Rabatt])*[Menge];\r\n       0\r\n     )\r\n   );\r\n\"0,00\"\" EUR\"\"\")<\/pre>\n<p>Wir haben den Ausdruck formatiert, damit er besser lesbar wird.<\/p>\n<p>Der erste Teil umfasst alle Mehrwertsteuerbetr&auml;ge f&uuml;r 7% Mehrwertsteuer, der zweite Teil alle f&uuml;r 19% Mehrwertsteuer. <\/p>\n<p>Da wir im Ausdruck einen Zeilenumbruch eingef&uuml;gt haben, stellen wir die Eigenschaft <b>Vergr&ouml;&szlig;erbar <\/b>des Textfeldes auf <b>Ja <\/b>ein. Das Ergebnis finden wir in Bild 15.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_015.png\" alt=\"Angabe der Mehrwertsteuer f&uuml;r verschiedene S&auml;tze\" width=\"549,559\" height=\"197,437\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 15: Angabe der Mehrwertsteuer f&uuml;r verschiedene S&auml;tze<\/span><\/b><\/p>\n<h2>Hinzuf&uuml;gen des QR-Codes<\/h2>\n<p>Damit kommen wir zum Finale &#8211; dem Hinzuf&uuml;gen des QR-Codes f&uuml;r die Rechnung. Die meisten Daten f&uuml;r den QR-Code stehen bereits vor dem Erstellen des Rechnungsberichts fest: die Rechnungsnummer, die Bankdaten f&uuml;r das Konto, auf das &uuml;berwiesen werden soll et cetera. Eine der wichtigsten Informationen berechnen wir jedoch erst im Bericht, n&auml;mlich die Rechnungssumme. Nun gibt es zwei M&ouml;glichkeiten: Wir berechnen diese Summe per VBA und erstellen auf dieser Basis den QR-Code. Oder wir pr&uuml;fen, ob wir im Bericht in einem Ereignis auf die dort berechnete Rechnungssumme zugreifen und diese dann noch bei der Erstellung des QR-Codes ber&uuml;cksichtigen k&ouml;nnen.<\/p>\n<p>Zum besseren Verst&auml;ndnis der Ablauf der Erstellung und Integration des QR-Codes:<\/p>\n<p>Den QR-Code erstellt man, indem man ein Objekt auf Basis einer Klasse erstellt, seinen Eigenschaften die im QR-Code zu erfassenden Daten &uuml;bermittelt und dann den QR-Code in Form einer <b>.png<\/b>-Datei im Dateisystem speichert. Diese Datei w&uuml;rden wir dann in einem Bild-Steuerelement im Bericht anzeigen.<\/p>\n<p>Die Frage w&auml;re, ob es zeitlich zusammenpasst, erst im Bericht den Gesamtbetrag zu berechnen und diesen dann in die Erstellung des QR-Codes einflie&szlig;en zu lassen, der dann ebenfalls im gleichen Bericht angezeigt werden soll.<\/p>\n<p>Wir haben es auf diesem Wege ausprobiert und f&uuml;r das Ereignis <b>Beim Formatieren <\/b>des Bereichs <b>Berichtsfu&szlig; <\/b>eine Prozedur angelegt, welche die genannten Schritte ausf&uuml;hrt. Der QR-Code wurde zwar erstellt, landete aber nicht im angegebenen Bild-Steuerelement (Code ist auskommentiert im Klassenmodul des Berichts <b>rptRechnung<\/b>).<\/p>\n<p>Bevor wir die Ermittlung der Gesamtsumme per VBA vorab berechnet haben, haben wir allerdings noch getestet, ob es nicht doch im Ereignis <b>Beim Formatieren <\/b>des Bereichs Berichtskopf funktioniert &#8211; also dem Bereich, in dem auch der QR-Code angezeigt werden sollte.<\/p>\n<p>Und es hat wider Erwarten funktioniert, wenn wir auf das Steuerelement <b>txtGesamtsumme <\/b>im Berichtsfu&szlig; verwiesen haben. Also nachfolgend die L&ouml;sung!<\/p>\n<h2>Erweitern des Berichts<\/h2>\n<p>Als Erstes f&uuml;gen wir noch zwei Felder aus der Datensatzquelle hinzu, die wir zur Berechnung des QR-Codes ben&ouml;tigen. Zur Information: In Berichten m&uuml;ssen alle Felder, die irgendwo referenziert werden, nicht nur in der Feldliste vorkommen, sondern auch an ein Steuerelement im Bericht gebunden sein. Also f&uuml;gen wir die beiden Felder <b>Empfaengername <\/b>aus der Tabelle <b>tblOptionen <\/b>und <b>Bestellnummer <\/b>aus der Tabelle <b>tblBestellungen <\/b>oben links im Bericht ein und stellen ihre Eigenschaft <b>Sichtbar <\/b>auf <b>Nein<\/b> ein, damit diese nicht im Bericht angezeigt werden (siehe Bild 16).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_016.png\" alt=\"Einf&uuml;gen der zur Anzeige des QR-Codes ben&ouml;tigten Steuerelemente\" width=\"574,559\" height=\"398,2091\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 16: Einf&uuml;gen der zur Anzeige des QR-Codes ben&ouml;tigten Steuerelemente<\/span><\/b><\/p>\n<p>Danach f&uuml;gen wir ein Bild-Steuerelement hinzu, f&uuml;r das wir beim ersten Anlegen einen vorhandenen QR-Code ausw&auml;hlen. Danach &auml;ndern wir die Eigenschaft <b>Bildtyp <\/b>des Steuerelements auf <b>Verkn&uuml;pft<\/b>. Au&szlig;erdem legen wir <b>picQRCode <\/b>als Name des Steuerelements fest.<\/p>\n<h2>VBA-Code zur Anzeige des QR-Codes<\/h2>\n<p>Damit fehlt nur noch der VBA-Code, der den QR-Code erstellt. Diesen finden Sie in Listing 1.<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>Berichtskopf_Format(Cancel<span style=\"color:blue;\"> As Integer<\/span>, FormatCount<span style=\"color:blue;\"> As Integer<\/span>)\r\n     <span style=\"color:blue;\">Dim <\/span>objQRCode<span style=\"color:blue;\"> As <\/span>amvEPCQRCode.EPCQRCodeGenerator\r\n     <span style=\"color:blue;\">Dim <\/span>curSummeGesamt<span style=\"color:blue;\"> As Currency<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strErgebnis<span style=\"color:blue;\"> As String<\/span>\r\n     <span style=\"color:blue;\">Dim <\/span>strQRCodePfad<span style=\"color:blue;\"> As String<\/span>\r\n     curSummeGesamt = Me!txtSummeGesamt\r\n     <span style=\"color:blue;\">Set<\/span> objQRCode = <span style=\"color:blue;\">New<\/span> amvEPCQRCode.EPCQRCodeGenerator\r\n     <span style=\"color:blue;\">With<\/span> objQRCode\r\n         .Betrag = curSummeGesamt\r\n         .BIC = Me!BIC\r\n         .Empfaenger = Me!Empfaengername\r\n         .IBAN = Me!IBAN\r\n         .Verwendungszweck = \"Rechnung \" & Me!Bestellnummer\r\n         strQRCodePfad = CurrentProject.Path & \"\\qrcode.png\"\r\n         <span style=\"color:blue;\">If <\/span>.Generate(strQRCodePfad, strErgebnis, <span style=\"color:blue;\">True<\/span>)<span style=\"color:blue;\"> Then<\/span>\r\n             Me.picQRCode.Picture = strQRCodePfad\r\n         <span style=\"color:blue;\">Else<\/span>\r\n             <span style=\"color:blue;\">Debug.Print<\/span> \"Erstellung nicht erfolgreich.\"\r\n         <span style=\"color:blue;\">End If<\/span>\r\n     End <span style=\"color:blue;\">With<\/span>\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p><b><span style=\"color:darkgrey;\">Listing 1: Code zum Erstellen des QR-Codes und zum Einf&uuml;gen der erstellten Datei in den Bericht<\/span><\/b><\/p>\n<p>Bevor wir die dort erw&auml;hnte Klasse verwenden k&ouml;nnen, m&uuml;ssen wir dem VBA-Projekt einen Verweis auf die entsprechende Bibliothek hinzuf&uuml;gen.<\/p>\n<p>Diese m&uuml;ssen Sie wiederum zuerst installieren &#8211; das Setup dazu finden Sie im Download zu diesem Beitrag. Danach f&uuml;gen Sie den Verweis wie in Bild 17 hinzu.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_017.png\" alt=\"Verweis auf die Bibliothek amvEPCQRCode\" width=\"424,5589\" height=\"334,6954\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 17: Verweis auf die Bibliothek amvEPCQRCode<\/span><\/b><\/p>\n<p>Die Prozedur <b>Berichtskopf_Format<\/b> wird beim Anzeigen des Berichts ausgef&uuml;hrt. Sie deklariert die Variable <b>objQRCode <\/b>mit dem Typ <b>amvEPCQRCode.EPCQRCodeGenerator<\/b> und f&uuml;llt diese sp&auml;ter mit einem Verweis auf ein neu erstelltes Objekt auf Basis dieser Klasse. Vorher ermittelt sie die Rechnungssumme aus dem Textfeld <b>txtSummeGesamt <\/b>des Berichtsfu&szlig;es und speichert diese in der Variablen <b>curSummeGesamt<\/b>.<\/p>\n<p>Dann f&uuml;llt die Prozedur die einzelnen Eigenschaften des Objekts in <b>objQRCode <\/b>mit den Daten aus den Feldern des Berichts und speichert den Pfad der zu erzeugenden QR-Code-Datei in der Variablen <b>strQRCodePfad<\/b>.<\/p>\n<p>Schlie&szlig;lich ruft sie die Methode <b>Generate <\/b>auf und &uuml;bergibt dieser den Pfad der zu erstellenden Datei. Nach erfolgreichem Erstellen weist die Prozedur diese Datei der <b>Picture<\/b>-Eigenschaft des Bild-Steuerelements <b>picQRCode <\/b>zu.<\/p>\n<p>Wenn wir den Bericht nun vom Formular <b>frmBestellungDetails<\/b> aus &ouml;ffnen, zeigt dieser die Rechnung f&uuml;r die Bestellung aus dem Formular an und blendet auch den richtigen QR-Code ein (siehe Bild 18).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2023_03\/pic_1400_018.png\" alt=\"Fertiger Rechnungsbericht\" width=\"649,559\" height=\"558,888\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 18: Fertiger Rechnungsbericht<\/span><\/b><\/p>\n<h2>Zusammenfassung und Ausblick<\/h2>\n<p>Der Bericht kann noch optimiert werden &#8211; so liefert dieser aktuell noch keine perfekte Darstellung, wenn die Bestellung so viele Positionen enth&auml;lt, dass nicht alle Positionen auf einer Seite dargestellt werden k&ouml;nnen. Auch k&ouml;nnte man noch ein Feld f&uuml;r Anweisungen f&uuml;r die &Uuml;berweisung hinzuf&uuml;gen, welche sich &uuml;blicherweise unter den Rechnungspositionen befindet. Unser Hauptaugenmerk lag in diesem Beitrag darin, einen Rechnungsbericht zu erzeugen, der einen entsprechenden QR-Code anzeigt.<\/p>\n<p>Wie weiter oben bereits angemerkt, enth&auml;lt der Download zu diesem Beitrag die zu verwendende DLL.<\/p>\n<p>Diese kann je nach dem verwendeten Office &#8211; 32-Bit oder 64-Bit &#8211; mit dem entsprechenden Setup-Programm installiert werden. Danach kann sie als Verweis eingebunden und wie oben beschrieben genutzt werden.<\/p>\n<p>Als Abonnent dieses Magazins finden Sie die DLL im Download. Diese k&ouml;nnen Sie f&uuml;r den privaten Gebrauch nutzen. Wenn Sie die DLL gesch&auml;ftlich nutzen wollen oder diese in Anwendungen f&uuml;r Ihre Kunden einbauen m&ouml;chten, k&ouml;nnen Sie diese hier erwerben:<\/p>\n<pre>https:\/\/shop.minhorst.com\/access-tools\/372\/amvepcqrcode?c=78<\/pre>\n<h2>Downloads zu diesem Beitrag<\/h2>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>amvEPCQRCode_AiU.zip<\/p>\n<p>RechnungsberichtMitEPCQRCode.accdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/1899F50E-A4C7-48C2-9122-BE7BEDDEFA56\/aiu_1400.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nachdem wir in einigen vorherigen Beitr&auml;gen eine feine Verwaltung f&uuml;r Kunden, Produkte und Bestellungen programmiert haben, wagen wir uns nun an ein Thema heran, das noch recht neu ist und das auch erst durch die wachsende Anzahl von Anwendungen im Finanzbereich f&uuml;r mobile Ger&auml;te entstanden ist. Wir wollen Rechnungen nun nicht mehr nur auf einem schn&ouml;den Blatt Papier oder als PDF-Dokument erzeugen, sondern diese auch noch mit einem schicken QR-Code versehen, der die f&uuml;r die Begleichung der Rechnung &uuml;ber die Banking-App notwendige Bilddatei anzeigt. Und wenn wir schon dabei sind, erkl&auml;ren wir auch direkt, wie Sie auf Basis der bisherigen Teile dieser Beitragsreihe einen Rechnungsbericht erstellen.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662023,66032023,44000024],"tags":[],"class_list":["post-55001400","post","type-post","status-publish","format-standard","hentry","category-662023","category-66032023","category-Berichte_und_Reporting"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Rechnungsbericht mit EPC-QR-Code - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rechnungsbericht mit EPC-QR-Code\" \/>\n<meta property=\"og:description\" content=\"Nachdem wir in einigen vorherigen Beitr&auml;gen eine feine Verwaltung f&uuml;r Kunden, Produkte und Bestellungen programmiert haben, wagen wir uns nun an ein Thema heran, das noch recht neu ist und das auch erst durch die wachsende Anzahl von Anwendungen im Finanzbereich f&uuml;r mobile Ger&auml;te entstanden ist. Wir wollen Rechnungen nun nicht mehr nur auf einem schn&ouml;den Blatt Papier oder als PDF-Dokument erzeugen, sondern diese auch noch mit einem schicken QR-Code versehen, der die f&uuml;r die Begleichung der Rechnung &uuml;ber die Banking-App notwendige Bilddatei anzeigt. Und wenn wir schon dabei sind, erkl&auml;ren wir auch direkt, wie Sie auf Basis der bisherigen Teile dieser Beitragsreihe einen Rechnungsbericht erstellen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2023-06-17T09:18:42+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"17\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Rechnungsbericht mit EPC-QR-Code\",\"datePublished\":\"2023-06-17T09:18:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/\"},\"wordCount\":3261,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/fd9293c0202c4c899eb2b7e003d1a654\",\"articleSection\":[\"2023\",\"3\\\/2023\",\"Berichte und Reporting\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/\",\"name\":\"Rechnungsbericht mit EPC-QR-Code - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/fd9293c0202c4c899eb2b7e003d1a654\",\"datePublished\":\"2023-06-17T09:18:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/fd9293c0202c4c899eb2b7e003d1a654\",\"contentUrl\":\"http:\\\/\\\/vg08.met.vgwort.de\\\/na\\\/fd9293c0202c4c899eb2b7e003d1a654\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Rechnungsbericht_mit_EPCQRCode\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rechnungsbericht mit EPC-QR-Code\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Rechnungsbericht mit EPC-QR-Code - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/","og_locale":"de_DE","og_type":"article","og_title":"Rechnungsbericht mit EPC-QR-Code","og_description":"Nachdem wir in einigen vorherigen Beitr&auml;gen eine feine Verwaltung f&uuml;r Kunden, Produkte und Bestellungen programmiert haben, wagen wir uns nun an ein Thema heran, das noch recht neu ist und das auch erst durch die wachsende Anzahl von Anwendungen im Finanzbereich f&uuml;r mobile Ger&auml;te entstanden ist. Wir wollen Rechnungen nun nicht mehr nur auf einem schn&ouml;den Blatt Papier oder als PDF-Dokument erzeugen, sondern diese auch noch mit einem schicken QR-Code versehen, der die f&uuml;r die Begleichung der Rechnung &uuml;ber die Banking-App notwendige Bilddatei anzeigt. Und wenn wir schon dabei sind, erkl&auml;ren wir auch direkt, wie Sie auf Basis der bisherigen Teile dieser Beitragsreihe einen Rechnungsbericht erstellen.","og_url":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/","og_site_name":"Access im Unternehmen","article_published_time":"2023-06-17T09:18:42+00:00","og_image":[{"url":"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"17\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Rechnungsbericht mit EPC-QR-Code","datePublished":"2023-06-17T09:18:42+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/"},"wordCount":3261,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654","articleSection":["2023","3\/2023","Berichte und Reporting"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/","url":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/","name":"Rechnungsbericht mit EPC-QR-Code - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#primaryimage"},"thumbnailUrl":"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654","datePublished":"2023-06-17T09:18:42+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#primaryimage","url":"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654","contentUrl":"http:\/\/vg08.met.vgwort.de\/na\/fd9293c0202c4c899eb2b7e003d1a654"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Rechnungsbericht_mit_EPCQRCode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Rechnungsbericht mit EPC-QR-Code"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55001400"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55001400\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55001400"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55001400"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55001400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}