Domino 9 und frühere Versionen > ND6: Entwicklung

Positionenvergleich innerhalb eines Feldes

<< < (2/3) > >>

animate:
das von klaussal trifft zu.

hier

While Not (document Is Nothing)
      Set item1 = document.GetFirstItem("VersionVon")
      Set item2 = document.GetFirstItem("VersionBis")
Wend

hast du eine kleine Endlosschleife eingebaut.

Mach mal das While Nott... und das Wend weg für den Anfang.

außerdem übergibst du hier

   Position1 = Arraygetindex(MoeglicheVersionen, item1)
   Position2 = Arraygetindex(MoeglicheVersionen, item2)

der Funktion Arraygetindex ein NotesItem(item1 und item2), obwohl du eigentlich den Wert, der in dem Item steckt meinst.

Müsste so aussehen:

   Position1 = Arraygetindex(MoeglicheVersionen, item1.values(0))
   Position2 = Arraygetindex(MoeglicheVersionen, item2.values(0))


Puh, da sind nochn paar mehr Fehler drin.

Am besten kommentierst du mal deinen Code. Schreib einfach mal auf, was du mit welchem Abschnitt bezwecken möchtest. Vielleicht fällt dir dabei selber was auf.


Lotus_Notes_Newbie:
Erstmal danke für eure ganzen Antworten.

Stimmt, so kann das mit der While-Schleife natürlich nicht funktionieren. Ich habe den Code jetzt nochmal überarbeitet, das Ergebnis steht nicht mehr in "", der Fehler bei Arraygetindex wurde behoben, die Änderungen der Dokumente werden jetzt gespeichert und die While-Schleife wurde ebenfalls korrigiert.

So sieht der Code momentan aus:

Sub Initialize
   
   Dim workspace As NotesUIWorkspace
   Dim session As NotesSession
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc_coll As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim document As NotesDocument
   Dim view As NotesView
   Dim item1 As NotesItem
   Dim item2 As NotesItem
   Dim Eintrag As NotesItem
   Dim MoeglicheVersionen As Variant
   Dim Position1 As String
   Dim Position2 As String
   Dim Ergebnis As String
   Dim KompatibleVersionen As Variant

   Set session = New NotesSession
   Set db = session.CurrentDatabase
   Set doc_coll = db.AllDocuments
   
   Set view = db.GetView("Versionen")
   Set document = view.GetFirstDocument
                 
   While Not (document Is Nothing)
      Set item1 = document.GetFirstItem("VersionVon")
      Set item2 = document.GetFirstItem("VersionBis")
   
   Set doc = db.GetProfileDocument("ProfileDoc")
   Set MoeglicheVersionen = doc.getItemValue("AlleVersionen")
   
   Position1 = Arraygetindex(MoeglicheVersionen, item1.values(0))
   Position2 = Arraygetindex(MoeglicheVersionen, item2.values(0))
   
   For KompatibleVersionen = Position1 To Position2
      Ergebnis = MoeglicheVersionen(KompatibleVersionen)
      Set Eintrag = document.ReplaceItemValue("AlleKompatiblenVersionen",Ergebnis)
      Call document.Save( True, True )
   Next

   Set document = view.GetNextDocument(document)

Wend
   
End Sub



Jetzt erhalte ich noch eine Fehlermeldung "Type mismatch"

animate:
Tipp: Debugger einschalten, schauen, in welcher Zeile, (evtl. nachdenken warum der Fehler kommt)

Lotus_Notes_Newbie:
Position1 = Arraygetindex(MoeglicheVersionen, item1.values(0))
Position2 = Arraygetindex(MoeglicheVersionen, item2.values(0))

Genau an dieser Stelle bekomme ich immer die Fehlermeldung "Invalid use of null"...kann mir einer sagen woran das liegt und wie ich das beheben kann?

koehlerbv:
Vorher war doch noch die Rede von type mismatch ? Hat sich da mittlerweile der Quelltext geändert ?

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln