Re: Grid und RecordSource Zuweisung



Hallo Roland,

die Tabelle erstelle ich das erste mal beim ThisForm.Load trotzdem stimmen
die Zuordnungen nicht.
Das überblicke ich von hier aus nicht, warum es da nicht funktioniert, da müsste
man tiefer in deinen Quellcode schauen.

In der Form selber kann der Benutzer dann Filtervorgaben ändern.
Dann wird die Abfrage erneut ausgelöst. Dem GRID wird zuvor die RecordSource
entzogen und nach der Erstellung der Tabelle wieder zugewiesen.
Das geht.
Wenn die Abfrage erneut ausgelöst wird, dann ist für einen kurzen Moment die Tabelle komplett weg. Die RecordSource zuzuweisen baut zwangsläufig das Grid wieder neu auf. Wenn die Spalten zufällig in der gleichen Reihenfolge sein sollten, wie die Felder in der Tabelle, übernimmt Foxpro die Spalteneinstellungen. Ansonsten werden die Spalten frisch verteilt. (Zumindest so ähnlich. Im wesentlichen macht Foxpro ziemlich viel eigene Sachen an dieser Stelle.) Wenn du mal ein Grid hast, bei dem du mit den Spalten zufrieden bist, dann kannst du die Tabelleninhalte dadurch austauschen, dass du die Tabelle ZAPs und die SQL-Ergebnisse an die Tabelle wieder anfügst und auf keinen Fall eine Zuweisung an grid.RecordSource machst! Die Zuweisung an grid.RecordSource ist sehr häufig tödlich für die Spaltenaufteilung.

Siehe auch die Hilfestellung, "RecordSource property":
When you want to preserve the previous settings, for example, in scenarios when the new record source has the same structure as the previous one, you can use the SPACE( ) function set the RecordSource property temporarily to SPACE(0).
Using SPACE(0) might not preserve all the grid settings that you want. You might need to reset some settings in code after setting the RecordSource property.

Da hab ich mich auch schon viel geärgert. Mittlerweile hab ich das Problem dadurch in den Griff bekommen, dass ich eine Zuweisungsmethode für die Recordsource angelegt hab (RecordSource_assign). Wenn die RecordSource gelöscht wird, dann speichert das Grid die Spaltenaufteilung. Wenn die Recordsource gesetzt wird, dann baut das Grid mit Hilfe einer geeigneten Spaltendefinition das Grid wieder zusammen und restauriert die Spaltenaufteilung. Meine Versuche, mit im Designer erstellten Grids glücklich zu werden, sind im wesentlichen fehlgeschlagen. Ich arbeite nur mit remote-Daten und da werden die Cursor laufend neu aufgebaut.

Gruß
Bernhard Sander

.



Relevant Pages

  • Re: Grid / VFP8 Frage
    ... Das Grid reagiert "allergisch", wenn man ihm die Datenquelle (RecordSource) ... Vermutlich wird so etwas mit der Tabelle "SET" veranstaltet. ...
    (microsoft.public.de.fox)
  • Re: Trapping Mouse Click on a grid
    ... Each grid column has a ControlSource property ... which contains the name of the field in the recordsource that populates the ... Each control, normally a textbox, also has a ControlSource property, ... the active row. ...
    (microsoft.public.fox.programmer.exchange)
  • Re: Datenquelle wechseln
    ... RecordSource des Grid auf die neue Datei einstellen ... Damit ist das Grid nie ohne RecordSource. ...
    (microsoft.public.de.fox)
  • Re: Grid event code content disappears after recordsource changed
    ... Your code inside the grid vanishes when you change the recordsource? ... I think you should change where you are putting your RECORDSOURCE change ... from the Init to the Activate and this should fix your problem. ... established within this init event. ...
    (microsoft.public.fox.vfp.forms)
  • Re: Cursor in Grid
    ... As a grid refreshes, it automatically changes the work area to its ... Microsoft Visual FoxPro MVP ... > But there is no command to change work area, ... >> If you need to advertise the alias of the RecordSource of a particlar ...
    (microsoft.public.fox.programmer.exchange)

Loading