Dieder Abschnitt stellt existierende Verarbeitungsregeln vor und beschreibt, wie Sie diese Regeln bearbeiten können:
Es können drei Arten von feldbezogenen Verarbeitungsregeln definiert werden.
Inline-Verarbeitungsregeln
Diese Regeln werden innerhalb eines Map Source-Objekts
definiert. Ihnen wird kein Name zugewiesen. Predict braucht nicht vorhanden
sein.
Predict Free Rules
Diese Regeln haben einen zugewiesenen Namen. Gespeichert werden
sie in Predict.
Um eine Predict Free Rule zu bearbeiten, müssen Sie die Regel beim Anlegen der Maske eingeben und ihr einen Namen zuweisen.
Predict Automatic Rules
Diese Regeln betreffen Datenbankfelder. Definiert werden Sie
vom Predict-Administrator. Wird ein Feld von den Datendefinitionen in einem
anderen Natural-Objekt ausgewählt, werden alle automatischen Regeln für dieses
Feld mit der Maskendefinition verknüpft. Alle automatischen Regeln werden
miteinander verkettet und als eine einzige Maskenregel behandelt.
Der Rang der automatischen Regeln wird in den
Maskeneinstellungen definiert (die Standardeinstellung ist 1
).
Im Masken-Editor können Sie die automatischen Regeln nicht
ändern. Sie können ihnen jedoch einen anderen Rang zuweisen. Dazu können Sie
entweder das Kommando P=n
benutzen oder einfach den alten Rang überschreiben.
Anmerkungen:
Ein Und-Zeichen (&) im Quellcode einer Verarbeitungsregel wird dynamisch durch den vollständigen Namen des Feldes ersetzt, für das die Regel definiert ist. Array-Indices sind von der Ersetzung nicht betroffen. Sie müssen dazu nach dem Und-Zeichen (&) ausdrücklich die Index-Notation angeben, siehe folgendes Beispiel:
IF & = ' ' THEN REINPUT 'Enter NAME' MARK *& /* For a scalar field IF &(1) = ' ' THEN MOVE 'X' TO &(*) /* For an array field
Die Feldnamen-Notation
&.field-name
im Quellcode einer
Verarbeitungsregel ermöglicht es, DDM-spezifische Regeln zu haben, die die
Integrität von Werten zwischen Datenbankfeldern gegenprüfen, ohne dazu die
Felder ausdrücklich mit einem View-Namen vollständig benennen zu müssen.
Anstelle von field-name
geben Sie den
Namen des Datenbankfeldes an, so wie er in dem DDM definiert ist. Beim
Kompilieren qualifiziert Natural das Feld, indem es das Und-Zeichen (&)
durch den entsprechenden View-Namen ersetzt. Dadurch haben Sie die Möglichkeit,
dieselbe Verarbeitungsregel für bestimmte Felder zu benutzen, ohne
berücksichtigen zu müssen, aus welcher View die Felder genommen werden.
Es können zwei Arten von funktionstastenbezogenen Verarbeitungsregeln definiert werden.
Inline-Verarbeitungsregeln
Predict Free Rules
Funktionstastenbezogene Verarbeitungsregeln können Sie benutzen, um programmsensitiven Funktionstasten (PF-Tasten) bei der Maskenverarbeitung bestimmte Aktivitäten zuzuweisen. Bei PF-Tasten, denen bereits ein Kommando durch das Programm zugewiesen ist, wird dieses Kommando ohne Regelverarbeitung ausgeführt.
IF *PF-KEY = 'PF3' ESCAPE ROUTINE END-IF
Wird diese Regel ausgeführt, dann wird die Maskenverarbeitung ohne weitere Regelverarbeitung beendet.
Um eine Verarbeitungsregel zu bearbeiten:
Geben Sie das Feld-Kommando .P
ein.
Oder:
Setzen Sie das Zeilenkommando ..E
ab und platzieren Sie dann den Funktionscode P
neben dem Feld, für
das eine Verarbeitungsregel-Bearbeitung erfolgen soll.
Um eine funktionstastenbezogene Verarbeitungsregel zu bearbeiten:
Setzen Sie das Zeilenkommando
..P
ab.
Beim Feld-Kommando .P
können Sie
einen Parameter (.Prr
)
angeben, der den Rang (Priorität) der zu definierenden oder zu bearbeitenden
Verarbeitungsregel angibt. Ein Feld kann bis zu 100 Verarbeitungsregeln (Rang 0
bis 99) haben. Bei der Ausführung der Maske werden die Verarbeitungsregeln in
aufsteigender Reihenfolge oder nach Rang und Position auf dem Bildschirm
ausgeführt.
Bei den funktionstastenbezogenen Verarbeitungsregeln wird immer angenommen, dass sie die erste Position auf dem Bildschirm haben.
Bei der Zuweisung von Rängen für Verarbeitungsregeln werden folgende Zuweisungen empfohlen, um eine optimale Performance zu erzielen:
Rang | Verarbeitungsregel |
---|---|
0 | Beendigungsregel |
1 - 4 | Automatische Regel |
5 - 24 | Formatprüfung |
25 - 44 | Wertprüfung bei einzelnen Feldern |
45 - 64 | Gegenkontrolle des Wertes zwischen Feldern |
65 - 84 | Datenbankzugriff |
85 - 99 | Für einen besonderen Zweck |
Anmerkung:
Denken Sie bitte beim Ändern oder Hinzufügen einer
Verarbeitungsregel daran, dass Sie alle Map-Objekte, die diese Regel
referenzieren, neu katalogisieren müssen.
Dieser Abschnitt behandelt Informationen zu folgenden Themen:
Wenn Sie das Feld-Kommando .P*
in ein
Maskenfeld eingeben, wird eine Liste aller zu diesem Feld definierten
Verarbeitungsregeln angezeigt.
Wenn Sie das Zeilenkommando ..P*
in
einer beliebigen Maskenzeile eingeben, wird eine Liste aller
Verarbeitungsregeln angezeigt, die zu den in dieser Maske verwendeten PF-Tasten
definiert sind.
In jeder dieser Listen sind die Predict-Regeln durch ihre Namen, die Inline-Regeln durch ihre ersten drei Quellcode-Zeilen identifiziert. Sie können aus der Liste eine Regel zum Bearbeiten auswählen, indem Sie ihren Rang eingeben.
Der Bildschirm zum Bearbeiten einer Regel (mit Beispiel einer Verarbeitungsregel) sieht wie folgt aus:
Variables used in current map MOD MODTXT(A3) U FVAR(A75/1:6) U FTYP(A1/1:6) U RULEMODE(A6) U RULE-NAME(A32) D FIELDAN(A5) D Rule ________________________________ Field FULCB3.CBCOM > > + Rank 0 S 1 L 1 Struct Mode ALL ....+....10...+....20...+....30...+....40...+....50...+....60...+....70.. 0010 * 0020 IF & EQ MASK('?') 0030 REINPUT USING HELP 0040 END-IF 0050 * 0060 0070 0080 0090 0100 Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--- Help Mset Exit Test -- - + Full Sc= Let |
Während der Bearbeitung einer Verarbeitungsregel können Sie
zwischen Split-Screen- und Vollbild-Modus hin und her schalten., indem Sie
PF9 drücken oder das Kommando
SPLIT
/SPLIT E
absetzen.
Beim Split-Screen-Modus zeigt der obere Bildschirmbereich die Definitionen
aller Maskenfelder (außer Systemvariablen) an. Sie können die Position der
Anzeige mittels Editor-Kommandos zum
Positionieren verändern.
Die Eingabe bzw. Bearbeitung des Quellcodes zum Definieren der Verarbeitungsregel erfolgt so wie beim Natural-Programm-Editor.
Wenn Sie eine Verarbeitungsregel bearbeiten, können Sie eines der folgenden Direktkommandos in der Kommandozeile (>) eingeben, um bestimmte Funktionen auszuführen. Ein unterstrichener Teil eines Schlüsselworts stellt die minimal mögliche Abkürzung dar.
Weitere Informationen siehe Systemkommando-Syntax in der Systemkommandos-Dokumentation.
Kommando | Erläuterung |
---|---|
ADD[(n)] |
Fügt n Leerzeilen zum
Quellcode hinzu.
Weitere Informationen siehe
|
CHANGE
'string1'string2 '
|
Durchsucht den Quellcode nach der als Suchwert (string1) eingegebenen Zeichenkette und ersetzt jeden gefundenen Suchwert mit der als Ersetzungswert (string2) eingegebenen Zeichenkette. |
CHECK |
Prüft die Regel. |
CLEAR |
Löscht den Inhalt des Editierbereichs (auch die
Markierungen X und Y ).
|
DX
oder DY
oder DX-Y |
Löscht die mit X markierte Zeile
oder die mit oder den mit den Markierungen |
EX
oder EY
oder EX-Y |
Löscht alle Zeilen ab dem Anfang des Editierbereichs
bis zur mit X markierten Zeile (die jedoch nicht gelöscht wird)
oder ab der Zeile, die auf die mit oder alle Quellcodezeilen im Quellcodebereich mit
Ausnahme des Zeilenblocks, der mit den Markierungen |
EXIT |
Beendet die Bearbeitung der Verarbeitungsregel. Anschließend Rückkehr zur Maskenbearbeitung. |
. |
|
P |
Positioniert vorwärts zur nächsten für das Feld definierten Regel. |
P* |
Auswahl einer Regel aus dem Auswahlmenü. |
Prr |
Auswahl der Regel mit Rang rr. |
P=rr |
Ändert den Rang einer Verarbeitungsregel in den Rang rr. |
POINT |
Positioniert die Zeile, in der das Zeilenkommando
.N eingegeben wurde, an den Anfang des aktuellen
Bildschirms.
|
RESET |
Löscht die aktuellen Markierungen X
und/oder Y sowie jede zuvor mit dem Zeilenkommando
.N gesetzte Markierung.
|
SAVE
name |
Speichert die Verarbeitungsregel als Copycode unter dem Namen name. |
SCAN
['scan-value'] |
Durchsucht den Quellcode-Arbeitsbereich nach Daten.
Wenn Sie das Sie können dann zusätzlich zum Suchwert (scan-value) Folgendes eingeben: Wenn Sie |
SCAN =
[+|-] |
Sucht nach der nächsten Ausprägung des mit dem
SCAN -Kommando angegebenen Suchwerts in der
angegebenen Richtung.
Weitere Informationen siehe
|
SHIFT
[-|+nn] |
Verschiebt jede Quellcode-Zeile, die mit den
Markierungen X und Y begrenzt ist, nach links oder
nach rechts. Der Parameter nn gibt die Anzahl der
Zeichen an, um die die Zeile verschoben werden soll. Kommentarzeilen werden
nicht verschoben.
|
SHIFT
-- |
Verschiebt jede Zeile, die mit den Markierungen
X und Y begrenzt ist, ganz nach links.
Kommentarzeilen werden nicht verschoben.
|
SHIFT
++ |
Verschiebt jede Zeile, die mit den Markierungen
X und Y begrenzt ist, ganz nach rechts (maximal um 99
Stellen). Kommentarzeilen werden nicht verschoben.
|
SPLIT
[E] |
Umschalten zwischen
Split-Screen-Modus
und Vollbild-Modus. Siehe auch SPLIT in
Editor-Kommandos zum
Positionieren.
|
TEST |
Testet eine Maskendefinition. |
UNLINK |
Trennt die Verknüpfung zwischen einer Inline-Regel (Inline Rule) oder einer Predict Free Rule und dem Feld. |
Anmerkung:
Um aus den vorhanden Predict Free Rules eine Regel
auszuwählen, müssen Sie ein Fragezeichen (?) in das Regelnamensfeld des
Editier-Bildschirms für die Verarbeitungsregel eingeben.
Editor-Kommandos zum Positionieren werden in der Kommandozeile
(>
) des Regel-Editors eingegeben. Die folgenden Kommandos
stehen zum Positionieren zur Verfügung. Ein unterstrichener Teil eines
Schlüsselworts stellt die minimal mögliche Abkürzung dar.
Zusätzlich zu den Editor-Kommandos stehen beim Bearbeiten einer Verarbeitungsregel die folgenden Zeilenkommandos zur Verfügung:
Kommando | Erläuterung |
---|---|
.C(nnnn) |
Kopiert die Zeile, in der das Kommando eingegeben wurde. |
.CX(nnnn)
oder
|
Kopiert die Zeile, die mit X oder mit
Y markiert ist. Siehe auch Zeilenkommandos
.X und .Y in den
folgenden Abschnitten.
|
.CX-Y(nnnn) |
Kopiert den Zeilenblock, der mit den Markierungen
X und Y eingegrenzt ist.
Ist die Richtungsanzeige auf + (Pluszeichen) gesetzt, werden die kopierten Zeilen nach der Zeile platziert, in der das entsprechende Kommando eingegeben wurde. Ist die Richtungsanzeige auf - (Minuszeichen) gesetzt, werden die kopierten Zeilen vor die Zeile platziert, in der das entsprechende Kommando eingegeben wurde. |
.D(nnnn) |
Löscht eine oder mehrere Zeilen. Der Standardwert ist 1 Zeile. |
.I(n) |
Fügt n Leerzeilen ein. Zeilen, die leer gelassen werden, werden beim nächsten Drücken von Enter wieder entfernt. |
.I(obj,ssss,nnnn) |
Fügt in den Quellcode ein Objekt ein, das in der
aktuellen Library oder in der Steplib enthalten ist.
Der Eintrag ssss kann benutzt werden, um die Zeile anzugeben, ab der die Einfügung beginnen soll. Der Eintrag nnnn kann benutzt werden, um die Anzahl der einzufügenden Zeilen anzugeben. Weitere Informationen zu den Zeilenkommandos
|
.J |
Führt die aktuelle Zeile mit der nächsten Zeile
zusammen.
Ist die resultierende Zeile länger als die
Editor-Bildschirmzeile, wird die Zeile mit einem |
.L |
Macht alle seit dem letzten Drücken der Enter-Taste an der Zeile vorgenommenen Änderungen rückgängig. |
.MX
oder .MY |
Verschiebt die mit X oder mit
Y markierte Zeile. Siehe auch Zeilenkommandos
.X und .Y (weiter
unten).
|
.MX-Y |
Verschiebt den Zeilenblock, der mit den Markierungen
X und Y eingegrenzt ist.
Ist die Richtungsanzeige auf + (Pluszeichen) gesetzt, werden die verschobenen Zeilen nach der Zeile platziert, in der das entsprechende Kommando eingegeben wurde. Ist die Richtungsanzeige auf - (Minuszeichen) gesetzt, werden die verschobenen Zeilen vor die Zeile platziert, in der das entsprechende Kommando eingegeben wurde. |
.P |
Positioniert die mit diesem Kommando markierte Zeile an den Anfang des Bildschirms. |
.S |
Spaltet die Zeile an der mit dem Cursor markierten Position. |
.W |
Fügt n Leerzeilen ein.
Zeilen, die leer gelassen werden, werden beim nächsten Drücken von Enter wieder entfernt. |
.X |
Markiert eine Zeile oder den Anfang eines Zeilenblocks, die bzw. der bearbeitet werden soll. |
.Y |
Markiert eine Zeile oder das Ende eines Zeilenblocks,
die bzw. der bearbeitet werden soll.
Anmerkung: |