Dialoggesteuerte Dokumente

Dokumentvorlagen mit Datenabfrage vor der Texterstellung

Bei einigen Dokumentvorlagen werden während der Erstellung des Textes zusätzliche Daten vom Anwender abgefordert. Die zusätzlichen Daten werden vom Benutzer im Dialog abgefragt.

Die Generierung eines solchen Dialoges wird durch eine einfache Textdatei hervorgerufen, die zusammen mit der Dokumentvorlage im Vorlagenverzeichnis abgespeichert sein muss. Der Dateiname entspricht dem Namen der Dokumentvorlage und hat die Dateinamenerweiterung „.DLG“ .

Einige der mit BdB at work ausgelieferten Dokumentvorlagen werden mit einer passenden Dialogdatei ausgeliefert, um vor der Erstellung des Dokumentes zusätzliche Daten zu erfragen, die unmittelbar danach mit speziellen Platzhaltern im generierten Dokument verwendet werden.

Dies wird hier am Beispiel der Vorlage „Verhinderung (Ladung zum Termin)“ aus dem Ordner Allgemeines demonstriert.

Die meisten der mit BdB at work ausgelieferten Dokumentvorlagen, bei denen gleichzeitig eine Dialogdatei mitgeliefert wird, sind darauf ausgelegt, dass in den Dialogen nicht alle Daten angegeben werden müssen. Eventuell ist es jedoch notwendig, im erzeugten Dokument manuelle Anpassungen vorzunehmen.

Bei Abschluss des Dialoges wird das Dokument erstellt und die zuvor eingegebenen Daten direkt in das Dokument übernommen. In der folgenden Abbildung sind die betroffenen Bereiche markiert.

Zusatzdatenbank

BdB at work trägt alle von Ihnen in solchen Dialogdateien eingegebenen Daten in eine Datentabelle ein, sobald Sie einen Dialog gefüllt und ein Dokument erstellt haben.

Wird zu einem späteren Zeitpunkt ein neues Dokument basierend auf der gleichen Dokumentvorlage für den gleichen Klienten erstellt, schlägt BdB at work in dieser Datentabelle nach und restauriert die vormals im Dialog eingegebenen Daten, so dass Sie auf einige der Daten zurückgreifen können. Bei Änderungen innerhalb des Dialoges, werden die betreffenden Daten in der Zusatzdatenbank entsprechend aktualisiert.

Erstellen von eigenen Dialogen

Die Generierung eines Dialoges wird durch eine einfache Textdatei hervorgerufen, die gleichzeitig mit der Dokumentvorlage erzeugt werden muss. Diese Datei muss im gleichen Verzeichnis wie die Dokumentvorlage gespeichert werden. Der Dateiname muss den gleichen Stammnamen wie die Dokumentvorlage haben, die Dateierweiterung ist auf .DLG zu setzen.

Wie das Beispiel zeigt, sind die Dialoge aus einigen standardisierten Eingabefeldern und anderen Objekten zusammengesetzt. Der Aufbau des Dialoges kann durch den Inhalt der DLG-Datei beeinflusst werden. Zum Bearbeiten verwendet man am besten den in Windows integrierten Editor.

Jede Textausgabe oder Eingabemöglichkeit muss mit einem kleinen Textabschnitt in der DLG-Datei definiert werden. Die Definition und Funktion der Buttons im Fußbereich des Dialogfensters muss nicht in der DLG-Datei vorgenommen werden, sondern ist durch die Programmierung vorgegeben.

Das im Bild gezeigte Beispiel ist nicht vollständig. Die Definitionen für „Control003“ bis „Control009“ wurden aus Gründen der Übersichtlichkeit für die Darstellung im Buch entfernt.

Kopfbereich

In jeder DLG-Datei muss ein Kopfbereich vorhanden sein. Dieser Bereich besteht aus einer Zeile mit dem Schlüsselwort „main“ in eckigen Klammern gefolgt von einer weiteren Zeile mit einer eindeutigen Identifizierung. Die Identifizierung muss innerhalb der gesamten Software eindeutig sein. Jeder Dreierblock der verwendeten Ziffern darf ausschließlich Ziffernfolgen von 020 bis 127 enthalten. Insgesamt dürfen bis zu sechs Blöcke, also maximal 18 Ziffern, angegeben werden.

[main]
Ident=068076071049048057

Falls Sie sich nicht an diese Konvention halten, wird bei einem Versuch der Nutzung der Dokumentvorlage in Verbindung mit der DLG-Datei ein Laufzeitfehler erzeugt.

Objekte

Jeder Objektname besteht aus einem in eckigen Klammern gesetzten Schüsselwort und einer fortlaufenden Nummer. Die Nummerierung beginnt bei Null und darf keine Lücken aufweisen. Eine bereits verwendete Nummer darf nicht doppelt vergeben werden. Die fortlaufende Nummer bestimmt die vertikale Position der Objekte beginnend vom oberen Rand des Dialoges.

[control000]
[control001]
[control002]

 

Die Menge der Objekte ist nicht begrenzt. Ab einer bestimmten Anzahl von Objekten wird der aus der Steuerdatei erzeugte Dialog mit einem Rollbalken versehen, so dass der darzustellende Dialog die verfügbare Höhe des Bildschirms nicht übersteigt.

Objekttypen

In jedem Block zur Beschreibung eines Objekts werden verschiedene Schlüsselworte verwendet, um das zu erzeugende Objekt näher zu beschreiben. Die Anzahl und Kombination der möglichen, bzw. notwendigen, Schlüsselworte wird über das Schlüsselwort „TYPE“ festgelegt, welches gleichzeitig den zu erzeugenden Objekttyp angibt.

Variablen

Die meisten der verwendbaren Objekte innerhalb des Dialoges dienen dazu, Daten vom Anwender zu erfragen, die in der Folge bei der Erstellung von Dokumenten weiterverwendet werden sollen. Die erfragten Daten müssen in der Dokumentvorlage über einen Platzhalter eingefügt werden. Durch die Vergabe von Variablen innerhalb einer spezifischen Dialogdatei können diese Platzhalter frei definiert werden.

Variablen müssen innerhalb einer Dialogdatei eine eindeutige Bezeichnung haben und dürfen nur aus Buchstaben und Ziffern gebildet werden. Leerzeichen sind innerhalb von Variablenbezeichnern nicht zulässig. Verschiedene Beispiele sind in den Beschreibungen der folgenden Objekttypen zu sehen. Der Name der Variablen ist hinter dem Schlüsselwort „VARIABLE“ anzugeben.

Hinweise zur Entwicklung

DLG-Dateien sollten Abschnittweise von oben nach unten entwickelt werden. Sie sollten nach jedem neuen Abschnitt die Funktion der Dialogerstellung prüfen, indem Sie einen auf der Dokumentvorlage und der Dialogdatei basierenden Brief erstellen. Sobald der Dialog sichtbar wird, prüfen Sie, ob das Ergebnis Ihrer Änderung der DLG-Datei Ihren Wünschen entspricht. Danach kann der Vorgang der Texterstellung abgebrochen werden.

Falls Sie die DLG-Datei mit einem Texteditor bearbeiten, kann diese während der Texterstellung gleichzeitig geöffnet bleiben. So können Sie Korrekturen und Erweiterungen schneller vornehmen.

Einfache Objekte

Einfache Objekte dienen zur reinen Ausgabe von Text im Dialogfenster und zur optischen Unterteilung eines solchen Fensters.

Objekttyp LABEL

Der Objekttyp „LABEL“ wird genutzt, um eine einzelne Zeile mit einer Beschriftung im Dialogfenster zu erzeugen. Der Text der Beschriftung muss mit dem zusätzlich notwendigen Schlüsselwort „CAPTION“ angegeben werden.

[control000]
TYPE=LABEL
CAPTION=Das ist ein Dialogfenster

 

Bei der Angabe eines zu langen Textes wird dieser kurz vor dem rechten Rand des Dialogfensters abgeschnitten. Der nicht in einer Zeile darstellbare Text bricht nicht automatisch auf die nächste Zeile um. In einem solchen Fall müssen Sie mit einem weiteren LABEL-Objekt eine weitere Zeile erzeugen.

Objekttyp LABELBOLD

Auch mit dem Objekttyp „LABELBOLD“ wird eine einzelne Zeile mit Text im Dialogfenster ausgegeben. Der Text wird in Fettschrift ausgegeben und eignet sich für Hervorhebungen oder Überschriften. Über „CAPTION“ wird wiederum der auf dem Dialog auszugebende Text angegeben.

[control001]
TYPE=LABELBOLD
CAPTION=Das ist eine Überschrift

 

Objekttyp DEVIDER

Mit diesem Objekttyp wird eine einfache horizontale Trennlinie erzeugt, die die Gruppierung der Objekte in einem Dialog erlaubt.

[control002]
TYPE=DEVIDER

Zusätzliche Schlüsselworte sind nicht notwendig und würden ignoriert.

Objekte mit Variablen

Die folgenden Objekttypen dienen zur Generierung von Eingabemöglichkeiten für den Nutzer der Dokumentvorlage.

Objekttyp CHECKBOX

Erzeugt ein einfaches Ankreuzfeld auf dem Dialog. Ein Ankreuzfeld kann mit einer optionalen Beschriftung rechts neben dem Feld versehen werden. Bei der Verwendung in einer Dokumentvorlage wird der Platzhalter mit „Ja“ ersetzt, falls der Anwender das Ankreuzfeld markiert hat. Andernfalls wird kein Text in das Dokument eingesetzt.

[control003]
TYPE=CHECKBOX
CAPTION=Das ist ein Markierfeld
VARIABLE=MARKER
DEFAULT=1
INDENT=20

Durch die optionale Angabe „DEFAULT=1“ bestimmen Sie, dass das Markierfeld bereits bei der Erzeugung des Dialoges gewählt ist. Mit „INDENT=20“ bewirken Sie einen Einzug am linken Rand um die angegebene Anzahl von Bildpunkten.

Objekttyp DROPDOWN

Erzeugt ein Auswahlfeld (Dropdown) für die Auswahl zwischen mehreren Möglichkeiten. Die einzelnen Optionen, zwischen denen ausgewählt werden kann, werden mit einem Komma getrennt. Daher kann das Komma im Text einer Option nicht verwendet werden. Mit dem Schlüsselwort „DEFAULT“ bestimmen Sie optional, welche der vorgegebenen Auswahlmöglichkeiten als Vorgabe erscheinen soll.

[control004]
TYPE=DROPDOWN
CAPTION=Bitte auswählen
VARIABLE=WAHL01
OPTIONS=Auswahl 1, Auswahl 2, Auswahl 3, Auswahl 4
DEFAULT=Auswahl 1

Falls bei der Erstellung des Dokumentes eine Auswahl durch den Anwender getroffen wurde, wird der ausgewählte Text in das Dokument eingesetzt. Ansonsten wird kein Text eingesetzt. Dieser Zustand lässt sich recht einfach mit dem IFSET- oder IFNOTSET-Platzhalter auswerten.

Objekttyp DATE

Erzeugt ein Eingabefeld für die Erfassung eines Datums. Optional kann mit dem Schlüsselwort „CAPTION“ vor dem Eingabefeld eine kurze Beschriftung erzeugt werden. Über das Schlüsselwort „DEFAULT“ kann ein Wert angegeben werden, der schon zu Beginn des Dialogs im Datumsfeld vorgegeben wird. Es ist darauf zu achten, dass hier nur gültige Datumswerte angegeben werden dürfen.

[control005]
TYPE=DATE
CAPTION=Bitte Datum eingeben
VARIABLE=DATUM1
DEFAULT=01.01.2007

Bei einer Verwendung wird im Dokument das Datum im Format TT.MM.JJJJ eingesetzt. Falls kein Datum angegeben wurde, wird nichts eingesetzt.

Objekttyp TIME

Erzeugt ein Eingabefeld für die Erfassung eines Datums. Optional kann mit dem Schlüsselwort „CAPTION“ vor dem Eingabefeld eine kurze Beschriftung erzeugt werden. Über das Schlüsselwort „DEFAULT“ kann eine Uhrzeit vorgegeben werden. Eine Vorgabe muss im Format HH:MM erfolgen.

[control005]
TYPE=TIME
CAPTION=Bitte UHRZEIT eingeben
VARIABLE=ZEIT1
DEFAULT=08:30

Objekttyp TEXT

Erzeugt ein einzeiliges Texteingabefeld mit optionaler Beschriftung vor dem Eingabefeld. Die Länge der Eingabe ist auf die Breite des Feldes begrenzt.

[control007]
TYPE=TEXT
CAPTION=Bitte Grund angeben
VARIABLE=GRUND

Die optionale Verwendung des Schlüsselwortes „READONLY“ gestattet einen Schreibschutz des Feldes, so dass der Nutzer einen durch „DEFAULT“ vorgegebenen Wert sehen, aber nicht ändern kann.

Objekttyp TEXT10

Erzeugt ein kleines Texteingabefeld für ca. 10 Buchstaben mit optionaler Beschriftung vor dem Eingabefeld.

[control007]
TYPE=TEXT10
CAPTION=Ihre Eingabe:
VARIABLE=GRUND

Objekttyp MEMO

Erzeugt ein Texteingabefeld für mehrere Zeilen Texteingabe. Trotz der Beschränkung des Eingabefeldes innerhalb des Dialoges auf drei Zeilen, kann der Nutzer der Dialogdatei mehr Text eingeben, der dann vollständig an das zu erstellende Dokument übertragen wird.

[control008]
TYPE=MEMO
CAPTION=Zusatzangaben
VARIABLE=ZUSATZ

Defaultwerte

Können für die erstmalige Nutzung des Dialoges bei einigen Objekttypen vorgegeben werden. Im weiteren Verlauf werden die Eingaben des Anwenders in den Dialogen klientenspezifisch gelernt. Bei der Nutzung des gleichen Dialoges beim gleichen Klienten werden, statt der in der Dialogdatei vorgegebenen Defaultwerte, die erlernten Eingaben des Nutzers wiederhergestellt.

Zugriff auf die Daten des Dialoges

Innerhalb der Dokumentvorlagen kann auf alle Werte, die über die verschiedenen Objekttypen eingegeben wurden, mittels eines speziellen Platzhalters zugegriffen werden.

#dialog:<VARIABLE>#

Wobei für <Variable> dasjenige Schlüsselwort eingesetzt werden muss, dass Sie schon bei der Erstellung der Dialogdatei angegeben haben. Bezug nehmend auf die zuvor gezeigten Beispiele sind dies die folgenden Variablen.

#dialog:marker#
#dialog:wahl01#
#dialog:datum1#
#dialog:grund#
#dialog:zusatz#

Wenn Sie solche Variablen-Inhalte als Parameter für andere Textplatzhalter nutzen wollen ist dies auch möglich. Hierzu nehmen Sie einfach den von Ihnen gewählten Namen der Variable und setzen diesem Namen DIALOG_ voran.

Beispiel

Für eine zeitlich eingeschränkte Kontentabelle haben Sie ein Start- und Enddatum per Dialog entgegen genommen.

Wenn Sie die diese Werte nur ausgeben möchten, nutzen Sie die Doppelpunkt-Variante:

#dialog:startdatum#
#dialog:enddatum#

Wenn Sie nun dieselben zwei Werte als Parameter eines anderen Textplatzhalters nutzen wollen, setzen Sie stattdessen die Unterstrich-Variante ein. Hier am Beispiel des Platzhalters für eine Kontentabelle:

#tabelle-konten(dialog_startdatum,dialog_enddatum)#

veröffentlicht am 14.April 2015
aktualisiert 26. August 2015