pdx Aufruf | Index | pdx Referenz

## pdx Konfiguration

pdx wird in der Datei .pdrxrc gemeinsam mit pdr konfiguriert.

### Generelle Optionen

Die Datei .pdrxrc kann folgende generelle Einstellungen enthalten:

verbose = true | lesbare Ausgaben machen, wichtig, um zu verfolgen, was getan wird, anderenfalls werden nur Fehlerausschriften gemacht
interactive = true | pdx immer in der interaktiven Betriebsart starten, nicht ratsam
encoding = UTF-8 | teilt pdx das Encoding der Konsole mit, in der pdx und läuft, dieses Encoding wird für alle Ein- und Ausgaben sowie immer dann benutzt, wenn keine konkretere Angabe gemacht wird. Diese Option ist dafür verantwortlich, daß Texte (z.B. Kommentare, man denke insbesondere an deutsche Umlaute) korrekt in die Datenbank gelangen und korrekt wieder ausgegeben werden. Auf modernen Systemen wird man UTF-8 oder ISO-8859-1 anwenden. pdx erlaubt ASCII, UTF-8, UTF-16, ISO-8859-1, ISO-8859-15, Windows1252, ASCII/CP437 und ASCII/CP850.
midnight = 2:00 | legt fest, welche Uhrzeit als "logisch Mitternacht" gewertet werden soll. Diese Option beeinflußt verschiedene Funktionen von pdx, beispielsweise die Statistikfunktionen, und erlaubt so, einen Wert, der eigentlich nach Mitternacht liegt, noch dem Vortag zuzurechnen, was meist eine bessere Aussage erlaubt. Ist diese Option nicht gesetzt, gilt implizit 0 Uhr als "logisch Mitternacht".
period = from to color | definiert eine zeitliche Periode. from und to sind Datumsangaben, color eine Farbe in der üblichen Notation mit #, Beispiel: period = 2011-01-27 2011-03-19 #EFEFEF In der Datei .pdrxrc können beliebig viele dieser Definitionen stehen. pdx färbt in den generierten Diagrammen den Hintergrund in der angegebenen Farbe ein, falls ein Diagramm einen Zeitabschnitt aus einer so definierten Periode enthält. Dies ist sehr hilfreich, um beispielsweise Urlaub, Reisenoder Experimentierphasen darzustellen.

### Datenbankoptionen

Hier werden Typ und Zugang zur verwendeten Datenbank konfiguriert.

#### SQLite

database.type = sqlite
database.connect = ~/local/share/my_data.db
Die erste Zeile besagt, daß die konkrete Datenbank eine SQLite-Datenbank ist. Die zweite Zeile enthält den vollständigen connect string zur Datenbank. Im Fall von SQLite ist dies schlicht der Name der Datenbankdatei mit Pfad, damit die Programme die Datenbank finden. Da es sich um persönliche Applikationen handelt, d.h. es keinen Mehrbenutzerbetrieb auf der Datenbank gibt, sollte diese in einem lokalen Benutzerverzeichnis liegen. Das Erzeugen der physischen Datenbank ist nicht Aufgabe von pdr oder pdx. Der Benutzer muß dies mit den Mitteln des jeweiligen Datenbank- bzw. Betriebssystems selbst vornehmen.

#### MySQL

database.type = mysql
database.connect = user=my_db_user_name;password=my_db_user_password;db=my_db_name;compress=true;auto-reconnect=true
Die erste Zeile besagt, daß die konkrete Datenbank eine MySQL-Datenbank ist. Die zweite Zeile enthält den vollständigen connect string zur Datenbank. Dieser enthält Paare der Form Schlüssel=Wert, die Schlüssel sind oben fett gemacht. Voraussetzungen zur Bildung dieses connect strings sind folgende:

1. Die Datenbank muß existieren, d.h. sie muß zuvor von einem Datenbankadministrator angelegt worden sein. Dieser vergibt dabei einen Namen, der auf dem Datenbankserver eindeutig ist, z.B. pdrx. Es ist wahrscheinlich empfehlenswert, auf Servern, an denen mehrere Benutzer arbeiten, mehrere benutzerspezifische Datenbanken anzulegen und am Namen zu unterscheiden.
2. Der Benutzer (ein Benutzer des Datenbankservers, nicht des Betriebssystems) muß existieren und das Recht besitzen, Tabellen anzulegen, zu löschen, zu selektieren und zu manipulieren.

### Spezifische Optionen

Die Datei .pdrxrc kann folgende pdx-spezifische Einstellungen enthalten:

fast = true | läßt pdx im schnellen Modus laufen, dabei werden Zwischenergebnisse für spätere Verwendung aufgehoben
outputs = report1, report2 | Diese Zeile definiert Ausgaben für pdx, die in dieser Reihenfolge erzeugt werden. Es ist hier nur nötig, die top-level-Ausgaben anzugeben. Abhängige Ausgaben, beispielsweise Diagramme in einem Bericht, werden besser dort, bei der Definition ihrer übergeordneten Ausgabe als dependencies aufgeführt.

#### Konfiguration eines Berichts

Ein von pdx zu erzeugender Bericht erfordert folgende Konfiguration:
report1.type = report
report1.dependencies = diagram1, diagram2, diagram3
report1.comment_begin = "<!---"
report1.comment_end = "--->"
report1.input_file = input/report1.html
report1.output_file = output/report1.html
report1.encoding = ISO-8859-1
Die erste Zeile besagt, daß report1 ein Bericht ist. Die zweite Zeile benennt drei Diagramme als abhängig, d.h. sie werden gleich mit erzeugt. Die nächsten beiden Zeilen benennen die beiden Kommentarkennzeichnungen, an denen pdx seine Anweisungen innerhalb der als Vorlage verwendeten Eingabedatei erkennt. Die vierte und fünfte Zeile benennen die Ein- und die Ausgabedatei. Die letzte Zeile gibt bekannt, in welchem Zeichensatz die Eingabedatei vorliegt und die Ausgabedatei erzeugt wird, notwendig für Dateien, die das Encoding nicht in sich tragen.

#### Konfiguration eines Diagramms

Die Konfiguration eines Diagramms ist ähnlich der eines Berichts, aber etwas einfacher:
diagram1.type = diagram
diagram1.input_file = input/diagram1.tmpl
diagram1.output_file = output/diagram1.png
diagram1.antialias = true;
Kommentarkennzeichnungen sind in Diagrammdefinitionen nicht nötig. De letzte Option antialias ist nur für png-Dateien verfügbar. Wird diese Option benutzt, so erzeugt die Cairo-Bibliothek Diagramme, die in der Regel wesentlich besser aussehen, sofern sie Zickzack-Linien enthalten.

pdx Aufruf | Index | pdx Referenz