Flowfield basierend auf zwei Tabellen

28. November 2023 09:41

Hallo Forum,

Ich möchte eine neue Kachel/Cue im Rollencenter einfügen. Gibt es eine Möglichkeit, für das zugehörige Flowfield zwei Tabellen als Filter zu nutzen?
Beispiel zur Veranschaulichung: Es sollen alle Verkaufsaufträge angezeigt werden, die im Sales Header Feld X = Ja haben und in den zugehörigen Sales Lines in Zeilennummer 10000 das Feld Y = nein haben.

Danke und viele Grüße

Re: Flowfield basierend auf zwei Tabellen

28. November 2023 10:59

Moin!

Über ein einfaches FlowField ist das leider nicht abbildbar.
Du müsstest dir eine Funktion schreiben, welche die Anzahl Verkaufsaufträge ermittelt und eine, welche beim Klick auf die Kachel die in Frage kommenden Verkaufsaufträge anzeigt.

Re: Flowfield basierend auf zwei Tabellen

28. November 2023 11:00

Also entweder du erstellst eine berechnete Kachel, welche beim Öffnen der Page die Daten ermittelt und in eine Variable schreibt.Oder du erstellt am SalesHeader ein Flowfield, welches die SalesLine auswertet. Das hab ich in der Vergangenheit schon so umgesetzt.

Re: Flowfield basierend auf zwei Tabellen

28. November 2023 12:22

m_schneider hat geschrieben:Oder du erstellt am SalesHeader ein Flowfield, welches die SalesLine auswertet.

Dann kann das FlowField für die Kachel aber immer noch nicht die Anzahl Aufträge zählen, da FlowFields nicht auf FlowFields basieren dürfen.
Es bleibt somit nichts anderes übrig, als eine Funktion zu bauen, welche die in Frage kommenden Aufträge in eine temporäre Recordvariable überträgt und bei einem Klick auf die Kachel die Page für die Verkaufsauftragsübersicht mit dieser temporären Recordvariablen aufruft.
Nachteil: Die Aufträge können dann daraus nicht bearbeitet werden, da es sich um temporäre Datensätze handelt.

Wenn diese Funktion hingegen die in Frage kommenden Datensätze mit einer Satzmarke (SalesHeader.MARK := TRUE) versieht, dann kann die Kachel die satzmarkierten Datensätze in der Verkaufsauftragsübersicht anzeigen (SalesHeader.MARKEDONLY := TRUE).
Diese können dann auch ganz normal bearbeitet werden.

Ja, ich weiß, MARK und MARKEDONLY sind obsolete Funktionen, aber sie funktionieren (in NAV 2017) noch einwandfrei.

Will man nicht mit den obsoleten Funktionen arbeiten, dann muss man sowohl auf das von dir genannte FlowField im SalesHeader UND auf die Funktion zur Ermittlung der Anzahl Datensätze zurückgreifen.
Die Funktion filtert auf das neue FlowField im SalesHeader und führt einen COUNT aus, dessen Wert sie zurückgibt.
Beim Klick auf die Kachel wird wieder auf das neue FlowField gefiltert und die Verkaufsauftragsübersicht mit der gefilterten Recordvariablen aufgerufen.

Re: Flowfield basierend auf zwei Tabellen

28. November 2023 16:53

Timo Lässer hat geschrieben:
m_schneider hat geschrieben:Oder du erstellt am SalesHeader ein Flowfield, welches die SalesLine auswertet.

Dann kann das FlowField für die Kachel aber immer noch nicht die Anzahl Aufträge zählen, da FlowFields nicht auf FlowFields basieren dürfen...

Bist du dir da sicher?

Re: Flowfield basierend auf zwei Tabellen

28. November 2023 17:14

m_schneider hat geschrieben:Bist du dir da sicher?

Da bin ich mir ganz sicher.
Es gibt nur eine Ausnahme: Wenn auf derselben Page zwei FlowFields eingeblendet sind, dann kann das zweite FlowField auf die Daten des ersten FlowFields zugreifen.
Die Frage ist nur: In welcher Reihenfolge werden die Werte der anzuzeigenden FlowFields berechnet? Welches ist das erste FlowField und welches das zweite? Hängt es von der Field No. ab? Oder vom Field Name? Oder von der Position im DataSet des Page Designers? Ändert es sich eventuell in einer zukünftigen Runtime Version?