{"id":55000144,"date":"2012-12-01T00:00:00","date_gmt":"2020-01-24T15:58:18","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=144"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Rechnungsbericht","status":"publish","type":"post","link":"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html","title":{"rendered":"Rechnungsbericht"},"content":{"rendered":"<p class='introduction'>In Ausgabe 2\/2012 haben wir bereits Tabellen und Formulare zum Verwalten von Bestellungen vorgestellt. Nun liefern wir einen Bericht nach, mit dem Sie pro Bestellung eine eigene Rechnung erstellen k&ouml;nnen. Mit einer Rechnung treffen wir dabei auf ein typisches Beispiel f&uuml;r den Einsatz von Berichten.<\/p>\n<h2>Beispieldatenbank<\/h2>\n<p>Die Beispiele dieses Artikels finden Sie in der Datenbank <b>1206_Rechnungsbericht.mdb<\/b>.<\/p>\n<h2>Aufbau des Berichts<\/h2>\n<p>Der Bericht hat zun&auml;chst folgenden Aufbau, sp&auml;ter gehen wir etwas mehr ins Detail: Der Berichtskopf soll den Briefkopf des Absenders inklusive Name und Anschrift sowie die Anschrift des Rechnungsempf&auml;ngers enthalten. Der Detailbereich enth&auml;lt die einzelnen Rechnungspositionen, also die Position, die Artikelbezeichnung, die Menge, den Einzelpreis, die Mehrwertsteuer, den Rabatt sowie den Endpreis. Der Berichtsfu&szlig; enth&auml;lt allgemeine Informationen wie etwa eine Gru&szlig;formel. Fehlen noch die Summen mit und ohne Mehrwertsteuer: Diese landen in einem eigenen Bereich, der durch die Gruppierung nach der Bestellnummer erzeugt wird. Nach der Fertigstellung soll der Bericht wie in Bild 2 aussehen.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_144_004.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_144_004.png\" alt=\"Der Bericht in der Vorschauansicht\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 1: Der Bericht in der Vorschauansicht<\/p>\n<h2>Aufruf des Berichts<\/h2>\n<p>Auch wenn wir den Bericht noch gar nicht programmiert haben: Von irgendeiner Stelle aus m&uuml;ssen Sie diesen sp&auml;ter aufrufen. Im Rahmen einer Bestellverwaltung macht es nat&uuml;rlich Sinn, diesen Bericht von dem Formular aus aufzurufen, das auch die Bestelldaten anzeigt. Dieses Formular haben wir bereits im Artikel <b>Bestellungen in Formularen verwalten <\/b>programmiert, die Daten zum Bericht stammen aus Tabellen, die in <b>Bestellungen in Tabellen verwalten <\/b>beschrieben wurden. Wir greifen das Formular auf und f&uuml;gen diesem zwei Schaltfl&auml;chen hinzu, mit dem der Benutzer den Bericht in der Vorschauansicht betrachten und mit der er den Bericht auch gleich drucken kann (siehe Bild 1). Die beiden Schaltfl&auml;chen hei&szlig;en <b>cmdRechnungVorschau <\/b>und <b>cmdRechnungDrucken<\/b>. F&uuml;r die Schaltfl&auml;che <b>cmdRechnungVorschau <\/b>hinterlegen Sie die folgende Ereignisprozedur:<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_144_001.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_144_001.png\" alt=\"Aufruf des Berichts vom Bestellformular aus\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 2: Aufruf des Berichts vom Bestellformular aus<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>cmdRechnungVorschau_Click()\r\n     DoCmd.OpenReport \"rptRechnung\", _\r\n         WhereCondition:=\"BestellungID = \" _\r\n         & Me!BestellungID, View:=acViewPreview\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<p>Diese <b>OpenReport<\/b>-Anweisung &ouml;ffnet einen Bericht namens <b>rptRechnung<\/b>, wobei dieser nur solche Datens&auml;tze anzeigen soll, deren Feld <b>BestellungID <\/b>den Wert des gleichnamigen Feldes der Datenherkunft des Formulars aufweist. Au&szlig;erdem &uuml;bergeben Sie f&uuml;r den Parameter <b>View <\/b>den Wert <b>acViewPreview<\/b>, wodurch der Bericht in der Vorschauansicht ge&ouml;ffnet wird.<\/p>\n<p>Die einzige Anweisung der Ereignisprozedur f&uuml;r die zweite Schaltfl&auml;che, <b>cmdRechnungDrucken<\/b>, unterscheidet sich nur durch den Wert des Parameters View von der oben beschriebenen Prozedur. Hier verwenden wir den Wert <b>acViewNormal<\/b>, was den Bericht gleich an den Standarddrucker sendet.<\/p>\n<h2>&auml;nderungen am Datenmodell<\/h2>\n<p>Da wir nun nicht mehr nur Bestellungen aufnehmen, sondern auch noch Rechnungen schreiben, haben wir der Tabelle <b>tblBestellungen <\/b>noch ein Feld namens <b>Rechnungsdatum <\/b>hinzugef&uuml;gt.<\/p>\n<h2>Bericht anlegen<\/h2>\n<p>Erstellen Sie einen neuen Bericht und speichern Sie diesen unter dem Namen <b>rptRechnung<\/b>.<\/p>\n<h2>Datenherkunft<\/h2>\n<p>Wir wissen schon einmal, dass die Datenherkunft des Berichts das Feld <b>BestellungID <\/b>enthalten muss, damit wir die Bestelldaten nach der gew&uuml;nschten Bestellung filtern k&ouml;nnen. Der Bericht enth&auml;lt jedoch insgesamt sogar f&uuml;nf Tabellen, die Sie in Bild 3 abgebildet sehen. Zur besseren &uuml;bersicht haben wir die Felder eingerahmt, die wir zum Entwurfsraster hinzugef&uuml;gt haben. Um die Datenherkunft festzulegen, &ouml;ffnen Sie den Bericht in der Entwurfsansicht und zeigen Sie mit <b>F4 <\/b>die Berichtseigenschaften an. Klicken Sie auf die Eigenschaft <b>Datenherkunft <\/b>(ab Access 2007 <b>Datensatzquelle<\/b>) und dann auf die Schaltfl&auml;che mit den drei Punkten. Es erscheint eine leere Abfrage, die Sie wie in der Abbildung f&uuml;llen. In der Beispieldatenbank finden Sie die Abfrage &uuml;brigens unter dem Namen <b>qryRepRechnung <\/b>als eigenes Objekt im Datenbankfenster beziehungsweise im Navigationsbereich. Dies hat keinen tieferen Sinn &#8211; au&szlig;er, dass dadurch die Gestaltung der Abfrage, also etwa die Anordnung der Tabellen und ihrer Beziehungen sowie der Spaltenbreiten, auch nach dem Schlie&szlig;en und erneuten &ouml;ffnen der Abfrage erhalten bleibt.<\/p>\n<p class=\"image\"><a rel=\"lightbox\" href=\"..\/tl_files\/images\/pic_144_002.png\"><img decoding=\"async\" src=\"..\/tl_files\/images\/pic_144_002.png\" alt=\"Datenherkunft des Berichts\" width=\"325\" \/><\/a><\/p>\n<p class='imagetext'>Bild 3: Datenherkunft des Berichts<\/p>\n<h2>Bericht mit Steuerelementen f&uuml;llen<\/h2>\n<p>Mit diesen Informationen ausgestattet, k&ouml;nnen wir uns an den Berichtsentwurf begeben. Dabei unterteilen wir die folgenden Schritte in Pflicht und K&uuml;r. Die Pflicht sind die Angabe der Empf&auml;ngeranschrift, der Rechnungspositionen, des Rechnungsdatums, der Rechnungssummen sowie diverser Nummern wir Rechnungsnummer, Kundennummer, Bestellnummer et cetera. Die K&uuml;r machen Elemente wie der Briefkopf, die rechte Seite mit allgemeinen Angaben sowie der Berichtsfu&szlig; aus, wo Sie Bankverbindung, Gru&szlig;formel und andere Dinge nach Gusto unterbringen k&ouml;nnen.<\/p>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000;\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000;\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Access &#091;basics&#093;<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/shop.minhorst.com\/magazine\/282\/access-basics?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000;\">Danach greifen Sie sofort auf <strong>alle rund 400 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000;\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000144\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/index.php\/data\/wp\/v2\/posts\/55000144?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/access-basics.de\/data\/wp\/v2\/posts\/55000144\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"771f142a70\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Ausgabe 2\/2012 haben wir bereits Tabellen und Formulare zum Verwalten von Bestellungen vorgestellt. Nun liefern wir einen Bericht nach, mit dem Sie pro Bestellung eine eigene Rechnung erstellen k&ouml;nnen. Mit einer Rechnung treffen wir dabei auf ein typisches Beispiel f&uuml;r den Einsatz von Berichten.<\/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":[662012,66062012,44000007],"tags":[],"class_list":["post-55000144","post","type-post","status-publish","format-standard","hentry","category-662012","category-66062012","category-Reporting_mit_Berichten"],"aioseo_notices":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.9.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Rechnungsbericht - Access [basics]<\/title>\n<meta name=\"description\" content=\"In Ausgabe 2\/2012 haben wir bereits Tabellen und Formulare zum Verwalten von Bestellungen vorgestellt. Nun liefern wir einen Bericht nach, mit dem Sie pro Bestellung eine eigene Rechnung erstellen k\u00f6nnen. Mit einer Rechnung treffen wir dabei auf ein typisches Beispiel f\u00fcr den Einsatz von Berichten.\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rechnungsbericht - Access [basics]\" \/>\n<meta property=\"og:description\" content=\"In Ausgabe 2\/2012 haben wir bereits Tabellen und Formulare zum Verwalten von Bestellungen vorgestellt. Nun liefern wir einen Bericht nach, mit dem Sie pro Bestellung eine eigene Rechnung erstellen k\u00f6nnen. Mit einer Rechnung treffen wir dabei auf ein typisches Beispiel f\u00fcr den Einsatz von Berichten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\" \/>\n<meta property=\"og:site_name\" content=\"Access [basics]\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-24T15:58:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"-0001-11-30T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/..\/tl_files\/images\/pic_144_004.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Gesch\u00e4tzte Lesezeit\">\n\t<meta name=\"twitter:data1\" content=\"9\u00a0Minuten\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/access-basics.de\/#website\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Access [basics]\",\"description\":\"DAS ACCESS-MAGAZIN F\\u00dcR ALLE, DIE VON 0 AUF 100 WOLLEN\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/access-basics.de\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html#primaryimage\",\"inLanguage\":\"de\",\"url\":\"..\/tl_files\/images\/pic_144_004.png\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html#webpage\",\"url\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\",\"name\":\"Rechnungsbericht - Access [basics]\",\"isPartOf\":{\"@id\":\"https:\/\/access-basics.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html#primaryimage\"},\"datePublished\":\"2020-01-24T15:58:18+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"author\":{\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\"},\"description\":\"In Ausgabe 2\/2012 haben wir bereits Tabellen und Formulare zum Verwalten von Bestellungen vorgestellt. Nun liefern wir einen Bericht nach, mit dem Sie pro Bestellung eine eigene Rechnung erstellen k\\u00f6nnen. Mit einer Rechnung treffen wir dabei auf ein typisches Beispiel f\\u00fcr den Einsatz von Berichten.\",\"breadcrumb\":{\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/\",\"url\":\"https:\/\/access-basics.de\/\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":2,\"item\":{\"@type\":\"WebPage\",\"@id\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\",\"url\":\"https:\/\/access-basics.de\/index.php\/Rechnungsbericht.html\",\"name\":\"Rechnungsbericht\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/access-basics.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/access-basics.de\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000144","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/comments?post=55000144"}],"version-history":[{"count":0,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/posts\/55000144\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/media?parent=55000144"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/categories?post=55000144"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-basics.de\/index.php\/data\/wp\/v2\/tags?post=55000144"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}