文書の背景色は動的に変更できることがIBMのWEBサイトに掲載があります。
文書の背景色を動的に変更する方法
ただ、こうやって背景色を変更することが後のバージョンでもサポートされている、ということではないことに注意してください。
早速試してみました。
次のサンプルでは、チェックボックスにチェックを付けて保存した文書を開くと背景はグレーになります。
チェックがない場合、背景は白になります。
フォームには2つのフィールドを追加します。
フィールド「Color」...チェックボックス、編集可能
キーワードには「選択肢を入力」として次の1行を設定します
グレー表示
フィールド「$PaperColor」...数値、計算結果
値として次の式を設定します
@If(Color="グレー表示"; 15; 1)
※ $PaperColor へ設定する数値については以前に投稿したエントリが参考になると思います。
R5以降では自動で作成される $PaperColorEx を削除するため、フォームのイベント Postsave へ次のスクリプトを記述します。
Sub Postsave(Source As Notesuidocument) Dim doc As NotesDocument Set doc = Source.Document If doc.HasItem( "$PaperColorEx" ) Then Call doc.RemoveItem( "$PaperColorEx" ) Call doc.Save( True, True ) End If End Sub
これで完成です。なかなかいい感じですね。
もしフォームに $PaperColor フィールドを作りたくない場合、 上の Postsave イベントのコードを下の様に変更することで設定できました。
Sub Postsave(Source As Notesuidocument) Dim doc As NotesDocument Dim color% Set doc = Source.Document If doc.Color(0) = "グレー表示" Then color = 15 Else color= 1 End If Call doc.ReplaceItemValue("$PaperColor", color) If doc.HasItem( "$PaperColorEx" ) Then Call doc.RemoveItem( "$PaperColorEx" ) End If Call doc.Save( True, True ) End Sub※QuerySave で$PaperColor アイテムの値を置換しても、保存したときに文書に設定されていた背景色の値に置き換わってしまうようです...orz
0 件のコメント:
コメントを投稿