Seite 1 von 1

[Gelöst] CC: Table Filter

Verfasst: 21. April 2015 16:36
von NIQ
Hallo zusammen,

ich habe folgenden Tabellen Filter (Auszug):

Table_Filter.JPG


Beim Typ "FIELD" würde ich für meinen Programmcode folgendes nutzen:

Code:
MeinenRecord.SETRANGE("No.",Item."No.");


Aber wie mache ich das bei dem Type "FILTER", mit SET-/GETFILTER?

Re: CC: Table Filter

Verfasst: 21. April 2015 17:35
von Kowa
Wenn die Optionsfelder einen zusammenhängenden Bereich bilden, kann man auch da noch mit SETRANGE arbeiten.
z.B. bei der Tabelle Production Order
Code:
ProdOrder.SETRANGE(Status,ProdOrder.Status::Planned,ProdOrder.Status::Released);

Bei nicht-zusammenhängenden Optionsbereichen kann man Filtertexte für Optionsfelder mittels FORMAT(Optionsfeldwert) für die Platzhalter erzeugen.
Code:
ProdOrder.SETFILTER(Status,'%1..%2',FORMAT(ProdOrder.Status::Planned),FORMAT(ProdOrder.Status::Released));

In beiden Fällen wäre Firm Planned hier mit dabei (Optionswerte: Simulated,Planned,Firm Planned,Released,Finished).
Mit SETFILTER ist man dann flexibler, wenn z.B. Firm Planned nicht mit dabei sein soll:
Code:
ProdOrder.SETFILTER(Status,'%1|%2',FORMAT(ProdOrder.Status::Planned),FORMAT(ProdOrder.Status::Released));


SETFILTER Function

Re: CC: Table Filter

Verfasst: 21. April 2015 17:41
von Kozure

Re: CC: Table Filter

Verfasst: 21. April 2015 20:22
von NIQ
Vielen Dank schon mal für eure Infos!

Es geht um das Feld "Qty. on Component Lines" aus der Item-Tabelle.

Dies beinhaltet die CalcFormula, mit dem erwähnten FILTER:

Code:
Sum("Prod. Order Component"."Remaining Qty. (Base)" WHERE (Status=FILTER(Planned..Released),Item No.=FIELD(No.),Shortcut Dimension 1 Code=FIELD(Global Dimension 1 Filter),Shortcut Dimension 2 Code=FIELD(Global Dimension 2 Filter),Location Code=FIELD(Location Filter),Variant Code=FIELD(Variant Filter),Due Date=FIELD(Date Filter)))