Für das ist ein Forum da, ich hab heute gelernt, wie man Objekte zwischen View und Form austauscht, was ich bis jetzt für unmöglich hielt
http://atnotes.de/index.php/topic,53263.0.html (wenngleich ich das auch für einen sehr übelen Hack halte
)
Zum Kopieren von Items noch ein paar Worte:
MustCopy entscheidet pro Item ob es kopiert werden soll.
Erster (falscher) Ansatz
dim item as NotesItem
forall vItem in doc1.Items
set item = vItem ' typisieren
if mustcopy(item.name) then doc2.copyItem(item, "")
end forall
Das kracht aber unter bestimmten Konstellationen ($File Items, Mime Items etc)
Weitaus besserer Ansatz:
dim item as NotesItem
set doc2 = new NotesDocumen(db)
call doc1.copyAllItems(doc2, false) ' da doc2 leer ist, sollte man replace=false setzen, da dies dann etwas schneller ist
forall vItem in doc2.Items
set item = vItem ' typisieren
if not mustcopy(item.name) then call item.remove() ' alle nichtbenötigten Items löschen
end forall
call doc2.save(false,false)
Will man Dokumente updaten ohne dass man vorhandene Felder behält, so braucht man 3 Dokumente:
Quelldokument, TempDokument, ZielDokument
1. Quelldokument in Tempdokument kopieren (Tempdoc wird nie gespeichert)
2. aus Tempdokument alle nicht benötigten Items entfernen
3. Tempdokument in Zieldokument kopieren und speichern (hier replace=true setzen)
Damit sollte sich auch ein $updatedBy-Problem lösen lassen (und wenn ich so überlege, ist dies evtl sogar noch sauberer, als mit dem saveToDisk-Flag)
Gruß
Roland