2009年12月25日金曜日

文書の「閉じかた」には気をつけろ!

ドミノ懇談室のこのスレッドに関連して
返答文書を保存したあと、親文書の値を書き換えて、画面を閉じる、といったアクションボタンの式をテストしていた時のこと、

(アクションボタンへは次のように3行だけ記述されています)
@Command([FileSave]);
@SetDocField($Ref; "LastUpdated"; @Now);
@Command([FileCloseWindow])

上記の「画面を閉じる」部分を @Command([CloseWindow]) に書き換えて実行したところ、NSDを出力してNotesが強制終了されました。
(Notes 8.0.1 Basicで確認)

試しに @PostedCommand([CloseWindow]) に書き換えたところ、これは正常に終了します。

結果です。
× @Command([CloseWindow])
○ @PostedCommand([CloseWindow])

○ @Command([FileCloseWindow])


正常に動作するのは、どれも他の式がすべて評価された後に実行されるものです。
上記3パターンのうち @Command([CloseWindow]) だけがすぐに実行されます。

いずれにしても、式の一番最後に記述されているのに挙動が異なる場合もあるのですね。

0 件のコメント:

コメントを投稿