[Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 10:31

Hallo zusammen!

Ich habe gerade ein kleines Problem bei der Übersetzung eines kleinen Reports. Der Report gibt aus der Tabelle "Item Ledger Entry" die für einen Auftrag verbuchten Seriennummern aus. Dieser soll jetzt übersetzt werden. Soweit noch kein Problem - der Report an sich läßt sich jetzt per Language.Code in den Optionen in der Sprache umstellen. Allerdings bekomme ich die Übersetzung nur für die "Item No." hin und nicht für die "Source No.". Wenn ich den unten gezeigten zweiten Code-Block compiliere, kommt die darunter gezeigte Fehlermeldung.

Code:
IF Language.Code <> 'DE' THEN BEGIN
    ItemTranslation.SETFILTER("Item No.", '', Language.Code);
    IF ItemTranslation.FINDFIRST THEN
      MyDescription := STRSUBSTNO('%1 %2',ItemTranslation.Description,ItemData."Description 2");
END;
IF Language.Code <> 'DE' THEN BEGIN
    ItemTranslation2.SETFILTER("Source No.", '', Language.Code);
    IF ItemTranslation2.FINDFIRST THEN
      MyDescription2 := STRSUBSTNO('%1 %2',ItemTranslation2.Description,ItemData2."Description 2");
END;


Bei der Zeile
ItemTranslation2.SETFILTER("Source No.", '', Language.Code);
wird folgendes bemängelt:

---------------------------
Es wurde ein Feld einer Datensatzvariablen erwartet. Zum Beispiel:

Datensatz.Feld
Debitor.Name
---------------------------


Kann mir bitte Jemand einen Tipp geben, wo mein Denkfehler liegt? Im oberen Block der Übersetzung funktioniert alles einwandfrei.

Herzlichen Dank!
Zuletzt geändert von Walter am 12. Dezember 2012 11:44, insgesamt 1-mal geändert.

Re: Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 10:47

Die Tabelle Item Translation besitzt kein Feld "Source No.", allerdings würde das eine andere Fehlermeldung bringen.

Hauptsächlich sind beide SetFilter-Aufrufe falsch. Ich vermute, da wolltest du ein get machen.

Re: Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 10:51

Item Translation ist für die Übersetzung der Artikel, nicht für Dokumentennummern.
Ich glaube Du weißt nicht so ganz was Du da tust.

Re: Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 11:10

Hmm, scheint wohl so zu sein, dass ich dann doch noch nicht verstanden habe, wie es mit SETFILTER funktioniert. Da ich nur hin und wieder in die Not komme hier wirklich zu programmieren, bin ich da wohl nicht so geübt - ich bitte das zu entschuldigen. Ich hatte es so gedacht, dass ich mit
Code:
ItemTranslation2.SETFILTER("Source No.", '', Language.Code);

per Record in die Tabelle "Item Translation" schaue und hier auf den Wert ("Source No.", '', Language.Code) filtere, wobei bei uns die "Source No." bzw. "Herkunftsnr." der Artikelnummern entspricht, was dem Key "Item No.,Variant Code,Language Code" der Tabelle "Item Translation" entspricht. Und dann rufe ich mit
Code:
IF ItemTranslation2.FINDFIRST

diesen Datensatz auf. Aber da habe ich dann wohl irgendwie einen Denkfehler...

Ich verstehe dann nur nicht, warum es im ersten Fall funktioniert hat, wo doch die Inhalte der Felder vom Wert her gleich sind... :oops:

Re: Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 11:14

Der erste Fall ist fast genauso falsch wie der zweite :wink: . Dass der Compiler sie durchlässt, liegt daran, dass sie vom Syntax her ok ist und darin keine unbekannte Variable verwendet wird.

Wie schon gesagt: was du mit SetFilter erreichen wolltest, hätte dir wohl ein get geliefert. Schau doch mal in der C/Side-Hilfe zu SetFilter, SetRange und get nach.

Re: Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 11:43

Kaum baut man es auf GET um, schon funktioniert's... :oops:

Ich habe mir von Natalie die Anleitung (http://www.msdynamics.de/viewtopic.php?f=19&t=8341#GET) nochmal vorgenommen.

Danke für den Wink mit dem Zaun!! :lol:

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 12:03

Wichtig!

Der zweite Teil Deiner Programmierung ist sinnlos und eventuelle Treffer bedeuten, dass eine Dokumentennummer gleich einer Artikelnummer ist.

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 12:11

Zumal es das Feld "Source No." in der Übersetzungstabelle nicht gibt.

Die "Source No." sind in den Artikelposten auch die Debitoren/Kreditorennr, falls es nicht aus einem Buchblatt kommt.
Ich verstehe den ganzen Zusammenhang nicht ganz.

mfg,
winfy

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 12:50

winfy hat geschrieben:Zumal es das Feld "Source No." in der Übersetzungstabelle nicht gibt.

Die "Source No." sind in den Artikelposten auch die Debitoren/Kreditorennr, falls es nicht aus einem Buchblatt kommt.
Ich verstehe den ganzen Zusammenhang nicht ganz.

mfg,
winfy


Es gibt keinen. Der TE hatte es nicht verstanden. Aber wir konnten ihn ja jetzt "anschlauen". :-)

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 13:02

Wenn ich mir das ansehe:
Walter hat geschrieben:Der Report gibt aus der Tabelle "Item Ledger Entry" die für einen Auftrag verbuchten Seriennummern aus.

, verstehe ich das als einen Bericht über Verbrauchsposten, und da steht im Feld "Source No." die "Source No." des FA, also die Artikelnummer des produzierten Teiles.

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 13:11

McClane hat geschrieben:verstehe ich das als einen Bericht über Verbrauchsposten, und da steht im Feld "Source No." die "Source No." des FA, also die Artikelnummer des produzierten Teiles.


Genau so ist es McClane - man sieht auf einen Blick, welche Artikelnummer mit welcher Seriennummer verknüpft ist und wo, also an welcher Baugruppe, dieser Artikel verbaut ist. Und das jetzt auch mit Übersetzung für die Artikelbezeichnung und für die Baugruppenbezeichnung (über die Herkunftsnummer). :wink:

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 13:29

Dann darf man aber für den zweiten Teil nicht pauschal alle Item Ledger Entries nehmen.

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 13:45

Ich denke, das wurde mit der Einschränkung auf Verbrauchsposten berücksichtigt.

Re: [Gelöst] Zwei Übersetzungen aus Item Ledger Entry

12. Dezember 2012 13:52

McClane hat geschrieben:Ich denke, das wurde mit der Einschränkung auf Verbrauchsposten berücksichtigt.


Auch wieder richtig. Der TableFilter ist fest auf "Entry Type=CONST(Consumption),Serial No.=FILTER(<>'')" gesetzt.