Hallo,
die LotusScript-VM scheint bei einer If-Abfrage eine Zuweisung mit einem Vergleich zu verwechseln.
Hier meine erste Version, die nicht wie gewünscht funktioniert:
If (tmp = doc.GetItemValue("tfKilometer")(0)) <> "" Then
flag = "Meilen"
doc.tfMeilen = ConvertKMMI(tmp, flag)
Else
If (tmp = doc.GetItemValue("tfMeilen")(0)) <> "" Then
flag = "Kilometer"
doc.tfKilometer = ConvertKMMI(tmp, flag)
End If
End If
tmp wurde vorher nur deklariert. Somit ist der Wert standardmäßig "".
Die VM interpretiert meinen Code als Vergleich zwischen tmp und doc.GetItemValue("tfKilometer")(0) (das leer ist). Die Anweisung ist erfüllt und die VM geht in die If-Bedingung hinein (das konnte ich alles über den Debugger beobachten!). Anschließend bekomme ich eine Fehlermeldung, da die Funktion ConvertKMMI den String tmp in eine Zahl umwandeln will.
Schreibe ich jedoch folgenden Code, dann funktioniert alles wie gewünscht:
tmp = doc.GetItemValue("tfKilometer")(0)
If tmp <> "" Then
flag = "Meilen"
doc.tfMeilen = ConvertKMMI(tmp, flag)
...
...
Gibt es vielleicht doch eine Möglichkeit tmp in der If-Anweisung zu initialisieren?
Liebe Grüße
Giordano