カスタマサポートのナレッジを眺めていたところ、次のようなタイトルのナレッジを見つけました。
特定のメールを開くと、編集モードで開きます 特定の受信メールが編集モードで開きメールに対し返信や転送ができない
この文書には次のようにあります。
「$AutoEditMode」フィールドがメールに存在する場合、受信メール文書を開いたときに編集モードで表示されます。
私が気になったのは、メール以外のデータベースではどうなのかという点です。
メールではないデータベースに作成したエージェントに次のコードを書いて実行し、新規に作成した文書をビュー上でダブルクリックして開いてみたところ、編集モードで開きました。
Sub Initialize Dim ss As New NotesSession Dim doc As NotesDocument Set doc = New NotesDocument(ss.Currentdatabase) doc.Subject = "sample document" doc.Replaceitemvalue "$AutoEditMode", "1" doc.save True, false End Sub
$AutoEditMode に "1" ではなく "" をセットすると、表示モードで開きました。
実はこれと似たようなことは、フォームのプロパティ「自動的に編集モードにする」を有効にする(チェックを付ける)ことでも実装できます。
そして「自動的に編集モードにする」を有効にしたフォームで文書を作成しても $AutoEditMode というアイテムは自動で作成されるわけではありません。
また「自動的に編集モードにする」を有効にしたフォームの場合、$AutoEditMode に "" が設定されていても編集モードで開きました。つまりフォームのプロパティが優先されたということです。
「自動的に編集モードにする」を無効にしたフォームで文書を開いたとき、$AutoEditMode の値によって編集モードと表示モードを切り替えるといった用途で使えそうです。
たとえばアンケートDBでは、アンケートに回答の途中で保存すると、次に開けば編集モードになり、最後まで回答して保存すると次からは表示モードで開く、といったことをしたい場合があります。
このように文書の開くモードを条件によって設定するといったことはフォームのイベントへ LotusScript をゴリゴリ書いて実装することもできます。しかしながら $AutoEditMode アイテムを使ったほうが、次のような関数式でより簡単に実装できそうですね。
FIELD $AutoEditMode := "1";
【2020/1/19 追記】
第2の方法:プログラムで実装しますが、例えばフォームのイベント QueryOpen または PostOpen へ次のように記述すれば、常に編集モードで開きます。
Source.EditMode = True

0 件のコメント:
コメントを投稿