[Gelöst] FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 14:25

Hi,

ich habe eine Tabelle, in der die einzelnen Datensätze sich auf einen bestimmten Monat beziehen. Dafür gibt es das Feld "Monat", in dem jeweils der 1. des Monats als Datum eingetragen ist.
Nun will ich über ein FlowField zum Beispiel alle Rechnungen eines Debitoren in diesem Monat aufsummieren lassen.

Meine naive Herangehensweise war ein OnValidate-Trigger auf das Datumsfeld, der einen FlowFilter auf den entsprechenden Zeitraum setzt. Dass das und warum das nicht funktioniert ist mir ziemlich schnell klar geworden.

Den "manuellen" Weg über einen FlowFilter will ich nach Möglichkeit vermeiden. In einer Form würde ich einfach einen Trigger bauen, der beim Record-Wechsel den Flowfilter aktualisiert. Ich suche aber eigentlich nach einer Lösung, die schon auf Tabellen-Ebene funktioniert.

Kann mir da jemand weiterhelfen?

Viele Grüße,

Olli
Zuletzt geändert von FreelanceOlli am 4. Juni 2009 16:29, insgesamt 1-mal geändert.

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:04

Du meinst ein Feld, in dessen Properties du als Calcformula angeben kannst: Summe von Feld x aus Tabelle y von Datumsfeld bis Monatsende(Datumsfeld)?

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:21

Genau, in der Art.

Vielleicht noch ein bisschen genauer:

Code:
Sum("Cust. Ledger Entry"."Sales (LCY)" WHERE (
  Global Dimension 2 Code=FIELD(Kostenstelle),
  Document Type=CONST(Invoice),
  Posting Date=FILTER(Datum..CALCDATE('<CM>',Datum))
))


Wobei das FILTER(Datum..CALCDATE('<CM>',Datum)) die gewünschte Funktionalität darstellt, was aber natürlich so nicht funktioniert.

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:27

Stimmt. Ich würde es als Funktion in die Tabelle setzen. Die lässt sich fast genau wie ein Feld gebrauchen, nur drauf filtern geht nicht.

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:37

In den FlowFields kann nur auf feste Werte oder Werten aus FlowFiltern gefiltert werden.
Aus diesem Grund gibt es in sehr vielen Tabellen ein Feld namens "Date Filter".
Dieses Feld wird erst zur Laufzeit mit den aktuellen Werten gefüllt.
Schau dir einfach mal in der Form 42 den Trigger OnOpenForm an, dort siehst du, wie es funktioniert.

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:41

@McClane:

Mir ist leider nicht klargeworden, wie du das meintest. Was genau würdest du als Funktion in die Tabelle setzen?

@Timo:

OK, das habe ich befürchtet... Wie im Ursprungspost geschrieben, war mir diese Lösung zwar klar, aber ich wollte diesen Weg eigentlich vermeiden...

Schade, aber trotzdem danke :-)

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:53

Ich meinte: das, was du gerne über eine Calcformula berechnen willst, berechnest du in einer Funktion der Tabelle, und das Ergebnis wird der Rückgabewert. Das kannst du dann überall als DeineTabelle.DeineFunktion verwenden.

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 15:56

Ach so, ok. Das ist klar, ist aber leider nicht das was ich brauche, weil's mir grad um die Drill-Down-Funktion ging.

Da ist der Weg, den FlowFilter über einen Formular-Trigger zu setzen, einfacher.

Danke dir!

PS: Schreib ich jetzt eigentlich auch "gelöst" vor das Thema, wenn es zwar beendet aber eigentlich nicht befriedigend gelöst ist?

Re: FlowField auf "aktuellen Monat" eingrenzen

4. Juni 2009 16:26

FreelanceOlli hat geschrieben:PS: Schreib ich jetzt eigentlich auch "gelöst" vor das Thema, wenn es zwar beendet aber eigentlich nicht befriedigend gelöst ist?

Wenn mit den hier genannten Lösungsvorschlägen dein Anliegen umgesetzt werden kann: Ja bitte.
(Auch, wenn es nicht so komfortabel möglich ist, wie du es dir gerne gewünscht hättest.)