[gelöst]Flowfield mit Datumsfilter

15. April 2009 15:01

Hallo,

ich habe ein kleines Problem mit meinem Flowfield.
Ich möchte, das die Werte des Flowfields immer, die des aktuellen Jahres sind.
Ich habe in diesem Thread (viewtopic.php?f=8&t=4345&p=18777&hilit=Filter+Flowfield#p18777) bereits gelesen, das ich es über ein Flowfilter machen müßte. Mir ist dabei nur nicht klar, wie das funktionieren soll.

Für ein paar Tipps wäre ich dankbar.

vg
rom
Zuletzt geändert von rom am 17. April 2009 10:59, insgesamt 1-mal geändert.

Re: Flowfield mit Datumsfilter

15. April 2009 16:45

Muss es denn unbedingt ein Feld sein? Sonst kannst du eine Funktion in der Tabelle definieren, die die Werte für das aktuelle Jahr berechnet. Lässt sich dann eigentlich genauso ansprechen wie ein Feld ...

Re: Flowfield mit Datumsfilter

15. April 2009 17:21

Hallo rom,

versuch es doch mal mit

Code:
setfilter(datumsfilter,'%1',calcdate('<CY>',today));
CALCFIELDS(Deinfeld);


Ich hoffe nur, dass Dein Feld richtig definiert ist.

Gruß Tom :-)

Re: Flowfield mit Datumsfilter

16. April 2009 08:27

TomTom64 hat geschrieben:
Code:
setfilter(datumsfilter,'%1',calcdate('<CY>',today));
CALCFIELDS(Deinfeld);


Ich hoffe nur, dass Dein Feld richtig definiert ist.


Hallo Tom,

mein Flowfield gibt schon die richtigen Werte aus. Momentan gibt es ja nur für diese Jahr Datensätze.
Definiere ich den Filter im Form oder auf Tabellenebene?

VG

Re: Flowfield mit Datumsfilter

16. April 2009 12:59

Normalerweise in der Form im Trigger OnOpenForm

Code:
setfilter(datumsfilter,'%1',calcdate('<CY>',today));


im Trigger OnAfterGetRecord
Code:
CALCFIELDS(Deinfeld);


So sollte es normalerweise funktionieren! :-)

Gruß Tom

Re: Flowfield mit Datumsfilter

16. April 2009 13:26

Hallo,

danke für die Antwort. Aber das funktioniert leider nicht, da ich die Daten für das Flowfield aus einer anderen Tabelle hole. In der Tabelle, in der ich das Flowfield implementiert habe, habe ich keine Datumsfelder!
Kann man das Problem auch anders lösen?


Lg

Re: Flowfield mit Datumsfilter

16. April 2009 13:35

Hallo rom,

schaue dir doch mal in der Tablle 18 Customer das Feld 60 "Net Change" an wie dort die Verwendung der Datumsfelder erfolgt.
In der Tabelle 18 gibt es auch keine Datumsfelder aber ein Flowfilter-field "Date Filter" das in der Kalkulationsformel
auf das "Posing Date" der "Detailed Cust. Ledg. Entry"-Tabelle angewendet wird.

Re: Flowfield mit Datumsfilter

16. April 2009 13:36

rom hat geschrieben:Kann man das Problem auch anders lösen?

Möchtest du einen berecheten Wert mit einem variablen Datums-Anteil, so bleiben dir zwei Möglichkeiten:

  • Du erstellst ein FlowField und in derselben Tabelle ein neues FlowFilter-Feld namens "Date Filter" (siehe z.B. Tabelle 27 FlowField Inventory und FlowFilter "Date Filter").
    In der CalcFormula des FlowFields wird das FlowFilter-Feld berücksichtigt (siehe CalcFormula von Feld Inventory).
    Dann funktionieren die Quelltextausschnitte, die dir bereits genannt worden sind.
    Abstrakter:
    Code:
    TabelleXY.SETFILTER(FlowFilter-Feld, deinFilterString);
    TabelleXY.CALCFIELDS(FlowField);

  • Du verzichtest auf ein FlowField und führst die Berechnung komplett per Quelltext durch, hältst das Ergebnis also in keiner Tabelle (direkt) vor.

Re: Flowfield mit Datumsfilter

16. April 2009 14:35

Hallo,

irgendwie funzt es bei mir nicht. Oder ich habe euch falsch verstanden.
So, jetzt noch mal für mich zum mitschreiben.


Ich habe ein Form X, in dem ein Flowfield angezeigt werden soll. Dieses Flowfield wird in der Tabelle X angelegt und referenziert auf Werte aus der Tabelle Y. Um nun auf dieses Flowfield ein Datumsfilter zu legen, muss ich ein Flowfilter -Feld in der Tabelle X erzeugen. Dieser FlowFilter wird dann als Filter in den Calculation Formular des Flowfields hinter legt.
Zum Beispiel:

Code:
Method: Sum
Table: Tabelle Y
Field: Quantity
TableFilter:  Field      Type      Value
                  A        Filter     P
                  B        Field      No.
             Posting Date  Field      DateFilter



Die setFilter-Funktion füge in dem OnOpenForm-Trigger des Form X hinzu. Die calcField(FlowField) im OnAfterGetRecord-Trigger.
Wenn ich das so mache, bekomme ich bereits im onOpenForm-Trigger bei foldendem Code :
Code:
 
   tabelle Y.setfilter(DateFilter,'%1',calcdate('<CY>',today));

beim Kompilieren bekomme ich die Meldung, dass eine Datensatzvariable erwartet wurde!
Ist meine Vorgehen so richtig, oder bin total auf dem Holzweg!

LG

Re: Flowfield mit Datumsfilter

16. April 2009 14:40

Dein Vorgehen ist im Prinzip richtig, nur verstehe ich nicht, warum du
Code:
tabelle Y.setfilter(DateFilter..
ausführst, wenn du doch das Feld "DateFilter" in der Tabelle X angelegt hast?
Vermutlich funktioniert alles wenn du "tabelle Y." weglässt?

Re: Flowfield mit Datumsfilter

16. April 2009 14:47

jm hat geschrieben:Vermutlich funktioniert alles wenn du "tabelle Y." weglässt?


Genau das wollte ich auch schreiben.

Um zu schauen, ob deine CalcFormula überhaupt funktioniert, mach doch einfach folgendes:
Kommentiere den neuen Quelltext komplett aus. Öffne die Form und betrachte den Wert des neuen FlowFields.
Gehe in die FlowFilter (Shift+F7) und trage in "Date Filter" bzw. "Datumsfilter" etwas entsprechendes ein.
Nun sollte der Wert in deinem FlowField reduziert werden.

mit SETFILTER(...) im Quelltext ahmst du nämlich nur nach, was du eben als Benutzer eingegeben hast.

Re: Flowfield mit Datumsfilter

17. April 2009 10:59

Danke, nun funktioniert es. :-D :-D :-D :-D


Schönes WE