Einen Bericht erstellen
Ziel
Aus einer entworfenen Vorlage einen Bericht machen, den Benutzer ausführen können: gedruckt für einen Datensatz („diese Rechnung drucken“) oder über eine ganze Liste, aus der Befehlsleiste, in der App, die sie ohnehin geöffnet haben.
Woraus ein Bericht besteht
Aus zwei Hälften, und sie treffen sich an einem Namen.
- Die Vorlage – die Seite: ihre Bänder, ihre Tabellen, ihr Logo, ihr Wasserzeichen. Sie wird im Grafikdesigner entworfen und als JSON exportiert, das Sie hier einfügen.
- Die Datasets – die Zeilen, die sie füllen. Jedes nennt eine gespeicherte Abfrage oder bringt eine eigene Abfrage mit, unter einem Namen, auf den sich die Vorlage bezieht.
Ein Bericht enthält keine eigenen Daten. Alles, was er druckt, ist eine Abfrage, die ausgeführt wird, wenn jemand auf Drucken drückt – mit den Berechtigungen dieser Person. Zwei Personen, die denselben Bericht drucken, sehen jeweils die Datensätze, die sie sehen dürfen – ein Bericht ist ein Layout über Ihren Daten, niemals ein Weg vorbei an der Frage, wer sie lesen darf.
Voraussetzungen
- Sie sind als Ersteller angemeldet, mit ausgewählter Lösung und Umgebung.
- Die gespeicherten Abfragen, die Ihr Bericht verwenden wird, existieren bereits (oder Sie schreiben die Abfrage direkt im Bericht).
- Sie haben eine aus dem Designer exportierte Vorlage.
Schritte
- Öffnen Sie Ihre Lösung, und wählen Sie Berichte.
- Wählen Sie Neu aus, und geben Sie einen Anzeigenamen ein – der logische Name füllt sich selbst aus.
- Füllen Sie die Datasets aus. Für jedes:
- Name – wie die Vorlage diese Zeilen nennt. Der Wiederholungsbereich der Vorlage nennt ihn, daher müssen beide exakt übereinstimmen.
- Gespeicherte Abfrage – die Frage, die das Dataset füllt, aus den gespeicherten Abfragen der Umgebung ausgewählt statt eingetippt. Jede Option sagt, welche Tabelle die Abfrage liest, denn ein Anzeigename unterscheidet selten zwei davon. Schreiben Sie die Frage zuerst – siehe Eine Abfrage speichern.
- Datensatzfeld – optional; siehe unten.
- Fügen Sie das Vorlagen-JSON ein.
- Wählen Sie Speichern aus. Die Plattform prüft, ob der Bericht wohlgeformt ist, ob jede Abfrage eine gültige Abfrage ist und ob jede hier tatsächlich laufen würde – jedes Feld, jeder Join und jede Kennzahl gegen die echten Tabellen dieser Umgebung. Ein falsch geschriebenes Feld wird jetzt abgelehnt, statt von der Person entdeckt zu werden, die auf Drucken drückt.
Das erste Dataset ist das primäre. Seine Tabelle ist das, worum es im Bericht geht: Sie entscheidet, welche Datensätze und welche Listen den Bericht in ihrer Befehlsleiste anbieten, und an sie wird der aktuelle Filter einer Liste übergeben.
Einen einzelnen Datensatz drucken
Legen Sie das Datensatzfeld eines Datasets fest, dann lässt sich der Bericht für einen einzelnen Datensatz drucken.
- Beim primären Dataset ist es meist
id– „diese Rechnung“. - Bei einem untergeordneten Dataset ist es das Nachschlagefeld zurück zum übergeordneten Datensatz –
par_invoiceidbei den Positionen, sodass das Drucken von Rechnung 42 genau die Positionen von Rechnung 42 druckt und keine anderen. - Lassen Sie es leer, dann bleibt das Dataset davon unberührt, aus welchem Datensatz Sie gedruckt haben. So kann ein Bericht eine einzelne Rechnung neben einer Tabelle mit den Wechselkursen dieses Monats drucken.
Einen Bericht ausführen
Ein Bericht wird bewusst erreicht – nichts setzt eine Schaltfläche auf eine Tabelle, nur weil ein Bericht sie nennt. Drei Wege führen hinein:
- Über die Navigation der App, wenn ein Ersteller den Bericht dort platziert hat. Er öffnet sich über die ganze Tabelle.
- Über einen Befehl, den ein Ersteller auf einem Formular oder einer Ansicht gezeichnet hat, mit Bericht ausführen als Verhalten. Auf einem geöffneten Datensatz gedrückt, druckt er diesen Datensatz; auf einer Liste gedrückt, gilt er für die ganze Tabelle. Siehe Eine Schaltfläche etwas tun lassen.
- Über ein Dashboard-Widget, das ihn nennt.
In jedem Fall öffnet sich der Bericht als eigener Bildschirm, mit der Navigation der App daneben und seiner Adresse in der Adressleiste – ein Bericht, den Sie gerade ansehen, lässt sich also aktualisieren, als Lesezeichen speichern oder an eine Kollegin schicken. Ein Bericht, den ein Befehl geöffnet hat, trägt am Anfang der Symbolleiste des Viewers eine Schaltfläche ←, die zu dem Bildschirm zurückführt, auf dem die Schaltfläche gedrückt wurde.
Suche und Filter einer Liste reisen nicht mit. Ein Bericht wird über seinen eigenen Namen adressiert, und ein Filter ist nichts, was eine Adresse transportieren kann; um über eine engere Menge von Datensätzen zu berichten, geben Sie den Filter dem Bericht.
Einen Bericht am Bildschirm lesen
Der Viewer öffnet sich mit einer Seite gleichzeitig, in einem Zoom, der eine ganze Seite einpasst, und mit Drucken am Ende. Vier Steuerelemente ändern, was Sie sehen:
- Seiten – Eine Seite mit einer Seitennavigation (so liest man einen Bericht) oder Alle Seiten, scrollend (so prüft man einen vor dem Drucken). Bei Alle Seiten verschwindet die Seitennavigation, weil sie eine zweite Antwort auf die Frage wäre, wo Sie sich befinden.
- Zoom – Seite einpassen, Breite einpassen oder Originalgröße. Einpassen heißt einpassen, in beide Richtungen: Eine Seite, die schmaler als Ihr Fenster ist, wird vergrößert, bis sie es füllt, denn dafür ist der Befehl benannt. Originalgröße ist die Antwort, wenn Sie stattdessen 1:1 möchten.
- Vollbild – füllt das Fenster mit dem Bericht. Esc beendet es. Der Bericht bleibt innerhalb der App, sodass Meldungen und der Rest des Produkts weiter funktionieren, während er geöffnet ist.
- Drucken.
Beim Drucken entstehen alle Seiten in voller Größe – nicht nur die am Bildschirm und nicht im Zoom, in dem Sie gelesen haben, und ohne die eigenen Schaltflächen des Viewers. Das Papier hat die Größe, für die der Bericht entworfen wurde – ein A4-Bericht wird randlos auf A4 gedruckt, ohne Kopfzeile, Fußzeile, URL oder Seitenzahl des Browsers im Rand, denn das Blatt hat keinen Rand, in den sie gedruckt werden könnten.
Wenn Sie Kopf- und Fußzeilen im eigenen Druckdialog Ihres Browsers eingeschaltet haben, erhalten Sie sie trotzdem – diese Einstellung gehört Ihnen, und die Plattform überschreibt sie nicht. Schalten Sie „Kopf- und Fußzeilen“ dort aus.
Ein Bericht ist Text, kein Bild davon
Sie können jeden Text in einem Bericht markieren und kopieren, und die Suche Ihres Browsers (Strg+F / ⌘F) durchsucht die Seite, auf der Sie sich befinden. Ein Screenreader liest den Bericht vor, statt ein Bild anzukündigen. Nichts davon ist eine Einstellung: Eine Berichtsseite ist gewöhnlicher Text auf der Seite, und genau deshalb werden persische und arabische Zeilen auch dann korrekt dargestellt, wenn sie einen lateinischen Produktcode oder einen Preis enthalten – der Browser ordnet den gemischten Text selbst.
Die Suche durchsucht die Seiten, die am Bildschirm sind. Bei Eine Seite ist das die Seite, die Sie lesen; wechseln Sie zu Alle Seiten, um den ganzen Bericht auf einmal zu durchsuchen.
Datumsangaben, Zahlen und Ziffern
Ein Bericht druckt Datumsangaben im selben Kalender und Muster wie das Raster daneben und Zahlen mit denselben Ziffern – persische Ziffern und Jalali-Datumsangaben für einen persischen Mandanten. Sie konfigurieren das nicht pro Bericht: Es kommt aus Einstellungen → Kalender und dem Gebietsschema des Mandanten, sodass ein Bericht nicht vom Rest des Produkts abweichen kann.
Ihn zwischen Umgebungen verschieben
Ein Bericht ist eine Lösungskomponente, abgelegt unter der Tabelle, um die es in ihm geht. Fügen Sie ihn Ihrer Lösung über die Liste Komponenten verwalten dieser Tabelle hinzu, dann wird er mit allem anderen exportiert und importiert – einschließlich seiner Vorlage, die im Bericht reist und nicht neben ihm.
Seine gespeicherten Abfragen reisen ebenfalls mit und werden vor ihm importiert: Ein Bericht wird abgelehnt, wenn er eine Abfrage nennt, die die Zielumgebung nicht hat – das ist der ehrliche Fehler, statt eines Berichts, der importiert wird und dann nichts druckt.
Fehlerbehebung
- „The template is not valid JSON.“ – Das Eingefügte ist abgeschnitten oder enthält ein überzähliges Zeichen. Das Feld formatiert nicht um, was Sie eingeben, was Sie sehen, ist also das, was gesendet wurde.
- „A report needs at least one dataset.“ – Eine Dataset-Zeile braucht sowohl einen Namen als auch eine gespeicherte Abfrage, um zu zählen; eine halb ausgefüllte Zeile wird ignoriert.
- „Dataset 'rows' must name exactly one of 'savedQuery' or 'query'.“ – Sie haben beides angegeben oder keins von beiden.
- „…names the saved query 'x', which does not exist in this environment.“ – Prüfen Sie die Schreibweise, oder fügen Sie die Abfrage der Lösung hinzu, damit sie mitreist.
- „Unknown field …“ – Die Abfrage nennt ein Feld, das es in ihrer Tabelle nicht gibt. Korrigieren Sie die Abfrage, nicht den Bericht.
- Der Bericht wird gedruckt, aber die Seite ist leer. – Der Wiederholungsbereich der Vorlage nennt ein Dataset, das der Bericht nicht definiert. Die Namen müssen exakt übereinstimmen.
- „This report's template could not be laid out.“ – Die Engine konnte daraus keine Seiten bilden. Exportieren Sie erneut aus dem Designer; eine von Hand bearbeitete Vorlage ist leicht kaputtzumachen.
- Am Datensatz erscheint kein Berichtsbefehl. – Nichts erzeugt einen. Zeichnen Sie eine Schaltfläche und geben Sie ihr Bericht ausführen, oder platzieren Sie den Bericht in der Navigation der App.
- Der Bericht öffnet sich, zeigt aber alle Datensätze. – Er wurde aus einer Liste ausgeführt oder aus einem Datensatz, der nie gespeichert wurde. Nur ein gespeicherter, geöffneter Datensatz grenzt einen Bericht ein.