Ausgabe von Datenbank-Reports

 

Beispiel für einen Report

Papyrus Base »Reports« geben Daten in passender Gestaltung als Textdokument aus.

Ein Datenbank-Report kann für verschiedenste Ziele erstellt werden. Serienbriefe, Listen, statistische Auswertungen, Tabellen, PDF, E-Mails, formatierter Export für andere Programme, die die Daten aufnehmen sollen etc.

Einen Report machen Sie für eine ganze Datenbank, bestimmte markierte Datensätze einer Tabelle oder einen einzelnen Datensatz.

Für einen Report können Sie also eine Auswahl Ihrer Daten treffen. Führen Sie in Ihrer Datenbank-Tabelle eine Suche aus, die die Tabelle auf die gewünschten Datensätze einschränkt, oder markieren Sie die gewünschten Datensätze mit der Maus.

Sie können auch einen Report für einen einzelnen Datensatz auslösen.

Ein Report in Listenform kann auch einen »inneren« Datenbereich pro Datensatz wiederholt mit den reportierten Datensätzen füllen. Ist so ein Datenbereich definiert, werden die Seitenteile oberhalb und unterhalb des Datenbereiches für den gesamten Report nur einmal ausgegeben.

Datenbereich markieren und im Kontextmenü „Auswahl als Datensatz-Bereich festlegen“ wählen

Die Seitenteile außerhalb des sich wiederholenden Datenbereichs solcher Reports können auch auswertende Daten wie bspw. der Summe über alle Inhalte eines bestimmten Feldes enthalten.

Einen Überblick über alle Rechenformeln finden Sie in den Error: Reference source not found im »Anleitung« Menü → »Übersicht Rechenfunktionen«.

Reports erzeugen (Report Einstellungen im »Report« Dialog)

Einen Report können Sie aus dem Papyrus Base »Datei« Menü mit dem Punkt »Report…« aufrufen, oder Sie wählen das passende Icon / .

Zuerst müssen Sie für einen Report eine Report-Vorlage definieren. Das ist ein weitestgehend normales Papyrus Text-Dokument, das Sie Ihren Wünschen entsprechend gestalten können.

Einen Report erstellen

In der Report-Vorlage legen Sie für jedes Datenfeld Ihrer Datenbank, das Sie in einem Report wie bspw. einem Serienbrief verwenden wollen, ein Datenfeld an. Datenfelder werden im Menü »Bearbeiten« → »Anlegen« → »Datenfeld« oder im Kontext-Menu einer Report-Vorlage angelegt.

Dieser Platz wird später pro für den Report ausgewählten Datensatz mit dessen Feldinhalt gefüllt.

Innerhalb des Report-Dialoges stehen noch diese Funktionen zur Verfügung:

Mit »Bearbeiten« können Sie eine bereits vorhandene Report-Vorlage zum Gestalten öffnen.

»Datei hinzufügen« ordnet eine bereits existierende Report-Vorlage der aktuellen Datenbank zu und macht sie so auch hier verfügbar.

»Neue Report-Vorlage« legt einen neuen Report an. Es werden alle in der Datenbank enthaltenen Felder einmal zur Verfügung stellt. Profi-Info: Das Aussehen bestimmt die Papyrus-Vorlage »_REPORT.PAP« aus Papyrus‘ »Module\Vorlagen.fix«.

»Entfernen« löscht eine Report-Vorlage aus dieser Liste (bleibt aber als Datei erhalten).

Der normale Fließtext-Report wiederholt den kompletten Report pro reportiertem Datensatz wieder und wieder.

Es sind auch Reports möglich, die auswertende Endsummen über bestimmte Felder, eine komfortablere Ausgabe in Listenform und dergleichen mehr erlauben – lesen Sie hierzu im Anschlusskapitel nach.

»Mit Suchabfrage« und »Mit Sortierung«: Eine Anwahl bewirkt, dass vor dem eigentlichen Report erst noch eine Suchabfrage ausgeführt bzw. eine Sortierung durchgeführt wird. Mit den [] Buttons dahinter kann jeweils eine neue Suchabfrage / Sortierung mit der Report-Vorlage verbunden werden.

»  Standardreport« bewirkt, dass die so gekennzeichnete Report-Vorlage als Voreinstellung genommen wird, wenn Sie häufig den gleichen Standardreport ausführen, und diesen ohne weitere Einstellungen ausführen möchten.

Unter »Einstellungen« auf der »Dialoge« Seite können Sie einstellen, dass bei einem Report-Aufruf direkt der Standardreport durchgeführt werden soll, ohne dass erst der Dialog geöffnet wird.

Der Standard-Report ist weiterhin dafür da, dass man mittels des Aufrufs von »Blitzadresse einfügen« aus dem Menü »Einfügen« sofort eine ausgewählte Adresse direkt an der aktuellen Textcursor-Position in den Text einfügen kann.

Bei »Datensätze« treffen Sie die Auswahl, für welche Ihrer Datensätze ein Report erstellt werden soll.

Bei einem »Einzel-Report«, einem Aufruf aus dem Eingabeformular eines Datensatzes, ist »  Nur aktueller Datensatz« vordefiniert.
Bei einem Aufruf des Report-Dialoges aus dem Tabellenfenster ist zusätzlich die mögliche Auswahl, dass die in der Liste »  markierten Datensätze« oder aber »  alle der Liste« (in der aktuellen Auswahl), die im aktuellen Tabellenfenster dargestellt wird, oder gar die »  komplette Datenbank« reportiert wird.

Zuletzt bestimmen Sie mittels des passenden Popup-Eintrages die »Ausgabe des Reports«, also wie und wohin Ihr Report eigentlich gehen soll:

Für viele Datensätze gleichzeitig ist es meist sinnvoll, die Report-Vorlage im klassischen Sinne mit Seitenlayout als endgültigen Träger Ihres Reports zu benutzen.

Sie können somit aus all Ihren Dokumenten gleich ein »Dokument erzeugen«, das im Papyrus-Format in einem neuen Fenster zur Weiterbearbeitung oder zum Abspeichern bereitsteht oder die Datensätze entsprechend der Art der gewählten Report-Vorlage gleich »Drucken«.

Für einen oder wenige reportierte Datensätze kann es gewünscht sein, diese in ein anderes Dokument einzufügen; für Programme außerhalb von Papyrus steht dafür die Möglichkeit »In die Zwischenablage kopieren« offen, um Sie dann in Ihr gewünschtes Zieldokument mittels »Einfügen« zu bringen. Dies betrifft natürlich nur den blanken ASCII-Text ohne Textstil-Information, da diese nicht von der Report-Vorlage auf die Zwischenablage übergehen kann.

Besonders interessant ist die Variante »Einfügen in Dokument«, bei der Ihre Datensätze sukzessive in einem Zieldokument im Papyrus Word Format landen.

Dabei bleiben alle Textstil- und Absatz-Formatvorlagen-Informationen erhalten, die die Report-Vorlage vorgibt; das Dokument, das den Report auffängt, liefert dazu das Seitenlayout und eventuellen Zusatztext, ganz nach Belieben.

Das Zieldokument geben Sie im entsprechenden Popup an. »Oberstes« beschreibt dabei das Papyrus Word Textfenster, das ganz oben liegt; mit den namentlichen Einträgen darunter können Sie bestimmen, dass die ausgewählte Report-Vorlage auch immer fest in diesem Ziel-Dokument landet. Haben Sie zu schnell den Vorgang seitens der Datenbank bereits fertig, aber vergessen, sich vorher Ihre Papyrus Word Zieldatei zu laden, so können Sie dies jetzt mit »Öffnen…« nachholen.

Bei »E-Mail(s) versenden« können Sie Ihren Report auch als Internet E-Mail verschicken.

Die Checkbox » Text → Datenbank-Links erzeugen« erwirkt, dass die Datensätze in einem Report als Links realisiert werden, die auf Klick den Datensatz aufrufen.

Doppelklickt man auf so einen Link, so springt der Link den Datensatz an, für den dieser Eintrag in diesem Report erzeugt wurde, und öffnet diesen direkt im Eingabeformular.

» Report speichern im Ordner ‚Autoreports‘« erzwingt ein automatisches Speichern beim Erzeugen dieses Reports, wobei dem so erzeugten Dokument ein sinnvoll vorgegebener Name gegeben wird. Ort des Abspeicherns ist fest der Ordner »Autoreports«.

Die Funktionen der folgenden beiden Checkboxen sind frei für beliebige Zwecke verwendbar, besonders aber für »Alarm-Reports« gedacht, die durch automatisch erzeugte Reports von bestimmten Alarm-Feldern ausgelöst werden (Sehen Sie dazu die Beschreibung für das Anlegen von Alarm-Feldern).

Mit der Checkbox » Jeder Datensatz auf eine neue Seite« bestimmen Sie, ob die Report-Ausgabe jedes reportierten Datensatzes von einem Seitenende gefolgt sein soll, oder ob Sie die Datensätze lieber Listen-artig hintereinander aufgereiht bekommen möchten.

» Dialog und Formular danach schließen« ist in der Regel sinnvoll, wenn Sie einen Report getätigt haben und mit diesem Vorgang anschließend fertig sind.

Gerade bei der Abarbeitung einzelner Datensätze, bspw. beim Rechnungsschreiben für ein Versandhaus, kann es sinnvoll sein, mehrere Reports für ein und den gleichen Vorgang auszulösen.

So können Sie bspw. angenehm Ihre Rechnungen schreiben – in der Kunden-Adressdatei von Papyrus Base tätigen Sie die nötigen Angaben für diesen Vorgang und übermitteln die Daten dieses aktuell bearbeiteten Kunden per Report-Dialog (mit einer entsprechend für diesen Report ausgewählten und gestalteten Report-Vorlage). Dazu kommt eine gestaltete Papyrus Word Tabelle, die gleich – aus der Datenbank – die Werte für die gekaufte Ware mit tragen kann und im Zieldokument angekommen die fertigen Rechnungsbeträge enthält.

Ein in der Report-Vorlage per Datums-Platzhalter gesetztes »Datum (immer aktuell)« wird dabei, wenn im Zieldokument angekommen, auf dem aktuellen Datum »eingefroren«, so dass Sie bspw. immer aktuelle Rechnungs-Daten haben, wenn die Rechnung aber geschrieben ist, ändert sich das Datum nicht mehr.

Vor der Ausgabe der per Report generierten eigentlichen Rechnung benötigen Sie vielleicht noch zusätzliche Reports, ein Adressetikett und einen für diesen Vorgang fertig ausgefüllten Zahlschein, eine Lastschrift auf das Konto Ihres Kunden oder einen Eintrag in die Liste, über die Sie von Ihrem Kreditkarten-Partnerunternehmen die Kreditkarten Ihrer Kunden belasten lassen.

Machen Sie sich einfach Report-Vorlagen für die Rechnungen nach den verschiedenen Zahlweisen; aber bevor Sie die Rechnungs-Reportvorlage auslösen, die gleich mit »Formular danach schließen« gekoppelt ist, machen Sie vorher noch die Reports für einen Zahlschein, eine Lastschrift, einen Eintrag in die Kreditkarten-Liste oder auch noch ein Adress-Klebeetikett.

In einer Report-Vorlage neue Datenfelder anlegen

Eine Report-Vorlage ist ein Papyrus Textdokument, in das Platzhalter kommen, in die Inhalte aus einer Datenbank eingefügt werden. Diese Platzhalter heißen „Datenfelder“.

Datenfeld Dialog

Mit dem Dialog »Datenfeld« (»Einfügen« Datenbank-Menü) können Sie in einer Report-Vorlage neue Datenfelder anlegen.

Darüber hinaus können Sie neben einem simplen Namen für ein Datenfeld Ihrer Datenbank auch komplette Berechnungs-Anweisungen unter Ausnutzung aller Papyrus Rechenformeln nutzen.

Die besonderen Befehlswörter »CR« und »TAB« dienen der formatierten Ausgabe und erzeugen einen Tabulator-Vorschub (TAB) oder einen Zeilenumbruch (CR).

In den Berechnungs-Anweisungen können Sie auch Kommentare einfügen. Besonders nützlich ist dies für kompliziertere Formeln.

Schreiben Sie hierzu mit »//« abgegrenzt einfach dahinter Ihren Erklärungstext:

Kommentare über mehrere Zeilen werden von »/* … */« eingerahmt.

In der „Datenfeld“ Auswahlliste werden die Feldnamen des aktuellen Datenbank-Fensters angezeigt.

Reports mit Summenfeldern und Reports mit Datenbereich

 

Die normale Fließtext-Report-Vorlage dupliziert das gesamte Report-Dokument für jeden Datensatz. Man bekommt also eine neue Seite pro bspw. Name.

Es ist aber auch eine Ausgabe in Listenform Reports möglich. Dazu gibt es noch Auswertungs-Funktionen, bspw. Endsummen über bestimmte Felder.

Bei diesen Tabellen-Reports wird nur ein Teilbereich des Textes (oder einer Tabelle) für jeden Datensatz dupliziert, während der Rest des Dokuments nicht vervielfältigt wird.

Man kann einfach jeden normalen Fließtext-Report so erweitern, dass er zum Tabellen-Report wird, von dem nur ein Mittelbereich repetitiv wiederholt wird:

Den Datensatz-Bereich (also den, der pro Datensatz jeweils wiederholt wird) legt man fest, indem man ihn markiert und im Kontextmenü »Auswahl als Datensatz-Bereich festlegen« aufruft. Der Kontextmenü-Eintrag erscheint, wenn in der Auswahl Datenfelder vorhanden sind, oder immer beim Bearbeiten eines Datenbankreports

Der Datensatzbereich kann per Kontextmenü auch ebenso wieder gelöscht werden. Ein Neusetzen löscht den vorherigen Bereich.

Papyrus fragt nach, ob Sie einen Tabellen- oder einen Fließtext-Report erstellen wollen

Ein Tabellen-Report kann auch automatisch erzeugt werden. Wählt man im Report-Dialog »Neue Report-Vorlage«, wird entsprechend gefragt, welchen Typus Report man erhalten möchte. Für den Tabellenreport wird eine Zeile mit den Spaltentiteln und darunter eine Zeile mit Reportfeldern entsprechend der gesamten Tabelle erstellt.

In dem Teil des Texts außerhalb des Datensatzbereichs können besondere Bereichsfunktionen benutzt werden (die weitgehend den Funktionen im Tabellenteil entsprechen):

  • SUM(Feldname) – Summe über alle reportierten Datensätze. Das Ergebnis ist wie das Feld formatiert, nur bei ›Text‹ oder ›Text oder Zahl‹ wird das Ergebnis eine Fließkommazahl
  • MIN(<Feldname>) kleinster Wert. Leere Felder zählen nicht mit.
  • MAX(<Feldname>) größter Wert
  • COUNT(*) Gesamte Anzahl der bearbeiteten Datensätze
  • NVALID(<Feldname>) Anzahl der nicht-leeren und gültigen Feldinhalte
  • NINVALID(<Feldname>) Anzahl der ungültigen Feldinhalte (z.B. Text statt Zahl)
  • NEMPTY(<Feldname>) Anzahl der leeren Feldinhalte
  • AVG(<Feldname>) Arithmetisches Mittel. Leere Felder gehen nicht ein. Entspricht
    SUM(<Feldname>)/NVALID(<Feldname>)
  • DEV(<Feldname>) Standardabweichung. Leere Felder gehen nicht ein.
  • VAR(<Feldname>) Varianz (Quadrat der Standardabweichung). Leere Felder gehen nicht ein.
  • MSQUARES (<Feldname>) Arithmetisches Mittel der Quadrate

E-Mail-Einstellungen für Reports

Hier können Sie die notwendigen Einstellungen machen, damit Papyrus über den Report-Dialog Serienbriefe per E-Mail verschicken kann.

Aufgerufen werden die E-Mail-Einstellungen im »Report« Dialog.

Bei »SMTP-Server für ausgehende Mail« tragen Sie ein, über welchen SMTP-Server Sie bei Ihrem Internet-Service-Provider Ihre E-Mails verschicken können.

Die einzutragende Adresse ist sozusagen der »Name« Ihres E-Mail-Versende-Computers, der bei Ihrem Internet-Provider steht. Zu finden ist diese Adresse z.B. in Ihrem E-Mail-Programm; dort muss die Adresse passend eingetragen sein, schreiben Sie sie einfach von dort ab und tragen Sie sie in Papyrus ein.

Danach kommen Ihre normalen Daten, anhand derer Sie der Empfänger identifizieren soll: Ihr »Absender-Name«, die E-Mail-Adresse, die als Absender gelten soll, die E-Mail-Adresse, die für Rückantworten verwendet werden soll (ist meist identisch mit der Absender-E-Mail) sowie, sofern vorhanden, die Firma bzw. Organisation.

Darunter können Sie noch angeben, ob und wie eine Fehlerbehandlung ungültiger E-Mail-Adressen in ein Logbuch geschrieben werden soll – dies ist nützlich, wenn Sie anhand dessen nachträglich abgleichen wollen, welche E-Mail-Adressen Ihrer Kundendatenbank vielleicht nicht mehr gültig sind.

Ein SMTP-Fehlerprotokoll kann erfahreneren Anwendern Hinweise darauf geben, warum vielleicht eine E-Mail-Verbindung nicht zustande kommt.

Es gibt E-Mail-Provider, die vor dem Versenden von E-Mails erst eine E-Mail-Abfrage haben wollen, damit klar ist, dass der Anwender (Sie) ein gültiges E-Mail-Konto beim E-Mail-Provider hat und nicht einfach den E-Mail-Server-Computer zum Versenden missbraucht, ohne zahlender Kunde zu sein.

Lassen Sie in einem solchen Falle einfach ein E-Mail-Programm (Netscape, Mozilla, Outlook Express, etc.) mitlaufen, dass alle paar Minuten nach Eingang von E-Mails fragt, so dass Papyrus über die ganze Dauer der Versendung dazu auch beim Provider autorisiert ist.

E-Mail-Versand aus Datenbank-Reports

Papyrus unterstützt die gängigsten SMTP-Authentifizierungsverfahren CRAM-MD5, LOGIN und AUTH PLAIN.

Eine Authentifizierung wird nur versucht, wenn in den Email-Einstellungen ein „Benutzername für Authentifizierung“ und wahlweise ein Passwort eingegeben wird. Falls die Authentifizierung nicht klappt, wird mit einer Fehlermeldung abgebrochen.

Benutzername und Passwort können wahlweise auch im Report definiert werden, indem man ein Formel-Datenfeld anlegt mit:

LET EMAIL_LOGIN_USER='<Benutzername>‘
LET EMAIL_LOGIN_PASSWORD='<Passwort>‘

Durch Zuweisung an die Variable EMAIL_ATTACHMENTS kann eine Komma-getrennte Liste von Dateianhängen (Attachments) angegeben werden, z.B.:

LET EMAIL_ATTACHMENTS=’Anhang.rtf, C:\Bilder\Anhang2.jpeg‘

Papyrus erzeugt daraus eine Multipart MIME E-Mail.

Dateien mit der Endung *.txt werden als 8-Bit-Klartext inline versandt, alle anderen Dateien werden als Binärdateien behandelt und base64-codiert angehängt.
Der MIME-Typ wird unter Windows aus der Registry ermittelt, falls dort keiner vorgesehen ist. Unter Mac sind auch Standard-Typen für .txt, .pdf, .gif, .jpg, .jpeg, .png, .bmp vorgesehen, alles andere wird als application/octet-stream versandt.
Wenn kein absoluter Pfad angegeben wird, wird die Anhang-Datei im Ordner des Datenbank-Reports gesucht.

Falls ein Anhang nicht gefunden wird, wird eine Fehlermeldung ausgegeben und die entsprechende E-Mail nicht versandt.

Versand an mehrere Empfänger: Zusätzlich zu den Angaben für EMAIL_RECIPIENT, EMAIL_RECIPIENT_NAME und EMAIL_RECIPIENT_ROLE gibt es die Variablen EMAIL_TO, EMAIL_CC, EMAIL_BCC, an die man jeweils eine Komma-getrennte Liste von Empfängeradressen zuweisen kann, etwa so:
LET EMAIL_TO=’Karl Mustermann <mustermann@test.org>, „Evelyn Musterfrau“ <musterfrau@test.org>, musterkind@test.org‘
(das würde an 3 verschiedene Empfänger gesendet werden).

Die Einträge haben also die Form ‚Name <E-Mail-Adresse>‘ oder ‚“Name“ <E-Mail-Adresse>‘ (diese Form wird nötig, wenn der Name ein Komma enthält).

Versand als reiner Text, HTML, beides oder als PDF – im Report-Dialog kann bei der Einstellung „E-Mail(s) versenden“ zwischen folgenden Formaten gewählt werden:

Reiner Text: Nur Absatzenden und alle Zeichen der eingestellten Email-Codepage sind möglich, alles andere wird herausgefiltert. Dieses Format kann von allen E-Mail-Clients verarbeitet werden.

HTML und reiner Text: Die E-Mail enthält zwei Versionen des Reports, sowohl reinen Text als auch HTML. E-Mail-Clients, die kein HTML darstellen können, benutzen den reinen Text.. HTML-E-Mails können auch Bilder enthalten, die als GIF (GIF-Bilder), JPEG (Jpeg-Bilder) oder PNG (alle anderen Bitmaps) versandt werden. Vektorgrafik wird nicht unterstützt.

Nur HTML: Die Reintextversion wird weggelassen. E-Mail-Clients, die nur Reintext können, stellen den HTML-Code dar.

PDF: Aus dem Report wird eine PDF-Datei erzeugt (Adobe Acrobat Format) und als Anhang versandt. Den Namen der PDF-Datei kann man mit der Variable EMAIL_PDF_FILE setzen. Die Endung *.pdf wird automatisch angehängt. Standardmäßig enthält dies den Dateinamen des Reports.

Das Ausgabeformat kann auch vom Report aus gesetzt werden, die Auswahl im Dialog wird dabei als Voreinstellung benutzt.

LET EMAIL_HTML=0 /* keine HTML-Ausgabe */
LET EMAIL_HTML=1 /* HTML und reiner Text */
LET EMAIL_HTML=2 /* nur HTML */
LET EMAIL_PDF=0 /* kein PDF */
LET EMAIL_PDF=1 /* als PDF-Anhang versenden */

Mit EMAIL_PLAIN_TEXT kann man für PDF und „HTML und reiner Text“ den Inhalt des reinen Textes setzen; ‚|‘ kann für Absatzenden benutzt werden. Dies sieht etwa so aus:

LET EMAIL_PLAIN_TEXT=’Beachten Sie bitte den Inhalt der anhängenden PDF-Datei.

Titel – als Betreff der E-Mail wird der Titel des Dokuments (einstellbar unter Dokument/Dokument-Eigenschaften/Autor etc.) benutzt, falls mit EMAIL_SUBJECT kein Titel festgelegt wird.

Logging – im Log der gesendeten E-Mails wird auch die benutzte Suchabfrage aufgezeichnet.
Im SMTP-Log wird zusätzlich der benutzte Report aufgezeichnet.

Im Mailheader wird für die Angabe des Mailers »Papyrus BASE« eingetragen.

 

Last updated by Matthias Wenzel on Dezember 13, 2017