FFA Nummer auf Kommissionierungsbeleg[gelöst]

1. September 2016 07:10

Guten Morgen,
ich habe mal wieder eine Frage.
Ich möchte gerne auf der Kommissionierliste die dazugehörige Fertigungsauftragsnummer haben. (Wenn der Herkunfsbeleg der Auftrag ist und wenn es eine FFA Nummer gibt). Dazu habe ich mir als erstes die lfd Nr (Job Structure Entry No.) vom Verkaufsauftrag gezogen. Jetzt scheiters aber daran wie ich mit dieser Nummer die FFA Nummer bekomme. Mein Ansatz dafür ist folgendener:

Code:
ProdOrderLine.RESET;
ProdOrderLine.SETCURRENTKEY(Status,"Prod. Order No.","Line No.");
ProdOrderLine.SETRANGE(Status,ProdOrderLine.Status::Released);
ProdOrderLine.SETRANGE("Prod. Order No.",ProdOrderLine."Prod. Order No.");
ProdOrderLine.SETRANGE("Line No.",ProdOrderLine."Line No.");
ProdOrderLine.SETFILTER("Job Structure Entry No.",'= %1',SalesLine."Job Structure Entry No.");


Dabei sind ProdOrderLine bzw SalesLine von mir angelegte Tabellen.
Woran könnte es denn liegen, dass ich nichts angezeigt bekomme?

Danke schonmal für die Hilfe

Grüße
Zuletzt geändert von ITNoob am 2. September 2016 11:43, insgesamt 1-mal geändert.

Re: FFA Nummer auf Kommissionierungsbeleg

1. September 2016 12:17

Beide Male das gleiche Feld mit gleicher Instanz ProdOrderLine ist sinnfrei. Was soll wo von wo ausgehend gefiltert werden?
Code:
ProdOrderLine.SETRANGE("Prod. Order No.",ProdOrderLine."Prod. Order No.");
ProdOrderLine.SETRANGE("Line No.",ProdOrderLine."Line No.");


Code:
ProdOrderLine.SETFILTER("Job Structure Entry No.",'= %1',SalesLine."Job Structure Entry No.");

Hier '= %1' entweder ersetzen durch '%1', oder besser ist es, wenn nur ein Filterwert (bzw. durchgängiger Filterbereich) vorhanden ist, mit SETRANGE zu arbeiten.
Code:
ProdOrderLine.SETRANGE("Job Structure Entry No.",SalesLine."Job Structure Entry No.");

Re: FFA Nummer auf Kommissionierungsbeleg

2. September 2016 07:27

Hallo Kai,
danke für die Antwort.
Ich habe jetzt auch noch eine bisschen rumprobiert und folgendes hat funktioniert.
Code:
ProdOrderLine.SETRANGE("Job Structure Entry No.",SalesLine."Job Structure Entry No.");


Aber mir ist nicht ganz klar warum das den gewünschten Wert liefert.

Grüße

Re: FFA Nummer auf Kommissionierungsbeleg

2. September 2016 09:31

Auseinandergenommen bedeutet die Zeile dieses:
SalesLine."Job Structure Entry No." :greenarrow: Ein Datensatz in Tabelle SalesLine mit einem Feldwert z.B. '123' im Feld "Job Structure Entry No.".

ProdOrderLine.SETRANGE("Job Structure Entry No."
:greenarrow: Es werden in ProdOrderLine alle Datensätze gefiltert, wo die dortigen Feldwerte im Feld "Job Structure Entry No." dem Wert '123' entsprechen.
Danach folgt für ProdOrderLine meist ein IF … FINDSET, … FINDFIRST oder … FINDLAST, je nachdem, was man mit dem Dataset machen möchte.

SETRANGE kann aber auch Bereiche 'von-bis' abbilden: SETRANGE Function.

Filter lösen: Feldfilter entfernen geht nur über SETRANGE (nicht über SETFILTER), dann ohne Parameter.
ProdOrderLine.SETRANGE("Job Structure Entry No."); :greenarrow: Löst den Filter auf diesem Feld.

Re: FFA Nummer auf Kommissionierungsbeleg

2. September 2016 11:42

Hallo Kai,
danke für die Ausführliche Antwort.

Grüße