Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: brixxton am 09.12.05 - 11:43:51
-
Holla,
wie kann ich abfragen ob ein Variant Container enthält oder nicht.
Problem ist es das ich Form Aliases abfrage und die sind type Variant.
So jetzt wenn kein Form Alias eingetragen ist ist auch kein Container vorhanden.
If Not f.Aliases = "" Then
If f.Aliases(1) = "" Then
formlist(i) = f.Name + "|" + f.Aliases(1)
Else
formlist(i) = f.Name + "|" + f.Aliases(0)
End If
Else
formlist(i) = f.Name + "|" + ""
End If
Diese abfrage (If Not f.Aliases = "" Then) funktioniert wenn Alias leer ist, wenn nicht dann hab ich den fehler "Type mismatch".
Diese abfrage (If Not f.Aliases(0) = "" Then) funktioniert wenn Alias nicht leer ist, wenn es leer ist dann hab ich den fehler "Variant enthält keinen Container".
-
Hi,
versuch's mal mit IsEmpty
Axel
-
Nicht versuchen ;)
Isempty gibt zurück, ob in dem Variant überhaupt etwas vorhanden ist oder ob er "Leer" im Sinne von NULL ist.
Du erwartest ein Array, um damit weiterarbeiten zu können. In diesem (konkreten) Fall reicht es aus, auf Isarray abzufragen. Isempty ist dabei auch NOT Isarray.
Skalare Werte können im gegebenen Zusammenhang nicht vorkommen.
Bernhard
-
Mit IsEmpty hate ich schon probiert es gab immer den fehler Type mismatch.
Ich habe es aber gelöst mit DataType.
Danke für die Antwort.
Lösung:
If Datatype(f.aliases) = 0 Then
If Not f.aliases = "" Then
formlist(i) = f.Name + "|" + f.aliases
Else
formlist(i) = f.Name + "|" + ""
End If
Else
k = 0
Forall a In f.Aliases
Redim Preserve aliase(k) As Variant
aliase(k) = a
k = k + 1
End Forall
formlist(i) = f.Name + "|" + aliase(k - 1)
End If
-
Ok.
Danke koehlerbv.
Das ich selber nicht drauf gekommen bin. Peinlich.
Neue lösung:
If Not Isarray(f.aliases) Then
If Not f.aliases = "" Then
formlist(i) = f.Name + "|" + f.aliases
Else
formlist(i) = f.Name
End If
Else
k = 0
Forall a In f.Aliases
Redim Preserve aliase(k) As Variant
aliase(k) = a
k = k + 1
End Forall
formlist(i) = f.Name + "|" + aliase(k - 1)
End If