[Tipp] Beschleunigung von Tabellen mit CalcFields...

18. August 2006 08:39

Hallo Kollegen/innen,

ich hatte das Problem in einem Form mit Tabelle, dass ich bei Bedarf eine größere Anzahl von Flow-Field-Spalten einblenden wollte. Da trat nun das Problem auf, dass beim Einblenden tierisch viel Zeit gebraucht wurde.

Fehler oder Feature von Navision: Für jede eingeblendete Spalte berechnet er alle Flowfields neu, auch die, die noch nicht angezeigt werden und die die bereits berechnet wurden auch. Wenn ich also 10 Spalten einblende, passiert das eben 10mal

Lösung:
Ich hab einen aktuellen Filter temporär zwischengespeichert, den Filter auf einen unsinnigen Wert gesetzt (so dass die Tabelle leer wurde), dann die Spalten eingeblendet und hinterher wieder den ursprünglichen Filter hergestellt. Und siehe da, jetzt berechnet er alle Fields nur 1x.

Beispiel:
Code:
//aktuellen Filter zwischenspeichern.
tempfilter := GETFILTER(Sortierung);
SETFILTER(Sortierung,'x'); // unsinniger Filter

//die Spalten einblenden
CurrForm.DeltaDB.VISIBLE          := TRUE;
CurrForm."DeltaDB%Balken".VISIBLE := TRUE;
CurrForm."DeltaDB%".VISIBLE       := TRUE;
CurrForm.DB1Aktuell.VISIBLE       := TRUE;
CurrForm."DB1%Aktuell".VISIBLE    := TRUE;
CurrForm.Prozent.VISIBLE          := TRUE;
CurrForm."prov%db".VISIBLE        := TRUE;
.... usw


//alten Filter wiederherstellen
SETFILTER(Sortierung,tempfilter);


Der Focus in der aktuellen Tabelle bleibt erhalten, jedoch ist nachteilig, dass hinterher der Datensatz mit dem Focus immer an erster Stelle steht. Hat dafür jemand noch einen Tipp für mich?

Viele Grüße, Peter

Re: [Tipp] Beschleunigung von Tabellen mit CalcFields...

18. August 2006 17:12

eppich hat geschrieben:Der Focus in der aktuellen Tabelle bleibt erhalten, jedoch ist nachteilig, dass hinterher der Datensatz mit dem Focus immer an erster Stelle steht. Hat dafür jemand noch einen Tipp für mich?


Da wird es wohl keine Möglichkeit geben, denn wenn eine Tablebox aktualisiert wird mit neuen Daten, dann beginnt der Aufbau immer mit dem aktuellen Datensatz.
Wenn dem nicht so wäre, könnte man nämlich wunderbar die Excelfunktion "Tabelle fixieren" mit 2 Tableboxen emulieren.......