EDIT-Befehl
Zeigt Felder zum Bearbeiten an.
EDIT [FIELDS FieldList] [Scope] [FOR lExpression1] [WHILE lExpression2]
[FONT cFontName[, nFontSize]] [STYLE cFontStyle] [FREEZE FieldName]
[KEY eExpression1[, eExpression2]] [LAST | NOINIT] [LPARTITION]
[NAME ObjectName] [NOAPPEND] [NOCAPTION] [NODELETE] [NOEDIT | NOMODIFY]
[NOLINK] [NOMENU] [NOOPTIMIZE] [NORMAL] [NOWAIT]
[PARTITION nColumnNumber [LEDIT] [REDIT]]
[PREFERENCE PreferenceName] [REST] [SAVE] [TIMEOUT nSeconds]
[TITLE cTitleText] [VALID [:F] lExpression3 [ERROR cMessageText]]
[WHEN lExpression4] [WIDTH nFieldWidth] [WINDOW WindowName1]
[IN [WINDOW] WindowName2 | IN SCREEN [COLOR SCHEME nSchemeNumber]
Parameter
FIELDS FieldList
Gibt die Felder an, die im Bearbeitungsfenster angezeigt werden. Die Felder werden in der Reihenfolge angezeigt, in der sie in FieldList angegeben sind. Sie können in der Feldliste auch Felder angeben, die zu Detailtabellen gehören. Wenn Sie Felder aus einer dazugehörigen Tabelle mit aufnehmen, müssen Sie vor den Feldnamen den Alias der Detailtabelle sowie einen Punkt setzen.Wenn Sie FIELDS nicht angeben, werden alle Felder der Tabelle in der Reihenfolge angezeigt, in der sie in der Tabellenstruktur angeordnet sind.
Die Feldliste kann eine beliebige Kombination aus Feldern und berechneten Feldern enthalten, einschließlich Feldern aus Tabellen, die in anderen Arbeitsbereichen geöffnet sind. Für die Feldliste gilt die folgende Syntax:
FieldName1 [:R] [:nColumnWidth] [:V = lExpression1 [:F] [:E = cMessageText]] [:P = cFormatCodes] [:B = eLowerBound, eUpperBound [:F]] [:H = cHeadingText] [:W = lExpression2] [, FieldName2 [:R]...]
Berechnete Felder
Es ist möglich, dass die Feldliste Anweisungen zum Erstellen von berechneten Feldern enthält. Berechnete Felder enthalten schreibgeschützte Daten, die mit Hilfe eines Ausdrucks erstellt werden. Die Form dieses Ausdrucks ist beliebig, solange es sich um einen gültigen Visual FoxPro-Ausdruck handelt.
Eine Anweisung, die ein berechnetes Feld erstellt, hat folgende Syntax:
CalculatedFieldName = eExpression
In diesem Beispiel wird ein berechnetes Feld mit dem Namen location
erstellt:
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Open customer table
EDIT FIELDS location = ALLTRIM(city) + ', ' + country
Für die Feldliste einer FIELDS-Klausel sind acht Optionen definiert, mit denen Felder, die im Bearbeitungsfenster angezeigt werden, auf spezielle Weise verwaltet werden können.
:nColumnWidth
Gibt die Anzeigegröße eines Feldes in Spalten an. Der Wert von :nColumnWidth hat keinen Einfluss auf die Größe des Feldes in der Tabelle; der Wert ändert lediglich die Darstellung des Feldes im Bearbeitungsfenster:R
Im folgenden Beispiel wird ein Bearbeitungsfenster mit den Felderncust_id
undcompany
geöffnet. Das Feldcust_id
ist schreibgeschützt und kann nicht geändert werden.CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT FIELDS cust_id:R, company
:V = lExpression1
Gibt eine Überprüfungsoption an, die im Bearbeitungsfenster eine Datengültigkeitsprüfung auf Feldebene durchführt. Ergibt lExpression1 den Wert Wahr (.T.), werden die in das Feld eingegebenen Daten als korrekt behandelt, und die Einfügemarke wird in das nächste Feld bewegt.Ergibt lExpression1 dagegen den Wert Falsch (.F.), so werden die eingegebenen Daten als falsch behandelt. Die Einfügemarke bleibt in dem Feld, und es wird eine Meldung angezeigt. Ergibt lExpression1 den Wert 0, so werden die eingegebenen Daten als falsch behandelt. Die Einfügemarke bleibt in dem Feld, aber es wird keine Fehlermeldung angezeigt.
Standardmäßig wird lExpression1 nur ausgewertet, wenn das Feld verändert wurde. Mit Hilfe der Option :F können Sie die Überprüfung erzwingen.
Geben Sie die Option :E an, wenn Sie eine eigene Fehlermeldung anzeigen möchten.
Die Überprüfungsoption wird für Memofelder nicht ausgeführt.
:F
Gibt eine Gültigkeitsprüfungsoption an, die festlegt, ob der Ausdruck in der Gültigkeitsprüfungsoption (lExpression1) ausgewertet wird, wenn die Einfügemarke aus einem Feld herausbewegt oder ein anderes Fenster aktiviert wird. Wird die Option :F nicht angeben, wird lExpression1 nur ausgewertet, wenn an dem Feld Änderungen vorgenommen wurden. Falls die Option :F angegeben ist, wird lExpression1 dagegen auch dann ausgewertet, wenn das Feld nicht bearbeitet wird.:E = cMessageText
Zeigt die mit cMessageText angegebene Fehlermeldung anstelle der Standardsystemmeldung an.Ergibt der Prüfungsausdruck :V = lExpression1 den Wert Wahr (.T.), so verlässt die Einfügemarke das Feld. Falls der Ausdruck den Wert Falsch (.F.) ergibt, bleibt die Einfügemarke im Feld, und die Fehlermeldung wird angezeigt.
Ergibt der Ausdruck :V = lExpression1 den Wert 0, bleibt die Einfügemarke in dem Feld, das überprüft wird, ohne dass eine Meldung angezeigt wird. Mit Hilfe dieser Option können Sie im Rahmen von Gültigkeitsprüfungsroutinen eigene Fehlermeldungen anzeigen.
Die Fehlermeldung wird nur angezeigt, wenn SET NOTIFY auf ON gesetzt ist. Ein akustisches Signal ertönt nur, wenn SET BELL auf ON gesetzt ist.
Im folgenden Beispiel wird die Tabelle
products
geöffnet und das Feldin_stock
angezeigt. Geben Sie in das Feldproduct_id
einen Wert größer als 100 ein, um die Feldgültigkeitsprüfung durchzuführen.:V gibt das Kriterium für die Gültigkeitsprüfung an. :F bewirkt, dass die Gültigkeitsprüfung ausgeführt wird, unabhängig davon, ob die Daten geändert wurden oder nicht. Durch :E wird die Visual FoxPro-Systemfehlermeldung durch eine benutzerdefinierte Fehlermeldung ersetzt.
In Visual FoxPro wird die Fehlermeldung in der Statusleiste am unteren Rand des Visual FoxPro-Hauptfensters angezeigt.
Drücken Sie ESC, um das Bearbeitungsfenster zu schließen.
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table IF _WINDOWS OR _MAC SET STATUS BAR ON ENDIFENDIF USE products EDIT FIELDS in_stock :V = in_stock < 100 ; :F ; :E = 'The stock amount must be less than 100'
:P = cFormatCodes
Gibt eine Bildoption an, mit der Sie eine mit cFormatCodes angegebene Bearbeitungsvorlage erstellen können, die die Anzeige und Eingabe von Daten für jedes Feld in einem Bearbeitungsfenster steuert.Weitere Informationen zu Bildbearbeitungscodes finden Sie unter Format-Eigenschaft und InputMask-Eigenschaft.
Im folgenden Beispiel wird die Bildoption verwendet, damit in das Feld
unit_price
nur numerische Daten in einem bestimmten Format eingetragen werden können.CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table EDIT FIELDS unit_price :P = '99,999.99'
:B = eLowerBound, eUpperBound [:F]
Legt eine Reihe von Grenzen fest, innerhalb derer die Daten liegen müssen. Die beiden den Bereich definierenden Ausdrücke eLowerBound und eUpperBound müssen bezüglich des Datentyps zu dem Felddatentyp passen und dürfen keine Bezeichnungen von benutzerdefinierten Funktionen sein. Liegen die jeweils eingegebenen Daten nicht im Bereich von eLowerBound bis eUpperBound, teilt eine Systemfehlermeldung den Bereich mit, in dem die Daten liegen müssen.Standardmäßig werden die eingegebenen Daten nur dann mit den Grenzwerten verglichen, wenn der Feldinhalt geändert wurde. Wenn die Daten immer darauf überprüft werden sollen, ob sie innerhalb der angegebenen Grenzwerte liegen, müssen Sie die Option :F angeben.
Das folgende Beispiel ist so gestaltet, dass der Wert im Feld
in_stock
zwischen 1 und 100 liegt. Drücken Sie ESC, um das Bearbeitungsfenster zu schließen.CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table EDIT FIELDS in_stock :B = 1, 100 :F
:H = cHeadingText
Gibt eine Überschriftenoption (:H) an, mit der Sie die Standardfeldnamen durch eigene Überschriften ersetzen können. Geben Sie Ihre Überschriften mit cHeadingText an. Standardmäßig werden die Feldnamen im Bearbeitungsfenster links neben den Feldern angezeigt.Im folgenden Beispiel werden benutzerdefinierte Überschriften für die angezeigten Felder erstellt.
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE products && Open products table EDIT FIELDS prod_name :H = 'Product Name:', ; unit_price :H = 'Price per Unit:'
:W = lExpression2
Gibt eine WHEN-Option an, mit der Sie in Abhängigkeit vom Wert des logischen Ausdrucks lExpression verhindern können, dass die Einfügemarke auf ein Feld bewegt wird. (:W) wertet lExpression aus. Ergibt lExpression2 den Wert Falsch (.F.), kann die Einfügemarke nicht auf das Feld bewegt werden. Ergibt lExpression2 den Wert Wahr (.T.), kann die Einfügemarke auf das Feld bewegt werden. In lExpression2 werden auch benutzerdefinierte Funktionen unterstützt.Wenn die Einfügemarke auf keines der Felder bewegt werden kann, wird das aktuelle Feld als schreibgeschützt markiert. Dies tritt nur auf, wenn für alle Felder eine WHEN-Klausel (:W) definiert ist, deren Auswertung den Wert Falsch (.F.) ergibt.
Scope
Gibt einen Bereich von Datensätzen an, die im Bearbeitungsfenster angezeigt werden. Die Bereichsklauseln sind: ALL, NEXT nRecords, RECORD nRecordNumber und REST. Befehle, bei denen ein Geltungsbereich (Scope) angegeben ist, funktionieren nur für die Tabelle des aktiven Arbeitsbereichs. Der Standardbereich für EDIT ist ALL, also alle Datensätze.Weitere Informationen finden Sie unter dem Onlinehilfethema Geltungsbereichklauseln.
FOR lExpression1
Gibt an, dass nur die Datensätze im Bearbeitungsfenster angezeigt werden sollen, die die logische Bedingung lExpression1 erfüllen. Mit diesem Argument können Sie unerwünschte Datensätze herausfiltern.Eine EDIT FOR-Abfrage wird mit der Rushmore-Technologie optimiert, wenn lExpression1 ein optimierbarer Ausdruck ist. Die beste Leistung erzielen Sie, indem Sie in der FOR-Klausel einen optimierbaren Ausdruck verwenden.
Weitere Informationen finden Sie unter SET OPTIMIZE und Verwenden von Rushmore zum Beschleunigen des Datenzugriffs.
WHILE lExpression2
Gibt eine Bedingung an, gemäß der Datensätze solange im Bearbeitungsfenster angezeigt werden, wie der logische Ausdruck lExpression2 gleich Wahr (.T.) ist.FONT cFontName [, nFontSize]
Gibt die Schriftart und den Schriftgrad für das Bearbeitungsfenster an. Der Zeichenausdruck cFontName gibt den Namen der Schriftart und der numerische Ausdruck nFontSize gibt den Schriftgrad an. Die folgende Klausel legt z. B. fest, dass die Inhalte der in einem Bearbeitungsfenster angezeigten Felder in der Schrift Courier 16 pt angezeigt werden:FONT 'Courier',16
Wenn Sie die FONT-Klausel angeben, aber den Schriftgrad nicht über nFontSize festlegen, wird im Bearbeitungsfenster eine Schrift mit der Schriftgröße 10 pt verwendet.
Wenn Sie die FONT-Klausel weglassen, wird die Schriftart MS Sans Serif 8 pt verwendet. Ist die angegebene Schriftart nicht verfügbar, wird eine Schrift mit ähnlichen Schriftmerkmalen verwendet.
STYLE cFontStyle
Gibt den Schriftstil für das Bearbeitungsfenster in Visual FoxPro an. Wenn Sie die STYLE-Klausel nicht angeben, wird der Schriftstil Normal verwendet.Ist der angegebene Schriftstil nicht verfügbar, wird stattdessen ein Schriftstil mit ähnlichen Merkmalen ausgewählt.
Zeichen Schriftstil B Fett I Kursiv N Normal O Umriss Q Undurchsichtig S Schattiert - Durchgestrichen T Transparent U Unterstrichen Sie können Schriftstile kombinieren, indem Sie mehrere Zeichen angeben. Im folgenden Beispiel wird ein Bearbeitungsfenster geöffnet, in dem der normale Schriftstil verwendet wird, wobei jedoch die Zeichen unterstrichen werden:
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens customer table IF _WINDOWS EDIT FIELDS contact FONT 'System', 15 STYLE 'NU' ENDIFENDIF IF _MAC EDIT FIELDS contact FONT 'Geneva', 14 STYLE 'NU' ENDIFENDIF
FREEZE FieldName
Damit können Sie festlegen, dass im Bearbeitungsfenster Änderungen nur in dem mit FieldName angegebenen Feld vorgenommen werden können. Die übrigen Felder werden angezeigt, können aber nicht bearbeitet werden.KEY eExpression1 [, eExpression2]
Schränkt den Bereich von Datensätzen ein, die im Bearbeitungsfenster angezeigt werden. Mit KEY können Sie einen Indexschlüsselwert (eExpression1) oder einen Bereich von Schlüsselwerten (eExpression1 , eExpression2) für die Datensätze angeben, die im Bearbeitungsfenster angezeigt werden. Die Tabelle muss indiziert sein, und die Indexschlüsselwerte oder die in der KEY-Klausel angegebenen Schlüsselwerte müssen hinsichtlich des Datentyps dem Indexausdruck der Hauptindexdatei oder des Hauptindexnamens entsprechen.Im folgenden Beispiel werden im Bearbeitungsfenster nur die Datensätze angezeigt, in denen Postleitzahlen im Bereich von 10.000 bis 30.000 enthalten sind:
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table SET ORDER TO postalcode EDIT KEY '10000', '30000'
LAST | NOINIT
Speichert alle Konfigurationsänderungen, die an der Darstellung eines Bearbeitungsfensters vorgenommen wurden. Diese Änderungen werden in der Ressourcendatei (standardmäßig FOXUSER.DBF) gespeichert und können die Feldliste, die Größe der Felder sowie die Position und Größe des Bearbeitungsfensters betreffen. Weitere Informationen zu dieser Datei finden Sie unter SET RESOURCE.Wenn Sie EDIT mit der LAST-Klausel eingeben, wird das Bearbeitungsfenster beim Öffnen gemäß den Angaben konfiguriert, die zuletzt in der Datei FOXUSER gespeichert wurden. Auf diese Weise wird die Konfiguration des Bearbeitungsfensters wiederhergestellt, das mit dem zuletzt eingegebenen EDIT-Befehl erstellt wurde. Wenn der zuletzt im Befehlsfenster eingegebene EDIT-Befehl viele Klauseln enthielt, können Sie EDIT LAST verwenden, damit Sie den Befehl nicht erneut eingeben müssen.
Die Änderungen an der Konfiguration eines Bearbeitungsfensters, die Sie in der aktuellen Sitzung vornehmen, werden nicht gespeichert, wenn Sie EDIT durch Drücken von STRG+Q beenden.
LPARTITION
Stellt die Einfügemarke in das erste Feld des linken Bereichs des Bearbeitungsfensters. Mit der PARTITION-Klausel können Sie ein Bearbeitungsfenster in einen linken und einen rechten Bereich teilen. Standardmäßig wird die Einfügemarke beim Öffnen des Bearbeitungsfensters in das erste Feld des rechten Bereichs gestellt.Die Einfügemarke wird in den rechten Bereich des Bearbeitungsfensters gestellt, wenn Sie LPARTITION ohne die PARTITION-Klausel angeben.
NAME ObjectName
Erstellt einen Objektverweis für das Bearbeitungsfenster, so dass Sie das Bearbeitungsfenster mit Hilfe objektorientierter Eigenschaften modifizieren können, die für das Datenraster-Steuerelement (Grid) zur Verfügung stehen.Weitere Informationen zum objektorientierten Programmieren in Visual FoxPro finden Sie unter Objektorientierte Programmierung. Weitere Informationen zu den für das Datenraster-Steuerelement (Grid) verfügbaren Eigenschaften, die Sie für ein mit der NAME-Klausel erstelltes Bearbeitungsfenster angeben können, finden Sie unter Datenraster-Steuerelement (Grid).
NOAPPEND
Verhindert, dass der Benutzer Datensätze zu der Tabelle hinzufügt, indem er STRG+Y drückt oder den Anfügemodus aus dem Menü Ansicht wählt.Anmerkung Auch wenn NOAPPEND angegeben ist, können Sie aus einer mit VALID, WHEN oder ON KEY LABEL aufgerufenen Routine heraus einen Datensatz anfügen, während das Bearbeitungsfenster aktiv ist.
NOCAPTION
Gibt an, dass immer der Feldname einer Tabelle oder einer Ansicht für die Spaltenkopfzeilen verwendet werden soll, auch wenn die Datenbank einen beschreibenden Namen für die Tabelle enthält. Diese Klausel beziehen sich nur auf Tabellen oder Ansichten in einer Datenbank.NODELETE
Verhindert, dass Datensätze aus einem Bearbeitungsfenster zum Löschen markiert werden. Standardmäßig kann ein Datensatz durch Drücken von STRG+T zum Löschen markiert werden. Wählen Sie aus dem Menü Tabelle den Befehl Löschmarkierung umschalten, oder klicken Sie in der Spalte ganz links auf den Datensatz, den Sie löschen möchten.Anmerkung Auch wenn NODELETE angegeben ist, können Sie aus einer mit VALID, WHEN oder ON KEY LABEL aufgerufenen Routine heraus einen Datensatz zum Löschen markieren, während das Bearbeitungsfenster aktiv ist.
NOEDIT | NOMODIFY
Verhindert das Verändern der Tabelle durch den Benutzer. NOEDIT und NOMODIFY sind identisch. Wenn Sie eine dieser Klauseln angeben, kann der Benutzer in der Tabelle blättern oder nach Daten suchen, kann aber die Daten nicht bearbeiten. Es können jedoch Datensätze angefügt und gelöscht werden.NOLINK
Hebt die Verknüpfung der Bereiche in einem Bearbeitungsfenster auf. Standardmäßig sind der linke und der rechte Bereich eines Bearbeitungsfensters miteinander verknüpft, d. h., wenn Sie einen Bereich durchblättern, wird auch der andere Bereich durchblättert.NOMENU
Entfernt in Visual FoxPro den Menünamen Tabelle aus der Systemmenüleiste und verhindert so den Zugriff auf das Menü Bearbeiten.NOOPTIMIZE
Deaktiviert die Rushmore-Optimierung für EDIT.Weitere Informationen finden Sie unter SET OPTIMIZE und Verwenden von Rushmore zum Beschleunigen des Datenzugriffs.
NORMAL
Öffnet das Bearbeitungsfenster mit den normalen Standardeinstellungen hinsichtlich der Farben, der Größe, der Position, des Titels und der Steuerungsoptionen (GROW, FLOAT, ZOOM usw.). Wenn Sie NORMAL nicht angeben und es sich bei dem aktuellen Ausgabefenster um ein benutzerdefiniertes Fenster mit eigenen Einstellungen handelt, übernimmt das Bearbeitungsfenster diese benutzerdefinierten Einstellungen.NOWAIT
Setzt die Programmausführung fort, nachdem das Bearbeitungsfenster geöffnet wurde. Das Programm wartet also nicht, bis das Bearbeitungsfenster wieder geschlossen wird. Stattdessen wird es ab der Zeile direkt nach der Zeile mit EDIT NOWAIT weiter ausgeführt. Wenn Sie EDIT aus einem Programm ausgeben und NOWAIT nicht angeben, wird ein Bearbeitungsfenster geöffnet, und die Programmausführung wird so lange angehalten, bis das Bearbeitungsfenster wieder geschlossen wird.NOWAIT steht nur innerhalb eines Programms zur Verfügung. Die Option NOWAIT hat keine Auswirkung auf den Befehl EDIT, wenn dieser im Befehlsfenster eingegeben wird.
PARTITION nColumnNumber
Teilt ein Bearbeitungsfenster in einen linken und einen rechten Bereich, wobei nColumnNumber die Spaltennummer der Teilungslinie angibt. Wenn z. B. nColumnNumber 20 ist, wird die Teilungslinie in Spalte 20 des Bearbeitungsfensters angezeigt.LEDIT
Gibt an, dass der linke Bereich des Bearbeitungsfensters im Datenblattmodus angezeigt wird.REDIT
Gibt an, dass der rechte Bereich des Bearbeitungsfensters im Datenblattmodus geöffnet wird. Im folgenden Beispiel wird ein Bearbeitungsfenster geöffnet, in dem die Teilungslinie in Spalte 20 angezeigt und der rechte Bereich im Datenblattmodus geöffnet wird.Geben Sie beide Schlüsselwörter an, wenn beide Bereiche im Datenblattmodus geöffnet werden sollen.
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens customer table EDIT PARTITION 30 REDIT
PREFERENCE PreferenceName
Speichert die Attribute und Optionen eines Bearbeitungsfensters zur späteren Verwendung. Im Gegensatz zur LAST-Klausel, die das Bearbeitungsfenster so wiederherstellt, wie es in der letzten Sitzung angezeigt wurde, speichert PREFERENCE die Attribute eines Bearbeitungsfensters endgültig in der Ressourcendatei FOXUSER. Einstellungen können jederzeit abgerufen werden. Weitere Informationen zur Ressourcendatei Foxuser finden Sie unter SET RESOURCE-Befehl.Wenn Sie EDIT mit dem angegebenen Einstellungsnamen PreferenceName zum ersten Mal eingeben, wird ein Eintrag in der Datei FOXUSER erstellt, unter dem die Konfiguration des Bearbeitungsfensters gespeichert wird. Wenn Sie EDIT später erneut mit demselben Einstellungsnamen eingeben, werden die unter diesem Namen gespeicherten Einstellungen des Bearbeitungsfensters wiederhergestellt. Wenn Sie das Bearbeitungsfenster schließen, werden die Einstellungen aktualisiert.
Einstellungsnamen können aus bis zu 10 Zeichen bestehen. Sie müssen mit einem Buchstaben oder einem Unterstrich anfangen und können eine beliebige Kombination aus Buchstaben, Zahlen und Unterstrichen enthalten.
Wenn Sie sich endgültig für bestimmte Einstellungen entschieden haben, können Sie alle weiteren Änderungen an diesen Einstellungen unterbinden. Schließen Sie dazu das Bearbeitungsfenster, geben Sie SET RESOURCE OFF ein, öffnen Sie die Datei FOXUSER als Tabelle, und weisen Sie dem Datensatz mit den Einstellungen das Attribut Schreibgeschützt zu, indem Sie den Wert des logischen Feldes READONLY in Wahr (.T.) ändern.
Weitere Informationen zur Ressourcendatei Foxuser finden Sie unter SET RESOURCE-Befehl.
REST
Verhindert, dass der Datensatzzeiger von seiner aktuellen Position zum Anfang der Tabelle verschoben wird. Standardmäßig stellt EDIT den Datensatzzeiger an den Anfang der Tabelle.SAVE
Bewirkt, dass das Bearbeitungsfenster sowie alle seine Textbearbeitungsfenster für Memofelder aktiv und sichtbar (geöffnet) bleiben. Dann können Sie zum Bearbeitungsfenster zurückkehren, nachdem Sie mit der Tastatur oder der Maus zu anderen offenen Fenstern gewechselt sind.SAVE steht nur innerhalb eines Programms zur Verfügung. Die SAVE-Klausel hat keine Auswirkung, wenn sie zusammen mit EDIT im Befehlsfenster eingegeben wird, da EDIT SAVE im interaktiven Modus immer der Standard ist.
TIMEOUT nSeconds
Gibt an, wie lange ein Bearbeitungsfenster auf eine Eingabe wartet. Der numerische Ausdruck nSeconds gibt die Sekunden an, die ohne Eingabe verstreichen dürfen, bevor das Bearbeitungsfenster automatisch geschlossen wird.TIMEOUT steht nur innerhalb eines Programms zur Verfügung. Die TIMEOUT-Klausel hat keine Auswirkungen, wenn Sie EDIT im Befehlsfenster eingeben. Im folgenden Beispiel wird das Bearbeitungsfenster geschlossen, wenn innerhalb von 10 Sekunden keine Eingabe erfolgt.
DEFINE WINDOW wEdit FROM 1,1 TO 24,40 ; CLOSE ; GROW ; COLOR SCHEME 10 CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT WINDOW wEdit ; FIELDS phone :H = 'Phone Number:' , ; company :H = 'Company:' ; TIMEOUT 10 RELEASE WINDOW wEdit
TITLE cTitleText
Ersetzt den Standardtabellennamen oder den Alias der Tabelle, der in der Titelleiste des Bearbeitungsfensters angezeigt wird, durch den mit cTitleText angegebenen Titel. Andernfalls wird der Name oder der Alias der Tabelle, die gerade bearbeitet wird, in der Titelleiste dargestellt.Wenn Sie mit EDIT WINDOW das Bearbeitungsfenster in ein benutzerdefiniertes Fenster stellen, wird der Titel des benutzerdefinierten Fensters durch den Titel des Bearbeitungsfensters ersetzt.
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Open customer table EDIT; TITLE 'My Edit Window' ; FIELDS phone :H = 'Phone Number' , ; company :H = 'Company:'
VALID lExpression3
Führt die Gültigkeitsprüfung auf Datensatzebene in einem Bearbeitungsfenster durch. Die VALID-Klausel wird nur ausgeführt, wenn der Datensatz geändert wurde und die Einfügemarke in einen anderen Datensatz gestellt wird. Die VALID-Klausel wird nicht ausgeführt, wenn nur ein Memofeld geändert wird.Wenn VALID den Wert Wahr (.T.) zurückgibt, können Sie die Einfügemarke in einen anderen Datensatz stellen. Gibt VALID dagegen den Wert Falsch (.F.) zurück, bleibt die Einfügemarke im aktuellen Feld, und Visual FoxPro zeigt eine Fehlermeldung an. Sie können für den Fall, dass VALID den Wert Falsch (.F.) zurückgibt, eine eigene Fehlermeldung definieren, indem Sie die ERROR-Klausel angeben. Der Zeichenausdruck cMessageText wird als Fehlermeldung angezeigt. Wenn VALID den Wert 0 zurückgibt, bleibt die Einfügemarke im aktuellen Feld, ohne dass eine Fehlermeldung angezeigt wird.
Die VALID-Klausel darf nicht mit der Überprüfungsoption (:V) verwechselt werden, welche eine Gültigkeitsprüfung auf Feldebene bewirkt.
:F
Bewirkt, dass die VALID-Klausel immer ausgeführt wird, bevor der Benutzer die Einfügemarke zum nächsten Datensatz bewegt. VALID wird dann stets ausgeführt, selbst wenn sich der Datensatz nicht geändert hat.ERROR cMessageText
Gibt eine Fehlermeldung an, durch die die Systemstandardmeldung ersetzt wird. Sie bestimmen den Inhalt dieser Fehlermeldung mit Hilfe von cMessageText. Visual FoxPro zeigt diese Fehlermeldung an, wenn VALID den Wert Falsch (.F.) zurückgibt.WHEN lExpression4
Wertet einen Bedingungsausdruck aus, wenn der Benutzer die Einfügemarke in einen anderen Datensatz stellt. Ergibt lExpression4 den Wert Wahr (.T.), kann der Benutzer den Datensatz ändern, in den er die Einfügemarke verschoben hat. Ergibt die Auswertung von lExpression4 dagegen den Wert Falsch (.F.) oder 0, wird der Datensatz, in den die Einfügemarke verschoben wurde, als schreibgeschützt markiert und kann nicht bearbeitet werden.Die WHEN-Klausel wird nicht ausgeführt, wenn ein anderes Fenster aktiviert wird.
WIDTH nFieldWidth
Schränkt die Anzahl der Zeichen, die für alle Felder in einem Bereich eines Bearbeitungsfensters angezeigt werden, auf nFieldWidth ein. Mit der WIDTH-Klausel wird nicht die Größe der Felder in der Tabelle geändert, sondern die Art und Weise, wie die Felder im Bearbeitungsfenster angezeigt werden. Wurde für ein einzelnes Feld mit der FIELDS-Klausel eine Breite angegeben, so hat diese Angabe Vorrang vor der mit der WIDTH-Klausel für alle Felder angegebenen Breite.WINDOW WindowName1
Gibt ein benutzerdefiniertes Fenster an, dessen Eigenschaften das Bearbeitungsfenster übernimmt. Wurde das benutzerdefinierte Fenster z. B. mit der FLOAT-Klausel erstellt, so kann auch das Bearbeitungsfenster verschoben werden. Das angegebene Fenster muss nicht aktiv oder sichtbar sein, es muss lediglich definiert sein.IN [WINDOW] WindowName2
Gibt das übergeordnete Fenster an, in dem das Bearbeitungsfenster geöffnet wird. Das Bearbeitungsfenster übernimmt die Eigenschaften des übergeordneten Fensters nicht. Ein Bearbeitungsfenster, das innerhalb eines übergeordneten Fensters aktiviert wird, kann nicht aus dem übergeordneten Fenster herausgeschoben werden. Wird das übergeordnete Fenster verschoben, so wird das Bearbeitungsfenster zusammen mit dem Fenster verschoben.Das übergeordnete Fenster muss zunächst mit DEFINE WINDOW definiert werden, und es muss aktiv und sichtbar sein, damit auf das Bearbeitungsfenster zugegriffen werden kann.
IN SCREEN
Stellt ein Bearbeitungsfenster explizit in das Visual FoxPro-Hauptfenster, wenn ein benutzerdefiniertes Fenster aktiv ist.COLOR SCHEME nSchemeNumber
Gibt die Nummer des Farbschemas an, das für die Farben des Bearbeitungsfensters verwendet werden soll. In Visual FoxPro übernimmt das Bearbeitungsfenster das voreingestellte Farbschema und verwendet dabei das Bedienfeld Farben.
Hinweise
Mit EDIT können Sie die ausgewählte Tabelle in einem Fenster bearbeiten. Das Verhalten von EDIT ist mit dem von CHANGE identisch.
Wenn Sie ESC drücken, um das Bearbeitungsfenster zu verlassen, werden die im zuletzt bearbeiteten Feld vorgenommenen Änderungen verworfen. Wenn Sie jedoch nach dem Bearbeiten eines Feldes zu einem anderen Datensatz wechseln, werden die im Feld vorgenommenen Änderungen gespeichert.
In einem Programm können Sie mit Hilfe von DEACTIVATE WINDOW die Änderungen speichern und ein Bearbeitungsfenster schließen. Geben Sie dazu in DEACTIVATE WINDOW den Namen des Bearbeitungsfensters an. Weitere Informationen zu den Namen von Bearbeitungsfenstern finden Sie unter WTITLE( ).
Unterstützung von SET SKIP
Mit SET SKIP können Sie eine 1:n-Beziehung zwischen zwei Tabellen herstellen (siehe Beispiel). Jedem Datensatz der Master-Tabelle können mehrere Datensätze der Detailtabelle zugeordnet sein. Wenn Sie eine 1:n-Beziehung herstellen, können Sie mit EDIT Datensätze aus der Master-Tabelle und der Detailtabelle anzeigen.
Der Datensatz der Master-Tabelle wird einmal angezeigt, und zwar zusammen mit dem ersten zugeordneten (passenden) Datensatz der Detailtabelle. Alle weiteren zugeordneten Datensätze werden in den Zeilen nach dem Datensatz der Master-Tabelle und dem ersten zugeordneten Detaildatensatz angezeigt. In Visual FoxPro für MS-DOS werden abgeblendete Felder in allen Spalten angezeigt, die über den ersten zugeordneten Datensatz hinaus Informationen aus der Master-Tabelle enthalten. In Visual FoxPro wird das Füllzeichen für Spalten mit wiederkehrenden Informationen aus der Master-Tabelle durch die aktuelle Schriftart des Bearbeitungsfensters bestimmt.
Weitere Informationen finden Sie unter SET SKIP.
Unterstützung von COL( ) und ROW( )
Mit COL( ) und ROW( ) können Sie die aktuelle Position der Einfügemarke in einem Bearbeitungsfenster in Form der Bildschirmzeile und -spalte zurückgeben lassen. Wird im Hauptfenster von Visual FoxPro ein Bearbeitungsfenster geöffnet, bezieht sich die zurückgegebene Cursorposition auf das Visual FoxPro-Hauptfenster und nicht auf das Bearbeitungsfenster. Ist in einem benutzerdefinierten Fenster ein Bearbeitungsfenster geöffnet, geben COL( ) und ROW( ) die Cursorposition in Bezug auf das benutzerdefinierte Fenster zurück.
Beispiel
Im folgenden Beispiel wird mit Hilfe von SET SKIP eine 1:n-Beziehung zwischen zwei Tabellen erstellt. Die Master-Tabelle (customer
) enthält einen Datensatz für jede ausgestellte Rechnung. Die Detailtabelle (orders
) enthält für jeden Datensatz der Master-Tabelle mehrere passende Datensätze.
Nachdem die Beziehung hergestellt ist, wird ein Bearbeitungsfenster geöffnet, in dem Datensätze der Master- und der Detailtabelle angezeigt werden.
CLEAR
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer ORDER cust_id IN 0 && Parent table
USE orders ORDER cust_id IN 0 && Child table
SELECT customer && Back to parent work area
SET RELATION TO cust_id INTO orders && Establish relationship
SET SKIP TO orders && One-to-many relationship
WAIT WINDOW 'Scroll to see shipping dates for each customer' NOWAIT
EDIT FIELDS customer.cust_id :H='Customer Number', ;
customer.city :H='Customer City', orders.shipped_on
Siehe auch
BROWSE-Befehl | Datenraster-Steuerelement (Grid) | SET SKIP-Befehl | WTITLE( )-Funktion | COL( )-Funktion | ROW( )-Funktion