[Gelöst] CC: Table Filter

21. April 2015 16:36

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?
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Zuletzt geändert von NIQ am 22. April 2015 13:18, insgesamt 1-mal geändert.

Re: CC: Table Filter

21. April 2015 17:35

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

21. April 2015 17:41

Info zum Option Datentyp:

https://msdn.microsoft.com/en-us/library/dd355166.aspx

Re: CC: Table Filter

21. April 2015 20:22

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)))