Programmierung in Reports: Unterschied zwischen den Versionen
Die Seite wurde neu angelegt: „== Programmierung in Reports == {{Achtung|Der folgende Abschnitt richtet sich an Personen mit Informatik- oder Programmierhintergrund. Die Beschreibung fällt daher knapper und technischer aus als in anderen Wikiartikeln.}} Der Reporteditor in '''SchILD-NRW 3''' unterstützt die Programmiersprache '''Object Pascal'''. Dadurch können Reports um dynamisches Verhalten erweitert werden – von einfachen Sichtbarkeitsabfragen bis hin zu komplexen Berech…“ |
KKeine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
== Programmierung in Reports == | == Programmierung in Reports == | ||
{{Achtung|Der folgende Abschnitt richtet sich an Personen mit Informatik- oder Programmierhintergrund. | {{Info/Achtung|1=Der folgende Abschnitt richtet sich an Personen mit Informatik- oder Programmierhintergrund. | ||
Die Beschreibung fällt daher knapper und technischer aus als in anderen Wikiartikeln.}} | Die Beschreibung fällt daher knapper und technischer aus als in anderen Wikiartikeln.}} | ||
| Zeile 7: | Zeile 7: | ||
Dadurch können Reports um dynamisches Verhalten erweitert werden – von einfachen Sichtbarkeitsabfragen bis hin zu komplexen Berechnungen, Datenmanipulationen oder Benutzerinteraktionen. | Dadurch können Reports um dynamisches Verhalten erweitert werden – von einfachen Sichtbarkeitsabfragen bis hin zu komplexen Berechnungen, Datenmanipulationen oder Benutzerinteraktionen. | ||
{{Hinweis|Prüfen Sie stets, ob eine gewünschte Funktion programmiertechnisch notwendig ist oder ob sie bereits über Datenfelder, Systemvariablen oder Gruppierungsfunktionen ohne Code umgesetzt werden kann. | {{Info/Hinweis|1=Prüfen Sie stets, ob eine gewünschte Funktion programmiertechnisch notwendig ist oder ob sie bereits über Datenfelder, Systemvariablen oder Gruppierungsfunktionen ohne Code umgesetzt werden kann. | ||
So bleiben Reports wartbar und verständlich.}} | So bleiben Reports wartbar und verständlich.}} | ||
{{clear}} | |||
[[Datei:SchILD_Reports_Programmieren_1.png|thumb|hochkant=1.5|Identifikation der relevanten Felder im Editor.]] | [[Datei:SchILD_Reports_Programmieren_1.png|thumb|hochkant=1.5|Identifikation der relevanten Felder im Editor.]] | ||
| Zeile 24: | Zeile 22: | ||
Hier wird sichtbar, dass das Feld mit dem Geburtsdatum '''DBText2''' ist. | Hier wird sichtbar, dass das Feld mit dem Geburtsdatum '''DBText2''' ist. | ||
{{Tipp|Attribute lassen sich direkt in den Eigenschaften anpassen, z. B. Größen von Grafikobjekten oder Sichtbarkeit der Elemente.}} | {{Info/Tipp|1=Attribute lassen sich direkt in den Eigenschaften anpassen, z. B. Größen von Grafikobjekten oder Sichtbarkeit der Elemente.}} | ||
<br clear=all> | <br clear=all> | ||
| Zeile 71: | Zeile 69: | ||
Das Feld soll '''beim Druck''' unterdrückt werden – daher wird das Event '''OnPrint''' verwendet. | Das Feld soll '''beim Druck''' unterdrückt werden – daher wird das Event '''OnPrint''' verwendet. | ||
{{Tipp|Über den Bereich '''Daten''' kann das Feld '''KeineAuskunft''' per Drag & Drop in das Codefenster gezogen werden.}} | {{Info/Tipp|1=Über den Bereich '''Daten''' kann das Feld '''KeineAuskunft''' per Drag & Drop in das Codefenster gezogen werden.}} | ||
Der Code wird in Object Pascal formuliert. | Der Code wird in Object Pascal formuliert. | ||
| Zeile 87: | Zeile 85: | ||
[[Datei:SchILD_Reports_Programmieren_4.png|thumb|Das (soweit) fertige Ergebnis.]] | [[Datei:SchILD_Reports_Programmieren_4.png|thumb|Das (soweit) fertige Ergebnis.]] | ||
{{Hinweis|In Reports können Variablen, Konstanten und Datenstrukturen verwendet werden. | {{Info/Hinweis|1=In Reports können Variablen, Konstanten und Datenstrukturen verwendet werden. Der Editor stellt darüber hinaus Funktionen bereit, um beim Start eines Reports Eingaben über Checkboxen, Listen, Dropdowns, freie Zeichenketten oder Daten abzufragen. Eine häufige Anwendung ist das Ersetzen von Platzhaltern wie '''$JAHRGANG$''' in '''RichText'''-Feldern zur Laufzeit.}} | ||
Der Editor stellt darüber hinaus Funktionen bereit, um beim Start eines Reports Eingaben über Checkboxen, Listen, Dropdowns, freie Zeichenketten oder Daten abzufragen. | {{Info/Tipp|1=Zur Orientierung empfiehlt es sich, programmierte Teile von Zeugnisreports anzusehen.}} | ||
Eine häufige Anwendung ist das Ersetzen von Platzhaltern wie '''$JAHRGANG$''' in '''RichText'''-Feldern zur Laufzeit.}} | {{Info/Link|1=Siehe auch: [[:Kategorie:RAP-Funktionen|Auflistung aller unterstützten RAP-Funktionen]].}} | ||
{{Tipp|Zur Orientierung empfiehlt es sich, programmierte Teile von Zeugnisreports anzusehen.}} | |||
[[Kategorie: SchILD-NRW]] [[Kategorie: Reportdesigner]] | |||
Aktuelle Version vom 19. Januar 2026, 18:45 Uhr
Programmierung in Reports
Der folgende Abschnitt richtet sich an Personen mit Informatik- oder Programmierhintergrund.
Die Beschreibung fällt daher knapper und technischer aus als in anderen Wikiartikeln.Der Reporteditor in SchILD-NRW 3 unterstützt die Programmiersprache Object Pascal. Dadurch können Reports um dynamisches Verhalten erweitert werden – von einfachen Sichtbarkeitsabfragen bis hin zu komplexen Berechnungen, Datenmanipulationen oder Benutzerinteraktionen.
Prüfen Sie stets, ob eine gewünschte Funktion programmiertechnisch notwendig ist oder ob sie bereits über Datenfelder, Systemvariablen oder Gruppierungsfunktionen ohne Code umgesetzt werden kann.
So bleiben Reports wartbar und verständlich.

Im Beispiel soll eine Klassenliste erweitert werden: Ist bei einem Schüler die Datenweitergabe gesperrt (in SchILD markiert als Keine Auskunft an Dritte), soll das Geburtsdatum im Report nicht ausgegeben werden. Ein ähnliches Vorgehen wäre für Telefon- oder Adresslisten denkbar.
Zunächst werden im Reporteditor die relevanten Felder identifiziert. Über den Berichtsbaum lassen sich vorhandene Elemente schnell durchklicken. Unten links zeigt der Bereich Eigenschaften von X die Attribute eines Feldes, u. a. Name, Typ, Formatierungen oder Sichtbarkeitsstatus.
Hier wird sichtbar, dass das Feld mit dem Geburtsdatum DBText2 ist.
Das Hauptfenster für Berechnungen

Der Modus Berechnungen wird über die Moduszeile aktiviert (neben Entwurf und Vorschau).
Die Programmierumgebung gliedert sich in mehrere Bereiche:
- Ereignisse (Events)
Ereignisse sind Funktionspunkte, an denen Code ausgeführt werden kann, z. B. OnGetText oder OnPrint.
- Variablen
Anzeige der im Report verfügbaren Variablen und Konstanten.
- Subreports
Bei komplexen Reports kann unten durch Subreports navigiert werden.
- Daten / Elemente / Sprache
Diese Ansicht steuert, welche Eigenschaften oder Funktionen angezeigt werden: * Daten – Variablen eines Elements, inkl. Typen * Elemente – Attribute des Felds (z. B. visible für Sichtbarkeit) * Sprache – Object-Pascal-Funktionen des Reporteditors inkl. Toolbox
Wird im Berichtsbaum ein Feld angeklickt, zeigt die Event-Liste, welche Ereignisse vom Feld verarbeitet werden können. Für DBText2 wären hier besonders OnGetText und OnPrint relevant.
Die Programmierung

Damit DBText2 unterdrückt wird, muss geprüft werden, ob der Schüler als Keine Auskunft an Dritte markiert ist.
Im Modus Entwurf werden zunächst testweise die Felder Gesperrt und Keine Auskunft ausgegeben, um das richtige Datenfeld zu finden. Hierbei zeigt sich, dass das relevante Merkmal im Feld KeineAuskunft gespeichert ist, kodiert als:
- + = gesetzt
- - = nicht gesetzt
Diese temporären Felder werden anschließend wieder entfernt.
Das Feld soll beim Druck unterdrückt werden – daher wird das Event OnPrint verwendet.
Der Code wird in Object Pascal formuliert. Um das Verhalten sichtbar zu machen, wird zusätzlich ein Feld Label1 verwendet, das »---« zeigt, wenn das Geburtsdatum unterdrückt wird.
Unter dem Codefenster wird eine Zeile angezeigt, die Syntaxfehler berichtet. Ereignisse mit Code sind durch Symbole markiert:
- grün → kein Fehler
- rot → Syntaxfehler
Beim Durchklicken der Felder lässt sich damit schnell erkennen, wo Code hinterlegt ist.
