[gelöst] kleines problem mit zuweisung für optionswerte

4. August 2009 15:17

hallo, ich bin gerade am verzweifeln an einem scheinbar leichten problem:

Code:
TargetH.INIT;
IF ("Post Type" = 1) AND ("Absence Code" = ' ' ) THEN
  TargetH."Target Hours" := 0
ELSE
TargetH."Target Hours" := "TDC Accounting Posts"."Target Hours";

jetzt ist aber das Problem, dass ich nicht genau weiß welcher Optionswert bei "Post Type" den Wert "Sollzeit" darstellt.

wie finde ich heraus, welcher Optionswert zu welcher Option passt?

Was oben die Zeilen bezwecken sollen,
wir möchten bei einem Bericht Daten aus den ZDE-Abrechnungsposten ausgeben,
wobei die Sollzeit (Post Type) als 0 angedruckt wird, wenn dessen Abwesenheitsgrund ungleich leer ist

Danke euch!
Zuletzt geändert von stoned_n16 am 5. August 2009 08:05, insgesamt 1-mal geändert.

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 15:32

Einfach in die Definition des Feldes gucken, da steht der OptionString und die OptionCaption, die Options sind kommagetrennt. Dann musst du eigentlich nur noch vergleichen, was an der Stelle deines gesuchten deutschen Begriffs im OptionString steht.

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 15:50

ich verwende folgenden "Trick": einfach einen ungültigen Optionswert angeben, z.B. "Post Type"::XXX und dann den Compiler anwerfen. Der sagt mir dann schon, was es alles für Optionswerte gibt :wink:

Gruß Torsten

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 15:53

Torsten67 hat geschrieben:ich verwende folgenden "Trick": einfach einen ungültigen Optionswert angeben, z.B. "Post Type"::XXX und dann den Compiler anwerfen. Der sagt mir dann schon, was es alles für Optionswerte gibt

Stimmt, aber das hilft irgendwie nur bedingt, wenn man deutsche<->englische Option sucht :wink:

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 16:04

Stimmt, aber das hilft irgendwie nur bedingt, wenn man deutsche<->englische Option sucht


wenn ich mitten im C/AL bin, reicht mir doch auch die englische, die mir der Compiler verrät.

@stoned_n16

du kannst auch statt
Code:
IF ("Post Type" = 2) ... THEN ...

dieses
Code:
IF ("Post Type" = "Post Type"::Sollzeit) ... THEN ...


schreiben. Ist auch deshalb zu empfehlen, weil man's besser lesen kann.

Gruß Torsten

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 16:58

Torsten67 hat geschrieben:
Code:
IF ("Post Type" = "Post Type"::Sollzeit) ... THEN ...

Ist auch deshalb zu empfehlen, weil man's besser lesen kann.

Es ist auch deshalb zu empfehlen, weil der Style Guide dieses verlangt :wink: . Bei Codieren kann man sich etwas Tipparbeit sparen, wenn z.B. der Anfangsbuchstabe innerhalb der Optionen eindeutig ist, reicht es
Code:
"Post Type" = "Post Type"::S

zu schreiben, der Rest wird dann vom Compiler ergänzt und nach erneutem Öffnen des Objekts angezeigt.

Re: kleines problem mit zuweisung für optionswerte

4. August 2009 22:15

Ein weiterer Trick ist, wie schon erwähnt, einfach
Code:
IF "Post Type" = "Post Type"::asdf THEN
zu schreiben.
Nun meckert der Compiler und nennt dir die OptionCaptions in der aktuellen Sprache, du brauchst jedoch den englischen Begriff.
Kein Problem, merke dir einfach die Position des von dir gewünschten Wertes (Optionwerte fangen bei 0 an zu zählen, d. h. der erste Wert entspricht der 0, ...)

Nehmen wir mal an, du möchtest nun den OptionValue für die zweite Optioncaption nutzen, dann schreibe einfach
Code:
IF "Post Type" = "Post Type"::"2" THEN
, der Compiler ersetzt die ::"2" nach dem Speichern beim nächsten Öffnen des Objektes mit dem entsprechenden OptionValue.

[gelöst]kleines problem mit zuweisung für optionswerte

5. August 2009 08:04

danke euch