Lade...
 

CX_WIDGET::RetrieveData

CX_WIDGET::RetrieveData

Beschreibung

Mit Call(RetrieveData) kann die ListView angewiesen, ihren Cache komplett zu füllen. Das hat folgende Effekte:Eine ListView holt sich immer nur die Daten aus der Datenbank, die es gerade zur Anzeige benötigt. Werden gerade die ersten 10 Zeilen dargestellt, werden nur die Daten für die ersten 10 Zeilen geholt (jede Zeile komplett, auch wenn nicht alle Spalten dargestellt werden). Die Daten werden gecached. Scrollt der Anwender durch die Liste, werden die benötigten Daten nachgeladen. Auch diese Daten werden gecached. Werden Zeilen angezeigt, die sich im ListView-Cache befinden, erfolgt kein Datenbankzugriff und es werden auch keine Zugriffspfade mehr ausgewertet.

  • Ist der Cache einmal gefüllt, kann der Anwender sehr schnell durch die ListView scrollen. Datenbankzugriffe und Zugriffspfadauswertung sind zum Zeitpunkt der Anzeige nicht mehr notwendig.
  • Der Cache wird zu einem bestimmten Zeitpunkt gefüllt. Enthält die ListView Objekte, die je nach Gültigkeit eine andere Darstellung haben, kann durch Call(RetrieveData) und setzen der Systemgültigkeit eine bestimmte Darstellung erreicht werden. Diese Darstellung bleibt erhalten, auch wenn der Anwender durch die ListView scrollt.
    Ohne Call(RetrieveData) wird die Darstellung erst zu dem Zeitpunkt bestimmt, wenn die Zeile (also das Objekt) in der ListView sichtbar ist. Dieser Zeitpunkt ist unvorhersehbar und nicht steuerbar. Wird aber für ein bestimmtes Objekt eine Darstellung mit einer bestimmten Gültigkeit gewünscht, kann mit Call(RetrieveData) die Darstellung "simuliert" werden. Kommt die Zeile durch scrollen tatsächlich irgendwann zur Darstellung, werden die Daten aus dem Cache angezeigt - unabhängig von der Systemgültigkeit, die zu dem Zeitpunkt gesetzt ist.
  • Bei mehrfachen Aufrufen von Call(RetrieveData) wird der bereits vorhandene Cache nicht verworfen, sondern erweitert. Es werden also nur die Daten der Zeilen geladen, die seit dem letzten Aufruf von Call(RetrieveData) hinzugekommen sind.
  • Je größer die Datenmenge ist, die die ListView darstellt, desto länger dauert der Aufbau des Caches.
  • Der Cache der ListView enthält alle Information zur Darstellung und Sortierung der Spalten, sodass der Aufruf von RetrieveData auch dafür sorgt, dass jede anschließende Sortierung keine Zugriffsausdrücke und keine Datenbankverbindung mehr benötigt.

 

Code-Beispiel:
Widget(,ListBox) Call(RetrieveData)
Stack
Stack Positionn Objekttyp Kurzbeschreibung
Stack(In) Top CX_WIDGET Ein Listen-Widget
Stack(Out) Top    
Funktionsaufruf: Call(RetrieveData)