Domino 9 und frühere Versionen > ND6: Entwicklung
Datenübertragung zwischen Dokumenten
Andreas Huhn:
Hab erst gemerkt daß das gewünschte Feld nicht angepasst wird. Allerdings wird die eingebaute messagebox auch nicht ausgeworfen.
Vorgehen ist folgendes:
Markiere in der Ansicht eine Child-Zeile
STRG+C
Markiere eine andere Parent-Zeile
STRG+V
Das müsste doch das PostPaste-Event auslösen, oder?
--- Code: ---Sub Postpaste(Source As Notesuiview)
Dim docCol As NotesDocumentCollection
Dim responseCol As NotesDocumentCollection
Dim doc As NotesDocument
'eingefügtes Dokument(0) in Collection aufnehmen
Set docCol = Source.Documents
Set doc = docCol.GetFirstDocument 'Auf erstes Dokument in der Collection zugreifen
While Not (doc Is Nothing)
'alle Antwortdocs des Backend-Docs werden in die Collection aufgenommen
Set dc = doc.Responses
'Setze alle Felder der Collection, gespeichert wird automatisch
Call dc.StampAll( "ProjectNo" , doc.ProjectNo(0) )
Messagebox "test"
Set doc = docCol.GetNextDocument(doc) 'auf nächstes Dokument zugreifen
Wend
End Sub
--- Ende Code ---
Axel:
Hi,
ich hab's mal getestet. Bei mir wird der PostEvent ausgelöst. Warum's bei dir nicht geht kann ich im moment nicht nachvollziehen.
Aber..., trotzdem kannst du den Code so nicht nutzen. Denn die Collection mit Source.Documents enthält die eingefügten Dokument, d.h. die Antwortdokumente und da wirst du mit der Abfrage mit Responses Pech haben.
Eine mögliche Lösung wäre das Abfrage der ParentDocumentUNID des eingefügten Dokumentes. Damit kannst du auf das Hauptdokument zugreifen und die Felder entsprechend abgleichen.
Axel
Andreas Huhn:
Jetzt werd ich erstmal testen warum der Event nicht anspringt.
Danke aber schonmal!
Andreas Huhn:
Hab jetzt noch mal rumprobiert und obwohl ich weder was an den Einstellungen noch am Code geändert hab springt der Event jetzt plötzlich an.
--- Zitat ---Eine mögliche Lösung wäre das Abfrage der ParentDocumentUNID des eingefügten Dokumentes. Damit kannst du auf das Hauptdokument zugreifen und die Felder entsprechend abgleichen.
--- Ende Zitat ---
Also mit der ParentDocumentUNID property und der GetDocumentByUNID Mehtode oder?
Set docCol = Source.Documents
Set doc = docCol.GetFirstDocument
Set docUnid = doc.ParentDocumentUNID
Aber wie kann ich dann den Abgleich machen?
Axel:
Hi,
in dem Fall musst du alle in Frage kommenden Felder einzeln angeben.
Set docUnid = doc.ParentDocumentUNID
...
docUnid.Feldname = doc.Feldname
...
Call docUnid.Save(True, False)
...
Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln