Domino 9 und frühere Versionen > ND6: Entwicklung

Multivaluefelder vergleichen

(1/2) > >>

Wirsing:
Hallo zusammen,

simple Frage:
Wie kann ich per LS zwei Multivaluefelder vergleichen?

Beispiel:

FeldA hat zwei Einträge
    1. "Muster"
    2. "Test"

FeldB hat die selben Einträge in der selben Reihenfolge.

Als Ergebnis benötige ich nur ein True oder False...

Geht das nur mit Forall oder hat es nicht noch eine bessere Lösung?
Die Suche hat mir hier nicht ganz das richtige Ergebnis geliefert - leider...


Grüsse

Holger

jr:
Hallo,

wenn die Felder identisch sein sollen, dann ganz normal mit = vergleichen.
Also FeldA = FeldB, oder FeldA = [WertA] : [WertB] : ... [WertN];

Wenn nur einer davon übereinstimmen muss, dann mit *= vergleichen.

FeldA *= [WertA] : [WertB] : ... [WertN] liefert True, wenn in Feld A einer der Werte recht gefunden wurde.

Gruß,

Joachim

koehlerbv:
Forall ist hier sicherlich nicht das geeignetste Verfahren. Ich mache sowas in einer Schleife von Lbound nach Ubound.
Vorher sollte man noch folgendes abgleichen:
- Datentypen
- gleiche Dimension
Unterscheiden sich die Arrays schon darin, kann man auf eine weitere Prüfung verzichten.

HTH,
Bernhard

Wirsing:
Hallo Joachim,

danke für Deine schnelle antwort, aber das scheint eine Formellösung zu sein, ich bräuchte aber eine Scriptlösung  :(

Mit

if doc1.FeldA = doc2.FeldB then blablabla

klappt es leider nicht (Type mismatch)...

jr:
Hallo,

sorry, war zu schnell. Klar, Du willst das in LS.

Nimm ein Flag und durchlaufe die einzelnen Einträge.


flag = True
If (Ubound(doc.FeldA) <> Ubound(doc.FeldB)) Then
    flag = False
Else
    For i = 0 To Ubound(doc.FeldA)
        If (doc.FeldA(i) <> doc.FeldB(i)) Then flag = False : Exit For
    Next
End If


Wenn flag True ist, dann sind die Felder gleich.

Das sollte funktionieren.



Gruß,

Joachim

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln