tarのブログるっ by @tarVolcano

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

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

前回から引き続き、今回は呼び出されるエージェントについて説明します。

一番最初に、全体の流れを説明しましたが、実はまだ1の段階を説明している最中です。というか、1の処理が一番密度が濃いので、どうしても説明に時間がかかってしまいますね。

2~4はものすごく説明がいいかげんになったりして(^^; いえいえ、出来る範囲で説明しますよ(笑)

◆LotusScriptにてファイルパス取得用エージェントの作成

前回も説明しましたが、@式言語で”RunAgent”等を用いてエージェントを呼び出せば、@式言語とLotusScriptを融合させたロジックが作成できます。

LotusScriptで開発したい願望があるので、ここからLotusScriptをメインにしていますが、@式言語に置き換えることも可能かもしれません。

それでは以下に、「(添付)」エージェントのロジックを紹介します。今回のロジックは基本的なものなので、あまり興味深くないかもしれませんね(笑)

---

1: Sub Initialize

2: Dim ws As New NotesUIWorkspace

3: Dim db As NotesDatabase

4: Dim doc As NotesDocument

5: Dim uidoc As NotesUIDocument

6: Dim dialog As NotesDocument

7:

8: Set uidoc = ws.CurrentDocument

9: Set doc = uidoc.Document

10: Set db = doc.ParentDatabase

11:

12: Set dialog = New NotesDocument(db)

13:

14: Call ws.DialogBox( "dlg添付選択" , True , True , True , False , False , False , "添付するファイルの選択" , dialog , True , True )

15:

16: strFieldNum$ = doc.処理フィールド番号(0)

17: strFilePath$ = dialog.ファイルパス(0)

18: If strFilePath$ = "" Then

19: Call doc.ReplaceItemValue( "添付ファイルパス" , "" )

20: Exit Sub

21: End If

22:

23: fileName$ = Dir$( strFilePath$ , 0 )

24: If fileName$ = "" Then

25: buttons = 0'0:[OK]/4:[はいorいいえ]

26: ico = 16'0:なし/16:ストップマークアイコン/64:インフォメーション

27: default = 0'0:1番目のボタン/256:2番目のボタン

28: mode = 0'0:アプリケーションモード

29: boxTitle = "添付ファイルの選択"

30: message = "指定されたファイルが見つかりませんでした。もう一度指定し直してください。"

31: Messagebox message , buttons + ico + default + mode , boxTitle

32: Call doc.ReplaceItemValue( "添付ファイルパス" , "" )

33: Exit Sub

34: End If

35:

36: Call doc.ReplaceItemValue( "添付ファイルパス" , strFilePath$ )

37: End Sub

---

ここでは、添付するファイルを選択する為に、14行目にてDialogBoxメソッドを使い、ダイアログ上でファイル選択のインターフェースを用意する手法をとります。

実は、ココで呼び出すダイアログのフォームに一工夫することにしました。簡単に思いつく方法はダイアログフォームにボタンを用意してWindowsのファイル選択ダイアログ(例えば@PromptのLOCALBROWSEキーワードを使用して)からファイルを選択させ、OKを押す手法があります。

この場合、ユーザーの動作は次のような手順になりますよね。

1.フォーム上で添付指示

2.表示されたダイアログフォームでファイル選択ダイアログの表示指示

3.ファイル選択ダイアログでファイル選択指示

4.ダイアログフォームで完了指示

なんとなく、ユーザーが指示(マウスをクリック)する回数が多いですね。そこで、14行目のDialogBoxメソッドを実行したら、上記3の選択指示が出来るようにしてみたいと思います。

と言った前振りを入れて、次回はこのダイアログフォームの紹介をします。

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