Erkennen einer Mutation in einem Grid

10/08/2008 - 09:09 von Alexander Schmid | Report spam
Liebe FoxProler

Ich habe einen Grid, von dem ich beim Speichern des Datensatzes gerne
erkennen würde, ob eine Mutation darin vorgenommen wurde oder nicht.
Dies frage ich GETFLDSTATE() ab. Alles funktioniert auch
zufriedenstellend, solange ich nach der Mutation den Cursor ins nàchste
Feld des Grids bewege. Wenn ich das aber nicht tue, zeigt
GETFLDSTATE(-1,"MEINETABELLE") keine Mutation an. Deshalb habe ich den
Befehl "_screen.Activeform.Activecontrol.SetFocus()" vor GETFLDSTATE
eingefügt. Hilft leider auch nicht.

Hat jemand einen Tipp? Benütze VFP 9.0

Danke und einen schönen Sonntag

Alex
KNECHT + CO.
 

Lesen sie die antworten

#1 Jürgen Wondzinski
10/08/2008 - 11:50 | Warnen spam
Hallo Alexander

Eine "Mutation" (oder etwas gelàufiger: Änderung) des Datensatzes oder eines
Feldes wird von FoxPro immer nur nach erfolgreicher Validierung der Eingabe
angezeigt. D.h. es muss der VALID-Event der Textbox mit .T. (oder einem
numerischen Wert # 0) verlassen werden. Nur dann wirst du nen Eintrag im
GetFldState(-1) bemerken.

Dein Workaround greift im Grid nicht direkt, da das "ActiveControl" seitens
der Form das Grid ist, nicht die Textbox. Du könntest aber zB einfach ein
KEYBOARD "{TAB}" abschicken, oder im Sinne deiner Originalroutine ein:

WITH _screen.activeform.activecontrol
IF .Baseclass = "Grid"
.Columns( .ActiveColumn).text1.setfocus()
ELSE
.SETFOCUS()
ENDIF
ENDWITH




Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen