Domino 9 und frühere Versionen > ND6: Entwicklung
Anzahl Elemente eines Arrays mit Anzahl Elemente eines Anderen Arrays vergleiche
cebolina:
Ich möchte aber doch gar nicht wissen, ob eines meiner Felder (oder beide) leer ist (egal, ob über isempty oder element(0) = "").
Ich will doch nur wissen, ob beide Felder die gleiche Anzahl von Elementen haben. :-\
Gruß
Stefan
koehlerbv:
@Matthias:
Du kannst natürlich Arrays so abprüfen. Anders ist das bei Items, die als Property von NotesDocument abgefragt werden. Das sind dann IMMER Arrays - selbst, wenn es das Item gar nicht gibt.
@Stefan:
Dein Problem besteht ja in dem oben beschriebenen (was Du ja schon erkannt hast). Du kannst folgendes machen:
Prüfen, ob das Item überhaupt existiert.
Wenn im Item keine leeren Elemente stehen können / dürfen, dann kannst Du - wie oben schon beschrieben, das 0. Elemente abprüfen.
Es ist also wirklich einfach.
Bernhard
cebolina:
Danke @Alle
ich machs jetzt so:
--- Code: ---If doc.Feld1(0) <> "" And doc.Feld2(0) <> "" Then
If Ubound(doc.Feld1) <> Ubound(doc.Feld2) Then
Tu was
End If
Else
If doc.Feld1(0) = "" And doc.Feld2(0) <> "" Then
Tu was
End If
If doc.Feld1(0) <> "" And doc.Feld2 = "" Then
Tu was
End If
End If
--- Ende Code ---
Ich hatt mir vorgestellt, dass es einfacher geht - aber so krieg ich was ich will.
Gruß
Stefan
koehlerbv:
Ich denke, das ist noch zu einfach gedacht.
Zuallererst: Du arbeitest da nicht mit Feldern (das sind die Dinger im Frontend im Gestaltungselement "Maske"), sondern mit Items. Ein himmelweiter Unterschied ... Wärst Du mal gerade in Gravenbruch auf der SoftSphere gewesen - nicht nur ich habe mich da ausführlich darüber ausgelassen - mit einigen "A-ha-Effekten" bei manchen Zuhörern ;)
Weiterhin musst Du ja postulieren, was für Dich überhaupt "leer" bedeutet. Wenn es keinerlei Leerstrings geben darf, ist es einfach. Wenn ein Ein-Element-Array keinen Leerstring enthalten darf, woanders aber drinstecken darf, funktioniert Dein Vorgehen nicht mehr. Ein Vorschlag (aber noch nicht der Weisheit letzter Schluss!!) wäre dann:
--- Code: --- On Error Goto ErrorRoutine
If Ubound (doc.Feld1) <> Ubound (doc.Feld2) Then
Messagebox "Different arrays"
Else
If Ubound (doc.Feld1) + Ubound (doc.Feld2) = 0 Then
If Len (doc.Feld1 (0)) + Len (doc.Feld2 (0)) = 0 Then
Messagebox "Both arrays are empty"
Else
If (Len (doc.Feld1 (0)) + Len (doc.Feld2 (0)) = Len (doc.Feld1 (0))) Or (Len (doc.Feld1 (0)) + Len (doc.Feld2 (0)) = Len (doc.Feld2 (0))) Then
Messagebox "One array is empty"
Else
Messagebox "Equal arrays"
End If
End If
Else
Messagebox "Equal arrays"
End If
End If
--- Ende Code ---
Eine "einfache Lösung" kann es in diesem Zusammenhang auch gar nicht geben - das ist der Preis, den Du für den ansonsten mehr als komfortablen Umgang mit Items, wie Du ihn schon nutzt, bezahlen musst. Und die paar Zeilen sind ja nun auch nicht der Rede wert (ausgefeilt gehören sie dann in eine Script Library, denn sowas braucht man immer wieder!).
HTH,
Bernhard
cebolina:
Hallo Bernhard,
es ehrt mich, dass du dich meines Problems so intensiv angenommen hast (noch dazu zu einer unchristlichen Uhrzeit) - Vielen Dank dafür!
Ich habe deinen Vorschlag ausprobiert und er funktioniert (was zu erwarten war ;))
Mit meiner - zu einfach gedachten - Prüfroutine hatte ich allerdings auch das gewünschte Ergebnis.
In meinem konkreten Fall geht es lediglich darum, festzustellen, ob zu einer Produktliste die entsprechenden Stückzahlen vorhanden sind.
Ist kein Produkt da, muss es auch keine Stückzahl geben - und umgekehrt.
Bsp.:
Feld1 = "Produkt" ; Werte = "Birnen", "Äpfel", "Tomaten"
Feld2 = "Anzahl" ; Werte = "3", "5", "1"
Ergebnis: OK
Feld1 = "Produkt" ; Werte = "Birnen", "Äpfel", "Tomaten"
Feld2 = "Anzahl" ; Werte = "3", "5"
Ergebnis: Nicht OK
Feld1 = "Produkt" ; Werte = ""
Feld2 = "Anzahl" ; Werte = ""
Ergebnis: OK
Also nochmal: Vielen Dank!
Gruß
Stefan
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln