HE - Helproutine

Mit diesem Session-Parameter können Sie den Namen einer Helproutine oder einer Hilfe-Maske angeben, die einem Feld zugewiesen werden soll.

Mögliche Werte   Siehe HE-Parameter-Syntax weiter unten.
Standard-Einstellung keine  
Angabe innerhalb der Session ja  
Gültige Statements INPUT  
Gültiges Kommando keines  

Helproutinen können mit dem Natural-Programm-Editor erstellt werden, Hilfe-Maske (Help Maps) mit dem Natural-Masken-Editor (Map Editor).

Um die zugewiesene Helproutine oder Hilfe-Maske dann bei der Verarbeitung des betreffenden INPUT-Statements oder der betreffenden Maske aufzurufen, können Sie eine der folgenden Vorgehensweisen benutzen:

  • Geben Sie in das Feld, für das die Hilfe angefordert werden soll, das Hilfe-Aufrufzeichen an der ersten Stelle links im Feld ein und drücken Sie ENTER. Das Standard-Hilfe-Aufrufzeichen ist ein Fragezeichen (?).

    Wenn Sie das Hilfe-Aufrufzeichen an einer anderen Stelle im Feld eingeben oder wenn Sie mehr als ein Zeichen eingeben, wird diese Zeichenkette als Benutzereingabe übernommen, d.h. es wird keine Hilfe aufgerufen. Wenn das Feld Nullen im Hexadezimalformat enthält, hängt es von der verwendeten Terminal-Emulation ab, ob Natural die Werte als Hilfe-Anforderung interpretieren kann.

    Oder:

  • Stellen Sie den Cursor in das Feld und drücken Sie die mit dem SET KEY-Statement als Hilfe-Funktionstaste definierte PF-Taste.

Die folgenden Themen werden nachfolgend erörtert:


HE-Parameter-Syntax

Der Parameter hat die folgende Syntax:

HE=operand1

,

operand2

...20
=
nX

Operanden-Definitionstabelle:

Operand Mögliche Struktur Mögliche Formate Referenzierung erlaubt Dynam. Definition
operand1 C S         A                         nein nein
operand2 C S A       A U N P I F B D T L C   O nein nein

Syntax-Element-Beschreibung:

Syntax-Element Beschreibung
operand1 operand1 ist der Name der Helproutine oder Hilfe-Maske (Help Map), die aufgerufen werden soll. Der Name kann eine 1 bis 8 Zeichen umfassende alphanumerische Konstante oder Benutzervariable sein. Wenn eine Variable verwendet wird, muss sie vorher definiert worden sein. Die Groß-/Kleinschreibung des Namens wird nicht verändert. Der Name kann ein Kaufmännisches Und (&) enthalten; zur Ausführungszeit wird dieses Zeichen durch den aus einem Zeichen bestehenden Code ersetzt, der dem aktuellen Wert der Systemvariablen *LANGUAGE entspricht. Diese Funktion ermöglicht die Verwendung von mehrsprachigen Helproutinen oder Hilfe-Masken.

Weitere Informationen zum operand1 in einer Maske siehe HE Helproutine-Option im Abschnitt Erweiterte Feld-Bearbeitung in Masken-Editor (Map Editor) in der Editoren-Dokumentation.

operand2 Sie können 1 bis 20 Parameter (operand2) angeben, die an die Helproutine oder Hilfe-Maske übergeben werden. Diese können als Konstanten oder Benutzervariablen angegeben werden, die die Parameterwerte enthalten.

Weitere Informationen zum operand2 in einer Maske siehe HE Helproutine-Option im Abschnitt Erweiterte Feld-Bearbeitung in Masken-Editor (Map Editor) in der Editoren-Dokumentation.

= Das Gleichheitszeichen (=) wird verwendet, um den Namen eines Objekts oder Feldes an die Helproutine oder Hilfe-Maske zu übergeben.
  • Wird das Gleichheitszeichen in der HE=-Angabe auf Statement-Ebene eingegeben, wird der Name des zurzeit ausgeführten Objekts (so wie er in der Systemvariablen *PROGRAM enthalten ist) an die Helproutine oder Hilfe-Maske übergeben. In Beispiel 3 lautet der übergebene Objektname PROGRAM1.

  • Wird das Gleichheitszeichen in der HE=-Angabe auf Feldebene eingegeben, wird der Name des Feldes an die Helproutine oder Hilfe-Maske übergeben. In Beispiel 3 lautet der übergebene Feldname #PARM1.

Wird mit dem Gleichheitszeichen (=) ein Feld- bzw. Masken-Name übergeben, so muss der entsprechende Parameter in der Helproutine mit Format/Länge A65 definiert werden.

nX Die Notation nX können Sie verwenden, um wegzulassende Parameter anzugeben, das heisst, Parameter, für die keine Werte übergeben werden sollen. Die enstprechenden empfangsseitigen Parameter im DEFINE DATA PARAMETER-Statement der aufgerufenen Helproutine müssen als OPTIONAL definiert werden.

Anmerkungen:

  1. Die Operanden müssen entweder mit dem Eingabe-Begrenzungszeichen (Input-Delimiter, wie mit dem Session-Parameter ID definiert) oder mit einem Komma voneinander getrennt werden. Ein Komma darf hierzu allerdings nicht verwendet werden, falls das Komma als Dezimalkomma (Decimal Character, wie mit dem Session-Parameter DC definiert) verwendet wird.
  2. Wenn Parameter angegeben werden, so muss die Helproutine mit einem DEFINE DATA PARAMETER-Statement beginnen, in dem Felder definiert werden, die in Format und Länge den übergebenen Parametern entsprechen.
  3. Der Wert des Feldes, dem die Helproutine zugeordnet ist, kann in der Helproutine referenziert werden. Hierzu muss im DEFINE DATA PARAMETER-Statement der Helproutine ein Feld definiert werden, das in Format und Länge dem ursprünglichen Feld entspricht. Werden in dem DEFINE DATA PARAMETER-Statement noch andere Felder definiert, so muss dieses Feld in dem Felder-Block immer zuletzt nach den Parametern definiert werden.
  4. Ist das Feld, für das eine Helproutine angegeben wird, ein Element eines Arrays, so können die Ausprägungen dieses Feldes von der Helproutine referenziert werden. Hierzu müssen Sie Index-Parameter mit Format I (Integer), N (numerisch ungepackt) oder P (gepackt numerisch) zum Schluss des DEFINE DATA PARAMETER-Statements definieren. Entsprechend der Array-Dimensionen können Sie bis zu drei Index-Parameter angeben.

Ausführung von Helproutinen

Wenn eine Helproutine — durch Eingabe des Hilfe-Aufrufzeichens, d.h. standardmäßig eines Fragezeichens (?), in das Feld oder durch Drücken der (mit einem SET KEY-Statement definierten) Hilfe-Funktionstaste, oder über ein REINPUT USING HELP-Statement — aufgerufen wird, werden alle Werte, die bereits in andere Felder eingegebenen worden sind, erst dann verarbeitet, nachdem die Verarbeitung aller Hilfe-Anforderungen beendet ist.

Anmerkung:
Pro INPUT-Statement ist jeweils nur eine Hilfe-Anforderung möglich. Wenn für mehrere Felder gleichzeitig Hilfe angefordert wird (z.B. durch Eingabe von Fragezeichen in mehrere Felder), wird nur die erste Hilfe-Anforderung ausgeführt.

Beispiele

Beispiel 1:

/* MAIN PROGRAM 
DEFINE DATA
1 #A(A20/1:3) 
END-DEFINE 
... 
SET KEY PF1=HELP 
... 
INPUT #A (2) (HE='HELPA',=) 
... 
END

Beispiel 2:

/* HELP-ROUTINE 'HELPA' 
DEFINE DATA PARAMETER 
1 #VARNAME  (A65) 
1 #PARM1    (A20) 
1 #VARINDEX (I2) 
END-DEFINE 
   ...

Beispiel 3:

* Program 'PROGRAM1' 
*
DEFINE DATA LOCAL                       
1 #PARM1 (A65) INIT <'valueparm1'>      
END-DEFINE                              
SET KEY PF1 = HELP                      
FORMAT KD=ON                            
*                                       
INPUT (AD=M HE='HELP1',=)               
  'Enter ? for name of executed object:'
  / #PARM1                              
*                                       
INPUT (AD=M)                            
  'Enter ? for field name:'             
  / #PARM1 (HE='HELP1',=)
*               
END                                     

Parameter Data Area in Beispiel-Helproutine HELP1:

* Helproutine 'HELP1' 
*
DEFINE DATA PARAMETER 
1 #FLD1 (A65) 
END-DEFINE 
   ...