Auf alles Filtern?

24. Januar 2008 14:41

Hab leider nichts passendes gefunden. Vielleicht kann mir ja einer helfen oder mich mit der Nase auf einen vorhandenen Thread stoßen den ich vielleicht übersehen habe.

Und zwar hab ich einen Report. In dem können Filter gesetzt werden. Mit GETFILTER hole ich mir einen davon in eine globale Variable weil ich den Filter noch weiter verwende. Nun möchte ich aber wenn in der Requestform nichts eingegeben wird das er dann alle Datensätze aus der Tabelle nimmt. Kann mir da einer helfen?

24. Januar 2008 14:47

Hast Du etwas in der Form setfilter(Field,Record.GETFILTER(Field)) eingegeben?

Re: Auf alles Filtern?

24. Januar 2008 15:01

Heike Bennerscheid hat geschrieben:Und zwar hab ich einen Report. In dem können Filter gesetzt werden. Mit GETFILTER hole ich mir einen davon in eine globale Variable weil ich den Filter noch weiter verwende. Nun möchte ich aber wenn in der Requestform nichts eingegeben wird das er dann alle Datensätze aus der Tabelle nimmt. Kann mir da einer helfen?


Ich verstehe das Problem nicht ... Wenn dein Filter doch leer ist, dann ist deine globale Variable doch auch leer...?

24. Januar 2008 15:22

Ich verstehe das Problem nicht ... Wenn dein Filter doch leer ist, dann ist deine globale Variable doch auch leer...?


Unter bestimmten Bedingungen ist bei einem GETFILTER und einem anschließenden SETFILTER ein doppeltes Hochkomma in der Variable.

24. Januar 2008 16:26

Ich habe

VFilter := GETFILTER("V Nr.");

Und im späteren Code dann zum Beispiel

Verkaufsrechnungskopf.SETRANGE("V Nr.",VFilter);

24. Januar 2008 16:29

if Vfilter <> '' then
Verkaufsrechnungskopf.SETRANGE("V Nr.",VFilter)
else
Verkaufsrechnungskopf.SETRANGE("V Nr.");

24. Januar 2008 16:42

Verkaufsrechnungskopf.SETRANGE("V Nr.",VFilter);


In diesem SETFILTER werden doppelt Apostrophe Dein Problem sein, deswegen bitte so so lösen wie tba es vorgeschlagen hat.

24. Januar 2008 16:50

Ah ok. Danke. Werd ich Heute Abend mal probieren.

24. Januar 2008 17:31

Im Standard(?) habe ich gesehen, dass statt
Code:
Verkaufsrechnungskopf.SETRANGE("V Nr.",VFilter);

ein
Code:
Verkaufsrechnungskopf.SETFILTER("V Nr.",VFilter);

verwendet wird.

Effekt: Ein SETFILTER("Feld", '') setzt KEINEN Filter (wie gewünscht), sondern löst ihn.
Habs jetzt aber nicht durch einen Selbstversuch verifiziert ;-)

24. Januar 2008 20:01

Verkaufsrechnungskopf.SETRANGE("V Nr.",VFilter);


Das Feld "V Nr." und VFilter sind beide vom selben Datentyp, somit ist auch ausnahmsweise der Filterausdruck in VFilter zuweisungskompatibel zu "V Nr.".