Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: tabama am 03.02.04 - 14:06:41
-
Hallo,
Problem:
ist das Feld leer, ist es vom Type "STRING"
ist es gefüllt, ist es vom Type "Double"
meine Prüfung:
dim doc set doc usw.
if doc.feld(0) = "" then
print falsch
endif
solange das Feld leer ist, ist alles ok.
wenn aber eine Zahl eingegben wird, kommt natürlich der Fehler "Typemismath", was ja auch richtig ist.
wenn ich aber
if doc.feld(0) = 0 then
dann gibt es ein Fehler, wenn das Feld leer ist.
Eine Umwandlung mit cstr() oder val() bringt auch nichts.
Also:
Wie kann ich prüfen, ob ein Zahlenfeld leer ist??
-
Hi,
probier es mal so...
if Len(doc.feld(0)) = 0 then
print "falsch"
endif
Gruß
sloe
-
@sloe:
Das ist doch das gleiche - Len wirkt auf String, nicht auf Zahlen.
@tabama:
Und sollte Cstr nicht funktionieren ? Das tut es nämlich ... Du brauchst nur auf Cstr (doc.Feld (0)) = "" zu prüfen.
Bernhard
-
Hi,
ich hab das mal so gelöst:
...
If Datatype(doc.Karte(0)) = 5 Then
Print "Feld ausgefüllt"
Else
Print "Feld ist leer"
End If
...
Axel
-
Nur zu Hälfte OK
funkt bei keiner Eingabe und bei Zahleneingabe.
Bringt aber Fehler bei Texteingabe "Varaint does not contain a container"
-
Das ist etwas unverständlich, was Du da schreibst. Werde mal genauer ...
-
es ist schnuppe, ob ich mit len() oder datatype() oder cstr() arbeite.
wenn im Feld ein text eingegeben wird, kommt der Fehler "Variant does not contain a container"
-
Hi,
poste mal den Code, damit wir uns ein Bild machen können.
Axel
-
Das Verhalten ist insofern klar, als das Notes kein Item anlegt, wenn ein falscher Datentyp für die Eingabe im Frontend verwendet wird. Spätestens beim Speichern beschwert sich er Client dann: "Falscher Datentyp - Zahl erwartet !".
Du prüfst aber bereits vorher. Du must daher das betreffende Item instantiieren (Set NotesItem = NotesDocument.GetFirstItem ("...") )
und dann erstmal dessen Existenz prüfen. Geht das bereits in die Hose -> Ausgang. Ansonsten kannst Du mit Cstr weitermachen.
HTH,
Bernhard