Der Formularfolgemechanismus berücksichtigt kleinteilige Gruppen von zusammengehörigen Formularen, die dann im Zuge von Neueingabe oder Bearbeitung stets nacheinander präsentiert werden. Dies wird dadurch eingestellt, indem in Formularen eine Zeile eingebaut wird, die mitteilt, was das “nächste” Formular sein soll.

Der Mechanismus für die Eingabekonfiguration ist davon unabhängig: Bei der Neueingabe werden in der Menuedatei input.vw hinterlegte Daten zur Dateinummer für neue Daten und dem oder den Namen der zu durchlaufenden Formulare hinterlegt. Beim Konfigurieren des Eingabesystems für neue Satzarten ist ein zusätzlicher Eingriff in die Steuerdatei input.flx in der Regel nicht mehr erforderlich.

In onforms.flx werden den Schlüsselkategorien der einzelnen Satzarten ebenfalls Formularbezeichnungen zugeordnet.

Beschreibung und Konfiguration

Formularfolgen

Wenn in einem Formular die Anwendervariablen #uFn mit einem Formularnamen (oder dem Anfang des Namens eines existierenden Formulars) belegt wird, so wird nach Beenden des Formulars automatisch das in #uFn benannte präsentiert.

[Buch, Teil 1]
<uFnBuch, Teil 2
#20 "TITEL:"|4
 ...

Bei Abbruch der Formularbearbeitung (etwa durch die “ESC”-Taste oder den Button “Cancel”) wird das Folgeformular nicht präsentiert.

Dieses Verhalten gilt sowohl für die Änderung von Datensätzen (onforms.flx) als auch für die Neueingabe (oninput.flx / input.flx)

Eingabekonfiguration

Ausgehend vom sichtbaren Menue aus input.vw steuert der durch die Benutzerselektion ausgelöste input.flx das Anlegen eines Neusatzes und die Abfolge der dafür präsentierten Formulare.

Jede der Zeilen in input.vw belegt die Anwendervariable #uFo mit einem Formularnamen oder einer durch Semikolon getrennten Liste von (Anfängen von) Formularnamen, optional steht vor dem ersten Formularnamen die Nummer der zu nutzenden Eingabedatei gefolgt von “=”.

In der Formulardatei den Formularen über die Anwendervariable #uFn zugeordnete Ketten von Folgeformularen werden bei der Formularfolge berücksichtigt.

Gewisse Satzarten erfordern auch weiterhin eine Sonderbehandlung in input.flx

x var "Buch;Signatur"\ins #uFo\exec input|Normaler Satz (Buch)

bzw. kürzer

X input "Buch;Signatur"|Normaler Satz (Buch)

Dies bedeutet: Aktivieren der Zeile ‘`Normaler Satz (Buch)'' präsentiert das (erste) Formular, dessen Bezeichnung mit ``[Buch…’' beginnt, und anschliessend ggfls. weitere hierzu als Formularfolge eingestellte Formulare. Anschliessend wird das Formular mit der Bezeichnung “[Signatur…” (und ggfls. dort definierte Folgeformulare) präsentiert.

X input "251=Thesa"|Thesaurus-Stammsatz

Dies bedeutet: Aktivieren der Zeile ‘`Thesaurus-Stammsatz'' präsentiert das (erste) Formular, dessen Bezeichnung mit ``[Thesa…’' beginnt, und präsentiert ggfls. weitere hierzu als Formularfolge eingestellte Formulare. Gespeichert wird in Datei 251.

Achtung
Die angegebene Dateinummer wirkt nur für den nach dem letzten Formular automatisch angebotenen Speichervorgang. Wird erst zu einem späteren Zeitpunkt gespeichert, so wirkt die dann aktive Eingabedateinummer.

Bearbeitung von Sätzen

Für die Bearbeitung von Sätzen über den # Form-Button kann analog zur Neueingabe (aber u.U. von den dortigen Setzungen abweichend) ebenfalls eine Liste von Formularen angegeben werden, die dann automatisch durchlaufen wird.

Die über die .frm-Datei definierten Formularfolgen wirken auch hier.

In onforms.flx ist dabei die Zuordnung von Schlüsselkategorien zu Formularbezeichnungen einprogrammiert:

 ...
if #09 var "Verk"
if *#00_+_ var "Verk"
if #20 var "Buch,Ersch"
 ...

Dies bedeutet: Enthält der Satz die Schlüsselkategorie #09, so wird zunächst das (erste) Formular mit der Überschrift `+[Verk+...'' (und dessen Folgeformulare) zur Präsentation vorgesehen, desgleichen wenn Kategorie +#00+ ein `+´´-Zeichen enthält.

Stärker soll jedoch der folgende Test auf Kategorie #20 sein, liegt diese Kategorie im Datensatz vor, so soll zuerst die mit ‘`+[Buch+...'' beginnende Formularfolge, anschliessend die mit ``[Ersch…’' beginnende abgearbeitet werden.

Wird onforms.flx mit gesetzter Variable #uFo aufgerufen, unterbleibt die automatische Erkennung des initalien Formulars und es wird analog input.flx die durch #uFo und jeweils von den Formularen gesetzten #uFn definierte Folge von Formularaufrufen durchlaufen.

Installation

Das Paket besteht aus drei Steuerdateien (input.vw, input.flx sowie onforms.flx, die entweder ins Datenverzeichnis gelegt werden können oder die gleichnamigen Dateien in den Unterverzeichnissen flex und help des allegro-Programmverzeichnisses ersetzen.

input.vw und onforms.flx sind bezüglich Formularnamen auf die Gegebenheiten und Ergänzungen der eigenen .frm-Datei anzupassen (die Auslieferung entspricht der Standarddatei cat.frm). Fortgeschrittene Anwender können auch die Reihenfolge der Erkennung von Satzarten anhand von Schlüsselkategorien in onforms.flx anpassen bzw. dort Ergänzungen vornehmen.

In der eigenen Formulardatei sind Zeilen <uFn… wie oben beschrieben einzufügen, wenn man den Formularfolgemechanismus nutzen möchte.

Abhängigkeiten

Versionsgeschichte

To Do
2008-05-29

Workaround Bug \#494 standardmässig auskommentiert: V28.4 benötigt ihn nicht mehr

2008-05-04

Semikolon statt Komma als Delimiter

Workaround Bug \#494

In input.vw: Belegung von #uFo aus dem Flex-Aufruf heraus (erfordert V25)

2008-04-22

erste Version in starker Anlehnung an die zu ersetzenden Standardflexe

Die volle Änderungshistorie findet sich im SVN-Log

Bugs

Adressen

Ausgecheckte Kopie / Vorgenerierte Version
Notifications / Views
SVN-Repository

Über dieses Dokument

$HeadURL: https://svn.extra.gymel.com/repos/allegro/acxt/forms/trunk/README.txt $

$Id: README.txt 24930 2013-03-13 15:19:22Z ThB $

Kontakt

Thomas Berger < ThB (at) gymel (dot) com >