Cross-column-Filter und Anzeige in Page

4. Februar 2022 13:15

Hallo,
ich möchte die folgende Anforderung für die Page 46 (Sales Order Subform) umsetzen:
Per Page Action soll die Anzeige der Zeilen wie folgt setzbar sein:
- nur Zeilen anzeigen mit
- Restmenge>0
oder
- Menge=0
Auf diese Weise sollen alle komplett gelieferten Zeilen ausgeblendet werden (Restmenge=0) - nicht aber gerade erst erfasste Zeilen, in die noch keine Menge eingetragen wurde.

Im aktuellen Testfall habe ich 4 Zeilen
- 1 Zeile komplett geliefert (nicht anzeigen)
- 1 Zeile noch ohne Menge (anzeigen)
- 2 Zeilen mit Menge und Restmenge (anzeigen)
Also sollten nach der Filterung 3 Zeilen übrig bleiben.

Mein Code lautet wie folgt
Code:
MESSAGE('Anzahl-1 %1',COUNT);
FILTERGROUP(-1);
SETRANGE(Quantity,0);
SETFILTER("Outstanding Quantity",'>%1',0);
MESSAGE('Anzahl-2 %1',COUNT);
FILTERGROUP(0);
MESSAGE('Anzahl-3 %1',COUNT);

Ergebnis:
Anzahl-1 ist 4 - alle Zeilen.
Anzahl-2 ist 3 - ohne die komplett gelieferte Zeile.
Anzahl-3 ist 3 - ohne die komplett gelieferte Zeile.
Aber ... in der Page werden weiterhin 4 Zeilen angezeigt !?!?

Wo sitzt der Fehler ???

Re: Cross-column-Filter und Anzeige in Page

4. Februar 2022 15:52

raggy hat geschrieben:Wo sitzt der Fehler ???

darauf antworte ich nicht :D
aber dafür hier die Lösung(en) -> google: "dynamics filtergroup(-1) pages" :

https://stackoverflow.com/questions/67210468/why-is-filtergroup-1-in-navision-page-or-filtering-on-page-level-not-working

https://community.dynamics.com/business/b/navvanvugts/posts/filtergroup-1

Re: Cross-column-Filter und Anzeige in Page

4. Februar 2022 21:57

Ja ich weiss - Tante Google hilft oftmals :wink: Ich bitte um Nachsicht :oops:

So - das funktioniert für das Ein/Ausblenden vorhandener Zeilen.

Aber wenn die Option aktiv ist, dass alle Zeilen mit Restmenge=0 außer Zeilen mit Menge=0 ausgeblendet werden sollen, dann passieren ein paar Merkwürdigkeiten:
1. Füge ich eine neue Zeile hinzu, dann verschwindet die aus der Anzeige, wenn
- ich die Zeile nach Eingabe der Artikelnummer verlasse - mit einer Meldung, dass der Posten außerhalb des Filters ist
- ich eine Menge eingebe und dann ins nächste Feld springe
Schalte ich die Option ein mal ab und wieder an, wird die Zeile korrekt angezeigt.
2. Blättere ich auf den nächsten/vorherigen Auftrag, dann werden gar keine Zeilen angezeigt. Erst wenn ich einmal die o.g. Option ausschalte und wieder einschalte, ist die Anzeige korrekt.
Beim Weiterblättern in den nächsten Auftrag der gleiche Effekt.
Wenn ich aber dann zurückblättere in einen Auftrag, der schon korrekt angezeigt wurde, dann stimmt auch dort die Anzeige.
Ich vermute, dass das in beiden Fällen daran liegt, dass die Zeilen nicht markiert sind, aber MARKEDONLY(TRUE) auf die Sales Line gesetzt ist.

Evtl. muss ich nach Einfügen einer Zeile oder beim Blättern bei gesetzter o.g. Option immer wieder die Funktion aufrufen, damit immer ALLE Zeilen markiert sind.
Aber an welchen Stellen/Triggern müsste ich dann diesen Aufruf einbauen ?
Sorry - mit den Triggern komme ich immer noch nicht so ganz klar ... Schande über mich :oops: :roll: