11. August 2008 10:01
Aus Performancegründen würde ich folgendes probieren:
Schreibe eine Funktion auf der Tabelle Customer, die in einem temp. Record die Top 1000-Customer ausgibt, ich nenne ihn jetzt TempCust.
Schreibe noch eine Funktion, z.B. "IstTop1000" mit einem Boolean-Rückgabewert.
Inhalt:
- Code:
EXIT(TempCust.GET("No."));
Lasse diese Funktion im OnOpenForm-Trigger der Debitorenkarte und der Debitorenliste ausführen, sodass die Berechnung nur einmal pro Formaufruf statt findet.
Füge auf den Forms ein neues Feld ein. SourceExpr = Deine neue Funktion "IstTop1000".
Leider habe ich keine Erfahrung mit einem 1000-Datensatz-starken temp. Record. Eventuell ist dies noch nicht das Gelbe vom Ei. Diese würde dir allerdings auch die aktuellsten Daten liefern (wenn ein Benutzer die Form nicht gerade tagelang geöffnet hält).
Wenn es nicht 100%ig aktuell sein muss, dann würd ich die Debitorentabelle um ein Feld erweitern und es jeden Tag morgens durch einen automatischen Stapellauf setzen. Hat den Vorteil, dass auf dieses Feld gefiltert und gesucht werden kann. Und gibt im laufenden Betrieb keine Performance-Einbußen.