Performanceproblem beim Reiterwechsel - Welcher Trigger ?

3. März 2008 10:21

Morgen zusammen.

Ich muss euch wohl oder übel am Montag Morgen mit folgendem Problem belästigen ^^ Ich habe auf einer Form eine MatrixBox. Diese wird über eine entsprechende Funktion gefüllt. Auf der Form befinden sich auch noch 2 Reiter auf denen unterschiedliche Einstellungen und Filtermöglichkeiten vorgenommen werden können. Wenn ich aber jetzt von einem Reiter auf den anderen wechsel ruft er mir immer wieder diese Funktion zum Füllen der Matrix auf was doch recht performancelastig ist. Daher die Frage ob man das irgendwie abschalten kann bzw. welchen Trigger er eigentlich bei einem Reiterwechsel aufruft.

Schonmal vielen Dank im Vorraus.

Gruß
Chris

7. März 2008 22:29

Hallo,

wie meinst du das genau mit einer Funktion die Matrixbox füllen? Normal hast du doch die SourceTable auf der Form und die zugehörige MatrixSourceTable in der Matrixbox.

Wo rufst du denn deine Funktion auf (in welchem Trigger) ? Vielleicht kannst du es etwas genauer beschreiben.

Prinzipiell springt er immer in den Trigger der MatrixBox (auch beim wechseln des Reiters):
MatrixBox - OnFindRecord()

gruß
Marcel

12. März 2008 11:23

Hallo,

noch ein kleines Versehen meiner Seits. Sorry. Auf der rechten Seite der MatrixBox integriert befindet sich eine TextBox um welche es auch hier geht. Nicht die MatrixBox selber.

Der TextBox ist eine SourceTable zugewießen. Allerdings werden da nicht alle Datensätze reingeknallt sondern an Hand zig Kriterien und Einstellungen wird diese gefiltert.

Dafür gibt es eine Funktion FillMatrx welche als SourceExpression dieser TextBox zugewießen ist. Die MatrixBox selber befindet sich aber unterhalb der 2 Tabreiter, also sie ist immer sichtbar. Also oben 2 Reiter für diverse Einstellungen und da runter die TableBox.

Sobald ich aber jetzt einen Reiter wechsle ruft er mir wieder diese FillMatrix Routine auf was er ja an dieser Stelle gar nicht brauch. Daher die Frage.

Gruß
Chris

12. März 2008 16:00

Hab folgenden Lösungsansatz : Ich erstelle mir eine Bool Variable und fange die am Anfang der FillMatrix Funktion ab. Wenn diese TRUE ist wird die Funktion ausgeführt bzw. durchlaufen. Wenn FALSE, dann nicht. Nur jetzt muss ich die Variable nachdem die Form gestartet wurde und nachdem die TextBox einmal komplett gefüllt wurde auf FALSE setzen. Wo stelle ich das am besten an ? Hab keinen passenden Trigger dazu gefunden.

Edit : Hat sich auch erledigt. Muss das ganze anders angehen.