GRUNDLAGEN

Ereignisreiche Berichte

Beim Formatieren: Anpassen von Steuerelementen

Mit dem einen oder anderen Beispiel wird die Bedeutung der einzelnen Berichtsbereiche schnell klar. Das Ereignis Beim Formatieren findet statt, bevor für den aktuellen Bereich ermittelt wird, wie groß er wird, welche Steuerelemente enthalten sind und ob er überhaupt auf die aktuelle Seite passt. Das heißt, dass man Änderungen, die sich auf das Layout der Ausgabe auswirken könnten, hier vornehmen sollte.

Ein einfaches Beispiel liefert wieder einmal die Nordwind-Datenbank. Die Artikel-Tabelle hält in diesem Fall für einen einfachen Bericht mit wenigen Beispielfeldern her. Zusätzlich zu den Artikelinformationen soll dann ein Textfeld angezeigt werden, wenn es sich bei einem Artikel um einen Auslaufartikel handelt und dieser zudem ausverkauft ist (Bild 1). Dieser Text soll nun nicht nur einfach ein- oder ausgeblendet werden, zusätzlich soll beim Ausblenden des Textfeldes kein Leerraum zwischen zwei Datensätzen erscheinen. Dazu stellt man die Eigenschaft Verkleinerbar sowohl für das Textfeld als auch für den Detailbereich auf Ja ein.

Bild 1: Anlegen einer Ereignisprozedur für einen Berichtsbereich.
Bild 1: Anlegen einer Ereignisprozedur für einen Berichtsbereich.

Falls Sie sich fragen, warum man statt des Textfeldes nicht einfach ein Bezeichnungsfeld für die Anzeige der Meldung verwendet: Nur Textfelder bieten die Eigenschaft Verkleinerbar. Ein Bezeichnungsfeld ließe sich zwar ausblenden, aber der Platz würde nicht für den folgenden Datensatz freigegeben.

Fehlt noch die Ereignisprozedur. Diese fragt lediglich den Wert der beiden zu untersuchenden Felder ab und stellt die Eigenschaft Visible des Textfeldes auf den entsprechenden Wert ein (Listing 1).

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
If Me!Auslaufartikel = True And Me!Lagerbestand = 0 Then
Me!txtHinweis.Visible = True
Else
Me!txtHinweis.Visible = False
End If
End Sub