Version 4.2.6
 —  Parameter-Referenz  —

HE - Helproutine

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

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

Helproutinen können mit dem Natural-Programm-Editor erstellt werden, Help Maps mit dem Natural-Map-Editor.

Die zugewiesene Helproutine kann dann bei der Verarbeitung des betreffenden INPUT-Statements oder der betreffenden Map aufgerufen werden, indem der Benutzer ein Fragezeichen (?) (das ist die Voreinstellung) in das Feld eingibt oder den Cursor in das Feld plaziert und die mit dem SET KEY-Statement definierte Hilfe-Funktionstaste drückt.

Wenn ein Wert von einer Helproutine an ein Eingabefeld übergeben werden soll, muss das Feld als änderbar (AD=M) definiert sein.

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-Beschreibung:

operand1

operand1 ist der Name der Helproutine oder 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 Maps.

Weitere Informationen zum operand1 in einer Map siehe die HE Helproutine-Option im Abschnitt Extended Field Editing in Map Editor in der Editors-Dokumentation.

operand2

Nach dem Helproutinen-Namen können Sie 1 bis 20 Parameter (operand2) angeben, die an die Helproutine übergeben werden. Diese können Konstanten oder Benutzervariablen sein, die die Parameterwerte enthalten.

Weitere Informationen zum operand2 in einer Map siehe die HE Helproutine-Option im Abschnitt Extended Field Editing in Map Editor in der Editors-Dokumentation.

=

Geben Sie ein Gleichheitszeichen (=) als Parameter an, wird der Name des Feldes (unter dem es in der Map definiert ist) an die Helproutine übergeben. Ist die Helproutine nicht einem Feld, sondern einer Map zugeordnet, wird mit = der Map-Name übergeben.

  • Wird das Gleichheitszeichen bei HE= auf Statementebene angegeben, wird der Name des zurzeit ausgeführten Objekts (so wie er in der Systemvariablen *PROGRAM enthalten ist) an die Helproutine oder Help-Map übergeben. In Beispiel 3 ist der übergebene Objektname PROGRAM1.

  • Wird das Gleichheitszeichen bei HE= auf Elementebene (Feldebene) angegeben, wird der Name des Feldes an die Helproutine oder Help-Map übergeben. In Beispiel 3 ist der übergebene Feldname #PARM1.

Wird mit = ein Feld- bzw. Map-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 Parammter im DEFINE DATA PARAMETER-Statement der aufgerufenen Helproutine müssen als OPTIONAL definiert werden.

Anmerkungen:

  1. Die Operanden müssen entweder mit dem Input-Delimiterzeichen (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 (mit dem Session-Parameter DC) definiert ist.
  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 immer als letztes definiert werden.
  4. Ist das Feld, für das die 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) am Schluss des DEFINE DATA PARAMETER-Statements definieren. Entsprechend der Array-Dimensionen können Sie bis zu drei Index-Parameter angeben.

Seitenanfang

Ausführung von Helproutinen

Wenn eine Helproutine — durch Eingabe eines Fragezeichens (?) in das Feld oder durch Drücken der (mit einem SET KEY-Statement definierten) Hilfetaste, oder über ein REINPUT USING HELP-Statement — aufgerufen wird, werden alle in andere Felder eingegebenen Werte erst verarbeitet, nachdem die Ausführung der Helproutine 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.

Seitenanfang

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 
   ...

Seitenanfang