スポンサーサイト
保存前に必ず入力チェックして、保存して閉じる(@関数)
トラックバック先(一つ前の記事)の続きとして、
今度は、項目の入力チェックを行った後、
「保存して閉じる」を行うようなものを書きます。
ちなみに、タイトルに「@関数」って書きましたが、
「保存して閉じる」処理部分は@関数で書きますが、
入力チェック部分については、@式だと見た目が嫌いなので、
LotusScriptで書きます(笑)
まず、「保存して閉じる」ボタンの内容は、下記の通り書きます。
これに関しては、この次の入力チェック箇所に続きますので、とりあえず。
で、入力チェックは、フォームの「QuerySave」内に記載します。
※QuerySaveの引数忘れました・・・
勝手に入ってるので、そのままそっとしておいてください。。。
こんな感じで書いて、2つを組み合わせると、
入力チェックで引っかかると保存されないし、
問題なければ保存されて画面が閉じることになります。
また、入力チェックをボタンの中でやってもいいんですが、
この場合、Notesメニュー内の「保存」ボタンや、[Ctrl]+[S]の場合は
スルーして保存されてしまうため、個人的に嫌いです(笑)
今度は、項目の入力チェックを行った後、
「保存して閉じる」を行うようなものを書きます。
ちなみに、タイトルに「@関数」って書きましたが、
「保存して閉じる」処理部分は@関数で書きますが、
入力チェック部分については、@式だと見た目が嫌いなので、
LotusScriptで書きます(笑)
まず、「保存して閉じる」ボタンの内容は、下記の通り書きます。
**************************************************
@If(@Command([FileSave]);
@Command([FileCloseWindow]);
"")
**************************************************
これに関しては、この次の入力チェック箇所に続きますので、とりあえず。
で、入力チェックは、フォームの「QuerySave」内に記載します。
※QuerySaveの引数忘れました・・・
勝手に入ってるので、そのままそっとしておいてください。。。
**************************************************
Sub QuerySave(Source As NotesUIDocument, Continue As Variant)
Continue = False 'あらかじめセットしておく
Dim doc As NotesDocument
Dim FieldName As String
Set doc = Source.Document
FieldName = "フィールド名"
InputAreaName = "入力エリア名"
If doc.GetItemValue(FieldName)(0) <> "" Then
Messagebox "値を入力してください。:" & InputAreaName
Exit Sub
End If
Continue = True
End Sub
**************************************************
こんな感じで書いて、2つを組み合わせると、
入力チェックで引っかかると保存されないし、
問題なければ保存されて画面が閉じることになります。
また、入力チェックをボタンの中でやってもいいんですが、
この場合、Notesメニュー内の「保存」ボタンや、[Ctrl]+[S]の場合は
スルーして保存されてしまうため、個人的に嫌いです(笑)