Autor Thema: Vergleich von zwei Listen  (Gelesen 5028 mal)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Vergleich von zwei Listen
« am: 10.09.10 - 12:53:19 »
hallo zusammen,

folgendes möchte ich machen.

Aus dem aktuellen Dokument zwei Felder mit einfachem Text-Wert auslesen.
Dann in eine andere Ansicht wechseln. Dort alle Dokumente durchsuchen. In diesen dokumenten gibt es felder mit mehrfachtextwerten. Sollte in einem dieser Dokumente die beiden einfach werte in diesen Mehrfachwerten enthalten sein, soll im aktuellen Dok ein drittes feld mit einem wert des Doks aus der view gefüllt werden.
Mein problem ist wohl , dass ich sowas wie @Ismember nicht nach Skript bekommen.

hier der Code bisher

Dim ws As New NotesUIWorkspace
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim loopdoc As NotesDocument
   Dim view As NotesView   
   Dim value1 As Variant
   Dim value2 As Variant
   
   Set db = session.CurrentDatabase
   Set doc = ws.CurrentDocument.Document
   value1 = doc.feld1(0) ' EInfachwert
   value2 = doc.feld2(0) ' Einfachwert
   
   Set view = db.GetView("suche")
   Set loopdoc = view.GetFirstDocument()
   While Not(loopdoc Is Nothing)
      If loopdoc.mehrfachwert1(0) = value1 & loopdoc.mehrfachwert2(0) = value2  Then
         doc.feld3 = loopdoc.feldxy
      Else
         Set loopdoc = view.GetNextDocument(loopdoc)   
      End If
   Wend

Mitch

  • Gast
Re: Vergleich von zwei Listen
« Antwort #1 am: 10.09.10 - 13:03:54 »
Ich glaube die Funktion "ArrayGetIndex" könnte dir weiter helfen...

Gruß,

Mitch

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #2 am: 10.09.10 - 14:31:19 »
Hallo Mitch,

danke für den Tip.

hab rumprobiert, aber irgendwie passt es nicht ...?

hast du noch mehr Infos ?

Grüße
Wilhelm

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Vergleich von zwei Listen
« Antwort #3 am: 10.09.10 - 14:34:15 »
Was passt nicht? ArrayGetIndex ist das, was Du gesucht hast!

Bernhard

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #4 am: 10.09.10 - 14:43:35 »
Hallo Bernhard,

habe es so probiert..

If Arraygetindex(mehrfachwert1(),value1)   <> Null &   Arraygetindex(mehrfachwert1(),value2) <> Null Then
doc.feld3 = loopdoc.feldxy

Fehlermeldung: Wrong nummer of array subscripts..

Bin nur Admin..:-(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Vergleich von zwei Listen
« Antwort #5 am: 10.09.10 - 15:23:53 »
Wirklich so?
Wie hast Du denn mehrfachwert1 deklariert und wie weist Du einen Wert zu?

Bernhard

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #6 am: 10.09.10 - 15:54:08 »
Sorry Bernhard,

eher so

If Arraygetindex(loopdoc.mehrfachwert1(),value1)   <> Null &   Arraygetindex (loopdoc.mehrfachwert2(),value2) <> Null Then
doc.feld3 = loopdoc.feldxy

Fehlermeldung bleibt gleich

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Vergleich von zwei Listen
« Antwort #7 am: 10.09.10 - 16:14:14 »
Wilhelm, Du hast zwei Fehler in Deinem Code - ich war auf etwas anderes fixiert und habe das schlicht übersehen:

Deine Notation des Items ist verkehrt - loopdoc.mehrfachwert1 wäre richtig. Die von Dir verwendeten Klammern implizieren den Zugriff auf ein (gar nicht angegebenes) Element des Arrays (was jedes Item ausser RichText Items sind). Die Fehlermeldung erklärt sich damit von alleine, oder?

Weiter: NULL kannst Du so in LS nicht verwenden. Mach das wie folgt:
If Isnull (Arraygetindex (quelle, suchwert) = True Then
   ... nichts gefunden
Else
   ... Bingo!
End If.

Und dann funktioniert auch Dein Code ;-)

HTH,
Bernhard

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #8 am: 10.09.10 - 16:24:51 »
Probier ich heute abend von zu Hause mal aus, vielen Dank.


Mitch

  • Gast
Re: Vergleich von zwei Listen
« Antwort #9 am: 10.09.10 - 16:26:27 »
Genau, so wie Bernhard es sagt.

Kleiner Zusatz: Falls du im Prinzip noch das Konstrukt wie aus deinem ersten Post verwendest, wirst du in einer Endlosschleife landen falls die Bedingung True ergibt, da du in dem Fall dann kein "GetNextDocument" verwendest und die While-Schleife niemals Nothing finden wird... ;)

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #10 am: 10.09.10 - 16:31:48 »
im moment lande ich bei einem Type Mismatch, werde aber weiter versuchen.

der Suchwert ist ein einfaches text-Feld ohne Mehrfachwert. Hakt es daran ?

Mitch

  • Gast
Re: Vergleich von zwei Listen
« Antwort #11 am: 10.09.10 - 16:37:18 »
Du musst schon den Code zeigen, das hilft immer.

Falls du mit "Suchwert" den zweiten Parameter von ArrayGetIndex meinst und da direkt einen Feldwert verwenden willst, musst du da schon die (0) verwenden, um an den Feldwert zu kommen.

Also entweder mit einer Variablen:

If IsNull(ArrayGetIndex(doc.Fieldname, variable)) Then
     'Nix gefunden
Else
     'Was gefunden
End If

Oder eben (mit einem Feldwert):

If IsNull(ArrayGetIndex(doc.Fieldname, doc2.OtherFieldname(0))) Then
     'Nix gefunden
Else
     'Was gefunden
End If

Klar soweit? :)

Edit: Yay. Endlich. Vom Frischling zum Junior-Mitglied in nur knapp über acht Jahren! :D
« Letzte Änderung: 10.09.10 - 16:39:51 von Mitch »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Vergleich von zwei Listen
« Antwort #12 am: 10.09.10 - 17:20:42 »
Noch ein Fehler ist die Verbindung zweier Bedingungen mit &, das geht so mit Formelsprache. In Script verwendest Du And.

If Bedingung1 And Bedingung2 Then

End If

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Vergleich von zwei Listen
« Antwort #13 am: 10.09.10 - 17:31:59 »
Shit, was man alles übersieht. Schön, dass bei AtNotes immer mehrere drüberschauen und sich gegenseitig ergänzen - sogar in Norwegen  :) Danke, Peter!

Bernhard
« Letzte Änderung: 10.09.10 - 21:21:28 von koehlerbv »

Offline Wilhelm Weber

  • Junior Mitglied
  • **
  • Beiträge: 75
Re: Vergleich von zwei Listen
« Antwort #14 am: 10.09.10 - 20:59:45 »
Danke an alle !!

der Fehler ist weg, jetzt muss ich noch die Endlosschleife entsorgen und ein bischen Logik machen.

Grüße
Wilhelm

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz