Domino 9 und frühere Versionen > ND7: Entwicklung

forall item in doc.items

(1/4) > >>

goldi003:
Hallo Zusammen!
Ich habe da ein Problem und bin leider mit meinem Lotus Script Kenntnissen am Ende!
Gut zugegeben die sind nicht groß!!  ;)

Ziel ist es in einem Dokument alle Felder durchzugehen und wenn ein Feld eine Zahl ist und am eine ein "P" hat, dann soll dieser Wert bearbeitet werden!

habe nun folgenden Code den ich in einem Agent aufrufe!

Sub Initialize
   Dim s As New NotesSession
   Dim w As New NotesUIWorkspace
   Dim colSelect As NotesDocumentCollection
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim fielditem As NotesItem
   Dim var As Double

   Set db= s.CurrentDatabase
   
   Forall item In doc.Items
      If (( fielditem.Type=NUMBERS )&(Strrightback(fielditem.Name, "P")))    Then
         var = doc.GetItemValue(fielditem.Name)
         Messagebox var, MB_OK, "Zwischenschritt"   
      End If
   End Forall
End Sub

Ich bearbeite den Wert noch nicht, sonder will in nur einmal in einer Messagebox ausgeben! zum testen!

Rufe ich den Agent nun auf, dann bekomm ich die Meldung "Object Variable not set"
???

ist im Code etwas falsch oder habe ich etwas vergessen!
ich hoffe ich habe das Problem einigermaßen beschrieben und ihr könnt ma da ein bisschen helfen!

mfg
Peter

m3:
1) Schon mal mit dem Debugger durchgesteppt, in welcher Zeile der Fehler auftritt?
2) Ein bissl Errorhandling würde auch nicht schaden.
3) DENKEN !!!!

--- Code: ---  Dim doc As NotesDocument
 ...
   Forall item In doc.Items
--- Ende Code ---
Wo weist Du denn doc einen Wert zu???????

umi:
Meine Kristallkugel verrät auf den 1. Blick :
a) Doc nicht gesetzt
b) fielditem nicht gesetzt

diali:
doc-Objekt fehlt noch

Set uidoc = ws.CurrentDocument
set doc = uidoc.Document

   Forall item In doc.Items
      If (( fielditem.Type=NUMBERS )&(Strrightback(fielditem.Name, "P")))    Then

Du musst item anstelle von fielditem benutzen und ein & muss im Script AND sein.

  Forall item In doc.Items
      If item.Type=NUMBERS AND right(item.Name, 1) = "P" Then

goldi003:
Danke für die rasche Antort!

hab nun deinen Code nachgetragen, aber es kommt immernoch die selbe Meldung!!

Habe es durchdebugged und es hängt hier!!

Sub Initialize
   Dim s As New NotesSession
   Dim w As New NotesUIWorkspace
   Dim colSelect As NotesDocumentCollection
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim uidoc As NotesUIDocument
   Dim fielditem As NotesItem
   Dim var As Double
   
   Set db= s.CurrentDatabase
   Set uidoc = w.CurrentDocument
   Set doc = uidoc.Document

Da hängt der debugger mit objet variable not set   

                Forall item In doc.Items
      If item.Type=NUMBERS And Right(item.Name, 1) = "P" Then
         var = doc.GetItemValue(fielditem.Name)
         Messagebox var, MB_OK, "Zwischenschritt"
      End If
   End Forall
   
End Sub

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln