複合アプリケーション - 設計と管理


プロパティを使用する Lotus Notes アクションを定義する
この作業では、IBM(R) Lotus Notes(R) フォームにアクションを追加します。後の作業でアセンブルして関連付ける複合アプリケーション内で、このアクションは、別のコンポーネントによって発行されるプロパティを使用します。

LotusScript の新しいクラス、メソッド、プロパティについて詳しくは、「NSF コンポーネントを構築する」を参照してください。

この作業は次の手順で行います。


次の手順を実行して、Lotus Notes フォームにアクションを追加します。

1 IBM(R) Lotus Domino(R) Designer 8 が実行されていなければ起動して、「MyDiscussion.nsf」を開きます。


2 必要ならば、左側の設計ペインで [フォーム] をクリックして、[フォーム] リストに切り替えます。

3 [DocByCategoryForm] フォームをクリックして [Enter] キーを押し、設計モードで開きます。


4 [作成] - [アクション] - [アクション...] をクリックして、このフォームに新規アクションを追加します。右上にアクションペインが開き、新規アクションの [プロパティ] ボックスが表示されます。

5 [プロパティ] ボックスの最初のタブの [名前] フィールドに「TutorialAction1」と入力します。

6 [プロパティ] ボックスの最後のタブで、下部の [複合設定アクション名] フィールドリストから [TutorialAction1] をクリックします。

7 [オブジェクトのプロパティ] インフォボックスを閉じます。

8 右上のアクションペインで、新規に作成したアクション [TutorialAction1] をクリックします。

9 右下のプログラムペインで、[実行] 設定として [クライアント] オプションと [LotusScript] オプションを選択します。

10 クリックのサブルーチンに次の LotusScript コードを入力します。


Sub Click(Source As Button)

Dim s As New Notessession

Dim db As NotesDatabase

Set db = s.currentdatabase

'このフォームが存在するデータベースへのハンドル

Dim ws As New NotesUIWorkspace

Dim uidb As NotesUIDatabase

Dim uidoc As NotesUIDocument
'ハンドルエラー 4719、プロパティブローカーのコンテキストなしにスクリプトが実行された場合に返されます

On Error 4719 Goto err4719
'プロパティブローカーの新規コード

Dim pb As NotesPropertyBroker

Set pb = s.getPropertyBroker()
''新規 NotesPropertyBroker オブジェクトの作成

Dim pbInputProperty As NotesProperty

Dim pbcontext As Variant

pbContext = pb.InputPropertyContext 'NotesProperty オブジェクトの配列

Set pbInputProperty = pbContext(0) '最初の 'NotesProperty オブジェクトへのハンドル

Dim InputPropertyName As String

Dim Namespace As String

InputPropertyName = pbInputProperty.Name

''NotesProperty オブジェクトの名前

NameSpace = pbInputProperty.NameSpace
'NotesProperty オブジェクトの
'ネームスペース

Print "InputPropertyName = " & InputPropertyName '&" NameSpace = " & NameSpace

Dim pbvalue As Variant

pbValue = pb.GetPropertyValue(InputPropertyName) 'NotesProperty の値の配列

cName$ = pbValue(0) 'NotesProperty オブジェクトの値の配列の最初の値

SkipPropertyBroker:

If cName$ = "" Then

cName$ = Inputbox("Filter", cName$)

If cname$ = "" Then

Exit Sub

End If

End If

' Messagebox cName$

Set UIdoc = ws.CurrentDocument

Call uidoc.FieldSetText("CategorytoDisplay",cName$)

Call uidoc.Refresh

Exit Sub

err4719:

Print "Error" & Str(Err) & ":" &Error$

Messagebox "error"

Resume skipPropertyBroker

End Sub

入力し終わったら、[ファイル] - [保存] をクリックして、フォームの変更内容を保存します。最後に [ファイル] - [閉じる] をクリックして、設計モードを終了します。

これで Lotus Notes フォームにアクションが追加されました。後でこの Lotus Notes フォームを複合アプリケーション内のコンポーネントとして使用する際に、コンポーネントは発行されたプロパティを使用して、LotusScript コードで定義されたアクションを実行できます。

関連項目