Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: brixxton am 09.12.05 - 11:43:51

Titel: Variant abfragen
Beitrag 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".


Titel: Re: Variant abfragen
Beitrag von: Axel am 09.12.05 - 11:59:23
Hi,

versuch's mal mit IsEmpty


Axel
Titel: Re: Variant abfragen
Beitrag von: koehlerbv am 09.12.05 - 12:05:01
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
Titel: Re: Variant abfragen
Beitrag von: brixxton am 09.12.05 - 12:10:48
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
Titel: Re: Variant abfragen
Beitrag von: brixxton am 09.12.05 - 12:15:01
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