9 統合Excelワークブックへの対話性の追加
この章の内容は次のとおりです。
統合Excelワークブックへの対話性の追加について
アクション・セットなどの機能を使用し、実行時リボン・タブの構成や依存値リストの作成によって、統合ワークブックをエンド・ユーザーに対して対話形式にすることができます。
図9-1は、対話機能のいくつかを示します。
統合Excelワークブックに対話性を追加すると、エンド・ユーザーがワークブックでOracle ADFの機能を起動するアクション・セットを実行できるようになります。また、これらのアクション・セットの実行時に統合Excelワークブックでステータス・メッセージやアラート・メッセージ、エラー処理も提供されます。アクション・セットを起動するADFデスクトップ統合コンポーネントでのエンド・ユーザーの動作(ダブルクリック、クリック、選択)の他に、エンド・ユーザーが実行時にアクション・セットを起動するために使用する、ワークブックおよびワークシート・リボン・コマンドを構成できます。
統合Excelワークブックへの対話性の追加の追加機能
アクション・セットと実行時リボン・タブの他に、その他の機能を追加してワークブックを構成できます。次の各項では、使用可能なその他の機能について説明します。
-
Webページの表示: Excelワークブックと統合するFusion Webアプリケーションからページを表示できます。「Fusion WebアプリケーションからのWebページの表示」を参照してください。
-
依存値リスト: ADF値リスト・コンポーネントを、別の値リスト・コンポーネントによって値が決まる依存値リスト・コンポーネントとして構成できます。「統合Excelワークブックでの依存値リストの作成」を参照してください。
-
スタイル: 事前定義済のExcelのスタイルをいくつか使用して、フォーム・タイプ・コンポーネントの表示を構成できます。「スタイルの使用」を参照してください。
-
マクロ: マクロとExcel式を使用して、Fusion Webアプリケーションからダウンロードするデータ、またはFusion Webアプリケーションにアップロードするデータを管理します。「統合Excelワークブックでの計算済セルの使用」と「統合Excelワークブックでのマクロの使用」を参照してください。
アクション・セットの使用
アクション・セットは、特定の順序で実行される1つ以上のアクションからなる、順序付けされたリストです。アクションのタイプには次のようなものがあります。
-
ADFmAction
-
ComponentAction
-
WorksheetMethod
-
Confirmation
-
Dialog
アクション・セットは、エンド・ユーザーの動作(リボン・コマンドのクリックなど)またはExcelワークシート・イベントによって起動できます。エンド・ユーザーの動作によってアクション・セットが起動される場合、ADFコンポーネントのプロパティ・インスペクタのアクション・セットのプロパティ名には、必要な動作の名前が先頭に付きます。次のリストは、ADFデスクトップ統合がプロパティ・インスペクタで表示するプロパティ名と、アクション・セットを起動するユーザーの動作を示します。
-
DoubleClickActionSet
はADF入力テキストまたはADF出力テキスト・コンポーネント用で、エンド・ユーザーが関連のアクション・セットを起動するためにこれらのコンポーネントをダブルクリックするときに使用されます。 -
SelectActionSet
はワークシート・リボン・コマンド用で、エンド・ユーザーが関連のアクション・セットを起動するためにリボン・コマンドを選択したときに使用されます。 -
ActionSet
はワークシート・イベント用で、アクション・セットを起動するときに明示的なエンド・ユーザーの動作は必要ありません。
ADFコンポーネントやワークシート・リボン・コマンド、またはワークシート・イベントからアクションの編集ダイアログを起動して、アクション・セットを定義あるいは構成します。アクション・セットが起動するアクションを定義する他に、アクション・セットのAlert
プロパティを構成して、アクション・セットの起動の結果に対するフィードバックを提供できます。アクション・セットのStatusプロパティを構成して、定義したアクションをアクション・セットが実行する際に、エンド・ユーザーに進捗バーを表示します。「アクションの編集」ダイアログを開く方法の詳細は、「コレクション・エディタの使用」を参照してください。
ADFデスクトップ統合のSummitサンプル・アプリケーションには、使用されるアクション・セットの多くの例が用意されています。1つの例は、EditCustomers-DT.xlsxワークブックで実行時にUpload
というラベルの付くリボン・コマンドです。このリボン・コマンドには、ADF表コンポーネントのUpload
アクションを起動するアクション・セットが構成されています。図9-3は、設計モードでのアクションの編集ダイアログを示しています。
デフォルトでは、エンド・ユーザーはアクション・セットの実行中に別の統合Excelワークブックを開くことはできません。アクション・セットが長時間実行されることがわかっている場合は、そのアクション・セットを非ブロッキングにして、エンド・ユーザーが長時間実行するアクション・セットの完了を待機している間に他の作業を行えるようにします。
図9-3 EditCustomers-DT.xlsxワークブックのアップロード・リボン・コマンドのアクション・セット
ヒント:
アクションの編集ダイアログに追加するアクションごとに、「注釈」フィールドに説明を記述します。記述する説明は「メンバー」リスト・ビューに表示され、複数の項目を効率的に管理できます。
注意:
ADFデスクトップ統合は、 Membersリスト・ビューで指定した順にアクション・セット内のアクションを起動します。
アクション・セット内のメソッド・アクション・バインディングの起動方法
1つのアクション・セットで複数のメソッド・アクション・バインディングを起動できます。ページ定義ファイルは、Fusion Webアプリケーションと統合するワークシートで起動可能なアクション・バインディングを定義します。統合Excelワークブックのページ定義ファイルとアクション・バインディングの詳細は、「統合Excelワークブックのページ定義ファイルの使用」を参照してください。
「アクションの編集」ダイアログを使用して、起動するメソッド・アクション・バインディングを指定します。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
アクション・セットでメソッド・アクションを起動するには:
アクション・セット内のコンポーネント・アクションの起動方法
ADF表コンポーネントなどの一部のコンポーネントは、Fusion Webアプリケーションと統合するExcelワークシート間のデータ送信の管理に使用できるアクションを公開します。ADFデスクトップ統合コンポーネントで使用可能なアクションの詳細は、「ADFデスクトップ統合コンポーネントのプロパティとアクション」を参照してください。
アクション・セットのアクションの配列にコンポーネント・アクションを追加することで、1つ以上のコンポーネント・アクションを起動するアクション・セットを構成できます。たとえば、図9-5は、Summitサンプル・アプリケーションのEditCustomers-DT.xlsx
ワークブックに存在するADF表コンポーネントによって公開されるDownload
アクションを、そのワークブックの「ダウンロード」リボン・コマンドのSelectActionSet
アクション・セットによる起動に選択できる「コンポーネント・アクションの選択」ダイアログを示します。
図9-5 コンポーネント・メソッドの選択ダイアログ
注意:
コンポーネント・アクションを公開するコンポーネントが現在のワークシートに含まれない場合、「コンポーネント・アクションの選択」ダイアログは空の状態で表示されます。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
アクション・セットからコンポーネント・アクションを起動するには:
コンポーネント・アクションを起動するアクション・セットに関する必知事項
統合Excelワークブックでのアクション・セットの動作に関する次の情報に注意してください。
ログイン前のアクション・セットの起動
ADF表コンポーネントのDownload
アクションなど、一部のコンポーネント・アクションでは、Fusion Webアプリケーションへの接続を正常に完了する必要があります。このようなコンポーネント・アクションが含まれるアクション・セットをエンド・ユーザーが起動する場合、統合ExcelワークブックはFusion Webアプリケーションに接続しようと試み、必要があれば「Excelワークブック・ユーザーの認証」で説明されている認証プロセスを起動します。
アクション・セットの検証による正しいコンポーネント・アクションの起動
アクション・セットを作成する際は、ワークシートに複数のインスタンスのコンポーネントが含まれる場合、正しいコンポーネントのインスタンスからコンポーネント・アクションを起動するようにしてください。図9-6は、2つのインスタンスのADF表コンポーネントが表示される「コンポーネント・アクションの選択」ダイアログを示します。表A-1
に示すComponentIDプロパティの値を使用して、コンポーネント・アクションを起動するコンポーネントのインスタンスを正しく識別してください。
図9-6 「コンポーネント・アクションの選択」ダイアログ
ワークシート・イベントからアクション・セットを起動する方法
ADFデスクトップ統合には、ワークシート・イベントがいくつか用意されており、これはトリガーされるとアクション・セットを起動できます。次のワークシート・イベントはアクション・セットを起動できます。
-
Startup
-
Shutdown
Dialog
アクションのTarget
プロパティがTaskPane
に設定されている場合、このイベントからDialog
アクションを起動しないでください。 -
Activate
-
Deactivate
Events
ワークシート・プロパティによって参照されるイベントの配列(WorksheetEvent
リスト)に要素を追加します。イベントと、追加する要素の中でそれによって起動されるアクション・セットを指定します。Events
ワークシート・プロパティおよびアクション・セットを起動できるワークシート・イベントの詳細は、表A-20を参照してください。アクション・セットの詳細は、表A-15を参照してください。
「イベントの編集」ダイアログを使用して、ワークシート・イベントによって起動されるアクション・セットを指定します。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
ワークシート・イベントからアクション・セットを起動するには:
アクション・セットの実行中に進捗バーを表示する方法
アクション・セットでStatus
プロパティの値を指定することにより、アクション・セットの実行時にエンド・ユーザーに対してステータス・メッセージおよび進捗バーを表示できます。
アクション・セットのStatus
プロパティを使用しながら、進捗バーを使用して進行状況を視覚的に示すことができます。Status
プロパティのMode
属性により、実行時の進捗バーの外観を選択できます。メインの進捗バーと詳細進捗バーの、2種類の進捗バーが使用可能です。メインの進捗バーはアクション・セットのアクションを使用して進捗を示し、詳細進捗バーは現在のアクションの進捗を示します。
アクション・セットにStatus
プロパティを構成するアクション・セットにプロパティ・インスペクタを使用します。たとえば、実行時にリボン・コマンドで起動されるSelectActionSet
のStatus
プロパティを構成する場合は、リボン・コマンドの編集ダイアログを使用します。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
ステータス・メッセージを表示するには:
実行時の処理: アクション・セットによるステータス・メッセージの表示
アクション・セットが起動されると、Status
プロパティがステータス・メッセージを表示するように構成されていれば、ステータス・メッセージが表示されます。図9-9は、EditCustomers-DT.xlsx
ワークブックのUploadリボン・コマンドに構成されているアクション・セットが実行される際、実行時に表示されるステータス・メッセージを示しています。
実行時にMessage
プロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。Title
プロパティが空の場合、アクション・セット・コンテナ(リボン・コマンドなど)のラベルが使用されます。コンテナのラベルも空の場合、ADFデスクトップ統合により提供されたデフォルト値が使用されます。
進捗バーに関する必知事項
進捗バーに関する次の情報に気をつけてください。
-
アクション(
alert
、confirm
、dialog
またはupload options
など)がユーザーの入力を求めると、進捗バー・ウィンドウは自動的に非表示になります。 -
ADFmAction
などの一部のアクション・タイプは、詳細バーでの進捗の増分の表示をサポートしていません。たとえば、図9-10に、Mode
がBothBarsAlways
に設定されたCommit
アクションの進捗バーを示します。詳細バーは表示されていますが、進捗を示してはいないことに注意してください。 -
Automatic
モードで、アクション・セットに3つよりも少ないアクションしかない場合、ステータス・メッセージ・ダイアログには詳細な進捗バーのみが表示されます。アクション・セットに3つ以上のアクションがある場合、ダイアログにメイン・バーは必ず表示されますが、詳細な進捗バーは、アクション・セット内のいずれかのアクションが進捗の増分に対応している場合にのみ表示されます。どのアクションも進捗の増分に対応していない場合は、詳細バーは表示されません。 -
必要な場合、メインの進捗バーを表示せずに、詳細な進捗バーを表示することができます。このような構成は、問合せを実行した後にデータをダウンロードするといった、1つのすばやいアクションと1つの長いアクションを含むアクション・セットには有用な場合があります。
-
非常にすばやいアクション・セット(
Worksheet.DownSync
など)またはダイアログのみを表示するアクション・セットの場合、ベスト・プラクティスはステータス・メッセージを無効にすることです。
エンド・ユーザーがアクション・セットを実行しながらExcelの作業を続行できるようにする方法
長時間実行するアクション・セットによって、エンド・ユーザーが他の統合Excelワークブックやワークシートを使用できなくならないように、統合Excelワークブックを構成できます。
長時間実行するアクション・セット(100,000行のTable.Download
アクションが含まれるアクション・セットなど)を実行する統合Excelワークブックは、エンド・ユーザーがMicrosoft Excelを使用して他の統合Excelワークブックやワークシート、統合以外のExcelワークブックやワークシートにアクセスすることをブロックします。長時間実行するアクションを含むことがわかっているアクション・セットを、エンド・ユーザーがアクション・セットの完了を待っている間に、Excelを使用して他のワークブックやワークシートに引き続きアクセスできるように構成できます。これを行うには、アクション・セットのActionOptions.NonBlocking
プロパティをTrue
に設定します。デフォルト値は、False
です。
ActionOptions.NonBlocking
プロパティをTrue
に設定した場合は、「取消」ボタンがある進行状況ダイアログを表示して、エンド・ユーザーがアクション・セットを取り消せるようにすることも検討してください。「アクション・セットの実行中に進捗バーを表示する方法」を参照してください。
実行時の処理: エンド・ユーザーがアクション・セットを実行しながら作業を続行する方法
実行時には、統合ExcelワークシートがNonBlocking
プロパティをTrue
に設定したActionSet
を起動すると、ADFデスクトップ統合はバックグラウンド処理を開始します。
バックグラウンド操作で非ブロッキングのActionSet
が処理されている間に、エンド・ユーザーは次のような他の操作を実行できます。
-
ワークブックやワークシートの切替
-
統合Excelワークシートを含む他のワークシートのセルの編集
エンド・ユーザーは、バックグラウンド処理が完了するまで非ブロッキングのActionSet
を含む統合Excelワークシートの編集はできません。
エンド・ユーザーが、ADFデスクトップ統合対応Fusion Webアプリケーションとの通信が必要な別の操作を実行する場合、ADFデスクトップ統合はバックグラウンド処理が進行中であることを知らせる通知を送信します。たとえば、バックグラウンド処理の進行中にワークシートを保存しようとしたエンド・ユーザーには次の通知が表示されます。
バックグラウンド処理が完了すると、エンド・ユーザーはバックグラウンド処理を起動した統合Excelワークシートを再び使用できます。バックグラウンド処理が完了したときに、エンド・ユーザーが現在アクティブにしているワークシートが非ブロッキングのActionSet
ワークシートと異なる場合は、バックグラウンド処理が完了したことを示す通知メッセージが表示されます。
アクションの取消しに関する必知事項
アクション・セット内の各アクションは、中断不能、中断可能またはダイアログとして分類できます。
中断不能アクションはアトミックであり、操作中に取消しまたは中断できません。次のアクションは中断不能です。
-
ワークシート・アクション:
UpSync
、DownSync
-
ADFmAction
-
表アクション:
RowUpSync
、RowUpSyncNoFail
、RowDownSync
、ClearCachedRowAttributes
、FlagAllRows
、UnflagAllRows
、MarkAllRowsChanged
、MarkAllRowsUnchanged
、Initialize
中断不能アクションの実行中に「取消」ボタンがクリックされると、次の処理が行われます。
-
現在のアクションが完了します。
-
アクション・セットが中止され、失敗としては扱われません。
-
ActionSet.Alert
がスキップされます。 -
アクション・セットに対して構成されている成功または失敗アクションは実行されません。
-
ステータス・ビューア(開かれている場合)のワークシートのメッセージ・コンテンツは変更されません。「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」を参照してください。
中断可能アクションは、操作中に取り消すことができます。次の表アクションは中断可能です。
-
Upload
、UploadAllOrNothing
-
Download
、DownloadFlaggedRows
、DownloadForInsert
-
DeleteFlaggedRows
中断可能アクションの実行中に「取消」ボタンがクリックされると、次の処理が行われます。
-
現在の操作が完了せずに停止します。
-
表がクリーンアップされます。
-
Upload
アクション: 「取消」ボタンがクリックされる前に正常にアップロードされた行の場合は、「変更済」列セル・フラグがクリアされるかそのまま残され、CommitBatchActionID
アクションが実行されます。アップロード中に行が失敗した場合、「変更済」列セルは影響を受けず、エラー・ステータスが表示されます。アップロードされていない行の「変更済」列には変更済ステータスが引き続き表示され、「ステータス」列は変更されません。 -
UploadAllOrNothing
アクション:CommitBatchActionID
アクションは実行されません。すべての行の「変更済」列フラグは設定されたままになります。失敗した行ではエラー・メッセージが表示されます。正常にアップロードされた行には「ステータス」セルがあり、エラー行は移入されません。 -
Download
、DownloadForInsert
アクション: 「取消」ボタンがクリックされる前にダウンロードされた行はそのままの状態になり、削除されません。表は適宜サイズ変更されます。 -
DownloadFlaggedRows
アクション: 「取消」ボタンがクリックされる前にダウンロードされたフラグ付きの行は、フラグ・セルがクリアされます。残りのフラグ付きの行にはフラグ・ステータスが引き続き表示されます。 -
DeleteFlaggedRows
アクション: 「取消」ボタンがクリックされる前にサーバーで削除された行は、ワークシートから削除されます。残りのフラグ付きの行にはフラグ・ステータスが引き続き表示されます。
-
-
Table.FailureActionID
は実行されません。 -
アクション・セット内の残りのアクションはスキップされます。
-
ステータス・ビューアは、取消し前に処理された行のステータスを反映します。
ダイアログ・アクションでは、取消しまたは閉じることのできるモーダル・ダイアログが表示されます。アクション・セット・ステータス・メッセージ・ダイアログは、これらのいずれかのアクションの実行中は表示されません。次のアクションはダイアログ・タイプです。
-
Confirmation
-
Dialog
-
DisplayWorksheetErrors
、DisplayRowErrors
、DisplayTableErrors
エンド・ユーザーがアクション・セットを取り消すことができる「取消」ボタンを表示するには、「アクション・セットの実行中に進捗バーを表示する方法」で説明されているように、AllowCancel
プロパティをTrue
に設定する必要があります。エンド・ユーザーがアクション・セットを取り消すと、「取消」ボタンが無効になり、操作を取り消したことをユーザーに通知する警告メッセージが表示され、アクション・セットが中止されます。
ヒント:
アクション・セットの操作を取り消すには、エンド・ユーザーはキーボードのスペース・バーを押します。
アクション・セットの起動後にアラートを発信する方法
エンド・ユーザーに対して、アクション・セットの操作が正常に完了したか、または失敗したかを通知するアラート・メッセージを表示できます。たとえば、アクション・セットのすべてのアクションが成功したときや、少なくとも1つは失敗があった場合にメッセージを表示できます。この動作は、ActionSet.Alert
プロパティ・グループで構成します。非常にすばやく実行するが、対話形式のアクションのないアクション・セットには、アラート・メッセージを使用することを検討してください。このような場合は、ActionSet.Status
プロパティ・グループを無効にして、ActionSet.Alert
プロパティを有効にしてください。
注意:
エンド・ユーザーがアクション・セットの実行をキャンセルした場合、アラート・メッセージは表示されません。たとえば、ポップアップ・ダイアログのWebページを起動するアクション・セットが実行を完了した後に表示されるようにアラート・メッセージを構成します。実行時には、エンド・ユーザーは、ポップアップ・ダイアログをホストするExcel Webブラウザ・コントロールの「閉じる」ボタンを使用してポップアップ・ダイアログを閉じることにより、アクション・セットの実行をキャンセルします。このシナリオでは、アラート・メッセージは表示されません。Webページの表示の詳細は、「Fusion WebアプリケーションからのWebページの表示」を参照してください。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
アクション・セットにアラートを追加するには:
実行時の処理: アクション・セットによるアラート発信
たとえば、図9-14は、実行時にアクション・セットの実行が正常に完了した場合に表示されるAlert
プロパティ・グループのSuccessMessage
プロパティ用に構成されたアラート・メッセージを示します。
実行時にFailureMessage
、OKButtonLabel
またはSuccessMessage
プロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。
アクション・セットのエラー処理の構成方法
アクション・セットのActionOptions
プロパティの値を指定して、次のイベントのいずれかが発生したときのアクション・セットの動作を決定します。
-
アクション・セットのアクションの失敗
-
アクション・セットのすべてのアクションが正常に完了
これらのエディタの起動方法、またはADFコンポーネントのプロパティ・インスペクタの詳細は、「開発ツールのスタート・ガイド」を参照してください。アクション・セットのプロパティの詳細は、「アクション・セットのプロパティ」を参照してください。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
統合Excelワークブックでは、ステータス情報および実行時に発生したエラーをステータス・ビューアでエンド・ユーザーにレポートします。「ステータス・ビューアを使用したエンド・ユーザーへのエラー・メッセージのレポート」を参照してください。
アクション・セットのエラー処理を構成するには:
ユーザーにアクション・セットの確認を求める方法
確認アクションはエンド・ユーザーに対して、Confirmationアクションのプロパティで指定されたタイトルとプロンプトのメッセージを表示する簡単なメッセージ・ダイアログを提供します。
アクション・セットの実行は、エンド・ユーザーが提供されたボタンをクリックするまで一時停止します。ユーザーが「OK」をクリックすると、アクション・セットはアクション・セットの残りのアクションを続けます。ユーザーが「取消」をクリックすると、その時点でアクション・セットは中止され、残りのアクションは起動されません。エラーや成功がないため、FailureActionID
アクションやSuccessActionID
アクションは起動されません。
始める前に:
アクション・セットについて理解しておくと役立ちます。「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
Confirmationアクションをコンポーネントから起動するには:
図9-15に、アクションの編集ダイアログおよびSummitサンプル・アプリケーションのEditAllInventory-DT.xlsx
ワークブックのフラグ付きの行の削除リボン・コマンドのデフォルトの属性値を示します。
実行時の処理: ユーザーにアクション・セットの確認を求める方法
一度アクション・セットが起動されると、ユーザーに対して確認のプロンプトが表示されます。ユーザーが「OK」をクリックすると、次のアクションが実行され、「取消」をクリックすると、アクション・セットの実行はエラーなしに終了します。
注意:
ユーザーがConfirmationアクションをキャンセルする場合、FailureActionID
バインディングは実行されません。
図9-16に、Summitサンプル・アプリケーションのEditAllInventory-DT.xlsx
ワークブックのフラグ付きの行の削除リボン・コマンドをクリックしたときに表示される「確認」ダイアログを示します。
実行時にCancelButtonLabel
、OKButtonLabel
またはPrompt
プロパティの値が空の場合、ADFデスクトップ統合ではデフォルトのローカライズされた値が指定されます。Title
プロパティが空の場合、アクション・セット・コンテナ(リボン・コマンドなど)のラベルが使用されます。コンテナのラベルも空の場合、ADFデスクトップ統合により提供されたデフォルト値が使用されます。
実行時リボン・タブの構成
Oracle ADF機能を起動するリボン・コマンドを含む統合Excelワークブックに、Excelリボンの実行時リボン・タブを追加できます。
実行時リボン・タブは、これらのアイテムをワークブックとワークシートの2つにグループ化します。「ワークブックのアクションおよびプロパティ」に説明されているワークブック・アクションを起動するリボン・コマンドが表示されるようにワークブック・グループを構成し、アクティブなワークシートで一定の範囲のアクションを起動するようにワークシート・グループを構成します。
図9-17に、ワークブックおよびワークシートの両方のグループにリボン・コマンドを構成する、EditAllInventory-DT.xlsx
ワークブックの在庫実行時リボン・タブを示します。ワークブック・グループでは、標準のデフォルト・ワークブック・アクションを起動するリボン・コマンドを公開しますが、ワークシート・グループでは、ワークシートにレンダリングされるADF表コンポーネントによって公開される複数のコンポーネント・アクション(Upload
やDeleteFlaggedRows
など)を起動するリボン・コマンドを公開します。
図9-17 EditAllInventory-DT.xlsxのリボン・タブの実行時の表示
ワークシートのコマンド・アイテムは、ワークシートがアクティブな場合に表示されます。ワークブック・コマンドを削除すると、そのワークブックの実行時タブに表示されなくなります。指定されたグループのすべてのコマンドを削除すると、統合Excelワークブックまたはワークシートがアクティブの場合に、グループは表示されません。
実行時にリボン・タブをExcelリボンに表示するには、Visible
ワークブック・プロパティをTrue
に設定します。図9-18に示すように、Title
プロパティに指定した値によって、エンド・ユーザーに対して実行時に表示されるタブのタイトルが決定されます。
図9-18 実行時リボン・タブのワークブック・プロパティ
ヒント:
タイトル・プロパティ値の&
文字を使用して、Excelで実行時リボン・タブに関するキー・ヒントをレンダリングできます。キー・ヒントは、ユーザー[Alt]キーを押して使用可能なキー・ヒントを参照するときに表示されます。たとえば、タイトル・プロパティがI&nventory
に評価された場合、Excelには、実行時リボン・タブのInventoryラベルが表示され、キー・ヒントとしてのn
の割当てが試みられます。この例では、キー・ヒントとしてn
を正常に表示するには、同じスコープ(レベル)にある他の実行時リボン・タブがキー・ヒントとしてのnの使用を試みないことが必要です。
ワークブック・リボン・コマンドを定義する方法の詳細は、「実行時リボン・タブのワークブック・リボン・コマンドの定義方法」を参照してください。ワークブック・リボン・コマンドを構成する方法の詳細は、「実行時リボン・タブのワークシート・リボン・コマンドの構成方法」を参照してください。
実行時リボン・タブのワークブック・リボン・コマンドの定義方法
ワークブック・リボン・コマンドを定義するには、ワークブック・プロパティのRuntime Ribbon Tab
グループを構成します。
始める前に:
Excelの実行時リボン・タブについて理解しておくと役立ちます。「実行時リボン・タブの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
ワークブック・リボン・コマンドを定義する手順:
実行時リボン・タブのワークシート・リボン・コマンドの構成方法
ワークシート・リボン・コマンドを定義するには、ワークシート・プロパティのRibbon Command
グループを構成します。デフォルトでは、ワークシートのプロパティでワークシート・グループに定義されるリボン・コマンドはありません。
始める前に:
Excelの実行時リボン・タブについて理解しておくと役立ちます。「実行時リボン・タブの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
Runtime Ribbon Tab.Visible
ワークブック・プロパティをTrue
設定します。Runtime
Ribbon Tab.Visible
がFalse
に設定されている場合、実行時リボン・タブはこのワークブックに表示されません。ワークブックのプロパティの詳細は、表A-19を参照してください。
ワークシート・リボン・コマンドを定義する手順:
実行時の処理: リボン・タブのリボン・コマンド
図9-21に、Summitサンプル・アプリケーションのEditCustomers-DT.xlsx
ワークブックの「顧客」リボン・タブを示します。ワークブックレベルのリボン・コマンドの順序とグループ化は、実行時に常に同じです。ワークシート・コマンドはリボン・コマンドの編集ダイアログで定義された順序で表示されます。
ステータス・ビューアは、ワークブックごとに1回構成され、設計時にワークブック・コマンドに表示されますが、ワークシート・グループには実行時に表示されます。これは、ステータス・ビューアがワークシート固有であり、対象のワークシートの情報を表示するためです。統合されていないワークシートにエンド・ユーザーが移動して、ステータス・ビューアのリボン・コマンドをクリックすると、そのワークシートではステータス・ビューアを使用できない旨をエンド・ユーザーに通知するメッセージが表示されます。
図9-21 リボン・タブのリボン・コマンド
ユーザーがツールチップのあるリボン・コマンドの上にマウス・カーソルを重ねると、マルチパート・ツールチップが表示されます。リボン・コマンド・ラベルが最初に太字で表示され、続いてTooltip
プロパティのテキストが表示されます。このテキストの下に、アドイン名が表示されます。図9-22に、Summitサンプル・アプリケーションのEditCustomers-DT.xlsx
ワークブックの「ダウンロード」ワークシート・リボン・コマンドの上にカーソルを移動したときに表示されるツールチップを示します。
定義するワークシートレベルのリボン・コマンドが5つ以下の場合、大きいアイコンでワークシート・グループにそれぞれ表示されます。定義するワークシートレベルのリボン・コマンドが6つ以上の場合、最初の4つのリボン・コマンドが大きいアイコンで表示されます。残りのリボン・コマンドは、図9-23に示すように、「その他」のラベルのメニューに表示されます。
図9-23 ドロップダウン・リストを表示するワークシートの「その他」リボン・コマンド
注意:
ツールバーのリボン・コントロールは、すべての開いている統合ワークブックで共有されます。ツールバーの同じ場所を占める、異なるリボン・コマンドを使用している、2つ以上のワークブックを開いている場合、Excelでは開いているすべてのワークブックのうち最初に開かれたワークブックのキー・ヒントが必ず表示されます。これはExcelの制限です。
Fusion WebアプリケーションからのWebページの表示
アクション・セットでDialog
アクションを構成して、Excelワークブックと統合するFusion Webアプリケーションからのページを表示します。
これらのページによって、統合Excelワークブックに追加の機能が提供されます。これには、Fusion Webアプリケーションと対話する検索ダイアログなどの機能があります。
アクション・セットのDialog
アクションは、次の2つのタイプのダイアログのどちらかを表示するように構成できます。
-
ポップアップ・ダイアログ
-
実行時作業ウィンドウ
コンポーネントのアクション・セットのプロパティDialog.Target
(Popup
またはTaskPane
)は、Webページがレンダリングされる場所を決定します。
Dialog.Page
プロパティの値は、アクションの起動時に表示されるWebページを指定します。有効な値は、WebAppRoot
プロパティの値の相対URL、または絶対URLです。
たとえば、CustomerSearch-DT.xlsx
ワークブックは、ユーザーが実行時に顧客の検索リボン・コマンドをクリックすると起動するページの値として次の相対URLを指定します。
/faces/external/searchForm.jspx
次のような絶対URLも有効です。
http://www.oracle.com/technetwork/middleware/fusion-middleware/overview/index.html
ヒント:
モデルドリブン・リスト・ピッカーを表の列に追加する場合は、「ADF表コンポーネントへのモデルドリブン・リスト・ピッカーの追加」を参照してください。
注意:
Dialog
アクションはADFタスク・フローをサポートしていません。
ポップアップ・ダイアログでのWebページの表示方法
アクション・セットのDialog
アクションを構成して、ExcelのWebブラウザ・コントロールによりホストされているモーダル・ポップアップ・ダイアログでWebページを起動できます。この機能は、たとえばFusion Webアプリケーションからのページにより表示される値を、統合Excelワークブックに入力できるようにする機能をエンド・ユーザーに提供します。
アクション・セットが起動するWebページは、大/小文字区別のID属性がADFdi_CloseWindow
に設定されている予約済HTML<span>
要素を含む必要があります。
次の例は、span要素の値を、f:verbatim
タグのrendered
プロパティを使用して自動的に設定する方法を示します。
<f:verbatim rendered="#{requestScope.searchAction eq 'search'}"> <span id="ADFdi_CloseWindow">Continue</span> </f:verbatim> <f:verbatim rendered="#{requestScope.searchAction eq 'cancel'}"> <span id="ADFdi_CloseWindow">Abort</span> </f:verbatim>
図9-24は、CustomerSearch-DT.xlsx
ワークブックのブラウザ・コントロールによりホストされるsearchForm.jspx
ページを示しています。
f:verbatim
タグのrendered
プロパティが使用できない場合には、次のようにしなければならない場合があります。
どちらの方法を使用する場合でも、ADFデスクトップ統合はADFdi_CloseWindow
の値をモニターして、ポップアップ・ダイアログをいつ閉じるかを決定します。ADFdi_CloseWindow
<span>
要素の内容に応じて、次のようになります。
-
空白の文字列を参照する場合、または文字列が存在しない場合は、ポップアップ・ダイアログは開いたままになります。
-
Continue
の場合、ポップアップ・ダイアログが閉じ、アクション・セットが次のアクションを起動します。 -
Abort
の場合、ポップアップ・ダイアログが閉じ、アクション・セットが実行を停止します。追加のアクション・セットは起動されません。 -
他のなんらかの文字列の値を参照する場合、ポップアップ・ダイアログは開いたままになります。
Dialog
アクションのTarget
プロパティをPopup
に設定し、.NET Webブラウザ・コントロールを使用して、モーダル・ポップアップ・ダイアログでカスタムWebページを表示します。アクション・セットが起動するDialog
アクションは、ユーザーからの入力があるまで実行を続けられないため、モーダルなポップアップ・ダイアログにWebページを表示する場合は、Excelの作業ウィンドウにWebページを表示するときとは異なります。ポップアップ・ダイアログが開いているときに、エンド・ユーザーは統合Excelワークブックの他の部分と対話することはできません。ポップアップ・ダイアログがフォーカスを保持します。
エンド・ユーザーは、ブラウザ・コントロールを閉じたり、ADFデスクトップ統合がブラウザ・コントロールを閉じるまでは、ブラウザ・コントロール内で複数のWebページ間を移動できます。
カスタム・ページでユーザー選択を利用するには、Dialog
アクション後にアクションの追加が必要になる場合があります。たとえば、国ベースの検索でユーザーが国名の入力を求められる場合などです。このようなシナリオで、次に起動する論理アクションは、Execute
(ユーザーが入力した国名による問合せ)およびADF表コンポーネントのDownload
アクションです。
注意:
-
Titleプロパティが空白の場合、Webページのタイトルがダイアログ・ウィンドウのタイトルとして使用されます。
-
ADFdi_CloseWindow
<span>
の値は、ブラウザ・コントロール内のすべてのページ遷移でモニターされます。値がContinue
の場合は、ポップアップ・ダイアログが閉じ、アクション・セットの実行が継続されます。値がAbort
の場合は、ポップアップ・ダイアログが閉じ、アクション・セットのアクションはそれ以上実行されません。<span>
要素が存在しない場合か、値がContinue
またはAbort
以外の場合は、ポップアップ・ダイアログが開いたままになります。各ページ遷移で、予約された
<span>
要素が存在する場合、クライアント側Javascriptは実行可能で、要素の値を変更できます。値がContinue
またはAbort
に変更された場合も、ポップアップ・ダイアログが閉じ、アクション・セットに同じ効果があります。 -
エンド・ユーザーが統合Excelワークブックをダウンロードできるように、ポップアップ・ダイアログで表示されるWebページを構成しないようにしてください。この場合、ポップアップ・ダイアログからダウンロードしたワークブックをエンド・ユーザーが開くと、Oracle ADF機能が無効になります。
-
リスト・ボックスやドロップダウン・リストなどのHTML
<select>
コンポーネントを使用している場合、ページがDialog
アクションによって表示されるときは、<select>
コンポーネントはz-order
の構成に従わない点に注意してください。.NET Webブラウザ・コントロールでは、レイヤー化された重複するコンポーネントを持つWebページ上で、<select>
コンポーネントが他のコンポーネントの上に表示されることがあります。
ポップアップ・ダイアログでのWebページ検索フォームの表示方法
リボン・コマンドを使用して、検索フォームをエンド・ユーザーに表示するページをFusion Webアプリケーションから起動できます。リボン・コマンドのアクション・セットを構成して、検索処理の検索結果が統合Excelワークブックにダウンロードされるように、ADF表コンポーネントについてDownload
アクションを起動します。
Fusion Webアプリケーションでの検索フォームの作成の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のデータバインドされたADF検索フォームの作成に関する項を参照してください。
注意:
ADFデスクトップ統合は、ページ定義ファイルでのFindMode
属性の使用はサポートしていません。FindMode
属性の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のpageNamePageDef.xmlに関する項を参照してください。
始める前に:
統合ExcelワークブックでのWebページのレンダリング方法を理解しておくと役立ちます。「Fusion WebアプリケーションからのWebページの表示」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
統合ExcelワークブックからWebページを起動するには:
図9-25に、リボン・コマンドのSelectActionSet
にDialog
アクション、その後にADF表コンポーネントのDownload
アクションが含まれる、CustomerSearch-DT.xlsx
ワークブックの例を示します。エンド・ユーザーがリボン・コマンドを起動すると、Dialog
アクションは検索ページ(searchForm.jspx
)をブラウザ・ウィンドウに表示します。エンド・ユーザーが検索ページに検索条件を指定し、そこでSearchボタンを選択すると、ADF表コンポーネントのDownload
アクションが実行されます。これにより、指定した検索条件に一致する行が統合ワークシートに取得されます。
図9-25 Webページを開くように構成されたリボン・コマンド
図9-26に、実行時にWebページの検索フォームを示します。
ADFデスクトップ統合の実行時作業ウィンドウでのWebページの表示方法
アクションのDialog.Target
プロパティをTaskPane
に設定して、ADFデスクトップ統合の作業ウィンドウのDialog.Page
プロパティで指定したWebページを表示できます。ポップアップ・ダイアログでWebページを表示するのとは対照的に、作業ウィンドウでWebページを表示すると、Webページを表示する間はアクション・セットでアクションの実行を継続できます。エンド・ユーザーは、Webページが表示されている間、統合Excelワークブックの他の部分にアクセスして対話することができます。
注意:
-
Titleプロパティが空白の場合、タスク・ペインのタイトルも空白のままです。
-
Dialog
アクションのTarget
プロパティをTaskPane
に設定すると、ADFデスクトップ統合はADFdi_CloseWindow
の値(および他の要素)を無視します。
Fusion Webアプリケーションからのページ表示に関する必知事項
Dialog
アクションを起動するアクション・セットで追加のアクションを指定すれば、統合Excelワークブックに含まれるデータを、Fusion Webアプリケーションと同期した状態にできます。Dialog
アクションのShareFrame
プロパティを設定することにより、Fusion Webアプリケーション・ページと統合Excelワークシートの両方が同じデータ・コントロール・フレームを使用するよう徹底することができます。
注意:
-
カスタムのWebページがADF Facesに基づいていてポップアップ・ウィンドウを開く場合、そのWebページが正しく機能するには特定の方法で構成されている必要があります。コマンド・コンポーネントで、
windowEmbedStyle
をinlineDocumentに設定してください。『Oracle ADF FacesによるWebユーザー・インタフェースの開発』のポップアップ・ダイアログ、メニューおよびウィンドウに関する項を参照してください。
-
Dialog.Page
プロパティではEL式は受け入れられません。
統合ExcelワークシートとFusion Webアプリケーション・ページ間のデータの送信
エンド・ユーザーがFusion Webアプリケーションからのページを使用する際に、統合ExcelワークブックとFusion Webアプリケーションが同期された状態のままとなるように、Dialog
アクションを起動するアクション・セットを次のように構成します。
-
Dialog
アクションを起動する前に、統合ExcelワークブックからFusion Webアプリケーションに変更を送信します。RowUpSync
またはRowUpSyncNoFail
ワークシート・アクションを起動して、ADF表コンポーネントの現在の行からの変更を同期します。UpSync
を起動して、フォーム・コンポーネントの変更を同期することもできます。 -
(必要に応じて)データ状態をWebページから取得する1つの方法は、WebページのバッキングBeanのロジックであり、そのデータ・バインディングからデータを取得し、そのデータを統合Excelワークシートのバインディングに転送します。
-
Dialog
アクションを起動した後、Fusion Webアプリケーションから統合Excelワークブックに変更を送信します。RowDownSync
ワークシート・アクションを起動して、Fusion WebアプリケーションからADF表コンポーネントの現在の行へ変更を送信します。DownSync
を起動して、フォーム・コンポーネントの変更を同期することもできます。
DoubleClickActionSet
については、アクション・セットを実行した後で、サーバー・サイド・モデルがアクション・セットの実行前と同じ状態にある必要があります。これを達成するために、ADF表コンポーネントでは、「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されている行レベルのアクション・セット・モデルの管理をサポートしています。
統合ExcelワークブックとFusion Webアプリケーション間でのデータ同期の詳細は、「複数のWebセッション間で統合Excelワークブックを使用するための追加機能」を参照してください。ワークシート・アクションとADF表コンポーネント・アクションの詳細は、「ADFデスクトップ統合コンポーネントのプロパティとアクション」を参照してください。
統合ExcelワークシートとFusion Webアプリケーション・ページ間のデータ・コントロール・フレームの共有
Fusion Webアプリケーションと統合Excelワークブックは、どちらもデータ・コントロール・フレームを使用して、トランザクションとビュー・オブジェクトの状態、および拡張機能によってページ定義ファイルで公開されるバインディングを管理します。Fusion Webアプリケーションのページを統合Excelワークシートから起動すると、ページを起動するDialog
アクションのShareFrame
プロパティをTrue
に設定することで、ページと統合Excelワークシートが両方とも同じデータ・コントロール・フレームを使用するように徹底できます。
Dialog
アクションのPage
プロパティで、Dialog
アクションが起動するページを指定します。Dialog
アクションが絶対URLやFusion Webアプリケーションの一部でないページを起動する場合、ShareFrame
がTrue
に設定されていると、ADFデスクトップ統合はShareFrame
の値を無視します。
次のシナリオではShareFrame
をFalse
に設定します。
-
アクション・セットの
Dialog.Page
プロパティは、絶対URLまたはFusion Webアプリケーションの一部でないページを参照します。 -
アクション・セットの
Dialog.Page
プロパティは、Fusion Webアプリケーションの一部であるページを参照しますが、統合Excelワークシートと情報を共有する必要はありません。たとえば、オンライン・ヘルプの情報を表示するページなどです。
Fusion Webアプリケーションのデータ・コントロール・フレームの詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のタスク・フロー間のデータ・コントロールの共有に関する項を参照してください。
ADFデスクトップ統合フレーム共有に対するFusion Webアプリケーションの構成
ADFデスクトップ統合の機能をFusion Webアプリケーションに追加する際、アプリケーションが自動的に構成されて、ADFデスクトップ統合のフレーム共有がサポートされます。フレーム共有によって、統合Excelワークブックの各ワークシートが専用のDataControl
フレームを使用できます。それぞれのワークシートから起動されるダイアログで表示されるWebページは、統合Excelワークシートと同じDataControl
フレームを共有できます。
Fusion Webアプリケーションがフレーム共有をサポートしていることを確認する手順:
Fusion Webアプリケーション・ページのローカライズ
統合されたExcelワークブックのDialog
アクションに表示されるFusion Webアプリケーション・ページのコンテンツのローカライズは、Fusion Webアプリケーション内のその他の場所にあるページをローカライズするメカニズムと同じメカニズムによって制御されます。Fusion WebアプリケーションのADF FacesコンポーネントがレンダリングするUI文字列のローカライズ方法の詳細は、『Oracle ADF FacesによるWebユーザー・インタフェースの開発』の「ページの国際化とローカライズ」を参照してください。ADFデスクトップ統合でのローカライズの詳細は、「ADFデスクトップ統合でのローカライズ」を参照してください。
表の列での行レベルのアクション・セットの使用
場合によっては、エンド・ユーザーが列をダブルクリックしたときに現在の表の行のコンテキストで実行するアクション・セットを構成する必要があります。
たとえば、「ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法」で説明されているように、現在の表の行のサーバー・サイド行の属性値を選択するためのカスタム・ダイアログを起動する、ADF表コンポーネントの列DoubleClickActionSet
を構成できます。
行レベルのアクション・セット・モデル管理
モデルの状態を変更する可能性のある表ベースの行レベル・アクション・セットが起動される場合に、サーバー・サイド・モデル状態の管理を自動化できます。ADFデスクトップ統合では、アクション・セットのアクションを起動する前にセーブポイントを作成し、アクション・セットの実行後にセーブポイントにリストアします。これにより、アクション・セットが中断または取り消され、アクション・セットの起動前と同じ状態に戻ると、アクション・セットの起動後のモデル状態は同じままになります。
挿入ワークシート行の場合、ADFデスクトップ統合は、アクション・セット中に使用可能な一時的なサーバー・サイド行を自動的に作成します。挿入および更新の両方のワークシート行の場合、ADFデスクトップ統合は、アクション・セット(挿入の場合の一時行を含む)中に発生したモデルの変更を自動的に元に戻します。
これは、サーバー・サイド・モデルを変更する行アクション・セットで構成したADF表コンポーネントと統合Excelワークブックがある場合に便利です。たとえば、「ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法」で説明されているように、現在のワークシート行のサーバー・サイド行の属性値を選択するためのカスタム・ダイアログを起動する、列コンポーネントのダブルクリック・アクション・セットがあります。
行レベルのアクション・セット・モデル管理を有効化する方法
行レベルのアクション・セットでサーバー・サイド・モデル状態を管理するには、次のワークブック・プロパティをTrue
に設定します。
Compatibility.TableComponents.RowActionSetModelMgmtEnabled
RowActionSetModelMgmtEnabled
プロパティをTrue
に設定する前に、ADFデスクトップ統合がDataControlセーブポイントを作成して、モデル状態を取得およびリストアすることに注意してください。このため、Fusion WebアプリケーションのDataControlプロバイダがセーブポイントをサポートしていることを確認してください。
行レベルのアクション・セット・モデル管理を有効化する手順:
注意:
旧バージョンのADFデスクトップ統合で作成した統合Excelワークブックの場合は、RowActionSetModelMgmtEnabled
プロパティをTrue
に設定して、行レベルのアクション・セット中にモデル状態を管理するカスタム構成またはコードを削除します。
実行時の処理: RowActionSetModelMgmtEnabledがtrueに設定される
RowActionSetModelMgmtEnabled
プロパティがTrue
に設定されている場合、ADFデスクトップ統合は、行レベルのアクション・セットの実行中にモデル状態を自動的に管理します。
挿入ワークシート行の場合は、アクション・セットが実行されると一時的なサーバー・サイド行が自動的に作成され、アップロードが成功すると自動的に削除されます。InsertTempRowActionID
アクションが構成されている場合、起動後に一時的なサーバー・サイド行が作成されます。それ以外の場合は、InsertBeforeRowActionID
アクションがかわりに起動され、一時的なサーバー・サイド行が作成されます。
InsertTempRowActionID
またはInsertBeforeRowActionID
のいずれのアクションも構成されていない場合、挿入行に対してアクションは起動されません。InsertRowEnabled
がFalse
に設定されている場合、InsertTempRowActionID
アクションは無視されます。
ADF表コンポーネントで構成された行レベルのアクション・セットをエンド・ユーザーが起動し、モデル状態を変更する可能性のあるアクションが行レベルのアクション・セットに1つ以上含まれている場合、ADFデスクトップ統合は次を実行します。
-
サーバー・サイド行の配置(更新ワークシート行のみ)
-
データ・コントロールのセーブポイントの作成
-
一時的なサーバー・サイド行を作成する
InsertTempRowActionID
またはInsertBeforeRowActionID
アクションの起動(挿入ワークシート行のみ) -
アクション・セットのアクションの起動
-
アクション・セットの起動の完了後に、前に作成したセーブポイントへのリストア(次のような終了方法に関係なく):
-
アップロードの成功
-
アップロードの失敗
-
エンド・ユーザーが「取消」ボタンをクリック
-
注意:
次のアクション(またはアクション・タイプ)により、モデル状態が変更する場合があります。
-
Table.RowUpSync
-
Table.RowDownSync
(挿入行のみに適用)RowDownSync
(既存の行でモデル状態が変更されない場合)。 -
Table.RowUpSyncNoFail
-
Worksheet.UpSync
このアクションは、行レベルのアクション・セットでもサポートされます。
-
ADFmAction
-
Dialog
ShareFrame
がTrue
に設定されており、Webページが同じWebアプリケーションの一部の場合、Dialog
アクションでモデル状態が変更されることがあります。
RowActionSetModelMgmtEnabled
プロパティがFalse
に設定されている場合、アクション・セットの実行中の一時的なサーバー・サイド行の作成と削除を明示的に管理する必要があります。
RowUpSyncNoFailを使用してADF表コンポーネントからの変更を同期化する方法
行レベルのアクション・セットには、正常に完了するために、モデルの現在の状態に応じて、ADFmAction
またはDialog
アクションが含まれる場合があります。Table.RowUpSync
アクションでは、各表の行の現在値をワークシートからFusion Webアプリケーションのモデル・レイヤーに送信します。Table.RowUpSync
アクションでは、アクションを正常に完了するために、表の行のすべてのセルに有効なデータを含める必要があります。たとえば、新しく挿入された行では、Table.RowUpSync
アクションを完了するために、すべての必須属性に有効値が必要です。これに対して、Table.RowUpSyncNoFail
アクションは表の行のセルから有効値を同期して、無効値の検証エラーを無視します。RowUpSync
と同様、RowUpSyncNoFail
アクションは、DoubleClickActionSet
をサポートする表の列の行レベルのアクション・セットでの使用を対象にしています。
「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されているRowUpSyncNoFail
を使用する際に、行レベルのアクション・セット・モデルの管理を有効にします。
RowUpSyncNoFailを使用してADF表コンポーネントからの変更を同期化する手順:
- 統合Excelワークブックを開きます。
- 表タイプ・コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
Columns
プロパティの参照(...)アイコンをクリックします。- 「列の編集」ダイアログで列を選択し、
UpdateComponent
プロパティの参照(...)アイコンをクリックします。 - ADF表コンポーネント
RowUpSyncNoFail
アクションを、列のDoubleClickActionSet
のアクションのリストに追加します。 - 「OK」をクリックします。
実行時の処理: RowUpSyncNoFailアクションの起動
RowUpSyncNoFail
アクションが起動されると、現在の表の行からデータ値がサーバーにアップロードされ、一般的な障害、エラー・レポートおよびエラー処理は無視されます。サーバーが使用できないなどの致命的エラーはレポートされます。
RowUpSyncNoFail
アクションでは、モデルの状態を変更し、エラー時に変更は元に戻りません。したがって、RowUpSyncNoFail
へのコールでは、行検証の失敗の原因となる値の行がモデルに残る可能性があります。これにより、Table.Upload
など、他のメソッドへの後続のコールの動作が影響を受ける場合があります。このため、行レベルのアクション・セット・モデル管理を有効にする必要があります。
ADF表の列へのカスタム・ポップアップ・ピッカー・ダイアログの追加方法
ADF表コンポーネントの列のサブコンポーネント(UpdateComponent
またはInsertComponent
)のDoubleClickActionSet
を構成して、エンド・ユーザーがADF表コンポーネントの列に挿入する値を選択する場合にピッカー・ダイアログをレンダリングするFusion Webアプリケーション・ページを起動できます。
この機能は、エンド・ユーザーがADF表コンポーネントに入力できる値を制限する場合に役立ちます。たとえば、エラーが発生しないようにエンド・ユーザーが手動で値を変更できないようにするため、実行時のADF表コンポーネント列をExcelワークシートで読取り専用にしたい場合などです。Fusion Webアプリケーションによってレンダリングされたピッカー・ダイアログを起動すると、エンド・ユーザーは正しくないデータを入力することなくADF表コンポーネントの値を変更できるようになります。
DoubleClickActionSet
を構成するほか、次のようにする場合は、ADF表コンポーネントのRowData.CachedAttributes
プロパティを属性バインディングの値を参照するように構成します。
-
統合ExcelワークブックのADF表コンポーネントに表示したくないFusion Webアプリケーションのページの値を、エンド・ユーザーが変更可能にする場合
-
ADF表コンポーネントの列を統合Excelワークブックで読取り専用にする場合。
-
1つ以上のユーザー・セッションを通じて、エンド・ユーザーには表示されないが、ピッカー・ダイアログで変更するADF表コンポーネントのデータをキャッシュする場合。
たとえば、ADF表コンポーネントではエンド・ユーザーに製品名のリストが表示されます。ピッカー・ダイアログは起動されて、ADF表コンポーネントで製品名のリストをリフレッシュし、プロセスの一環として、製品IDの値を設定します。このシナリオでは、ADF表コンポーネントの
RowData.CachedAttributes
プロパティの製品IDに属性バインディング値を指定します。アクション・セットが実行された後、ADF表コンポーネントはリフレッシュされた製品名のリストをExcelワークシートの行に表示し、そのRowData.CachedAttributes
プロパティにある関連の製品IDを参照します。
選択ダイアログへの値の移入の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』の「データバインドされた選択リストおよびシャトルの作成」を参照してください。
始める前に:
行レベルのアクション・セットの使用について理解しておくと役立ちます。「表の列での行レベルのアクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
挿入コンポーネントをサポートするADF表コンポーネントで、カスタム・ピッカー・ダイアログを正常に機能させる場合は、「行レベルのアクション・セット・モデル管理を有効化する方法」に説明されている行レベルのアクション・セット・モデルの管理がADF表コンポーネントでサポートされていることを確認します。行レベルのアクション・セット・モデル管理を有効にしないと、一時的な挿入行が実行時に作成されます。
ADF表コンポーネント列からカスタム・ピッカー・ダイアログを起動する手順:
Excel式を生成するためのEL式の使用
EL式を使用して、ADFコンポーネントの値としてExcel式を生成できます。
たとえば、EL式でHYPERLINK
関数を使用できます。EL式でExcelのHYPERLINK
関数を使用する場合、ADF出力テキスト・コンポーネントなどのOracle ADFコンポーネントを使用して、実行時にハイパーリンクを表示するには、HYPERLINK
関数をExcelのT
関数内に囲む必要があります。
ADFデスクトップ統合はExcelの式を認識するため、HYPERLINK
関数を囲む必要があります。これを回避するには、HYERLINK
関数の回りにT
関数を配置して、HYPERLINK
関数の値がT
関数によって評価されるようにします。結果の値は、ADFコンポーネントが参照するExcelのセルに挿入されます。HYPERLINK
Excel関数を起動するEL式を記述する際は、次の構文を使用します。
=T("=HYPERLINK(""link_location"",""friendly_name"")")
例9-1のEL式は、エンド・ユーザーがコンポーネントをクリックすると、HYPERLINK
関数を使用してhttp://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html
に移動します。
HYPERLINK
関数を使用してEL式を記述する場合、エラー・メッセージが表示されないようにするため、適用するカスタムのスタイルの「セルのフォーマット」ダイアログの「保護」タブの「ロック済」チェック・ボックスを選択する必要があります。
注意:
EL式を計算式に使用している場合、EL式の評価後に、結果のExcel式が255文字を超えないことを確認します。これはエディタでコンポーネントのプロパティに条件値を設定するのに使用される式に適用されます。
例9-1 HYPERLINK関数
=T("=HYPERLINK(""http://www.oracle.com/technetwork/developer-tools/adf/overview/index-085534.html"", ""#{res['excel.workbook.powerby']}"")")
EL式を使用してハイパーリンクを表示する際のセルの構成方法
ExcelのT
関数を使用するEL式を記述して、ExcelのHYERLINK
関数の出力を評価します。次の作業は、ADF出力テキスト・コンポーネントが、Oracle ADFデスクトップ統合ホーム・ページを開くハイパーリンクを表示するように構成される様子を示します。
始める前に:
動的なハイパーリンクについて理解しておくと役立ちます。「Excel式を生成するためのEL式の使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
セルを構成し、EL式を使用してハイパーリンクを表示するには:
実行時の処理: EL式を使用したセルによるハイパーリンクの表示
ADFデスクトップ統合は、記述するEL式を実行時に評価します。次の例では、ADFデスクトップ統合は次のことを実行します。
-
リソース・ファイルから
excel.workbook.powerby
の値を取得します。 -
ユーザーがクリックできる、ハイパーリンクの付いたセルに結果を挿入します。
図9-27は、「EL式を使用してハイパーリンクを表示する際のセルの構成方法」で構成した例の実行時の表示を示しています。ADF出力テキスト・コンポーネントをホストするセルをエンド・ユーザーがクリックすると、Oracle ADFデスクトップ統合ホーム・ページがWebブラウザに開きます。
図9-27 ハイパーリンクを表示するよう構成されたADF出力テキスト・コンポーネント
統合Excelワークブックでの計算済セルの使用
統合Excelワークブックで値の計算を実行するExcel式を記述できます。
統合Excelワークブックで値を計算するExcel式を記述する前に、次の点に注意してください。
-
式は、Oracle ADFバインディングを参照するセルと参照しないセルに入力できます
-
統合Excelワークブックのエンド・ユーザーは実行時に式を入力できます。
-
統合Excelワークブックの開発者は、設計時に式を入力できます。
-
起動時には、ADF表コンポーネント・アクション
Upload
とRowUpSync
が、式の計算結果をFusion Webアプリケーションに送信しますが、式自体は送信されません -
Oracle ADFバインディングを参照するセルが次の処理によって変更された場合、Excelではこれらのセルの式が再計算されます。
-
ADF表コンポーネント
RowDownSync
アクションとDownload
アクションの起動 -
Oracle ADFコンポーネントのレンダリング
-
-
ADF表コンポーネントとADF読取り専用コンポーネントは、行がFusion Webアプリケーションからダウンロードされたデータを受け入れるために拡張または収縮すると同時に、行を挿入または削除します。式はExcel独自のルールに従って複製されます。
-
ADF表コンポーネントまたはADF読取り専用表コンポーネントを参照するセルの上または下に式を入力できます。これらのコンポーネントの下に入力した式は、表示される行数を受け入れるためにコンポーネントが収縮する際、コンポーネントを基準にしてその位置を保持します。
Excel関数の詳細は、Excelのオンライン・ヘルプ・ドキュメントの関数の参照の項を参照してください。
表タイプ・コンポーネント列の合計の計算方法
次の作業は、Excel関数のAVERAGE
とOFFSET
を使用して、Salaryとラベル付けされた列の平均を実行時に計算する様子を示します。ADF表コンポーネントまたはADF読取り専用表コンポーネントがダウンロードする行数に基づいて、拡張または収縮するセルの範囲を参照する場合に、記述するExcel式でOFFSET
関数を使用します。AVERAGE
関数では、Excelセルの範囲の平均値を計算します。
始める前に:
統合Excelワークブックでの計算されたセルの使用方法を理解しておくと役立ちます。「統合Excelワークブックでの計算済セルの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
ADF表コンポーネントのRowActions.AutoConvertNewRowsEnabled
プロパティがFalse
に設定されていることを確認します。このプロパティの詳細は、「ADF表コンポーネントのプロパティ」を参照してください。
ADF表コンポーネントで列の合計を計算するには:
ADF表コンポーネントの自動行リフレッシュの構成
ADF表コンポーネントは、エンド・ユーザーが表の行の値を変更するたびにカスタム・ビジネス・ロジックが自動的に起動されるように構成できます。
ADF表コンポーネントに、現在の給与(読取り専用列)、昇給率、昇給額、提示された給与を含む各種の列が含まれているとします。エンド・ユーザーが後ろの3列のいずれかの値を編集した場合に、それ以外の2つの書込み列の値が自動的かつ即時に再計算されるようにします。その後、ADF表コンポーネントのUpload
アクションの起動中に、変更された行ごとに、変更および再計算されたすべての値がアップロードされます。たとえば、エンド・ユーザーが昇給額を変更した場合、昇給率が(昇給額/現在の給与)に設定され、提示される給与が(現在の給与+昇給額)に設定されます。エンド・ユーザーが他の編集可能列に値を入力した場合にも、同様の変更が行われます。
このような機能を実装するには、カスタム・メソッドを記述して、ADFデスクトップ統合で行リフレッシュがトリガーされたときに起動するビジネス・ロジックを指定する必要があります。また、ADF表コンポーネントのプロパティ・グループRowActions
のAutoRefreshRowEnabled
およびAutoRefreshRowActionID
プロパティを構成する必要もあります。最後に、ADF表コンポーネントで、行の値を編集するエンド・ユーザーが自動行リフレッシュをトリガーする列を指定します。これを行うには、その列のTriggersRowRefresh
プロパティをTrue
に設定します。
自動行リフレッシュの実装がパフォーマンスに与える可能性のある影響に注意してください。「ADF表コンポーネントの自動行リフレッシュに関する必知事項」を参照してください。
自動行リフレッシュで使用するカスタム・メソッドの記述方法
ADFデスクトップ統合によって、自動行リフレッシュに関連する各行について記述したカスタム・メソッドが起動されます。
メソッドは任意の名前にできますが、次の例に示すように、行データのリフレッシュを実行するには、属性(ADF表コンポーネントの列のID
プロパティ)を識別するjava.util.ArrayList
パラメータをメソッド・シグネチャに含める必要があります。
public void refreshRow (ArrayList attrIds)
カスタム・メソッドは次のように記述してください。
-
NULL値に対する処理を決定します。
-
同じ行の他の属性を、ビジネス目標を達成するように更新します。
-
例外を適切に処理します。
-
メソッド内で例外をスローできます。スローする例外と関連付けたメッセージはエンド・ユーザーにレポートされるため、エンド・ユーザーに理解しやすいメッセージを記述してください。
-
カスタム・メソッド内で予期しない例外を捕捉して処理します。
-
カスタム・メソッド内に、イテレータのステータスを変更するコードや、ADFモデル・レイヤーの変更をコミットするコードを記述しないでください。
次の変更はADFデスクトップ統合によって自動的に処理されるため、カスタム・メソッド内にコードを記述する必要はありません。
-
ターゲット行にイテレータが配置されます。
-
ADF表コンポーネントの属性値がFusion Webアプリケーションに転送されます。
-
サーバー・サイドの変更が自動的に元に戻ります。
カスタム・メソッドを完成させたら、統合Excelワークシートと関連付けられたページ定義ファイル内にメソッド・アクション・バインディングとして公開してください。ADFデスクトップ統合の作業ウィンドウのバインディング・パレットに、そのメソッド・アクション・バインディングが表示されることを確認してください。そのために、「Excelワークブックへのページ定義ファイルのリロード方法」の説明に従って、ページ定義ファイルを再ロードする必要がある場合があります。
ADF表コンポーネントの自動行リフレッシュの構成方法
ADF表コンポーネントを構成して、データの自動行リフレッシュを有効にし、リフレッシュの発生時に起動するメソッド・アクション、およびリフレッシュをトリガーする列を指定します。
始める前に:
エンド・ユーザーが自動行リフレッシュをトリガーしたときに起動するビジネス・ロジックを実行するようなカスタム・メソッドを記述します。このカスタム・メソッドおよび自動行リフレッシュの詳細は、「自動行リフレッシュで使用するカスタム・メソッドの記述方法」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。「統合Excelワークブックへの対話性の追加の追加機能」を参照してください。
ADF表コンポーネントの自動行リフレッシュを構成するには:実行時に行われる処理: ADF表コンポーネントでの自動行リフレッシュ
列のTriggersRowRefresh
プロパティをtrue
に設定してこの動作が有効になるように構成した列で、ADF表コンポーネント・セルに対する自動行リフレッシュがADFデスクトップ統合により実行されます。
ADFデスクトップ統合は、ユーザー編集に関連するADF表コンポーネントの各列のTriggersRowRefresh
プロパティを調べて、プロパティがTrue
に設定されている列が見つからない場合には自動行リフレッシュ操作を終了します。それ以外の場合、TriggersRowRefresh
プロパティがTrue
に設定されている列のID
プロパティの値を、カスタム・メソッドのArrayList
パラメータに追加します。
推定処理時間が長い場合は、進捗バーが表示されます。
ADFデスクトップ統合では、変更の処理前にセーブポイントが作成されます。次に、リフレッシュが必要な各行について次の変更が実行されます。
-
保留中の更新行の場合はツリー・バインディング・イテレータが正しい行に配置され、保留中の挿入行の場合は一時行が作成されます。
-
その行のすべての属性がワークシートからADFモデル・レイヤーのイテレータ行に転送されます。例外(ある場合)は記録されます。
-
ADF表コンポーネントの
RowActions.AutoRefreshRowActionID
プロパティにメソッド・アクション・バインディングとして指定したカスタム・メソッドが起動されます。 -
行データがリフレッシュされ、例外がレポートされます(ある場合)。
-
ADFデスクトップ統合によって、自動行リフレッシュの開始前に作成されたセーブポイントがリストアされます。自動行リフレッシュ操作の結果(成功または失敗)に関係なく、セーブポイントがリストアされます。エンド・ユーザーは、ADF表コンポーネントの
Upload
アクションを起動して、自動行リフレッシュ後にADF表コンポーネントで表示されている変更をサーバー・サイドにコミットする必要があります。
ADF表コンポーネントの自動行リフレッシュに関する必知事項
ADF表コンポーネントの自動行リフレッシュを有効にする場合、次の点に注意してください。
-
自動行リフレッシュではリクエストがFusion Webアプリケーションに送信され、カスタム・メソッド内のビジネス・ロジックが実行されるため、ADF表コンポーネントのデータ入力パフォーマンスに影響を与える可能性があります。データ入力パフォーマンスに対する影響の度合いは、ビジネス・ロジックの計算上の複雑さや、他の要因(ネットワーク待機時間など)によって異なります。たとえば、ネットワーク待機時間が大きい場合、エンド・ユーザーがデータを入力してから行リフレッシュが完了するまでに大幅な遅延が発生する可能性があります。
-
ADFデスクトップ統合は、行のすべての属性をクライアントからサーバーに送信し、続いてサーバーからクライアントに送信します。これには、変更された属性も変更されていない属性も含まれます。
-
1つのADF表コンポーネントで多数のエンド・ユーザー動作があると、複数のセルの内容が同時に変更されることがあります。エンド・ユーザーが複数セル編集を実行すると、ADFデスクトップ統合は、
TriggersRowRefresh
プロパティがTrue
に設定されているADF表コンポーネント内の列のセットが含まれる変更済範囲のセルを調べます。TriggersRowRefresh
プロパティがTrue
に設定されている列の変更済セルが含まれる各表行について、自動行リフレッシュが実行されます。 -
自動行リフレッシュでエラーがレポートされても、ADF表コンポーネントの
Upload
アクションが妨げられることはありません。Upload
アクションで使用される値は、自動行リフレッシュ完了後の列の値(エラーの原因となった値も含む)です。このため、必要な制約はUpload
アクションの起動中に適用してください。
統合Excelワークブックでのマクロの使用
統合ExcelワークブックのExcelイベントに基づいて、マクロを定義して実行できます。ADFデスクトップ統合は、Excelイベントに応答します。Excelイベントの例としては、Excelのワークシートが変更された場合に発生する変更イベントなどがあります。
Excelイベントは、エンド・ユーザーまたはマクロがアクションを実行したとき(新しい行の挿入など)に発生する可能性があります。ADFデスクトップ統合は、Excelイベントに応答します。ADFデスクトップ統合がExcelイベントに応答してコードをトリガしたとき、これ以降のExcelイベントはすべて抑制されます。
たとえば、統合Excelワークブックで、変更イベントが特定のセルで発生したときにワークブックがトリガするマクロを作成するとします。エンド・ユーザーがセルを変更すると、Excelイベントが発生し、マクロが実行されます。ただし、ADFデスクトップ統合がセルを変更した場合は、Excelイベントは発生せず、マクロは実行されません。
Excelイベントの詳細は、Microsoft社のドキュメントを参照してください。