Anmelden

150.5205.png, 1920x1080 Pixel,  Bytes
Report Manager Designer

Der Hauptbereich der Entwurfsoberfläche ist der Arbeitsbereich, in dem der aktuelle Subreport angezeigt wird und bearbeitet werden kann.

In der Entwurfsoberfläche finden Sie links oben die Berichtsstruktur (Reiter Struktur) und die Datenfeldauswahl (Reiter Daten). 

Darunter befindet sich die Eigenschaften Liste für das in der Berichtsstruktur oder im Arbeitsbereich ausgewählte Element (Subreport, Sektion, Datenfeld).

Allgemeines Hinweise

  • Man kann mehrere Felder selektieren mit Schift+Mausklick oder mithilfe der Lassofunktion (Maus über die Felder ziehen). Anschließend kann man Eigenschaften zuweisen oder Felder verschieben oder kopieren.
  • Felder können kopiert werden (Alt-C und Alt-V). Ein Kopieren in andere Reports ist ebenso problemlos möglich, da mehrere Designer gleichzeitig geöffnet werden können. Dies ist zu empfehlen, wenn mehrere Report identische Sektionen haben, wie z.B. der Kopfbereich. Bearbeiten Sie deshalb die Sektion immer in der selben Vorlage und kopieren Sie danach die Sektion in die anderen Reports. Dieser Aufwand ist effizienter, als verschiedene Vorlagen miteinander abzugleichen.
  • Wenn Felder farbig hintelegt werden sollen, erreicht man dies mit einem Zeichnungselement (Rechteck). Wenn dieses aber erst nach den Feldern erstellt wird, überdeckt es die Felder. Es gibt keine direkte Funktion, die Zeichnung in den Hintergrund zu bringen. Anstelle dessen kann man alle Felder (außer Rechteck) markieren, ausschneiden und wieder einfügen (Rechteck vorher zur Seite schieben und abschließend wieder ausrichten).
  • Bei horizontaler Ausrichtung eines Textes auf Mitte werden zweizeilige Texte nicht korrekt angezeigt

Anzeigformatierung

Numerische Felder sowie Datum- und Zeitfelder können für die Ausgabe formatiert werden:

  • Dezimalzahl mit zwei Kommastellen, die Anzeige des Kommas erfolgt dabei automatisch entsprechend der Ländereinstellung der Engine (trotz Punkt im Anzeigeformat): Anzeigeformat=0.00
  • Datum für deutsche Datumformat: Anzeigeformat=dd.MM.yyyy (Achtung: bei 64bit-Linux-System funktioniert dies nicht, siehe Besonderheiten).

Unabhängig davon können Formatierungen auch in der SQL-Abfrage vorgenommen werden:

to_char(davohs_ext.RealVol, '999D99') AS RealVol, -- 3,00
to_char(davohs_wf.ApplyAt,'DD.MM.YYYY') AS ApplyAt, -- 26.03.2018

Funktionen und Operatoren

Mit Funktionen kann man eine Nachformatierung der anzuzeigenden Felder durchführen. Report Manager liefert dafür viele Funktionen.

  • Aneinanderketten von Feldern und Konstanten mit +
  • bedingtes Sichtbarmachen von Feldern oder Statischem Text, z.B. bei Enum-Feldern
  • Umwandlung von Datentypen (Integer > String)
  • TRIM(), SUBSTR(), LEFT(), RIGHT()
  • REPLACESTR() funktioniert nicht

Automatisches Umbrechen bei langen Texten

  • für das Feld mit umzubrechenden Text Zeilenumbruch=True einstellen
  • für die Detail-Sektion Autom. vergr.=True einstellen
  • Bei vertikaler Vergrößerung eines Feldes wird die Detail-Sektion vergrößert, aber der nach dem Feld folgende Freiräume wird ignoriert. Vertikale Zwischenräume müssen daher vor dem Feld eingerichtet werden, wenn diese bei der Vergrößerung erhalten bleiben sollen.

Bei Texten mit manuellen Umbrüchen sollten diese Einstellungen immer vorgenommen werden.

Horizontale Linie

  • Einfache Zeichnung einfügen
  • Zeichnen eines horozintalen Rechteckes. Von dem Rechteck soll nur die obere Kante gedruckt werden. Es ist daher unerheblich wie hoch das Rechteck ist.
  • Form: Horiz. Linie
  • Pen Width: 0,02 (Angabe erfolgt hier in cm)

Barcodes

Ziffernfolgen können als Barcode ausgegeben werden. Ein Barcode kann mit einem Barcode-Leser erfasst werden, was die Tastatureingabe ersetzt. Der für Artikelnummern im internationalen Handel verwendete Standard ist EAN13, der eine Barcode-Codierung von Zeichenketten mit genau 13 Ziffern ermöglicht. Kürzere Ziffern werden üblicherweise links mit 0 aufgefüllt.

Bedingung=RIGHT('0000000000000'+STR(INVOICEVIEW.CUSTOMERID),13)

Globale Seitenkopfzeile

Eine globale Seitenkopfzeile erscheint auf allen Seiten vor allen Detail-Sektionen. Dies ist sinnvoll, wenn wenn man damit Spaltenüberschriften realisiert. Wenn die erste Seite mit eingeschlossen werden soll, ist Global verarb.=True einzustellen.

Oftmals ist für die erste Seite ein Berichtskopf gewünscht, der vor der globalen Seitenkopfzeile mit den Spaltenüberschriften erscheinen soll. Um dieses Verhalten zu erreichen, wird mit Global verarb.=False die globale Seitenkopfzeile auf der ersten Seite nicht angezeigt. Anstelle dessen kann eine identische Spaltenüberschriftenzeile in der Detail-Sektion am Ende des Berichtskopfes oder eines vorhergehenden Subreport erstellt werden.

Globale Seitenfußzeile

bei mehrseitiger Ausgabe

  • einen Subreport erstellen
  • Fußzeile hinzufügen und mit Inhalt versehen
  • Global verarb.=True
  • Druck erzwingen=True

Bei erzwungenen Seitenumbrüchen kann eine leere Seite entstehen mit nur dem Fußzeileninhalt. In der Sektion Detail des Subreports Druck-Beding.: False einstellen.

Bilder statisch einfügen

  • Werkzeug Bild einfügen
  • Rahmen zeichnen
  • rechte Maustaste > Öffnen
  • Um das gesamte Bild Zeichenstil=Strecken

Dynamische Bilder

Bilder können auch dynamisch versorgt werden, entweder durch Report-Parameter oder durch Datenabfragen. Dabei ist zu beachten:

  • Bilder müssen mit komplette Pfadangaben versorgt werden. Es bietet sich an, über einen Parameter einen Dateipfad zu übergeben, damit absolute Pfade nicht im Report und auch nicht in Daten enthalten sein müssen. Da aber Reports oftmals kundenspezifisch sind und absolute Pfade in der Kindenumgebung stabil sind, können absolute Pfade auch im Report hinterlegt werden.
  • Das PNG-Format ist leider nicht auf allen Systemen (Linux) funktionsfähig. Man muss sich auf gif und jpg beschränken.

Siehe Besonderheiten für weitere Informationen.

Horizontale Detailausgaben

  • Die Aktivierung erfolgt durch die Reduzierung der Breite der Detail-Sektion und die Festegung der Ausgabefolge
    • Horiz. Abw.=True (zeilenweise, links-zu-rechts-Folge )
    • Vert. Abw.=True (spaltenweise, oben-nach-unten-Folge)
  • Horizontale Detailausgaben sind auch mit Gruppierung möglich. In dem Fall sind auch für die Gruppenkopf- und fusszeile dieselben Einstellungen erforderlich.
  • Einzigste Einschränkung von zeilenweisen horizontalen Detailausgaben (links-zu-rechts-Folge) ist die Verarbeitung von Feldern mit automatische Vergrößerung. Die Höhe einer Detailzeile wird nach dem letzen (rechten) Detail eingestellt. Ist die kleiner als ein vorhergehenden kann es zur Überlagerung kommen.

Absatzformatierungen

Durch eine Erweiterung sind Absatzformatierungen (Aufzhälungen, Nummerierungen, Einzüge, Absatzabstände möglich).

    Komplexe Report-Strukturen

    Gruppierungen

    Durch eine Gruppierung unterteilt man die Datensätze in Gruppen und man hat die Möglichkeit Zwischenüberschriften anzuzeigen. Indem man Felder mit gleichen Werten in einer Gruppe aus der tabellarischen Detail-Sektion in die Gruppenkopfzeile verlagert, erreicht man häufig eine Reduzierung des Platzbedarfes.

    • Auf Reiter Struktur > Subreport-0 auswählen
    • Master-Datensatz zuweisen: MELDUNGEN
    • Neu Gruppenkopfzeile und -fußzeile erstellen
    • Sektion Detail auswählen
      • Auf Reiter Daten umschalten
      • Datensatz MELDUNGEN expandieren
      • im Arbeitsbereich Detail Felder aus dem Datensatz ziehen und platzieren
    • im Arbeitsbereich Kopfzeile oder Kopfzeile - GRUPPE1 Spaltennamen erstellen mit dem Werkzeug Statischen Text einfügen
    • in den Eigenschaften von Kopfzeile - GRUPPE1 die Gruppenbedingung (Gruppen-Bed.) eingeben, im Beispiel SG

    Man muss unterscheiden zwischen Gruppenkopfzeile und Seitenkopfzeile. Gruppenkopfzeilen dienen nicht vordergründig der Herstellung von Spaltentiteln, sondern der Anzeige der Gruppierungsmerkmale. Gruppenkopfzeilen erscheinen beim Wechsel einer Gruppe innerhalb der Seite, nicht zwangsweise am Seitenkopf. Bei einer langen Gruppe können Seiten ohne Kopfzeile entstehen. Seitenkopfzeilen werden deshalb häufig separat erforderlich

    In den Eigenschaften von Fußzeile - GRUPPE1 kann alternativ ein Seitenumbruch nach der Gruppe eingeschaltet werden (Neue Seite=True). Damit erscheinen folgende Gruppenkopfzeilen immer am Beginn einer Seite vor den Daten, und können somit auch als Seitenkopf dienen.

    Zusammenhalten von Datensätzen

    Ein explizites Zusammenhalten von Datensätzen wird nicht unerstützt. Es ist nur möglich verfügbaren vertikalen Platz zu sichern (Einleitung eines Seitenumbruches, wenn verfügbarer Platz zu gering). Einen Block (Unterabfrage) kann man nicht zuverlässig zusammenhalten, da man nicht weiß wie groß der Block werden wird.

    Um eine unvollständige Zeile zu verhindern sollten 0,6 cm (350 Twips) reserviert werden (1cm = 567 Twips).

    Umbrechen langer Texte

    Ein

    Zusammensetzen von Datensätzen Komma getrennt

    Um Datensätze kommagetrennt anzuzeigen (anstelle sie vertikal auszugeben), füllt man im Detailbereich eine Variable und gibt diese erst im Gruppenfuß aus. Beispiel: Auslistung der Namen von beteiligten Personen in einem Projekt o.ä.

    • Anlegen eines Subreports
    • Gruppierung (Gruppen-Kopfzeile und -Fußzeile) anlegen
    • Masterdatensatz des Subreports die entsprechende Abfrage zuordnen
    • String Parameter (Defaulteinstellungen belassen) erstellen und entsprechender Abfrage zuordnen
    • Im Gruppenkopf (Kopfzeile Vor d. Druck) Parameter mit Leerstring ('') initialisieren
      z.B. STRVAR=''
    • In Subreport Detail ein Feld einfügen, Bedingung leer lassen, damit nichts ausgegeben wird, die Variable fortlaufend mit den Datensätzen befüllen (im Feld Nach d. Druck), jeweils mit Komma+Leerzeichen abschließen
      z.B. STRVAR:=STRVAR+ds.bspspalte+', '
      Als Druckbedingung einen leeren Datensatz ausschließen: z.B. ds.bspspalte< >null
    • Im Gruppenfuß die Variable ausgeben und vorher das letzte Komma+Leerzeichen abschneiden
      z.B. LEFT(STRVAR,POS('#',STRVAR+'#')-2)

    Unterberichte

    Ein Unterbericht ist ein Bericht, der in einen anderen Bericht eingefügt wird. Der Unterbericht kann alle Bestandteile eines "normalen" Berichts, also Kopf-Bereiche, Details und Fuß-Bereiche haben. Will man z.B. Projekte mit mehreren dazugehörigen Projektmitgliedern anzeigen, kann man mit einem Subreport arbeiten. Unterberichte basieren jeweils auf einer Unterabfrage, wodurch bei vielzahliger Erscheinung der Gesamtreport langsam werden kann.

    • Unter ... Reportdatensätze eine Abfrage für die Masterdatensätze anlegen
      • Name PROJEKTE
      • SELECT projektid AS id, title FROM projekte (Die Abfrage muss den Primärschlüssel als id liefern, dazu AS verwenden, wenn die Tabelle keine Spalte id hat)
    • Unter ... Reportdatensätze eine Abfrage für die Unterdatensätze erstellen
      • Name MITGLIEDER
      • SELECT name FROM projectmember WHERE projectid=@ID
      • in besonderen Fällen kann es notwendig sein, dass die Unterabfrage bei fehlenden Daten einen Leerdatensatz zurückliefrt (mit SQL-Join möglich)
    • Unterbericht-Subreport hinzufügen
      • in der Struktur Masterdatensatz hinzufügen außerdem unter Report > Konfiguration Datenzugang... > Reportdatensätze auch hier den Detaildatensätzen den Master_Datensatz zuordnen z.B. dem MITGLIEDER-Datensatz den PROJEKTE-Masterdatensatz
    • Parameter erstellen, der Name des Parameters muss der gleiche sein wie der Feldname des verknüpften Datensatzes
      • Datentyp: Exprs.Bef.Open
      • Wert: 0 (Anfanggsinitialisierung mit einem Wert scheint bei Parametern generell wichtig zu sein!)
        Value searchhelp
      • Search dataset: Detail-Datensatz z.B. PROJEKTE
      • Search parameter: Name des Parameters auswählen, z.B. ID
      • Zuordnung zu Datensätzen z.B. PROJEKTE --> MITGLIEDER, PROJEKTE
        MITGLIEDER --> MITGLIEDER, PROJEKTE
    • in dem Subreport, wo der Unterbericht eingefügt werden soll, eine Detail-Sektion (oder Kopf-/ Fußzeile) hinzufügen und Child subreport auf den Unterbericht-Subreport mit den Unterdatensätzen einstellen.
      • in der Detail

    Test

    Leider kann der Designer den Bericht mit Unterbericht nicht anzeigen, in der Laufzeitumgebung sollte er jedoch funktionieren. Fehlermeldung "ERROR [42703] FEHLER: Spalte "id" existiert nicht; error while executing the query" kann ignoriert werden.

    Darstellungsoptionen

    Es gibt eine Reihe von Möglichkeiten in der Darstellung (Anzeige Label, Verhalten bei fehlenden Daten)

    • Label wird in Hauptreport-Sektion ausgegeben
    • Label wird im Subreport ausgegeben
    • Hauptreport-Sektion ausblenden bei fehlenden Daten
    • Hauptreport-Sektion leer bei fehlenden Daten (Leerdatensatz)
    • Platzreservierung
       
    Top

    Wir arbeiten mit Software von http://www.campus21.de.

    Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.

    Suche