Es hat sich als günstig erwiesen, das Layout des zu erzeugenden Reports aufzuzeichnen und sich bei den Report-Containern (ReportHBox, ReportVBox, ReportVPanel, ReportPanel) mit den enthaltenen Report-Steuerelementen (die auch wieder Report-Container sein können) den passenden Typ, Größenangaben und u.U. Farben oder andere Design-Angaben wie Schriftart und Schrift-Höhen zu notieren.
Beim Entwurf eines Reports sollten Sie so vorgehen:
Die folgenden Hinweise sollen Ihnen bei der Umsetzung der Layout-Planung mit dem Report-Designer in Gambas helfen. Probieren Sie die Wirkung der Werte der einzelnen Eigenschaften auf das Layout Ihres Report in der Vorschau aus und ändern Sie Eigenschaft und Werte so lange, bis Sie mit dem Ergebnis zufrieden sind.
Hinweise zu Eigenschaften der Anordnung von Report-Containern:
Hinweise zu Eigenschaften der Anordnung von Report-Steuerelementen:
Achtung: Diese Report-Steuerelemente sind keine Report-Container.
Die folgenden Beschreibungen für das ReportLabel gelten gleichermaßen auch für das Report-Steuerelement ReportTextLabel. Während das ReportLabel nur Text druckt, wird beim ReportTextLabel Rich-Text ausgedruckt.
Verwenden Sie die Eigenschaft Data vom Datentyp String, um den Inhalt eines Steuerelements ReportLabel während des Data()-Ereignishandlers über die Data-Eigenschaft bereitstellen.
Das wichtigste Ereignis ist daher Data ( argIndex As Integer ). Dieses Ereignis wird ausgelöst, wenn im Steuerelement ReportLabel Text gespeichert werden soll. Das Argument `argIndex` gibt den aktuellen Index des Steuerelements zurück. Index ist eine Eigenschaft eines ReportLabels.
Beispiel:
Private hResult As Result Public Sub Report_Open() ... ' Generiert das Ergebnis einer Datenbank-Abfrage aus einer ausgewähltenDatenbank-Tabelle hResult = curDBConnection.Exec("SELECT * FROM tablename") ' Setzt die Anzahl der Wiederholungen der drei TextLabel im Container ReportHBox1 ReportHBox1.DataCount = hResult.Count ... End Public Sub ReportLabelName_Data(Index As Integer) ' Verwenden Sie das Argument `Index`, um durch das Abfrage-Ergebnis zu navigieren. hResult.MoveTo(Index) ' Der Inhalt des Datenbank-Feldes `nachname` wird im Steuerelement `ReportLabelName` angezeigt hResult.MoveTo(Index) Last.Data = hResult["nachname"] ' Last.Data = hResult!nachname ' Alternative End Public Sub ReportLabelVorname_Data(Index As Integer) hResult.MoveTo(Index) Last.Data = hResult["vorname"] End Public Sub ReportLabelGebDatum_Data(Index As Integer) hResult.MoveTo(Index) Last.Data = Format(hResult["gebdatum"], "d. mmmm yyyy") ' Mit Formatierung End
Abbildung 22.11.2.2.1: Datenbank-Report (Ausschnitt)
Hinweise
Setzen Sie die UseField-Eigenschaft im ReportLabel auf True, ist die Komponente vorerst abwärtskompatibel zu gb.report.
Die Range-Eigenschaft ist gegenwärtig (August 2019) nicht benutzt.
Diese Klasse implementiert ein Report-Steuerelement, das ein Bild anzeigt und druckt.
Die Klasse ReportImage verfügt u.a. über folgende Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Image | Image | Setzt das im ReportImage anzuzeigende Bild oder gibt das Bild zurück. |
Fixed | Boolean | Gibt zurück oder setzt, ob das Bild bei jedem Aufruf seines übergeordneten Elements angezeigt wird oder nicht. |
Stretch | Integer | Die Eigenschaft Report-Image.Stretch kann einen der drei Werte Report.Fill (2), Report.Proportional (1) oder Report.None (0) annehmen. |
Tabelle 22.11.2.3.1 : Eigenschaften der Klasse ReportImage
Hinweis: Wenn die Werte Bild-Breite und Bild-Höhe Null sind, verhält sich das Steuerelement so, als wäre seine Eigenschaft Autoresize = True.
Beispiel: Bild in ein ReportImage einfügen
Public Sub Report_Open() Dim hReportImageLogo As Image ... hReportImageLogo = Image.Load(".../logo-ide.png") ReportImage1.Image = hReportImageLogo ReportImage1.Stretch = Report.Proportional ' Ausgabe der originalen Werte für Bild-Höhe und Bild-Weite Print "Logo.H = "; hReportImageLogo.Height; " Pixel" Print "Logo.W = "; hReportImageLogo.Width; " Pixel" End
Das Logo von Gambas ziert das Deckblatt eines Reports:
Abbildung 22.11.2.3.1: Report-Deckblatt mit Bild (Ausschnitt)