<< Inhaltsverzeichnis Suchen >>

EDITFIELD

Funktion

Syntax:

EDITFIELD(<ZEILE>,<SPALTE>,<FELD-VARIABLE>,
                      <FORMAT-STRING>,<FELD-ATTRIBUTE>,
                      <DEZIMALPUNKT>,<TASTE>)

<ZEILE>                            = <NUM-VARIABLE>
<SPALTE>                         = <NUM-VARIABLE>
<FELD-VARIABLE>        = <STRING-VARIABLE>
<FORMAT-STRING>       = <STRING-AUSDRUCK>
<FELD-ATTRIBUTE>      = <STRING-AUSDRUCK>
<DEZIMALPUNKT>       = <STRING-AUSDRUCK>
<TASTE>                           = <STRING-VARIABLE>

Bedeutung:

EDITFIELD erzeugt an der Position <ZEILE>,<SPALTE> ein Maskenfeld und startet die Feldverarbeitung für dieses eine Maskenfeld. Die Feldverarbeitung erfolgt in der gleichen Weise wie bei den Feldern von Masken und Maskenwindows. Wird das Maskenfeld verlassen, so enthält <TASTE> die zuletzt in dem Maskenfeld betätigte Taste. Während der Feldverarbeitung gelten die gerade gültigen ON <TASTE> Macros. Deshalb kann die Feldverarbeitung auch mit der Anweisung ENDPROG in einem ON <TASTE> Macro beendet werden.

Das Maskenfeld wird als Hilfsfeld erzeugt. <FELD-VARIABLE> ist die zugehörige Hilfsvariable. Sie enthält den Wert, der im Maskenfeld angezeigt und bearbeitet wird. <FELD-VARIABLE> ist eine alphanumerische Variable. Bei numerischen Feldern und Datumsfeldern enthält sie den Feldwert als Zeichenkette.

<FORMAT-STRING> enthält die Maskenfelddarstellung (z.B. $$$.$$#,##) und legt dadurch auch den Typ des Maskenfeldes fest (alphanumerisch, numerisch oder Datum).

<FELD-ATTRIBUTE> legt die Attribute des Maskenfeldes fest und muß folgendermaßen aufgebaut sein:

 

Position

Länge

Bedeutung

 

0
1
2







3
4
5
6
7
8

1
1
1







1
1
1
1
1
20

Vorzeichen J/N
Blinken J/N
Bildschirmattribut
               N = Normal
               D = Dopp.hell
               M = Matt invers
               I = Invers
               S = Standard
               U = Header
               E = Message
Änderbar J/N
Anzeige immer oder Ansprung I/A
Groß-/Kleinbuchstaben/Alle G/K/A
Sonderzeichen zulässig J/N
Automatisches Feldende J/N
Zulässige Zeichenmenge

 

In <FELD-ATTRIBUTE> müssen nicht alle Attribute angegeben werden. Es ist zulässig, nur die ersten <n> Attribute oder den Leerstring "" anzugeben. Für nicht angegebene Attribute werden folgende Voreinstellungen übernommen: "JNDJIAJN"

Bei numerischen Maskenfeldern muß der <DEZIMALPUNKT> angegeben werden. Nur "." und "," sind zulässig.

 

EDITFIELD liefert folgende Ergebniswerte:

 

0
6108
6109
6110
6111
6112
6113
6114
6116
6130
6131
6132

kein Fehler
Nur J oder N bei Vorzeichen zulässig
Nur J oder N bei Blinken zulässig
Nur N,D,M,I,S,U,E bei Bildschirmattribut zulässig
Nur J oder N bei Änderbar zulässig
Nur I oder A bei Anzeige zulässig
Nur G,K,A bei Groß-/Kleinbuchstaben zulässig
Nur J oder N bei Sonderzeichen zulässig
Nur J oder N bei Autom. Feldende zulässig
Formatstring ist fehlerhaft
ungültiges Zeichen für Dezimalpunkt
Die Masken-/Windowbreite reicht nicht aus für die Anzeige
des Maskenfeldes.

Beispiel:

/* 6-stelliges alphanumerisches Eingabefeld
H% = EDITFIELD(15,2,H$,"&&&&&&","","",TASTE$)
IF H% <> 0
THEN /* ... Fehler
ELSE CASE TASTE$
               OF RETURN$                    /* Return wurde gedrückt
               OF CURSU$                      /* <
¯> wurde gedrückt
               OF CURSO$                      /* <
­> wurde gedrückt
               OF TABRIGHT$                /* <
®|> wurde gedrückt
               OF TABLEFT$                   /* <
> wurde gedrückt
          ENDCASE
ENDIF

/* 8-stelliges Datumsfeld
DATUM% = 19971224
/* DATUM konvertieren in Zeichenkette
DATUM$ = STRN$(DATUM%)
H% = EDITFIELD(15,2,DATUM$,"^^.^^.^^^^","","",TASTE$)
IF H% = 0
THEN DATUM% = VAL(DATUM$)
           /* ...
ENDIF

/* 6-stelliges numerisches Feld mit 2 Nachkommastellen
/* ohne Vorzeichen, Dezimalpunkt ist ","
WERT = 123.45
WERT$ = STRN$(WERT)
H% = EDITFIELD(15,2,WERT$,"$.$$#,##","N",",",TASTE$)
IF H% = 0
THEN WERT = VAL(WERT$)
           /* ...
ENDIF

siehe auch:

ADDFIELD, STARTFIELD