Lotus Notes:如何检查保存的文档是否已被修改

Lotus Notes: how can i check if saved document has been modified

在 lotus notes 6.5 中,如何检查文档字段是否与以前不同?

现在我在 Queryopen 中放置了一些代码,用一些源文档值填充字段“changes”,在 querysave 中我检查我在 queryopen 期间是否保存了值与源文档中的字段不同。如果他们改变了我必须更新一些其他文件,在其他情况下我不需要更新任何东西。

还有其他更简单的解决方案吗?

通过 QuerySave 中的视图查找获取相同的文档。不要尝试通过 db.getdocumentbyunid 获取相同的文档(因为它会从已经修改过的内存中读取文档)(参见下面的示例)

dim s as new notessession
dim db as notesdatabase
dim view as notesview
dim samedoc as notesdocument
set db = s.currentdatabase
set view = db.getview('lookupview')

' that is how you can get unsaved document from database (but not the one you already updated in QueryOpen event)
set samedoc = view.getdocumentbykey(key, true)

' samedoc - untouched one, form database;
' source - updated document
msgbox samedoc.keyitem(0) ' original value
msgbox source.document.keyitem(0) ' QueryOpen's value

如果它不起作用,请告诉我。

并且您可能还希望 - 在 Notes 6.5 中应该是可能的 - 在表单 'Merge/NoConflict' 或 'Do Not Create Conflicts' 上使用复制冲突设置,如果对您可行的话。