まずはベタですが、チェック対象のフィールドを追加したり外したりする add/removeItem() 関数。 例えば更新履歴のフィールドなど、removeItem("updateHistory") などと外しておくのがお勧めデス。
Sub addItem(doc As NotesDocument, itemName$)
Dim tmpItem As NotesItem
Set tmpItem = doc.getFirstItem(itemName$)
If Not(tmpItem Is Nothing) Then
Call tmpItem.CopyItemToDocument(Me.oldDoc, itemName$)
End If
End Sub
Sub removeItem(itemName$)
Call Me.oldDoc.removeItem(itemName$)
End Sub
続きましては、更新されたフィールドの以前の値を得るための getOldValue() 関数です。 あると意外と便利なのと、内部の仕組みをあるていど隠蔽するために実装してみたり。
Function getOldValue(itemName$) As String
Dim tmpItem As NotesItem
Set tmpItem = Me.oldDoc.getFirstItem(itemName$)
If Not(tmpItem Is Nothing) Then
getOldValue = tmpItem.Text
End If
End Function
そしてデバッグに便利な toString() 関数です。
Function toString() As String
toString = ""
If Me.diffDoc Is Nothing Then
Exit Function
End If
Forall item In Me.diffDoc.Items
toString = toString & item.Name & ": " &
Me.getOldValue(item.Name) & " -> " &
item.Text & Chr(10)
End Forall
End Function
とりあえずこれで最低限のコードはご紹介しました。 次回はお遊びコードを追加してみましょう。