[Gelöst] Shelf No. aus Stockkeeping Unit auf Report 752

15. Juli 2010 20:08

Hallo zusammen,

als NAV C/AL Anfänger habe ich es geschafft erfolgreich die Regalnummer eines Artikels auf dem Arbeitsschein ausgeben zu lassen. Zwei Felder in sales line (37) und dem Report (752) names Shelf No. hinzugefügt und beim "No. On Validate" im sales line code lasse ich dann die Variable "Shelf No." füllen, die dann im Report ausgegeben wird:

"Shelf No." := item."Shelf No.";

Soweit so gut. Nun würde ich gerne einen Schritt weiter gehen und nicht die Shelf No. aus der Artikelkarte nehmen, sondern falls vorhanden entweder statt dessen oder von mir aus auch zusätzlich die "Shelf No" aus den Lagerhaltungsdaten (Stockkeeping Unit 5700) angeben. Es müsste noch eine Abfrage hinein, dass wenn keine Lagerhaltungsdaten vorhanden sind, wie geht die item."Shelf No." genommen wird.

Über Anregungen würde ich mich sehr freuen.

Vielen lieben Dank

Philipp
Zuletzt geändert von flip69 am 15. Juli 2010 22:14, insgesamt 1-mal geändert.

Re: Shelf No. aus Stockkeeping Unit auf Report 752

15. Juli 2010 21:18

flip69 hat geschrieben:Es müsste noch eine Abfrage hinein, dass wenn keine Lagerhaltungsdaten vorhanden sind, wie geht die item."Shelf No." genommen wird.

Wie lautet denn nun deine Frage? :-) Wie weit kommst du von allein? Die Tabelle weißt du doch schon.

Über Anregungen würde ich mich sehr freuen.

Zählt das hier als Anregung?
Records: GET SETFILTER FIND etc.

Re: Shelf No. aus Stockkeeping Unit auf Report 752

15. Juli 2010 21:55

Perfekter Beitrag, das hat mich schon weiter gebracht.

Record Variable StockkeepingUnit auf "Stockkeeping Unit" gesetzt und folgenden Code eingefügt...

StockkeepingUnit.GET("Location Code","No.","Variant Code");
"Shelf No." := StockkeepingUnit."Shelf No.";

Das Ganze dann auch noch bei On Validate beim Location Code eingesetzt und schon passt es auch, wenn man den Lagerort ändert.

Wie könnte ich denn nun noch die Abfrage einbauen, ob Lagerhaltungsdaten überhaupt existieren?

lg

Philipp

Re: Shelf No. aus Stockkeeping Unit auf Report 752

15. Juli 2010 22:04

flip69 hat geschrieben:Wie könnte ich denn nun noch die Abfrage einbauen, ob Lagerhaltungsdaten überhaupt existieren?

Deine jetzige Lösung ist schon der richtige Ansatz. Jedoch läufst du auf einen Laufzeitfehler, falls über GET nichts gefunden wird. Deswegen musst du hier mit IF arbeiten.
Wenn GET erfolgreich,
dann Regalnr. von Lagerhaltung,
sonst Regalnr. von Artikelkarte holen.
Schau dir noch mal das Codebeispiel in meinem verlinkten Beitrag an und ersetze gedanklich FIND (das du ja hier richtigerweise durch GET ersetzt hast) durch dein GET.

Übrigens, veröffentliche deine Codestücke hier so:
[code]Dein Quelltext[/code]. Dann sind sie für uns lesbarer.

Re: Shelf No. aus Stockkeeping Unit auf Report 752

15. Juli 2010 22:14

Super vielen Dank! So läuft es jetzt einwandfrei (denke ich)...so einfach kann C/AL sein...

Code:

IF StockkeepingUnit.GET("Location Code","No.","Variant Code") THEN
         "Shelf No." := StockkeepingUnit."Shelf No."
ELSE  "Shelf No." := Item."Shelf No.";

Re: [Gelöst] Shelf No. aus Stockkeeping Unit auf Report 752

16. Juli 2010 08:26

Ah, supi :-)

Tipp für die Formatierung des Quelltextes ( = Standard):

Code:
IF StockkeepingUnit.GET("Location Code","No.","Variant Code") THEN
  "Shelf No." := StockkeepingUnit."Shelf No."
ELSE
  "Shelf No." := Item."Shelf No.";


Findet denn vor diesem Quelltext schon ein Item.GET statt? Sonst ist Shelf No. im ELSE-Fall am Ende leer ;-)
Wenn du das noch einbauen musst, arbeite mit ELSE BEGIN ... END;

Re: [Gelöst] Shelf No. aus Stockkeeping Unit auf Report 752

16. Juli 2010 12:10

Formatierung angepasst!

Jawohl, es läuft vorher die GetItem Funktion vom Standard durch, also alles ok.

lg

Phil