今回は私が最近知った、Notesの印刷不可の制御についての話題です。
フォームのプロパティでその設定を行うことができますが、そのフォームを使って保存した文書には $KeepPrivate というアイテムにテキスト値の"1"がセットされています。
こうなった文書は権限にかかわらず印刷できなくなります。
さて、この値を"0"(または"")にすると、どうなるかご存知でしょうか?
そうです、印刷できるのです。
何を当たり前のことを…と思ったそこのあなた!
話はこれからですよ!
この印刷させない設定は、ACL(アクセス制御リスト)のエントリでもできます。
ACLエントリで「文書を複製またはコピー」にチェックを付けると、そのエントリに該当する人は印刷できますが、チェックを外したエントリに該当する人は印刷できません。
ところが、ACLで「文書を複製またはコピー」のチェックを外したエントリに該当する人が、$KeepPrivate に"0"(または"") をセットした文書を印刷できる事を最近知りました。注)転送はできませんでした
実はこれ、8.5.1で修正され、仕様が変わってしまったとのこと。
では、ACLで「文書を複製またはコピー」のチェックを外している人が、文書を印刷できなくするにはどうするか。
$KeepPrivate アイテムを削除します。
こうして当方のアプリケーションは想定した挙動をしてくれるようになったのでした。
※Notes 9.0.1 Standard版で確認
へ~、いい事を聞いた!
返信削除ReplaceItemValue じゃなくて RemoveItem に替えなきゃ。
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
If doc.GetItemValue("$KeepPrivate")(0) = "1" Then
Call doc.ReplaceItemValue("$KeepPrivate", "0")
Call doc.Save(False, False)
End If