Inhaltsverzeichnis

22.11.2 Report - Entwurf

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:

22.11.2.1 Hinweise

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.

22.11.2.2 ReportLabel und ReportTextLabel

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

B1

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.

22.11.2.3 Klasse ReportImage

Diese Klasse implementiert ein Report-Steuerelement, das ein Bild anzeigt und druckt.

22.11.2.3.1 Eigenschaften der Klasse ReportImage

Die Klasse ReportImage verfügt u.a. über folgende Eigenschaften:

EigenschaftDatentypBeschreibung
ImageImageSetzt das im ReportImage anzuzeigende Bild oder gibt das Bild zurück.
FixedBooleanGibt zurück oder setzt, ob das Bild bei jedem Aufruf seines übergeordneten Elements angezeigt wird oder nicht.
StretchIntegerDie 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:

B2

Abbildung 22.11.2.3.1: Report-Deckblatt mit Bild (Ausschnitt)

Download