Die Report-Komponente gb.report2 bietet die Möglichkeit, Daten aus unterschiedlichen Quellen strukturiert anzuordnen und auszudrucken. Das Layout eines Reports können Sie u.a. in der IDE mit dem Report-Designer festlegen.
Achtung! Der grafische Report-Designer ist kein WYSIWYG-Editor. Die einzelnen Report-Steuerelemente wie zum Beispiel Report.Label oder Report.Image - innerhalb einer Report-Sektion - können in Report-Container wie Report.HBox oder Report.Panel eingefügt werden. Die dann festgelegten Eigenschaften der Report-Steuerelemente werden aber nur teilweise angezeigt. Das gewählte Layout und Design können Sie jederzeit über eine Report-Vorschau und einen Kontroll-Ausdruck kontrollieren, um Korrekturen vorzunehmen. Eine Hilfe kann dabei die Festlegung der Eigenschaft Report.Debug auf den Wert True sein, weil in diesem Modus die Grenzen aller im Report enthaltenen Objekte eingezeichnet werden.
Als Alternative zum Einsatz des Report-Designers können Sie auch das komplette Layout und Design eines Reports über den Quelltext festschreiben. Das birgt aber stets die Gefahr, dass Sie fehlerhafte Werte für ausgewählte Eigenschaften eingeben oder die vorgegebene Syntax nicht einhalten, was Ihnen im Report-Designer so nicht passieren kann. Der Einsatz des Report-Designers bietet sich dann an, wenn das Layout mit vielen Containern und vielen Report-Steuerelementen umfangreich ist. Um zum Beispiel einen Rand um ein ReportPanel1 (links, rechts, oben und unten 5 mm, linke obere und untere rechte Ecke zusätzlich abgerundet mit einem Radius von 5 mm) mit linearem Farbverlauf schwarz-rot-gelb (linearer Gradient) zu definieren, benötigen Sie im Quelltext diese Wert-Zuweisung der Eigenschaft ReportPanel1.Border:
ReportPanel.Border = ReportBorder["Top:5mm LinearGradient(0,0.04,0,1,[#000000,#FFFF00,#FF0000],[0,1,0.5]); Bottom:5mm LinearGradient(0,0.04,0,1,[#000000,#FFFF00,#FF0000],[0,1,0.5]); Left:5mm LinearGradient(0,0.04,0,1,[#000000,#FFFF00,#FF0000],[0,1,0.5]); Right:5mm LinearGradient(0,0.04,0,1,[#000000,#FFFF00,#FF0000],[0,1,0.5]); TopLeftCorner:5mm;TopRightCorner:0mm;BottomRightCorner:5mm;BottomLeftCorner:0mm"]
Die Komponente reimplementiert die Klassen Align, Arrange und Line und implementiert eine Vielzahl von Report-Klassen:
Report, ReportBorder, ReportBoxShadow, ReportBrush, ReportContainer, ReportControl, ReportDrawingArea, ReportFrame, ReportHBox, ReportImage, ReportLabel, ReportLine, ReportMargin, ReportPadding, ReportPageBreak, ReportPanel, ReportSection, ReportSizeHints, ReportSizeParser, ReportSvgImage, ReportTextLabel, ReportVBox, ReportView, ReportVPanel, TSizeParse.
Eine Beschreibung der Eigenschaften zu den Klassen Align, Arrange und Line finden Sie unter:
https://www.gambas-buch.de/doku.php?id=k20:k20.7:start&s[]=align#klasse_align https://www.gambas-buch.de/doku.php?id=k20:k20.7:start&s[]=align#klasse_arrange http://gambaswiki.org/wiki/comp/gb.qt4/line
Die wichtigste Klasse der Komponente gb.report2 ist Report, denn diese Klasse repräsentiert einen Report.
Die Klasse verhält sich wie ein schreibgeschütztes Array und liefert ein virtuelles Objekt vom Datentyp ReportSection für den vorgegebenen Index:
Dim hReport As Report Dim hReportSection As ReportSection hReportSection = hReport [ Index As Integer ]
Beachten Sie, dass viele Eigenschaften über andere Klassen wie zum Beispiel ReportPadding, ReportBrush oder ReportBoxShadow definiert werden. So ist zum Beispiel die Eigenschaft `Report.Border` vom Typ ReportBorder. Das bedeutet, dass diese Eigenschaften speziell für den Report gelten und nicht unbedingt mit den gleichlautenden Eigenschaften anderer Steuer-Elemente vergleichbar sind.
Die Klasse Report verfügt über folgende Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
BackGround | ReportBrush | Gibt die vom Report verwendete Hintergrundfarbe zurück oder setzt sie. |
Border | ReportBorder | Liefert oder setzt den Rand des Reports. |
BoxShadow | ReportBoxShadow | Gibt den vom Report verwendeten Schatten zurück oder setzt ihn. |
Brush | ReportBrush | Gibt den für das Zeichnen verwendeten Pinsel zurück oder setzt ihn. Der Standard-Pinsel hat eine einfarbige, deckend schwarze Farbe. |
Children | ReportControl[] | Gibt eine Sammlung aller Steuer-Elemente zurück, die im Container enthalten sind. |
Count | Integer | Liefert oder setzt die Anzahl der Sektionen im Report. |
Data | Objekt | k.A. |
DataCount | Integer | Liefert oder setzt die Anzahl der Wiederholungen, die zum Lesen aller Daten erforderlich sind. |
DataIndex | Integer | Gibt den Wert des Wiederholungszählers zurück. |
Debug | Boolean | Für den Wert True werden die Reports im Debug-Modus erzeugt. Dieser Modus zeichnet die Grenzen aller im Report enthaltenen Objekte. Der Standard ist False. Der Wert kann auch ausgelesen werden. |
Expand | Boolean | Liefert oder setzt, ob sich ein Steuerelement expandiert, wenn es in einem Container enthalten ist. Standard ist True. |
Fixed | Boolean | Gibt zurück oder legt fest, ob ein Steuerelement bei jedem Aufruf seines übergeordneten Elements angezeigt wird. Für den Wert False wird das Report-Steuerelement nur einmal angezeigt. |
Font | Font | Liefert oder setzt die Schriftart, mit der Text im Steuerelement gezeichnet wird. Um die Schriftart-Steuerung zur Laufzeit zu ändern, können Sie Folgendes tun: Verwenden Sie die Font-Eigenschaft eines anderen existierenden Steuer-Elementes oder erzeugen Sie ein Font-Objekt aus einer Zeichenkette, die die Schrift beschreibt und weisen das dem Report-Steuerelement zu. Informationen finden Sie u.a. unter http://www.gambaswiki.org/wiki/comp/gb.qt4/font/_get. |
ForceNewPage | Boolean | Für den Wert True wird eine neue Seite in den Report eingefügt. |
Height | String ! | Gibt die vom Report verwendete Höhe zurück oder setzt sie. Die Höhe ist vom Datentyp Float. Zulässige Einheiten sind: mm, cm, in, ft, px, pt und Angaben in %. Beispiel: Height = „1.3cm“. |
Width | String ! | Liefert oder setzt die Breite des Reports. |
ID | Integer | Liefert das Handle des Reports. |
Index | Integer | k.A. |
Name | String | Setzt den Namen des Reports. |
OnePiece | Boolean | Diese Eigenschaft bewirkt, dass für den Wert True der Inhalt des Containers auf der gleichen Seite gedruckt wird. |
Orientation | Integer | Liefert oder setzt die Ausrichtung des Layouts des Reports. Der Wert dieser Eigenschaft ist entweder Printer.Landscape oder Printer.Portrait. |
Padding | ReportPadding | Liefert oder setzt den Abstand, den ein untergeordnetes Report-Steuerelement vom Rand des Containers trennt. Das gilt für ein Report-Steuerelement als auch für Text. Beispiel: Report1.Padding = ReportPadding[„Top:14mm;Bottom:10mm;Left:10mm;Right:14mm“] |
PageCount | Integer | Liefert die aktuelle Anzahl der Seiten im Report. |
Paper | Integer | Gibt das für den Druck verwendete Papierformat zurück oder stellt sie ein. Es wird Paper.Custom zurück gegeben, wenn die Eigenschaften Printer.PaperWidth oder Printer.PaperHeight durch den Benutzer definiert wurden. Beispiel: Report1.Paper = Printer.A5. Standard ist A4. |
Report | Report | Liefert den Report für ein Report-Steuerelement. |
Resolution | Integer | Liefert oder setzt die Report-Auflösung in DPI (Dots Per Inches). Wenn der Wert Null ist, wird der Wert des Geräts verwendet. |
Scale | Float | Ändert den Zeichnungsmaßstab. Er nimmt einen Wert zwischen 0 und 1 an. Sie können den Wert auch auslesen. |
Spacing | String | Liefert oder setzt den Abstand, der die Report-Steuerelemente in einem Report-Container trennt. Zulässige Einheiten sind: mm, cm, in, ft, px, pt und Angaben in %. Beispiel: Report1.HBox1.Spacing = „5mm“ |
Tag | Variant | Liefert oder setzt das Control-Tag. Diese Eigenschaft ist für den Programmierer bestimmt und wird von der Komponente nicht verwendet. Tag kann ein beliebiger Wert vom Datentyp Variant sein. |
Text | String | Legt den Titel einer Sektion eines Reports fest. |
Visible | Boolean | Legt fest, ob der Report sichtbar ist oder nicht. |
Tabelle 22.11.0.1.1 : Eigenschaften der Klasse Report
Die Eigenschaft Paper kann einen der folgenden Werte annehmen:
Die Klasse Report verfügt über diese Methoden:
Methode | Rückgabetyp | Beschreibung |
---|---|---|
Clear ( ) | - | Entfernt alle Report-Steuerelemente aus dem aktuellen Report. |
Clone ( ) | Report | Es wird eine neue Instanz des aktuellen Reports zurückgegeben. |
Layout ( ) | - | Erzwingt das Layout oder wiederholt die Layout-Berechnungen für den aktuellen Report. |
Paint ( Page As Integer ) | - | Zeichnet die angegebene Report-Seite. Beachten Sie, dass die erste Seite 1 und nicht 0 ist. |
Preview ( ) | - | Öffnet ein Vorschaufenster mit dem aktuellen Report. Sie können den Report dann auf einem Drucker ausdrucken oder in eine PDF-Datei drucken, deren Pfad Sie im Dialog frei wählen können. |
Print ( [ hPrinter As Printer ] ) | - | Druckt den Report. Wenn der Drucker angegeben wird (optional), so wird der Report sofort auf dem angegebenen Drucker ausgedruckt. Sonst öffnet sich ein Dialog, weil intern Printer.Configure() aufgerufen wird, wenn mindestens ein Drucker als Standarddrucker im System existiert. |
Tabelle 22.11.0.1.2 : Methoden der Klasse Report