<< Inhaltsverzeichnis Suchen >>

SELEDIT$

Funktion

Syntax:

SELEDIT$(<INDEXDATEI-NAME>.<FELDNAME>,<FARBE>
                     [,<INVERSBALKEN>])

<FARBE>                          = <NUM-AUSDRUCK>
<INVERSBALKEN>        = <NUM-AUSDRUCK>

Bedeutung:

SELEDIT$ erlaubt die Editierung von im SELECT verwendeten Dateifeldern. Die Funktion kann in allen ON SELECT(<TASTE>) MACROs aufgerufen werden.

 

Es können nur Felder der beim SELECT angegebenen Indexdatei editiert werden, Hilfsfelder oder über $<INDEXDATEI-NAME>.<FELD­NAME> aus anderen Dateien angezeigte Felder können nicht editiert werden. Das Feld <INDEXDATEI-NAME>.<FELDNAME> muß im SELECT vorkommen.

 

<FARBE> definiert die Farbe für die Editierung am Bildschirm.

 

Ist <INVERSBALKEN> = 0, so wird nach der Beendigung von SELEDIT$ der Inversbalken über die ganze Selectzeile nicht angezeigt. Fehlt der Parameter, so ist dies gleichbedeutend mit 1.

 

SELEDIT$ ist eine Funktion und liefert als Ergebnis die Taste, mit der die Feldeingabe beendet wurde. Der Leerstring als Ergebnis bedeutet, daß ein Fehler aufgetreten ist. Folgende Werte liefert SELEDIT$:

 

"" = Fehler

Feld wurde nicht editiert:
               z.B.kein Hauptspeicher mehr vorhanden,
               Feld kommt im SELECT nicht vor,
               SELEDIT$ bei SHOW nicht möglich,
               <INDEXDATEI-NAME> ist nicht identisch
               mit der Indexdatei des SELECT.

 

ESC$

Die Feld-Editierung wurde mit <ESC> abgebrochen. In diesem Fall wird der ursprüngliche Wert des Feldes automatisch wiederhergestellt.

 

RETURN$

Die Editierung des Feldes wurde mit Taste <RETURN> beendet.

 

CURSU$

Die Editierung des Feldes wurde mit Taste <¯> beendet.

 

CURSO$

Die Editierung des Feldes wurde mit Taste <­> beendet.

 

PGDN$

Die Editierung des Feldes wurde mit Taste <PGDN> beendet.

 

PGUP$

Die Editierung des Feldes wurde mit Taste <PGUP> beendet.

 

TABRIGHT$

Die Editierung des Feldes wurde mit Taste <®|> beendet.

 

TABLEFT$

Die Editierung des Feldes wurde mit Taste <> beendet.

 

Ist das SELECT-Window schmaler als die benötigte Zeilenbreite, so wird der Window-Inhalt automatisch verschoben, falls ein Feld zur Editierung aufgerufen wird, das gerade nicht vollständig im Window dargestellt wird.

 

Wird nicht das gesamte Indexdateifeld im SELECT angezeigt, so kann nur der im SELECT angezeigte Teil des Feldes editiert werden.

Achtung: SELEDIT$ schreibt keine Daten in die Indexdatei, sondern läßt nur die Editierung des Feldes am Bildschirm zu. Das Zurückschreiben des zugehörigen Datensatzes muß anschließend im Macro erfolgen. Vor dem Aufruf des SELEDIT$ muß deshalb auch unbedingt die Anweisung READSELECT ON ERROR ... END ausgeführt werden, da sonst der aktuelle Datensatz nicht mit dem Datensatz übereinstimmt, auf dem sich der Inversbalken des SELECT gerade befindet. Liefert die Funktion SELDIT$ einen Wert <> "", so befindet sich der geänderte Feldwert in der zugehörigen Indexdatei-Variablen.

 

 

Achtung: Während der Editierung gelten die aktuellen ON <TASTE> MACROs und nicht die ON SELECT(<TASTE>) MACROs !

 

 

 

Beispiel:

/* Beim Drücken von <RETURN> soll das Feld KUNDEN.NAME$
/* geändert werden. Mit den Tasten <
¯>, <­>, <PGDN> und <PGUP>
/* soll geblättert werden können. Bei <RETURN> soll automatisch die
/* nächste Zeile editiert werden, und zwar solange, bis das Dateiende erreicht
/* ist oder mit <ESC> abgebrochen wird.

 

ON SELECT(RETURN) MACRO EDITIEREN
H%=SELECT(KUNDEN,0,0,"Ändern Kunden-Name",1,3,
                        NR,,NAME$,,PLZ,,ORT$)
...
Macro EDITIEREN
READSELECT ON ERROR ...Fehler... END
R$=SELEDIT$(KUNDEN.NAME$,6)
IF R$ <> "" AND R$ <> ESC$      /* Datensatz zurückschreiben
THEN
   WRITE KUNDEN ON ERROR ...<Fehler>... END
   CASE R$
               OF CURSO$
       UNGETCHAR CURSO$+RETURN$
               OF CURSU$
       UNGETCHAR CURSU$+RETURN$
               OF PGDN$          H$=""
                                            FOR I%=1 TO 10              /* 10 Zeilen vorwärts
                                                   H$=H$+CURSU$
                                            ENDLOOP
                                            UNGETCHAR H$+RETURN$
               OF PGUP$          H$=""
                                            FOR I%=1 TO 10              /* 10 Zeilen zurück
                                                   H$=H$+CURSO$
                                            ENDLOOP
                                            UNGETCHAR H$+RETURN$
               OF RETURN$     UNGETCHAR CURSU$+RETURN$
   ENDCASE
ENDIF

siehe auch:

SELECT, ON <EREIGNIS> MACRO, SELAEDIT