Autor Thema: Multivaluefelder vergleichen  (Gelesen 1642 mal)

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Multivaluefelder vergleichen
« am: 01.07.05 - 13:53:11 »
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
« Letzte Änderung: 01.07.05 - 13:55:34 von Wirsing »
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Multivaluefelder vergleichen
« Antwort #1 am: 01.07.05 - 13:59:00 »
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
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Multivaluefelder vergleichen
« Antwort #2 am: 01.07.05 - 14:00:26 »
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
« Letzte Änderung: 01.07.05 - 14:05:51 von koehlerbv »

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Multivaluefelder vergleichen
« Antwort #3 am: 01.07.05 - 14:04:13 »
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)...
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Multivaluefelder vergleichen
« Antwort #4 am: 01.07.05 - 14:16:19 »
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
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Wirsing

  • Senior Mitglied
  • ****
  • Beiträge: 283
  • Geschlecht: Männlich
    • METZ CONNECT
Re: Multivaluefelder vergleichen
« Antwort #5 am: 01.07.05 - 14:29:02 »
Danke nochmals für die Antworten.

Hab das Script jetzt nochmall etwas augebaut, damit es auch mit "vertauschten" Reihenfolgen umgehen kann:


If (Ubound(d1.FeldA) <> Ubound(d2.FeldB)) Then

   fgleich = False

Else

   fgleich = true
   For i = Lbound(d1.FeldA) To Ubound(d1.FeldA)

      j = Arraygetindex(d1.FeldA,d2.FeldB(i))

      If Isnull(j) Then
         fgleich = False
         Exit For
      End If

   Next

End If


Danke an Euch beide

Grüsse

Holger

« Letzte Änderung: 01.07.05 - 14:31:51 von Wirsing »
6 Lotus Domino Server 9.0.1(FP5-7) auf Windows 2008R2 Server
ca. 450 Clients mit 8.5.x/9.0.1

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz