Re: Feld dynamisch füllen

31. August 2011 11:47

Was ist den die Sourcetable der Form?

Bücher - puuh, ich meinte jetzt konkret die Schulungsunterlagen von Microsoft.
Aber hier hätte ich einmal zwei Links:

viewtopic.php?f=17&t=1284
viewtopic.php?f=59&t=11515

Re: Feld dynamisch füllen

31. August 2011 12:10

Der Sourcetable ist Item Journal Line.
Was ich jetzt noch versucht hatte war setselectionfilter, allerdings wird das schon irgendwo in der Form benutzt, weswegen ich eine Fehlermeldung bekomme.


Danke, dann werd ich auch nochmal einen Blick auf die links werfen.

Re: Feld dynamisch füllen

31. August 2011 13:13

In dem Fall kannst du dir eine Record-Variable Item machen.
Und im OnAfterGetCurrRecord-Trigger mit Item.GET arbeiten.
Dann nur noch eine neue Textbox einfügen und als SourceExpr Item."description 2" auswählen.
Damit hast du bei jedem Aufruf der Form immer den aktuellen Wert aus der Artikel-Tabelle (ich vermute mal, dass das mit dynamisch gemeint war).

Re: Feld dynamisch füllen

31. August 2011 13:21

Navision gibt mir dann leider die Fehlermeldung Artikel Nr." existiert nicht aus.

Re: Feld dynamisch füllen

31. August 2011 13:44

Sky hat geschrieben:Navision gibt mir dann leider die Fehlermeldung Artikel Nr." existiert nicht aus.

Dann rufst du GET vermutlich ohne Paramter auf.
Schau hierzu noch einmal in Natalie's Link.

Oder in der Zeile ist noch keine Artikelnummer vorhanden.
Das kannst du ja mit
Code:
IF "Item No." <> ''
abfangen.

Re: Feld dynamisch füllen

2. September 2011 08:51

Guten Morgen.

Wenn ich versuche´, get mit parametern aufzurufen bekomme ich die fehlermeldung:

Es wurden zu viele Schlüsselfelder spezifiziert, daher kann Artikel nicht geoöffnet werden. Sie Anzahl der Primärschlüsselfelder ist 1.

Heißt doch eigentlich, dass schon irgendwo vorher eine Get methode benutzt wird...

Re: Feld dynamisch füllen

2. September 2011 08:57

Sky hat geschrieben:Heißt doch eigentlich, dass schon irgendwo vorher eine Get methode benutzt wird...

Nein. Ich vermute eher, dass du den GET mit mehr als einem Wert angibst. Zeig doch mal den Aufruf der Funktion.

Re: Feld dynamisch füllen

2. September 2011 09:09

Code:
ItemRec.GET(Item."No.",Item.Description,Item."Description 2");

Re: Feld dynamisch füllen

2. September 2011 09:11

Hallo,


du musst "Get" mit den primären Schlüsselwerten aufrufen. Schau mal in der Tabelle nach dem Pirmary Key. Je nachdem wie viele Felder dieser Schlüssel hat musst du dem entsprechend "Get" mit diesen Parametern aufrufen.


Gruß
Aydin

Re: Feld dynamisch füllen

2. September 2011 09:24

Dabei hatte ich mir mit der Beschreibung von GET so viel Mühe gegeben .... :-(

Re: Feld dynamisch füllen

2. September 2011 09:32

Ja das hast du Natalie, aber ich komme mit der ganzen Datenbeschaffung in Nav irgendwie nicht zurecht.

Ok, nächster Versuch:
Code:
 ItemRec.GET("No.");

Das ist eigentlich der Primary Key der Tabelle.
Allerdings bekomme ich dann wieder die Fehlermeldung:
ArtikelNBr." existiert nicht.

Re: Feld dynamisch füllen

2. September 2011 09:36

Sky hat geschrieben:Ok, nächster Versuch:

Dieser Aufruf ist von der Syntax her genau richtig.

Allerdings bekomme ich dann wieder die Fehlermeldung:
ArtikelNBr." existiert nicht.

Dein "No.", das du an GET übergibst, ist leer.
Das ist so, als hättest du in meinem Tellerwäscherbeispiel gesagt: Hole mir einen Teller in Form *PIEP* und Farbe *PIEP*.
Woher soll die Information stammen, um welche Artikelnummer es sich handelt?

Re: Feld dynamisch füllen

2. September 2011 09:46

Ergänzend zu Natalies Beitrag noch einmal etwas aus meinem Beitrag und ein weiterer Hinweis:

Du hast in deiner Form ja einen Datenstaz (Variable Rec) im Zugriff.
Dabei handelt es sich um die Item Journal Line.
In dieser gibt es das Feld "Item No.", das dem Primärschlüssel des Datensatzes de sArtikels entspricht.
Diese Feld sollte immer gefüllt sein, aber darauf wetten würde ich nicht, daher folgendes:
Code:
Clear(Itemvar); // Leert die Felder, falls es keinen Artikel gibt
If ItemVar.GET("Item No.") THEN; // Ruft den Artikel ab, falls es diesen gibt
// Alternativ:
If "Item No." <> '' THEN  BEGIN
  Item.GET("Item NO.");
END;


Bei der Alternative machst du immer einen GET wenn das FEld gefüllt ist.
Damit kommt ein Fehler hoch falls hier ein Artikel hinterlegt es den es nicht (mehr) gibt.
In der ersten Variante käme nie ein Fehler, das Feld Description2 wäre einfach nur leer, was aber auch der Fall ist wenn der Artikel um den es geht keine Description2 hat.

Re: Feld dynamisch füllen

2. September 2011 10:18

Vielen Dank euch allen, dass hat jetzt funktioniert.
Ich muss mir echt nochmal in ruhe ein paar Sachen zur Datensatzbeschaffung in Nav durchlesen ;)

Re: [gelöst]Feld dynamisch füllen

2. September 2011 11:24

Sky hat geschrieben:Ich muss mir echt nochmal in ruhe ein paar Sachen zur Datensatzbeschaffung in Nav durchlesen ;)

Und immer schön gucken im SourceCode wie es andere machen. Und irgendwann geht das locker von der Hand.