AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
25.05.12 - 01:17:28
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Domino 5 und frühere Versionen
| |-+  Entwicklung (Moderatoren: Axel, Don Pasquale, eknori, Hoshee, ata, Thomas Schulte, koehlerbv)
| | |-+  Feldänderung für ausgewählte Dokumente
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Feldänderung für ausgewählte Dokumente  (Gelesen 2923 mal)
willi butz
Frischling
*
Offline Offline

Beiträge: 4


« am: 18.12.09 - 12:42:24 »

Hallo,

alle markierten Dokumente einer Ansicht sollen einen Text in ein Feld geschrieben bekommen. Im Agent ist eingestellt "ausgewählte Dokumente", aber das Script, welches sich dahinter verbirgt, spricht nur ein Dokument an. Wie kann ich das Script umstellen, damit es alle markierten Dokumente bearbeitet:

Gruß Willi

Sub Initialize
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim user2 As String
   Dim user3 As String
   Dim zeit As String
   Dim namen As String
   Dim rtitem As Variant    
   Set uidoc = workspace.CurrentDocument
   Set uidoc = workspace.EditDocument( True )
   user2 = "Überfällig seit "
   user3 = uidoc.FieldGetText( "Zeit33" )
   namen = uidoc.FieldGetText( "Leser99" )
   zeit = Now
   Call uidoc.FieldAppendText("zusammen", "-> " & user2 & user3 & " Tagen. Info am " & zeit & " (" & namen & ") " & Chr$(010))
End Sub
Gespeichert
Axel
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8484


It's not a bug, it's Notes


« Antworten #1 am: 18.12.09 - 12:52:19 »

Ganz grob kann das so aussehen.

Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
   
Set db = session.CurrentDatabase   
Set collection = db.UnprocessedDocuments

If collection.Count = 0 Then Exit Sub

Set doc = collection.GetFirstDocument
While Not (doc Is Nothing)
  'Hier werden die Felder gefüllt
  doc.NamedesFeldes = Wert
  ...

  'Speichern des Dokumentes
  Call doc.Save(True, False)
  Set doc = collection.GetNextDocument(doc)
Wend   


Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!

Server: 6.5.x; 7.0.x; 8.5.1 auf Win2000/Win2003 (R2) 32/64bit
Clients: 6.5.x bis 8.5.1 dt. und engl. auf W2K und WinXP
willi butz
Frischling
*
Offline Offline

Beiträge: 4


« Antworten #2 am: 18.12.09 - 13:30:40 »

Hallo Axel,

danke für deine schnelle Antwort.
Ich habe das Script mal angepaßt, es klappt aber nicht richtig.
Es schreibt nach wie vor nur in ein Dokument.
Gruß Willi
Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2271


« Antworten #3 am: 18.12.09 - 13:36:00 »

Hallo,

Kannst Du auch mal Deinen "neuen" Code posten?


Andreas
Gespeichert
willi butz
Frischling
*
Offline Offline

Beiträge: 4


« Antworten #4 am: 18.12.09 - 13:41:04 »


Das wäre die Änderung

Sub Initialize   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim collection As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim user2 As String
   Dim user3 As String
   Dim zeit As Variant
   Dim namen As String
   Dim rtitem As Variant
   user2 = "Überfällig seit "
   zeit = Now   
   Set db = session.CurrentDatabase   
   Set collection = db.UnprocessedDocuments   
   If collection.Count = 0 Then Exit Sub   
   Set doc = collection.GetFirstDocument
   While Not (doc Is Nothing)
  'Hier werden die Felder gefüllt
      doc.zusammen = user2
  'Speichern des Dokumentes
      Call doc.Save(True, False)
      Set doc = collection.GetNextDocument(doc)
   Wend   
End Sub
Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2271


« Antworten #5 am: 18.12.09 - 13:45:00 »

Und aufgerufen wird das ganze aus der Ansicht heraus und es sind auch die betreffenden Dokumente in der Ansicht ausgewaehlt.
(Haken vor dem betreffenden Dokument)

Andreas
Gespeichert
willi butz
Frischling
*
Offline Offline

Beiträge: 4


« Antworten #6 am: 18.12.09 - 13:45:52 »

Ja genau.
Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2271


« Antworten #7 am: 18.12.09 - 13:52:58 »

Prinzipiell sollte dieser Code aber funktionieren.

Code:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim user2 As String
user2 = "Überfällig seit "
  
Set db = session.CurrentDatabase

Set collection = db.UnprocessedDocuments
If collection.Count = 0 Then Exit Sub
Set doc = col.GetFirstDocument
Do While Not (doc Is Nothing)

    'Hier werden die Felder gefüllt
    doc.zusammen = user2

    'Speichern des Dokumentes
    Call doc.Save(True, False)
    Set doc = col.GetNextDocument(doc)

Loop  


Andreas
« Letzte Änderung: 18.12.09 - 13:55:03 von ascabg » Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2271


« Antworten #8 am: 18.12.09 - 14:00:16 »

Alternativ muesste auch dieses funktionieren, aber ich weiss momentan nicht absolut sicher, ob es die genannte Methode auch schon inder Version 5 gab.

Code:
Dim session As New NotesSession
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim user2 As String
user2 = "Überfällig seit "
  
Set db = session.CurrentDatabase

Set collection = db.UnprocessedDocuments
If collection.Count = 0 Then Exit Sub
Call col.StampAll("zusammen", user2)

Andreas
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19053



« Antworten #9 am: 18.12.09 - 14:04:17 »

StampAll gab es schon seit R4, Andreas  Wink

Bernhard
Gespeichert
Thomas Schulte
@Notes Preisträger
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 4176


Ich glaub mich tritt ein Pferd


WWW
« Antworten #10 am: 19.01.10 - 08:18:04 »

Und warum so kompliziert.
ZusammenNeu := "-> Überfällig seit " & @text(Zeit33) & " Tagen. Info am " & @text(@now) & " (" & @implode(Leser99;", ") & ")";
FIELD Zusammen := @trim(Zusammen : ZusammenNeu);

Formelagent ....
Gespeichert

Thomas Schulte

Lotus Domino V7.0.2/V6.5.3 Server + Clients, Server OS Linux, Win2000/2003, Clients 2000/XP Linux
PCLP R4, R5
Websphere Application Server, Quickplace, Sametime

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig