2017年もついに終わりを迎えますね。
今年は皆さんにとってどんな一年だったでしょうか?
私は後半、自信を取り巻く環境が大きく変わりました。まだ、その変化に自分自身が付いていけてない部分がありますが、年が明けたらそうも言ってられないのでなんとか気持ちを切り替えていこうかと思います。
さて、今年最後の記事は、
IBM Verse ExtensibilityにしようかXPagesにしようか、Watson Work Spaceにしようか等々色々迷いましたが、
NotesエンジニアはまだまだLotusScriptが好きだろうという事で
LotusScriptでのイベントの確認をやってみます。
何気に書いてなかったんですね。
ただ、普通にQueryOpenとかQueryCloseとかについて書いても面白くないので、
今回はフィールドのイベントであるOnBlurとOnChangeについて検証してみます。
いずれのイベントも元々はWebで利用するためのものです(下図参照)が、
![]() |
OnBlurイベントのデフォルト設定 |
では、このOnBlurとOnChangeはどういったイベントなのかを見ていきましょう。
Designerヘルプによると、
OnBlurは
編集モードでカーソルがフィールドから抜け出たときに発生します。
注: このイベントは R6 で新しく追加されました。
とあります。
あれ?フィールドから抜け出たときのイベントなら「Exiting」があったよね?と思う方もいることでしょう。
そこでExitingについてのヘルプを見てみると、
編集モードでカーソルがフィールドから抜け出たときに発生します。
注: Release 6 以降では、OnBlur を使用することをお勧めします。
とあります。
うん、やはり同じ意味のイベントですね。
ですが、R6以降はOnBlurを使ってね。とあります。
R5以前からIBM Notes/Dominoを利用している方で、すでにR6以降にバージョンアップした方は修正するようにしましょう。
OnChangeイベントの方はどうでしょう?
編集モードでフィールドを変更したときに発生します。
注: このイベントは R6 で新しく追加されました。
このイベントは、フィールドにフォーカスがあたっている間に値が変更され、その後フィールドがフォーカスを失った場合に発生します。
とあります。
つまり、OnBlurと同時期に発生するイベントですが、フィールドの値が変更されていないとイベントは発生しないという事になります。
では、フィールドの値が変更されるとはどういったことを意味するのでしょうか?
テキストフィールド、数値フィールド、日付フィールド、チェックボックスフィールド等のOnBlurイベント、OnChangeイベントに
Sub Onblur(Source As Field) Msgbox "<フィールド名> <イベント名>", 0 + 64, "イベントテスト" End Sub
といった形でLotusScriptを記述してみました。
すると、
ただ単にフィールドをクリックして、別のフィールドに移動した場合、
OnBlurのイベントが実行されて、メッセージボックスが表示されました。
![]() |
フィールド間を移動しただけの時 |
続いて、フィールドの値を変更してから別のフィールドに移動してみたところ、
OnBlurイベントが発生してメッセージボックスが表示された後に、OnChangeイベントが発生して対応するメッセージが表示されました。
![]() |
フィールドの値を変更してから別のフィールドに移動した時 |
フィールド間の移動は、マウスクリックでもいいですし、キーボードでTabキーを押したときでも反応します。入力デバイスを意識しなくていいのは助かりますね。
また、チェックボックスフィールドやラジオボタンフィールドで選択肢を変更しても反応するし、 テキストフィールドで文字列を入力してもOnChangeイベントが反応してくれるのも嬉しいポイントです。
こういったイベントはWebでは当たり前に行えているのですが、LotusScriptだとできないのかな?と思い込んでいた人もいるのではないかと思います。
まだまだLotusScriptは使ってない機能が多数あると思いますので、是非探してみてください。
きっと今あるアプリケーションをレベルアップできると思います。
それでは今年はこの辺で。
良いお年を・・・
Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→
