[gelöst] Kompletten Filter übergeben?

12. März 2007 10:59

Hallo nochmal,

ich möchte den gesamten Filter (mit Getfilters ausgelesen) von einer Filtergroup an eine andere übergeben. Die Tabelle bleibt dieselbe.

So ungefähr:

Filtergroup(3);
MeineFilter := Getfilters;
Filtergroup(0);
(Setfilters = MeineFilter);

Setfilter funktioniert aber leider nur auf einem Feld. Gibt es eine möglichkeit dies auch allgemein für den gesamten Filterstring zu realisieren?

Danke.
Zuletzt geändert von Dune am 12. März 2007 12:22, insgesamt 1-mal geändert.

12. März 2007 11:09

Es gibt die Funktion COPYFILTERS (hoffentlich auch für Nav. 1.xx - 2.xx).

Evtl. wird es nötig sein, den Code nach dem Schema

Code:
Filtergroup(3);
locRec.COPYFILTERS(Rec);
Filtergroup(0);
COPYFILTERS(locRec)

umzustricken.

War aber nur eine von mehreren Möglichkeiten, zumindest nach heutigen Navision-Stand.

12. März 2007 11:49

Hallo Natalie,

theoretisch ´ne gute Idee, praktisch funktionierts leider noch nicht.

Mit CopyFilters werden die Filter aller Ebenen kopiert. D.H. der Filter aus Filtergroup(3) wird auch in Filtergroup(3) der zweiten Record-Variable kopiert.

Welche Möglichkeiten könnte ich noch versuchen?

12. März 2007 11:56

Um nur die Filter einer Filtergroup zu berücksichtigen, muss mit GETFILTERS gearbeitet werden.

Um diesen Filter wieder zu setzen, versuchs mal mit SETVIEW (Achtung, setzt auch Schlüssel).

12. März 2007 12:22

Ok, danke.

Hab´s jetzt anders gelöst:

Kopiere die Filter nicht, sondern setzte die Filter direkt und führe den nachfolgenden Reset abhängig von einer Boolean-Variabel aus, die ich im Aufruf der Form setzte.

So kann ich im OnOpen-Trigger meiner Form entscheiden ob der Benutzer alle Daten oder gefilterte zu sehen bekommt und er kann diesen Filter nachher aber auch noch ändern.

Hätte diesen zusätzlichen Variabelaufruf gern vermieden, aber eine elegante Lösung durch Kopieren der Filter in andere Ebenen sehe ich im Moment nicht.

Wenn jemand noch Tips und Tricks für mich hat, würd´ ich mich freuen.

Sag hier mal trotzdem erstmal [gelöst].

Danke.