Domino 9 und frühere Versionen > ND7: Entwicklung

Massenänderung Script-Problem

<< < (3/7) > >>

gismored:
ich denke ja
mit
Dim doc As NotesDocument

koehlerbv:
Das ist die Deklaration, aber nicht die Instantiierung ("Zuweisung").

gismored:
stimmt.
Hab ich auch. Meine Zeilen hatte ich vor der Zuweisung. *grr.

ich häng das schript mal rein:
Dim session As New NotesSession   
   Dim db As NotesDatabase         
   Dim doc As NotesDocument         
   Dim coll As NotesDocumentCollection 
   Set db=Session.CurrentDatabase       
   Set coll=db.UnprocessedDocuments     
   Dim rt As NotesItem
   Dim var As String
   If coll.count>0 Then                             
      For Count = 1 To coll.Count             
         Set doc=Coll.GetNthDocument(Count) 
         Set rt = doc.GetFirstItem("Historie")
         var = Explode(rt.Text, Chr(13) +Chr(10))
         MsgBox var ,MB_OK , Historie             
         doc.Lagerort = "MSC"
         doc.Status = "im MSC"
         doc.Historie = "wurde geändert von"
         Call doc.Save (True, False)               
      Next                                 
   End If

und die funktion explode hier aus dem forum:

Function Explode(strWert As String, tz As String) As Variant
      Dim arrWerte() As String
      Dim i As Integer
    Do While Not strWert = ""
         If StrRight(strWert,tz) <> ""  Then
          ReDim Preserve arrWerte(i)   
            arrWerte(i)  = StrLeft(strWert,tz)
            strWert = StrRight(strWert,tz)
         Else
         strWert = ""
      End If
      i = i + 1
   Loop
   Explode = arrWerte
End Function

und dann bringt er mir:
attempt to access uninitialized dynamic array ???

gruß thomas

gismored:
vlt nochmal hintergund für das ganze:

ein rtf-Feld auslesen in eine variable
dann den aktuellen baerbeitungstatus schreiben
und dann den inhalt der variable wieder dazuhängen.

Driri:
var ist als String deklariert und die Explode-Function gibt einen Variant zurück.

Ich würde empfehlen, statt der selbstgeschriebenen Funktion die seit Domino 6 verfügbare Split-Function zu verwenden. Schmeiß die Explode-Function einfach raus und ersetze im Script "Explode" durch "Split".

Split liefert einen Array zurück, also achte auch hier auf die Deklaration der Variable.

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln