Notesってノーツと読むんだよ。

基本3

最終更新:

bottle

- view
メンバー限定 登録/ログイン
(このページは現在編集中。)

ノーツ・スクリプトはどこに記入すればいい?

実際、スクリプトを記入するに当たって、
どこに書けばいいのか悩む部分は多々あるかと。

Notes自体がイベント駆動型であるため、
どういうタイミングでどういうことをさせるのか?
をまず一番最初に明確にしないと、どこに書くかは決まりません。

①アクションボタンをクリックしたときに動くスクリプトを作成してみる

まぁ、一番使われるのは、各設計要素(フォームやビュー等)のアクションボタンですね。
まず例として、「A」というフォームを使って
スクリプトで動くアクションを作ってみることにしましょう。

Aというフォームを用意し、メニューバーの「作成」から「アクション」で
アクションボタンを作成します。
このとき、今作成した(無題)アクションを表示させるために、
メニューバー「表示」の「アクションペイン」にチェックを入れておきましょう。

アクションでスクリプトを記述する場所は
アクションボタン*1を@関数式で作成したことがある人なら、
なんとなくピーン。っとくるんでないでしょうか。

以下の図のように、実行のところで「式」となってるところを
「ロータススクリプト」に変更するだけです。


これによって、スクリプトエリア*2にSub Click ~ End Subが表記されますので、
以下の図のように、Sub ClickとEnd Subの行の間にスクリプトを入力できます。
(ここで記述しているprint文は(無題)のアクションボタンが押されたときに
ステータスバーに引数の文字列を表示します。)


上の図を見ると、スクリプトエリアの左側のインフォボックスには、
(無題)(アクション)の中に
  • (Options)
  • (Declarations)
  • Click
  • Objectexecute
  • Initialize
  • Terminate
と並んでいますが、Click以外の各項目にもスクリプトを記述できます
ただし、実行タイミングが違いますので、適切なところにスクリプトを入力する必要があります。
まぁアクションボタンは基本的にClick(ボタンが押された時)しか使いませんので、
他を覚える必要はないかと思います。
この3番目のClickは、先ほどの一行目のSub Click(Source As Button)のClickを指します。

ちなみに、ObjectexecuteやInitialize、Terminateをクリックすると
右側のスクリプトエリアの1行目がSub Objectexecuteなどに変わるのが分かると思います。

②アクションボタン以外のイベントによって動くスクリプトを作成してみる

文書を開くタイミング、編集するタイミング、ビューを閉じるタイミングなど
色々なタイミングがあります。
このタイミングが起きるとき・起きたときに自動的に動くスクリプトを作りたい場合
DBなら、リソース内のその他にある「Database Script」を開き
↓赤枠の部分に、
フォームなら↓赤枠の部分に、
ビューなら↓赤枠の部分に、
入力することで、作成ができます。

ここでの意味あいは、
Queryと名前がついているイベントは「その動作の前に実行されるもの」を、
Postと名前がついているイベントは「その動作の後に実行されるもの」を表します。
あとは、Query/Postのあとのopenなどは動作自体を表し、
DBのopenなら、そのDBを開くときのタイミング、
フォームのopenなら、そのフォームを使用した文書を開くタイミング、
ビューのopenイベントなら、ビューを開くタイミング。となります。
つまり、フォームのQuerysaveなら
そのフォームを使用した文書をセーブする前に実行する。となります。

各イベントについての説明はここでは省きますので、デザイナーヘルプ、
DB ⇒ NotesUIDatabaseクラス の イベント
フォーム ⇒ NotesUIDocumentクラス の イベント
ビュー ⇒ NotesUIViewクラス の イベント
の項をご参照ください。

目安箱バナー
注釈

*1 フォームにアクションボタンを作成するには、そのフォームを開き、メニューバーの「表示」→「アクションペイン」にチェックが入っている状態にし、R5なら「作成」→「アクション」、R7なら「作成」→「アクション」→「アクション」で作成ができます。

*2 各種の名称に関しては、R5の場合、デザイナーヘルプの「ドミノ デザイナーを探検する」を参照のこと