tarのブログるっ

メガネ男子のtarが書くブログです。

ファイルの添付を1つだけ許可する(その2)

ノーツアプリを開発する際に(これは私が思っているだけなのかもしれませんが)、ある程度複雑な処理を行わせる場合、@式言語を使うより、LotusScriptの方が効率が良いように感じます。LotusScriptならデバッグ機能でそれなりにチェックできますからね。

ゆえに、メインはLotusScriptで開発したいのですが、今回紹介する手法は@式言語でなければ実現できないような機能があるため、@式言語とLotusScriptを融合させたロジックを用いました。

◆ユーザーが添付する本体フォームの作成

それでは前回から引き続き、実際の設計を順番に説明していきます。

途中で説明を入れて行くため、完成ロジック以外にサンプルロジックを紹介しています。サンプルロジックでは、出来るだけ分かりやすく説明したいと考え、最小限の記述としました。最終的には、完成ロジックも記載する予定ですので、ご了承ください。

まず、ユーザーが添付するフォームを作成し、以下フィールドを用意します。

処理フィールド番号・・・テキスト(作成時の計算結果)

添付ファイルパス・・・テキスト(作成時の計算結果)

attach1・・・テキスト(作成時の計算結果)

ファイル名1・・・テキスト(作成時の計算結果)

添付1・・・リッチテキスト(編集可能)

次にフォームにホットスポットボタンを作成し、以下の式を記述してみましょう。

---サンプル---

1:@SetField( "処理フィールド番号" ; "1" );

2:@SetField( "添付ファイルパス" ; "" );

3:@Command( [RunAgent] ; "(添付)" );

4:

5:strFilePath := 添付ファイルパス;

6:@Prompt( [Ok] ; "添付ファイルパスの値" ; strFilePath )

---ここまで---

ここで出てくる”RunAgent”はノーツ6から新しく追加されたものです。

従来まで、式でエージェントを実行するコマンドは”ToolsRunMacro”でしたが、これは、式内の他の@関数がすべて実行された後で実行されます。@PostedCommandで実行した場合も、最後に実行されます。

つまり、上記の例のように”RunAgent”で実行したエージェントで「添付ファイルパス」フィールドが"c:\abc.txt"となった場合、6行目のプロンプトでは"c:\abc.txt"が表示されます。

仮に3行目が”ToolsRunMacro”だった場合、6行目の処理後にエージェントが実行されるので、プロンプトはブランクが表示されます。

また、”RunAgent”や”ToolsRunMacro”を用いることにより、呼び出すエージェントにLotusScriptで記述されたロジックを用いれば、@式言語とLotusScriptを融合させたロジックが作成できます。

それでは、次回は呼び出すエージェントのロジックについて紹介しますね。

  • このエントリーをはてなブックマークに追加