Hallo zusammen,

ich habe es nun folgendermaßen gelöst:

Ich habe 2 Arrays erstellt.
1 Statisches mit DIM(1000) und ein dynamisches, in dem sich das statische befindet.

Ich arbeite nun beim Blättern das statische Array ab. Sobald ich das letzte Element erreicht habe hole ich mir die nächsten 1000 Sätze per Blockfetch in mein Dynamisches Array.

Möchte der Anwender nun Positionieren, Beginne ich im 1. Element des Dynamischen Arrays und prüfe das letzte Element des Statischen Arrays ab. Ist dies größer(entsprechend Sortierung) als die Eingabe des Anwenders, befinde ich mich im korrekten Element des Dynamischen Arrays. Ist es kleiner(entsprechend Sortierung) prüfe ich das nächste Element ab.

Sobald ich mich im richtigen Element des Dynamischen Arrays befinde, prüfe ich das Statische Array ab.

Hierzu prüfe ich zuerst das mittlere Element ab, ob es größer als die Eingabe ist. Ist dies der Fall fange ich ab Position 1 an, ansonsten ab Position 500 und prüfe jedes Element ab.



Diese Lösung braucht zum Aufbau des Resultsets ca. 5 sek. Beim 1. Positionieren (bis das komplette Resultset im Array ist) ca. 7 sek.
Ab dann positioniere ich innerhalb weniger sekunden.


PS: Da ich in meinem Array nur die Keyfelder habe und mir erst beim füllen des Subfile die weiteren inforamtionen hole, habe ich auch immer aktuelle Daten. Ausnahme ist natürlich wenn ein Satz hinzugefügt wird. Hier muss der Anwender via F5 aktualisieren. Sollte ein Satz gelöscht werden wird dies mit einer meldung (*GELÖSCHT*) gekennzeichnet.


Ich danke euch allen fürs mitdenken und für die hilfe

Schönen Gruß