In Form nach globaler Variable sortieren

6. Dezember 2011 14:48

Hallo zusammen,

ich habe eine Frage an Euch. Ich habe mir in eine Form 3 globale Variablen eingefügt die ich aus anderen Tabellen fülle.
Nun habe ich festgestellt das ich nach den Werten in diesen Felder nicht filtern kann.

Könnt Ihr mir vielleicht sagen an was das liegen könnte bzw. was ich anders machen muss damit ich danach filtern kann?

Vielen Dank

Viele Grüße

Flip

Re: In Form nach globaler Variable sortieren

6. Dezember 2011 15:16

Heißt das, du hast eine Listen-Form und dort drei Spalten hinzugefügt, die aber auf globale Variablen statt auf Tabellenfelder verweisen?
Dann ist es richtig, dass in diesen Spalten nicht gefiltert werden kann.

Wenn die Filterung unbedingt notwendig ist, dann erstelle drei neue Tabellenfelder (!), die du zur Form-Laufzeit (oder zu einem günstigeren Zeitpunkt) befüllst.

Re: In Form nach globaler Variable sortieren

6. Dezember 2011 15:32

Hi Flip,

da dein Betreff von deinem Text abweicht (sortieren <-> filtern), möchte ich Natalies Antwort noch etwas ergänzen:
Microsoft Dynamics NAV kann weder auf Werte in globalen Variablen filtern, noch kann nach solchen Werten sortiert werden.

Wie Natalie schon schrieb, müssen die (zu filternden/sortierenden) Werte in einem Tabellenfeld stehen.

Variante 1
Dies könnte z. B. im OnOpenForm geschehen, jedoch kann dies - je nach Datenmenge und Berechnungskomplexität - einige Zeit dauern, bis sich dann die Form öffnet.
Bei dieser Variante sollte dann unbedingt mit einer Fortschrittsanzeige gearbeitet werden, da der klassische Anwender sonst glauben könnte, dass das Programm abgestürzt sein könnte.

Variante 2
Wenn sich die Form schnellstmöglich öffnen soll, dann empfiehlt es sich, eine kleine Codeunit zu schreiben, welche in regelmäßigen Abständen die Felder für alle Datensätze neu berechnet.
Diese Codeunit könnte man dann in der Projektwarteschlange ("Job Queue") einbinden und per NAS regelmäßig starten.

Variante 3
Am elegantesten wäre, dass die Felder in den betroffenen Datensätzen an den Stellen in der Anwendung aktualisiert werden, wo auch die "Rahmenbedingungen" sich ändern.
(Z. B. beim Buchen eines Beleges / Buch.-Blatts, bzw. beim Anlegen/Ändern/Löschen bestimmter Datensätze in anderen Tabellen, welche die "Rahmenbedingungen" für die betroffenen Felder darstellen.)