Verarbeitung in der Bearbeitung

 

5. 1. Leistungsüberblick

In der Bearbeitung kann man ebenfalls alle Funktionen und Leistungen der Verarbeitungssprache nutzen. Dadurch stehen äußerst flexible und leistungsstarke Programmiermöglichkeiten zur Verfügung, um einfach und schnell individuelle, anwendungsspezifische Erweiterungen zu schaffen.


An mehreren festgelegten Stellen kann man gezielt Verarbeitungsprogramme aufrufen, und zwar:



In der Konfiguration der Datenbank kann für diese Situationen, d.h. für Objektanfang, Objektende, Objektabbruch, sowie für jedes Feld eine Verarbeitungsvorschrift hinterlegt werden. Dazu gibt es im Generator die Befehle

* Verarbeitung Feldname Vorschrift

* ÄndVerarbeitung Feldname Vorschrift

* Vanfang Vorschrift

* VanfangNeu Vorschrift

* Vende Vorschrift

* Vabbruch Vorschrift

 

Als Vorschrift kann man entweder den Namen einer Datei mit Verarbeitungsbefehlen oder alternativ direkt Verarbeitungsbefehle angeben. Letzteres wird daran erkannt, daß die Vorschrift mit einem Vorcodezeichen (Vc) beginnt.


Falls eine Verarbeitungsvorschrift vereinbart worden ist, erfolgt die Aktivierung der Verarbeitung automatisch.


Die Verarbeitungsvorschriften arbeiten dabei immer mit dem aktuell in Bearbeitung befindlichen Objekt. Es können dessen Feldinhalte benutzt und verändert werden. Ferner stehen alle Sprachmittel zur Verfügung. Im Gegensatz zur 'normalen' Verarbeitung gibt es standardmäßig keine Ausgabedatei.

 

5. 2. Beispiele

 

Beispiel:  
Kurzanschrift bilden

 

In einer Anschriften-Datenbank soll aus den Inhalten der Felder Name und Ort automatisch die Kurzanschrift gebildet werden.


Folgende Befehle in der Datenbank-Konfiguration sind erforderlich:

* Verarbeitung Name Vc : Kurzanschrift = Name + ', ' + Ort
* Verarbeitung Ort Vc : Kurzanschrift = Name + ', ' + Ort

Wird bei der Bearbeitung eines Objekts das Feld Name oder das Feld Ort verändert, so wird die zugehörige Verarbeitungsvorschrift ausgeführt, d.h. das Feld Kurzanschrift wird neu besetzt.


Die Konfiguration der Datenbank könnte alternativ wie folgt aussehen

*Verarbeitung Name KAbilden
*Verarbeitung Ort KAbilden

 

Da hinter dem Feldnamen eine Zeichenfolge steht, die nicht mit einem Vc beginnt, wird diese als Name eines Textbausteins interpretiert, der die Verarbeitungsbefehle enthält. Der Bausteinname wird wie üblich um die Vorkennung ergänzt, d.h. es muß ein Baustein mit dem Namen A-KAbilden existieren, in dem der Zuweisungsbefehl steht, falls A- die Vorkennung für Steuerdateien in dieser Anschriftendatenbank ist

.

Beispiel:  
Änderungsdatum rückschreiben

Beim Abspeichern eines geänderten Objekts soll automatisch das Tagesdatum in das Feld LetzteÄnderung geschrieben werden. Hierzu benutzt man den Befehl Vende, mit dem eine Vorschrift definiert wird, die vor dem Abspeichern eines Objekts ausgeführt wird. Der zugehörige Konfigurationsbefehl könnte also lauten

 

* Vende Vc : LetzteÄnderung = date ()

 

 

Beispiel:  
Uhrzeit und Tagesdatum als Vorbesetzung

Beim Erfassen eines Objekts soll das Tagesdatum in das Feld Datum und die Erfassungs-Uhrzeit in das Feld Zeit übernommen werden.

Hierzu benutzt man den Befehl VanfangNeu, mit dem eine Vorschrift definiert wird, die vor dem Erfassen eines Objekts ausgeführt wird.

* VanfangNeu Vc : Zeit = time () Vc : Datum = date ( )

 

 

5. 3. Verarbeitungsvariable in der Bearbeitung

 

Variablenvorbesetzungen

Spezial-Variablen mit fester Bedeutung in der Verarbeitung werden in dieser Bedeutung auch in der Bearbeitungs- Verarbeitung benutzt. Wie üblich steht z.B. auf der Integer- Variablen NR die aktuelle Objektnummer.


Zu Beginn der Bearbeitung werden alle Variablen auf einen definierten Wert gesetzt, d.h. die Integervariablen werden mit 0, die Stringvariablen mit einer leeren Zeichenfolge vorbesetzt. Die Variablenwerte bleiben von einer Verarbeitungs- Ausführung zur nächsten erhalten. Hiervon gibt es einige Ausnahmen, denn einigen Variablen wird vor Aufruf einer Verarbeitungsvorschrift ein gezielter Wert zugewiesen. Dies sind:

Variable
Bedeutung
i enthält bei Mehrfachfeldern den aktuellen Index
i$ aktueller Feldinhalt in Abruffeldern vor der Abruf-Auswertung
n enthält die aktuelle Feldnummer
s enthält den Statuswert (d.h. das Eingabeendezeichen) der letzten Eingabe
v

in der Verarbeitung am Objektende :
1   Objekt wurde verändert
0   sonst

in der Verarbeitung am Objektanfang :

1   Objekt wird neu anglegt
0   sonst (d.h. Objekt noch nicht verändert)

in der Verarbeitung zu einem Feld :

1   Feld wurde verändert
0   sonst

in der Verarbeitung zu einem Feld, wenn in diesem Feld mittels Abruf ein Datenbankverweis aktiviert worden ist:

Nummer des ausgewählten Objekts aus der Verweisdatenbank

v$ Dateiname der Doku-Vorschlagswertdatei, wenn der Feldinhalt mittels Doku aus einer Vorschlagswertliste ausgewählt worden ist

Kennung der Teildatenbank, wenn in diesem Feld mittels Abruf ein Datenbankverweis aktiviert und ein Objekt ausgewählt worden ist.

 

Kontrollmechanismen durch Variablenzuweisung

Verschiedene Steuerungsmöglichkeiten für die Bearbeitung kann man durch gezielte Zuweisung von bestimmten Werten an einzelne Variablen ansprechen.

 

Variable
Wert
Wirkung
STAT Zahl größer 0 Fehlermeldung ausgeben(siehe Abschnitt 5.4)
  -1 Verarbeitung abbrechen
STEU 1 Bildschirm neu aufbauen
n Feldnummer Nummer des Zielfelds, in das der Cursor anschließend positioniert wird (nur falls ungleich der aktuellen Feldnummer)

 

 

Stringvariable als Merkespeicher

Die Stringvariablen a$ bis z$ der Verarbeitung können als zusätzliche Hilfsspeicher während der Bearbeitung eines Objekts benutzt werden.


Der Zugriff auf diese Hilfsspeicher erfolgt in der Objektbearbeitung durch Aufruf des Befehlsmenüs mittels Eingabe von F10 bzw. durch Klick auf die rechte Maustaste. Nach Anwahl des Punktes 'weitere Funktionen' erscheint eine Balkenauswahl mit den Punkten


Wird einer dieser Auswahlpunkte angewählt, so erscheint eine Übersicht der zur Verfügung stehenden Hilfssppeicher mit ihrem aktuellen Inhalt. Mittels Balkenauswahl kann der gewünschte Hilfsspeicher ausgewählt werden.

Verarbeitungs-Stringvariablen, die in der Hintergrundverarbeitung der Bearbeitung benutzt werden und nicht versehentlich durch Besetzen des Merkspeichers zerstört werden sollen, können 'geschützt' werden.


Eine Stringvariable wird innerhalb der Verarbeitung geschützt durch

Vc - Variablenbuchstabe

 

5. 4. Verarbeitung in Abruf-Feldern

Wird in einem Feld die Abruf-Taste betätigt bzw. mit der linken Maus-Taste geklickt, so wird zunächst ermittelt, wie dieser Abruf auszuwerten ist.

Handelt es sich um ein Telefon-Feld, eine Bild- bzw. PCX-Grafik-Definition oder ein Datenbankverweis-Feld und ist gleichzeitig eine Verarbeitung definiert, so wird bereits vor der Abrufauswertung zusätzlich die vereinbarte Verarbeitung ausgeführt.

Danach erfolgt die Interpretation des Abrufs und anschließend wird die vereinbarte Verarbeitung noch einmal ausgeführt.

Welchen Sinn und Zweck hat diese zusätzliche Verarbeitungsausführung?

Normalerweise wird beim Abruf der aktuelle Feldinhalt ausgewertet. Somit wird das Bild angezeigt, dessen Name im Feld steht oder die dort eingetragene Telefonnummer wird zum Wählen herangezogen. Entsprechend wird beim Datenbankverweis die eingetragene Zeichenfolge zum Suchen in der Verweisdatenbank benutzt.

Es ist aber auch möglich, durch die vorangestellte Verarbeitung diese Zeichenfolge zu manipulieren.

Das bedeutet man kann z.B.

Die vorweg ausgeführte Verarbeitung kann beliebig sein und muss lediglich auf der Variablen i$ den manipulierten Inhalt zurückliefern.

Dabei wird i$ vorweg mit dem aktuellen Feldinhalt vorbesetzt. Damit man erkennen kann (und das ist speziell für Datenbankverweisfelder wichtig, zu denen häufig Verarbeitungen definiert sind), dass man sich vor der Abrufauswertung befindet, wird vorweg der Variablen s (die stets den Wert des Eingabeendezeichens enthält) der Pseudowert 161 zugewiesen. Nach Ausführung der Abruf-Funktion hat s dann den Wert 131 (= Wert der Taste Abruf).

Gibt es zu einem Abruf-Feld keine Verarbeitung oder gibt es eine, die i$ nicht verändert, so erfolgt die Abruf-Auswertung mit dem aktuellen Feldinhalt.

 

Beispiel:  

Eine Fotodatenbank enthält u.a. ein Mehrfachfeld, in dem zu jedem Foto eines Filmes ein Kurzkommentar erfasst ist. Ferner sind die einzelnen Fotos eingescannt. Der Name der gescannten Bilder ergibt sich aus der Film- und der Fotonummer. In der Datenbankdefinition ist das Mehrfachfeld als Bildfeld vereinbart. Gleichzeitig wird eine Verarbeitung hinterlegt, die beim Abruf den Bildnamen bestimmt.

Die Verarbeitung hat folgendes Aussehen:

Vc:p$='C:\FOTOS\'+(nr)+'\'
Vc<(s=161) Vc"Pseudotaste vor Auswertung von Bilddatei
Vc:d$='B'+i:4+'.JPG'
Vc:i$=p$+d$ Vc>

Wird nun im Film 4711 im 7. Element des Mehrfachfeldes die Abruftaste betätigt, so wird (unabhängig vom Feldinhalt) das Bild C:\FOTOS\4711\B07.JPG angezeigt.

 

 

 

5. 5. Fehlerbehandlung

Nach Ausführung einer Verarbeitungsvorschrift in der Bearbeitung wird geprüft, ob die Fehlervariable STAT einen Wert grösser 0 enthält. Wenn ja, wird die Zahl als Fehlernummer interpretiert, und es wird eine entsprechende Fehlermeldung erzeugt. Als Folge davon wird insbesondere die letzte Eingabe als fehlerhaft behandelt und somit erneut angefordert.


Tritt in einer Verarbeitung ein Syntaxfehler auf, so wird der Variablen STAT der Wert 99 (formaler Fehler) zugewiesen.


Soll die Ausgabe einer Fehlermeldung verhindert werden, so muß vor Ende der Verarbeitung die Variable STAT auf 0 zurückgesetzt werden. Hierbei ist insbesondere zu berücksichtigen, daß die Variable STAT auch bei Tastatureingaben besetzt wird, nämlich mit dem Eingabeendezeichen. Wird dann die Variable anschließend nicht normiert, kommt es nach Ende der Verarbeitungsvorschrift unter Umständen zu unsinnigen Fehlermeldungen.

 

5. 6. Feldinhalt als Verarbeitungsvorschrift

Durch Eingabe von


Befehl
(F10 oder rechte Maustaste)

weitere
Funktionen


Feldinhalt
als Verarbeitung
ausführen

 

 

in einem Objektfeld kann man jederzeit zusätzliche Verarbeitungs-Vorschriften aktivieren. Dabei wird der aktuelle Feldinhalt als Verarbeitungsvorschrift (d.h. entweder direkt als Befehlsfolge oder als Name einer Steuerdatei) ausgewertet und ausgeführt.