[Gelöst] SETFILTER auf ein Flowfield

8. März 2016 17:05

Hallo Community,

habt ihr schon mal folgendes probiert?
Wäre sowas möglich? Möchte nämlich, dass er nur die Zeilen einer Tabelle durchgeht, bei denen etwas im FlowField "Menge" drin steht.

Code:
recTabelle.RESET;
recTabelle.setfilter("CodeFeld", '=%1', '');
recTabelle.calcfields("FFMenge");
recTabelle.setfilter("FFMenge", '<>%1', 0);
IF recTabelle.findset then begin
 // mach irgendwas
END;
Zuletzt geändert von MSNAVLerner am 9. März 2016 08:28, insgesamt 1-mal geändert.

Re: SETRANGE auf ein Flowfield

8. März 2016 17:10

Hallo,

So ist des etwas einfacher.
Code:
    recTabelle.RESET;
    recTabelle.setfilter("CodeFeld", '=%1', '');
    recTabelle.setfilter("FFMenge", '<>%1', 0);
    IF recTabelle.findset then begin
     // mach irgendwas
    END;


Das funktioniert, kann aber langsam werden, besonders mit einer native-DB. :-?

Gruß Fiddi

Re: SETRANGE auf ein Flowfield

8. März 2016 17:22

Da das Feld "Menge" ein FlowField ist, wird es ohne CALCFIELDS doch immer leer sein, oder?
CALCFIELDS kam bei mir bislang nur zum Einsatz, wenn ich ein einzelnes updaten möchte.

Geht es überhaupt, dass er über eine komplette Tabelle in jeder Zeile ein CALCFIELD machen kann?

Re: SETRANGE auf ein Flowfield

8. März 2016 17:29

Da das Feld "Menge" ein FlowField ist, wird es ohne CALCFIELDS doch immer leer sein, oder?


Nicht, wenn du einen Filter darauf setzt.

Gruß Fiddi

Re: SETRANGE auf ein Flowfield

8. März 2016 17:34

fiddi hat geschrieben:Nicht, wenn du einen Filter darauf setzt.


Jetzt bin ich überrascht. Ich hätte erwartet, dass FlowFields immer nur durch CALCFIELDS einen Wert temporär beinhalten.
Dass dies bei Filter nicht notwendig ist, ist mir ein Rätsel.

Re: SETRANGE auf ein Flowfield

8. März 2016 22:09

Dass beim Filtern kein Calcfields nötig ist war mir auch neu. Funktioniert aber, habe das spaßeshalber gerade mal ien einer Codeunit getestet.
Ich hatte nur gewusst dass wenn das FlowField als Feld (Control) in einer Form oder einem Report enthalten ist dann ist Calcfields nicht nötig.

Wieder was gelernt!

Der Thread sollte besser "SETFILTER auf ein FlowField" heißen statt "SETRANGE...".