[Gelöst]If im Code eines reports

6. Juli 2021 15:36

Hallo zusammen ich mal wieder.

Ich hab ein Problem mit einer IF.

Ich bin noch nicht sicher ob ich die Richte Spalte getroffen hab grundsätzlich möchte ich wenn die PuchaseLine.Typ = Schkonto ist SBG_ART_Nummer geändert wird.
Leider ergibt der Code
Code:
IF "Purchase Line"."Type" = 'Sachkonto' THEN
  SBG_ART_Nummer := "Purchase Line"."Vendor Item No."
ELSE
  SBG_ART_Nummer := "Purchase Line"."No.";

beim Kompilieren einen Fehler.

Type conversion is not possible because 1 of the operators contains an invalid type.

Option = Text


Ich versuche also zwei Typen miteinder zu vergleichen die nicht passen, vermute ich zumindest, könnt Ihr mir mit der richtigen Syntax aushelfen?

Gruß Mike
Zuletzt geändert von cracymike am 7. Juli 2021 10:10, insgesamt 1-mal geändert.

Re: If im Code eines reports

6. Juli 2021 16:20

Die Syntax für die Auswahl von Options- bzw. Enum-Werten funktioniert anders (und multilingual):
Code:
IF "Purchase Line".Type = "Purchase Line".Type::"G/L Account" THEN
  SBG_ART_Nummer := "Purchase Line"."Vendor Item No."
ELSE
  SBG_ART_Nummer := "Purchase Line"."No.";

Re: If im Code eines reports

7. Juli 2021 10:08

Danke für den Tip.

Was ich zwischenzeitlich noch herausgefunden hab ist das die Tabellen in NAV in der Spalte Typ Worte anzeigt.
Wenn ich mir die Tabelle aber direkt im SQL-Server ansehe sind dort nur Integer Werte enthalten.

Daher habe ich mir die zugeordnete Tabelle der Typ Werte angesehen und konnte auslesen das "Sachkonto" = 1 ist, somit hab ich den
IF angepasst und es geht auch so. Das war aber wie gesagt nur dem Einblick in die reale Tabelle zu verdanken.

Code:
IF "Purchase Line"."Type" = 1 THEN
  SBG_ART_Nummer := "Purchase Line"."Vendor Item No."
ELSE
  SBG_ART_Nummer := "Purchase Line"."No.";


Gruß Mike

Re: If im Code eines reports

7. Juli 2021 16:46

cracymike hat geschrieben:Wenn ich mir die Tabelle aber direkt im SQL-Server ansehe sind dort nur Integer Werte enthalten.

Richtig. Der nummerische, sprachunabhängige Werte wird erst in NAV in einen Optionswert "konvertiert". Aber das sollte dich nicht beschäftigen.

Daher habe ich mir die zugeordnete Tabelle der Typ Werte angesehen und konnte auslesen das "Sachkonto" = 1 ist, somit hab ich den
IF angepasst und es geht auch so.

Was hat dir an der "richtigen" Schreibweise nicht gefallen?
Code:
"Purchase Line".Type::"G/L Account"
gibt intern die 1 zurück, ohne dass du dich darum kümmern musst.
Probier mal, was passiert, wenn du
Code:
"Purchase Line".Type::
eingibst.

Re: [Gelöst]If im Code eines reports

7. Juli 2021 17:23

Hallo Natalie,

kein Problem deine Lösung hat mir schon gefallen ich hatte lediglich gestern nicht mehr ins Forum gesehen und beim grübeln den anderen Ansatz
gefunden und Verwendet.

Hab jetzt gerade deine Version getestet und gleich verwendet. Danke

Gruß Mike

Re: [Gelöst]If im Code eines reports

7. Juli 2021 17:41

Hallo,

es ist immer besser mit Symbolen zu arbeiten, denn in einem halben Jahr weißt du nicht mehr was die 1 bedeutet, Type::"G/L Account" sagt dir aber auch dann noch etwas. :wink:

Gruß Fiddi