Datenbankjobs erstellen

Datenbankjobs erstellen

Top  Previous  Next

Datenbankjobs stellen eine Möglichkeit dar, mit ausschließlich textueller Definition Dokumente mit Datenbank-Daten zu drucken. Sie können Datenbankjobs als einen Mittelweg zwischen Programmierung und visuellen Berichteditor betrachten und tatsächlich ist die Syntax von Datenbankjobs in TurboPL eingebettet.

Gegenüber Berichten haben Datenbankjobs sowohl Vor- als auch Nachteile:

Datenbankjobs haben eine etwas längere Einarbeitungszeit als Berichte.
Text-orientierte Reports lassen sich mit Datenbankjobs erheblich schneller erstellen als mit Berichten.
Datenbankjobs werden in reinem Textformat gespeichert und lassen sich deshalb mit jedem beliebigen Texteditor bearbeiten.
Datenbankjob erlauben die direkte Einbindung beliebiger Programmierelemente aus TurboPL.
Datenbankjobs erstellen die Grunddatenmenge automatisch aus den Ausgabeformaten und Verknüpfungen im Projekt.

Damit Sie eine erste Vorstellung bekommen, wie ein Datenbankjob aussieht, betrachten wir ein sehr einfaches Beispiel aus dem Demo-Projekt KFZ für die Tabelle KFZ:

Datenblatt für $Bezeichnung

Dies ist ein vollständiger Datenbankjob, der pro Fahrzeug in der KFZ-Tabelle eine Seite mit dem Text Datenblatt für gefolgt von der Fahrzeugbezeichnung ausdruckt. Das Dollarzeichen macht hier deutlich, dass nicht das Wort Bezeichnung sondern der Inhalt der Tabellenspalte Bezeichnung gemeint ist.

Spaltennamen können mit verschiedenen Formatierungsangaben wie Breite, Anzahl Dezimalstellen, links- und rechtsbündig versehen werden. Dadurch ist die Zuordnung des Dollarzeichens aber nicht mehr eindeutig und Sie müssen Klammern um das Ausgabeformat machen:

Modelljahr $(Modelljahr:10)

druckt zuerst den Text Modelljahr und dann den Inhalt der Tabellenspalte Modelljahr in einem Feld der Breite zehn. Die Einheit für alle Größenangaben in Datenbankjobs ist per Voreinstellung die durchschnittliche Größe eines Buchstabens. Die Feldbreite ist im obigen Fall also so, dass die Buchstaben n oder p ungefähr zehnmal darin Platz haben.

Jeder Bericht benötigt unterschiedliche Bereiche für Gesamtüberschriften, Seitenüberschriften, Fußzeilen und so weiter. In Datenbankjobs werden diese durch Kommandos angegeben, denen zur Unterscheidung von Text ein Punkt am Anfang der Zeile vorangestellt wird:

.prolog ..Das ist der Bereich für die Gesamtüberschrift
Liste der Fahrzeuge
.daten
Datenblatt für $Bezeichnung

 
Modelljahr $(ModellJahr:10)

Unterschiedliche Schriftarten müssen im Prolog durch das Kommando font definiert werden, um dann bei der Ausgabe mit dem Befehl setfont aktiviert zu werden:

.prolog ..Das ist der Bereich für die Gesamtüberschrift
.font A16fu = Arial, 16, f, u
.font A10 = Arial, 10
.setfont A16fu
Liste der Fahrzeuge
.setfont A10
.daten
Datenblatt für $Bezeichnung
 
Modelljahr $(ModellJahr:10)

Sie sehen hier auch dass zwei Punkte einen Kommentar bis zum Ende der Zeile einleiten.

Die Seitenränder werden mit den Steuerbefehlen PO, MT, MR und MB eingestellt. Steuerbefehle werden wie Kommandos durch einen Punkt am Zeilenanfang eingeleitet, sie bestehen aber aus nur zwei Buchstaben gefolgt von einer Zahl und können kombiniert werden:

.prolog ..Das ist der Bereich für die Gesamtüberschrift
.PO 10, MT 5, MR 10, MB 5 ..Stellt je zehn Zeichen für linken und rechten sowie 10 Zeilen für oberen und unteren Rand ein
.font A16fu = Arial, 16, f, u
.font A10 = Arial, 10
.setfont A16fu
Liste der Fahrzeuge
.setfont A10
.daten
Datenblatt für $Bezeichnung
 
Modelljahr $(ModellJahr:10)

Für viele Zwecke ist der automatische Seitenumbruch nach jedem Datensatz nicht geeignet. Beginnen Sie den Datenbankjob mit dem Kommando report, um dies zu vermeiden:

.report
.prolog ..Das ist der Bereich für die Gesamtüberschrift
.PO 10, MT 5, MR 10, MB 5 ..Stellt je zehn Zeichen für linken und rechten sowie 10 Zeilen für oberen und unteren Rand ein
.font A16fu = Arial, 16, f, u
.font A10 = Arial, 10
.setfont A16fu
Liste der Fahrzeuge
.setfont A10
.daten
Datenblatt für $Bezeichnung
 
Modelljahr $(ModellJahr:10)

Siehe auch

Referenz Datenbankjobs, Beispiel-Projekt Datenbankjobs