前回の記事では NotesUIWorkspace クラスの DialogBox メソッドを紹介しました。このメソッドでは @DialogBox とは違いダイアログボックスに表示する文書をしてする引数が存在します。今回は、この引数を使った事例を紹介ます。
flag = notesUIWorkspace.DialogBox( form$ , [autoHorzFit] , [autoVertFit] , [noCancel] , [noNewFields] , [noFieldUpdate] , [readOnly] , [title$] , [notesDocument] , [sizeToTable] , [noOkCancel] , [okCancelAtBottom] ) |
ヘルプ機能
ノーツの[ヘルプ]メニューから[アプリケーションの使い方]を選択するとそのアプリのヘルプを表示する機能があります。表示するコンテンツはデザイナーで記述する上、アプリで 1 つしか記述できません。これでは自由度がありませんね。ビューやフォームなどの機能ごとにヘルプが表示でき、アプリの運用部門がコンテンツを作成できるようにしておけばよりタイムリーなヘルプとなります。
DialogBox メソッドを使用すれば、このような機能が作成できます。
例えば、”はじめに” という文書を表示する[ヘルプ]ボタンは、次のようなコードとなります。
Sub Click(Source As Button) Dim nuiw As New NotesUIWorkspace Dim ndHelp As NotesDocument ' キーワードに一致したヘルプ文書を取得 Set ndHelp = GetHelpDoc("はじめに") ' 取得したヘルプ文書をダイアログで表示 Call nuiw.DialogBox(ndHelp.Form(0), , , True, , , True, ndHelp.Title(0), ndHelp, , , True) End Sub |
GetHelpDoc は引数に指定したヘルプ文書を取得する関数をイメージしています(関数の中身やヘルプ文書のフォームは主題ではないので割愛)。
メソッドの引数にはこれまで使っていないものが含まれますので、設定理由とともにすべてを列挙します。
1 | form$ | フォーム名は文書のままとする |
2 | autoHorzFit |
省略 表やレイアウト領域に合わせせない |
3 | autoVertFit | |
4 | noCancel | キャンセルボタン不要なので True |
5 | noNewFields | 省略 |
6 | noFieldUpdate | |
7 | readOnly | 編集する必要はないので True |
8 | title$ | ヘルプ文書のTitle フィールドを設定 |
9 | notesDocument | ヘルプ文書を指定 |
10 | sizeToTable | 省略 |
11 | noOkCancel | |
12 | okCancelAtBottom | ボタンを下に表示したいので True |
ボタンをクリックすると[OK]ボタンだけが下部に表示されたダイアログボックスが表示されます。レイアウト領域や表に合わせない設定の場合、ウィンドウサイズは、画面の解像度から適当に判断されるようです。
検索条件の入力
Excel 帳票や CSV ファイルに出力する際、対象データを限定したいことがあります。このような機能の作成にも DialogBox メソッドが使えます。
まず、ダイアログ用のフォームを作成します。
ビューのアクションボタンにこのダイアログを利用した帳票出力機能を作成します。サンプルコードは次の通りです(帳票出力する関数 ExportList は本題ではないので割愛)。
Sub Click(Source As Button) Dim ns As New NotesSession Dim ndb As NotesDatabase Dim nd As NotesDocument Dim nuiw As New NotesUIWorkspace Dim vFrom As Variant '期間(開始) Dim vTo As Variant '期間(終了) Dim sArea As String 'エリア Dim vKeyword As Variant 'キーワード(リスト) Set ndb = ns.CurrentDatabase Set nd = ndb.CreateDocument If True = nuiw.DialogBox("dlgSearchCondition", True, True, , , , , "出力条件", nd) Then '入力した条件を取得 vFrom = nd.From(0) vTo = nd.To(0) sArea = nd.Area(0) vKeyword = nd.Keyword 'ここだけリスト値 '帳票出力 Call ExportList(vFrom, vTo, sArea, vKeyword) End If End Sub |
ポイントは新規作成した文書を使用している点です。ダイアログボックスで入力された値は、この新規文書内のフィールドとして返ってきます。それを取得することで、入力値を取得しています。
なお、帳票出力後はそのまま処理を終了しています。新規作成された文書は、保存していないので、プログラムの終了と同時に消滅することになります。
0 件のコメント:
コメントを投稿