この章では、ADFデスクトップ統合により提供される表タイプ・コンポーネント、その構成方法と使用方法、Fusion Webアプリケーションからデータをダウンロードする方法、統合Excelワークブックで表タイプ・コンポーネントからデータ行の挿入、更新、削除を行う方法、変更内容の追跡方法、表タイプ・コンポーネントで特殊な列を構成する方法、および表タイプ・コンポーネントを使用して実行できるその他のタスクについて説明します。
この章の内容は次のとおりです。
ADFデスクトップ統合には、構造化データを表示するための次の表タイプ・コンポーネントがあります。
ADF表コンポーネント
ADF読取り専用表コンポーネント
ADF表コンポーネントとADF読取り専用表コンポーネントは、エンド・ユーザーにデータ行をダウンロードおよびアップロードする機能を提供します。また、ADF表コンポーネントは、エンド・ユーザーがダウンロードしたデータの編集や削除、新しいデータ行の挿入を行えるようにします。図7-1は、ADF表コンポーネントとADF読取り専用表コンポーネントを示します。
それぞれのADF表コンポーネントには、「キー」列が1つ含まれています。「キー」列には、ADFデスクトップ統合で表が正しく機能するために使用される重要な情報が含まれるため、削除しないでください。「キー」列を削除したり、「キー」列のセルを変更すると、エラーおよびデータ破損が発生します。キー列の詳細は、7.13項「ADF表コンポーネントのキー列の構成」を参照してください。
これらの表タイプ・コンポーネントとともに使用可能な他のADFデスクトップ統合コンポーネントの詳細は、第6章「ADFデスクトップ統合フォーム・タイプ・コンポーネントの使用」を参照してください。
表は、構造化された情報を表示するときに使用されます。たとえば、表7-2は、ADFデスクトップ統合のSummitサンプル・アプリケーションのADF表コンポーネントと、それぞれのFusion Webアプリケーションからダウンロードされたデータを示します。
統合Excelワークブックに表コンポーネントを追加した後、表を構成するために追加機能が必要になることがあります。表コンポーネントで使用可能な他の機能へのリンクは次のとおりです。
変更の追跡: 表コンポーネントで変更の追跡を可能にします。詳細は、7.22項「ADF表コンポーネントでの変更の追跡」を参照してください。
Webページ・ピッカー: ダイアログ・アクションを構成して、Fusion WebアプリケーションからWebページを表示します。詳細は、8.4項「Fusion WebアプリケーションからのWebページの表示」を参照してください。
依存値リスト: 表コンポーネントに依存値リスト・コンポーネントを追加できます。詳細は、8.8項「統合Excelワークブックでの依存値リストの作成」を参照してください。
スタイル: 事前定義済のExcelのスタイルをいくつか使用して、フォーム・タイプ・コンポーネントの表示を構成できます。詳細は、9.2項「スタイルの使用」を参照してください。
EL式: EL式を表タイプ・コンポーネントとともに使用できます。詳細は、付録B「ADFデスクトップ統合のEL式」を参照してください。
ADF表コンポーネントは、ADFデスクトップ統合が公開するOracle ADFコンポーネントの1つです。これは、ADFデスクトップ統合デザイナの作業ウィンドウのコンポーネント・パレットに表示されます。Excelワークシートに挿入された後は、次の操作が可能です。
読取り専用
挿入専用
更新専用
挿入と更新
ADF表コンポーネントに固有のページ定義ファイルの要件の詳細は、次の項を参照してください。
エンド・ユーザーにデータ・エントリ機能を提供するようADF表コンポーネントを構成するには、Excelワークシートの基礎となるページ定義ファイルにADFバインディングをあらかじめ構成しておく必要があります。統合Excelワークブックのページ定義ファイルの要件の概要は、4.3項「統合Excelワークブックのページ定義ファイルの使用」を参照してください。
ADF表コンポーネント作成のためにページ定義ファイルを作成する際に、次のコントロール・バインディングを公開します。
目的の属性バインディングを公開するツリー・バインディング。ADFデスクトップ統合では、ViewObjectに対してScrollable
アクセス・モードのみがサポートされています。他のアクセス・モードはサポートされていません。
ADF表コンポーネントのRowActions
およびBatchOptions
プロパティ・グループの値を構成する場合は、メソッド・アクション・バインディングとアクション・バインディング。これらのプロパティ・グループに値を設定する手順の例には、次のものがあります。
注意: これらのエントリがすべてではありません。 |
(オプション)レコード・アクション・バインディングを更新します。
注意: Excelはバインディングのフラット・リストを表示して、イテレータは表示されないため、異なるイテレータの属性にはわかりやすい名前を使用します。 |
図7-3に、ページ定義ファイルExcelCustomers.xml
に含まれるバインディングを示します。このページ定義ファイルは、関連付けられているExcelワークシートでのADF表コンポーネントの使用をサポートします。
ページ定義ファイルを正しく構成した後、ADF表コンポーネントをワークシートに挿入してプロパティを構成し、必要な機能を使用可能にできます。ADF表コンポーネントを使用して、データ行のダウンロード、編集、アップロードを行うことができます。
ADFデスクトップ統合デザイナの作業ウィンドウからADF表コンポーネントを挿入できます。
開始する前に:
ADF表コンポーネントについて理解しておくと役立ちます。詳細は、7.3項「ExcelワークシートへのADF表コンポーネントの挿入」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ExcelワークシートへADF表コンポーネントを挿入するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを挿入するExcelワークシートのセルを選択します。
ADF表コンポーネントへの挿入の際、2つの表のデータが実行時に重複しないことと、選択したセルがマージされたセルでないことを確認する必要があります。
ADFデスクトップ統合デザイナの作業ウィンドウのバインディング・パレットで、使用するツリー・バインディングを選択して、バインディングの挿入をクリックします。
選択内容に基づいて、「コンポーネントの選択」ダイアログまたはコンポーネントの挿入ダイアログが表示されます。
表示されたダイアログで、「ADF表」を選択して「OK」をクリックします。
注意:
|
図7-4に示すように、プロパティ・インスペクタを使用してADF表コンポーネントのプロパティを構成します。
ツリー・バインディングに関連付けられたイテレータの各行を一意に識別する属性のバインディング式を指定します。バインディングのイテレータが行のキーをサポートする場合、UniqueAttribute
プロパティは空白のままにしても問題ありません。
表7-1の説明に従って、ADF表コンポーネントのBatchOptions
プロパティを構成します。
オプションで、RowLimit
グループ・プロパティを構成し、ADF表コンポーネントがダウンロード可能な行数を決定します。
詳細は、7.20項「表タイプ・コンポーネントがダウンロードする行数の制限」を参照してください。
「OK」をクリックします。
図7-5は、設計モードでのEditCustomers-DT.xlsx
におけるADF表コンポーネントを示しています。
図7-6は、実行時のEditCustomers-DT.xlsx
におけるADF表コンポーネントを示しています。
ADF表コンポーネントに設定可能なプロパティの詳細は、A.12項「ADF表コンポーネントのプロパティとアクション」を参照してください。
表コンポーネントを削除するには、「削除」リボン・コマンドを使用します。詳細は5.14項「ADFデスクトップ統合コンポーネントの削除」を参照してください。
統合ExcelワークブックのワークシートにADF表コンポーネントを挿入した後、ツリー・バインディングで使用できない列を追加したい場合があります。たとえば、Excel式によって計算される値を表示する列を追加する場合です。
開始する前に:
ADF表コンポーネントについて理解しておくと役立ちます。詳細は、7.3項「ExcelワークシートへのADF表コンポーネントの挿入」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネントに列を追加するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
「コンポーネントの編集: ADF表」ダイアログで、Columns
プロパティの参照(...)アイコンをクリックします。
「列の編集」ダイアログが表示され、選択したADF表コンポーネントのすべての列が一覧表示されます。
「追加」をクリックして、新しい列を追加します。新しい列が、Membersリストの末尾に挿入されます。列を特定の位置に移動するには、列を選択して「上」と「下へ」の配列キーを使用します。
ダイアログの右側ウィンドウにある新しい列のプロパティを構成します。
「OK」をクリックします。
ADFデスクトップ統合では、ADF表コンポーネントに追加可能な列の数に制限はありません。使用するExcelのバージョンでサポートされている列の数だけ追加できます。ただし、表の幅が非常に広い場合、パフォーマンスと操作性が低下することが報告されています。このような状況が発生した場合は、まず表の列数を減らしてみてから、パフォーマンス低下の他の理由を診断してください。
ワークシートにADF表コンポーネントを追加した後は、ADF表コンポーネントがFusion Webアプリケーションからデータをダウンロードするように、コンポーネントおよびそれをホストするワークシートを構成できます。これを実行するには、ワークシート・リボン・コマンドなどのOracle ADFコンポーネントを構成して、アクション・セットを起動します。起動されるアクション・セットには、起動されるアクションの中からADF表コンポーネントDownload
アクションを含める必要があります。
ADF表コンポーネントやADF読取り専用コンポーネントに含まれる行数は、Fusion Webからダウンロードする行数に基づいて増減します。Excelが表タイプ・コンポーネントがダウンロードするデータを受け入れるために行を挿入するときに、複製する場合を除いて、表タイプ・コンポーネントの左右には何も配置しないでください。実行時に表タイプ・コンポーネントに対して位置が維持されるため、表タイプ・コンポーネントの上下には他のコンポーネントを配置できます。エンド・ユーザーが実行時にADF表コンポーネントに新しいデータ行を挿入する場合は、ADF表コンポーネントをホストするExcelワークシートに行全体を挿入する必要があります。
Oracle ADFコンポーネント、ワークシート・リボン・ボタン、ワークシート・イベントを構成して、ADF表コンポーネントDownload
アクションを起動するアクション・セットを起動します。
開始する前に:
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADFコンポーネントを構成してデータをADF表データ・コンポーネントにダウンロードする方法を理解しておくと役立ちます。詳細は、7.4項「ADF表コンポーネントにデータをダウンロードするためのOracle ADFコンポーネントの構成」を参照してください。
ADFコンポーネントを構成してADF表コンポーネントにデータをダウンロードするには:
統合Excelワークブックを開きます。
「Oracle ADF」タブで、「ワークシート・プロパティ」ボタンをクリックし、リボン・コマンドを追加します。ワークシートにリボン・コマンドを追加する方法の詳細は、8.3.1項「実行時リボン・タブのワークブック・コマンド・ボタンの構成方法」を参照してください。
注意: リボン・コマンドを追加するかわりに、実行時にアクション・セットを起動するように、ワークシート・イベントまたはOracle ADFコンポーネント(たとえばボタン)を構成できます。 |
アクションの編集ダイアログを開き、アクション・セットを構成します。アクション・セットの起動の詳細は、8.2項「アクション・セットの使用」を参照してください。
ADF表コンポーネントDownload
アクションを、実行時にアクション・セットにより起動されるアクションのリストに追加します。Download
はコンポーネント・アクションです。
ADF表コンポーネントDownload
アクションは、ADF表コンポーネントTreeID
プロパティにより参照されるバインディングの現在の状態をダウンロードします。ダウンロードの前にこのバインディングの状態が最新であることを確認するため、アクション・セットがADF表コンポーネントDownload
アクションを起動する前にバインディングをリフレッシュする問合せアクションを追加します。
図7-7は、EditCustomers-DT.xlsx
ワークブックの「アクションの編集」ダイアログを示しています。ここでは、ワークシート・イベントStartup
により起動されるアクション・セットが構成されます。
「OK」をクリックします。
エンド・ユーザーは、構成されたアクション・セットを起動します。アクション・セットは、指定されたアクションのリストを順に起動します。これには、ADF表コンポーネントのDownload
アクションを起動するアクションが含まれます。起動時に、Download
アクションは、ADF表コンポーネントTreeID
プロパティにより参照されるツリー・バインディングからすべての行をダウンロードします。
実行時にDownload
アクションが起動される場合は、次の重要な点に注意してください。
Download
アクションの起動時に、変更済とマークされた行が存在すると、エンド・ユーザーはアクションを確認して続行するように求められます(図7-8を参照)。エンド・ユーザーが「いいえ」を選択すると、アクションとアクション・セットはエラーなしで中止されます。
既存のすべてのExcel行がExcelの表から削除されます。
ステータス列からすべてのメッセージが消去されます。
アクションによりダウンロードされる行数は、ADF表コンポーネントでRowLimit
グループ・プロパティに設定された値によって異なります。詳細は、7.20項「表タイプ・コンポーネントがダウンロードする行数の制限」を参照してください。
注意: ワークシートに適用されたフィルタ条件は |
保留中の挿入行は、アップロード時に、新しいデータ行としてイテレータに挿入されるデータのあるワークシートの表の行です。たとえば、エンド・ユーザーが、右クリックのコンテキスト・メニューにある「挿入」オプションを使用して表に新しい行を作成する場合、新しい行は保留中の挿入行として扱われ、アップロード時にイテレータに挿入されます。
保留中の更新行は、アップロード時に、イテレータの既存のデータを更新するデータのあるワークシートの表の行です。たとえば、ツリー・バインディングのイテレータにデータベースから取得した行が含まれている場合、その行がADF表にダウンロードされると、その行は保留中の更新行として扱われます。エンド・ユーザーがこれらの行を変更しアップロードすると、イテレータ内の既存の行はADF表の行の新しい値で更新されます。
大部分の場合、ツリー・バインディングのイテレータ内の行は保留中の更新行としてADF表にダウンロードされます。一部の行を保留中の挿入としてダウンロードする場合は、これらの行の状態をSTATUS_INITIALIZED
に設定する必要があります。行の状態をSTATUS_INITIALIZED
に設定する方法の詳細は、Oracle Fusion Middleware Oracle ADFモデルJava APIリファレンスのsetNewRowStateメソッドを参照してください。
保留中の挿入行と保留中の更新行には次の違いがあります。
保留中の挿入行には、ADF表コンポーネントの各列に関連付けられた挿入コンポーネントに対するEL式の値が移入されるのに対し、保留中の更新行には、ADF表コンポーネントの各列に関連付けられた更新コンポーネントに対するEL式の値が移入されます。
保留中の挿入行の検証時に、EL式#{components.componentID.currentRowMode}
はInsert
を返します。これに対し、保留中の更新行の場合は、同じEL式がUpdate
を返します。
EL式#{components.componentID.currentRowMode}
のcomponentID
部分は、ADF表コンポーネントのIDを参照します。
Download
アクションが起動されると、そのアクションはイテレータ内のすべての行の状態を確認します。状態がSTATUS_INITIALIZED
の行は保留中の挿入行として表にダウンロードされ、他の状態の行は保留中の更新行としてダウンロードされます。
STATUS_INITIALIZED
行を使用して、保留中の挿入行の一部の属性またはすべての属性の値を事前移入できます。STATUS_INITIALIZED
行は検証されないため、Download
アクションが起動される前に、STATUS_INITIALIZED
行の一部を移入し、その行をイテレータに挿入するアクションを構成できます。Download
アクションはこの行を保留中の挿入行として扱うため、事前移入された行に基づいて新しい行を挿入できます。
保留中の挿入のアップロード後に、STATUS_NEW
行がイテレータに挿入されますが、元のSTATUS_INITIALIZED
行は削除されません。必要に応じて、STATUS_INITIALIZED
行を削除する別のアクションを構成できます。たとえば、次の操作でアクション・セットを構成できます。
1. STATUS_INITIALIZED
行を作成します。
2. Download
アクションを実行します。
3. STATUS_INITIALIZED
行を消去します。
注意:
|
ADF表コンポーネントを追加すると、デフォルトでエンド・ユーザーが既存のデータを編集できるようになりますが、新しいデータ行の追加や既存のデータ行の削除はできません。
エンド・ユーザーが既存のデータを編集できるようにしながら、データ行の追加や削除を制限する場合、追加の構成は必要ありません。表7-2や図7-9に示すように、ADF表コンポーネントのRowAction
プロパティが設定されていることを確認してください。
エンド・ユーザーが行のデータを変更すると、ADFデスクトップ統合によりその行にマークが付けられ、上向きの三角形が_ADF_ChangedColumn
列の行に表示されます。既存のデータを更新した後、エンド・ユーザーはアップロード処理を開始して変更を保存します。ADF表コンポーネントのアップロード処理の詳細は、7.8項「ADF表コンポーネントから変更をアップロードするためのADFコンポーネントの構成」を参照してください。
Excelは、統合ワークブックで変更された行を、行ごとにではなくバッチ処理でアップロードします。バッチをアップロードするときのバッチのサイズとADF表コンポーネントが起動するアクションを構成できます。バッチ処理の詳細は、7.11項「ADF表コンポーネントでのバッチ処理」を参照してください。
ADF表コンポーネントに設定可能なプロパティの詳細は、A.12項「ADF表コンポーネントのプロパティとアクション」を参照してください。
注意: ワークシートに適用されたフィルタ条件は、Uploadアクションの前に自動的にクリアされます。 |
ADF表コンポーネントの第一の目的は、データを入力および編集し、Fusion Webアプリケーションにサービスを提供するデータベースにアップロードできるインタフェースをエンド・ユーザーに提供することです。この目的を達成するには、データ・コントロールのメソッドを公開し、ページ定義ファイルでアクション・バインディングを作成して、ExcelワークシートがホストするADF表コンポーネントのプロパティを設定する必要があります。この機能が正常に動作するには、Excelの行全体を挿入する必要がある点に注意してください。
エンド・ユーザーがADF表コンポーネントで行う変更をADF表コンポーネントのUpload
アクションを起動してコミットするには、ADF表コンポーネントのプロパティをいくつか構成する必要があります。
開始する前に:
ADF表コンポーネントを構成してデータを挿入する方法を理解しておくと役立ちます。詳細は、7.7項「データを挿入するためのADF表コンポーネントの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ビュー・オブジェクトの操作を使用してデータを挿入するためにADF表コンポーネントを構成するには:
JDeveloperでプロジェクトを開きます。
プロジェクトがない場合は、CreateInsert
とCommit
アクション・バインディングを、ADF表コンポーネントをホストするExcelワークシートに関連付けられたページ定義ファイルに追加します。
詳細は、4.3項「統合Excelワークブックのページ定義ファイルの使用」と7.2項「ADF表コンポーネントのページ定義の要件」を参照してください。
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
コンポーネントの編集: ADF表ダイアログで、表7-3に示すようにADF表コンポーネントのRowActions
プロパティを構成します。
表7-4の説明に従って、ADF表コンポーネントのBatchOptions
プロパティを構成します。
表7-5に示すように、ADF表コンポーネントのColumns
プロパティを構成します。
表7-5 ADF表コンポーネントのColumnsプロパティ
設定するプロパティ | 設定する値 |
---|---|
|
|
|
|
|
ADF表コンポーネントの列のリストで列を一意に識別する値をこのフィールドに設定します。このプロパティの値は必須です。ADF表コンポーネントによって、変更の必要がない初期値が生成されます。 |
|
このプロパティを、ワークブックで定義するスタイル、または実行時に列のセルにスタイルを適用するEL式に設定します。スタイルの詳細は、第9章「統合Excelワークブックの外観の構成」を参照してください。 |
|
このプロパティをラベル、または実行時に列ヘッダーにレンダリングされるラベルに評価されるEL式に設定します。ラベルの詳細は、9.4項「統合Excelワークブックでのラベルの使用」を参照してください。 |
|
このプロパティをワークブックで定義するスタイル、または実行時に列のヘッダーのセルにスタイルを適用するEL式に設定します。スタイルの詳細は、第9章「統合Excelワークブックの外観の構成」を参照してください。 |
Upload
アクションの起動時にコミットするデータを含む列ごとに、手順7を繰り返します。
ADF表コンポーネント・プロパティの詳細は、A.12項「ADF表コンポーネントのプロパティとアクション」を参照してください。
注意:
|
エンド・ユーザーがADF表コンポーネントでデータに加える変更をFusion Webアプリケーションにアップロードできるように、ADF表コンポーネントおよびホストされるワークシートを構成します。この機能を構成するには、どのようなユーザーによる操作やワークシート・イベントが、ADF表コンポーネントのUpload
アクションを起動するアクション・セットを起動するかを決定します。
Upload
アクションは、一部の行で失敗があっても、正常なすべての行をコミットします。1つ以上の行で失敗があったときに行の変更がコミットされないようにする場合は、かわりにUploadAllOrNothing
アクションを使用します(7.9項「UploadAllOrNothingアクションを使用して変更をアップロードするためのADF表コンポーネントの構成」を参照)。Fusion WebアプリケーションからのWebページで、エンド・ユーザーにデフォルトのアップロード用ダイアログとは異なるアップロード・オプションを提供するには、ADF表コンポーネントのUpload
を起動するアクションの前に、アクション・セットでDialog
アクションを指定する必要があります。詳細は、7.8.5項「カスタムのアップロード・ダイアログの作成方法」を参照してください。
注意: マスター/ディテール関係では、ADFデスクトップ統合は |
ワークシート・リボン・コマンドなどの、ADFコンポーネントを構成し、アクション・セットを起動します。これは、続いてADF表コンポーネントのUpload
アクションを起動します。
開始する前に:
ADFコンポーネントを構成してデータをADF表データ・コンポーネントからアップロードする方法を理解しておくと役立ちます。詳細は、7.8項「ADF表コンポーネントから変更をアップロードするためのADFコンポーネントの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADFコンポーネントを構成してADF表コンポーネントに変更済データをアップロードするには:
統合Excelワークブックを開きます。
「アクションの編集」ダイアログを開いて、ADF表コンポーネントのUpload
アクションを起動するアクション・セットを構成します。
アクション・セットの詳細は、8.2項「アクション・セットの使用」を参照してください。
ADF表コンポーネントのUpload
アクションを、実行時にアクション・セットにより起動されるアクションのリストに追加します。
図7-10は、EditCustomers-DT.xlsx
ワークブックの「編集実行時」ダイアログを示しています。ここでは、実行時にUploadのラベルの付いたリボン・コマンドにより起動されるアクション・セットが構成されます。
「OK」をクリックします。
注意: このアクション・セットには、ADF表コンポーネントのバッチ・オプションに |
実行時にエンド・ユーザーは、構成したメカニズム(ADFコンポーネント、ワークシート・リボン・ボタン、ワークシート・イベント)アクション・セットを起動します。これによって、次の一連のイベントがトリガーされます。
ADF表コンポーネントに動的な列が含まれる場合、ADFデスクトップ統合は前回ADF表コンポーネントのDownload
アクションが起動されたときに展開された動的な列が、まだFusion Webアプリケーションに存在するかどうかを検証します。列が存在しない場合は、ADFデスクトップ統合はアップロード処理を続行するかどうか決めるようエンド・ユーザーにプロンプトを表示します。エンド・ユーザーが続行しないと決めた場合、ADFデスクトップ統合は実行中のアクション・セットに中止コードを返します。
ADF表コンポーネントにアップロードする保留中の変更がない場合、ADF表コンポーネントのUpload
アクションは実行中のアクション・セットに成功コードを返します。
7.8.5項「カスタムのアップロード・ダイアログの作成方法」にあるようにアクション・セットにカスタムのアップロード・ダイアログを構成しなかった場合、ADFデスクトップ統合は図7-11に示すようなデフォルトのアップロード・ダイアログを表示します。
エンド・ユーザーが「取消」をクリックした場合、ADFデスクトップ統合は実行中のアクション・セットに中止コードを返します。エンド・ユーザーが「OK」をクリックすると、アクション・セットはアップロード操作のダイアログで指定したオプションの実行を続けます。
ADF表コンポーネントは、変更した行を1行ずつではなく、バッチでアップロードします。バッチ・オプションはBatchOptions
プロパティ・グループを使用して構成できます。ADF表コンポーネントのバッチ・オプションの詳細は、7.11項「ADF表コンポーネントでのバッチ処理」を参照してください。
各バッチ行は次のように処理されて、各バッチの変更されたすべての行が終わるまで処理が続けられます。
挿入された行の場合は、InsertBeforeRowActionID
アクションが起動されます(指定されている場合)。
キャッシュされたすべての行属性の値を含む、ワークシートからの属性をモデルに設定します。
編集された行の場合、UpdateRowActionID
アクションを起動し、挿入された行については、InsertAfterRowActionID
アクションを起動します(指定されている場合)。
アップロードされた各行について、ステータス・メッセージがStatus列に表示されます。詳細は、8.2.5項「アクション・セットの実行中にステータス・メッセージを表示する方法」を参照してください。
行について失敗があった場合、AbortOnFail
の値が検証されます。AbortOnFail
がFalse
に設定されている場合、アップロード処理は続けられ、それ以外の場合はデータのアップロードを停止してコミット・アクションを起動します。
データをアップロードする際、ADF表コンポーネントは次の条件に基づいて実行中のアクション・セットに成功または失敗のコードを返します。
ADF表コンポーネントがすべてのバッチを問題なくアップロードした場合、実行中のアクション・セットに成功のステータスが返されます。エンド・ユーザーが手順3で「正常にアップロードした後はすべての行をダウンロードします」オプションを選択した場合、ADF表コンポーネントはFusion Webアプリケーションからすべての行をダウンロードします。
ADF表コンポーネントがすべてのバッチを正常にアップロードしなかった場合、アクション・セットはRowActions.FailureActionID
プロパティで指定されたアクションを起動します(このプロパティにアクションが指定されている場合)。ADFデスクトップ統合は、アクション・セットに失敗コードを返します。
手順3の「アップロード・オプション」ダイアログで「失敗した場合は、引き続き後続の行をアップロードします」を選択した場合、一部の行で検証に失敗した場合でも、Uploadアクションはアクション・セットに成功コードを返します。
注意:
|
実行時にADF表コンポーネント列のReadOnly
プロパティがTrue
に評価された場合、ADF表コンポーネントのUpload
アクションは列のセルにあるすべての変更を無視します。
変更トラッキングに関する詳細は、7.23項「読取り専用プロパティのEL式の評価」を参照してください。
ADF表コンポーネントがデータのアップロードを開始すると、ADFデスクトップ統合はアップロード処理を開始する前にDataControlFrame
セーブポイントを作成します(アップロードされた行のバッチごとに1回)。なんらかの失敗があった場合、ADFデスクトップ統合は同じセーブポイントまで戻り、Fusion Webアプリケーションのサーバー・サイドの状態の整合性を維持します。
アップロードされた行のバッチの各行ごとに、ADFデスクトップ統合は次の処理を実行します。
構成されたアクションを起動し、行の属性値の変更を適用して、データの検証を実行。
なんらかのエラーがあった場合、セーブポイントの状態に復元。
注意: 必要に応じて2度目の繰り返しが実行され、アップロードに成功したすべての行でその後のアップロード・エラーによって変更が元に戻されたものが再度アップロードされます。 |
セーブポイントの詳細は、Oracleアプリケーション開発フレームワークによるFusion Webアプリケーションの開発のツリーを使用したマスター/ディテール・オブジェクトの表示に関する項を参照してください。
デフォルトのアップロード・ダイアログのものとは異なるオプションをエンド・ユーザーに提供する、Fusion Webアプリケーションからのページを表示します。アクション・セットでADF表コンポーネントのUpload
アクションを起動するアクションの前に、Dialog
アクションを追加します。
開始する前に:
ADFコンポーネントを構成してデータをADF表データ・コンポーネントからアップロードする方法を理解しておくと役立ちます。詳細は、7.8項「ADF表コンポーネントから変更をアップロードするためのADFコンポーネントの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
カスタムのアップロード・ダイアログを作成するには:
Fusion Webアプリケーションを開発するJDeveloperプロジェクトにページを作成します。このページの作成方法の詳細は、8.4項「Fusion WebアプリケーションからのWebページの表示」を参照してください。
8.4項「Fusion WebアプリケーションからのWebページの表示」 に示すADFdi_CloseWindow
要素(span要素など)の他に、手順1で作成するページには表7-6に示す要素を含める必要があります。
表7-6 カスタム・アップロードに必要なSpan要素
名前 | 説明 |
---|---|
|
この要素を |
|
この要素を |
注意: 作成するページには、ADFデスクトップ統合がデフォルトのアップロード・ダイアログをエンド・ユーザーに表示しないように、両方の要素を含める必要があります。 |
手順1 で作成したページを起動するには、ADF表コンポーネントのUpload
アクションを起動するアクション・セットのアクションより前に、Dialog
アクションを追加します。
Fusion Webアプリケーションからのページを表示する詳細は、8.4項「Fusion WebアプリケーションからのWebページの表示」を参照してください。
カスタムのダイアログが表示されるときに、デフォルトのアップロード・ダイアログではなく、表示されるアクション・セットでDialog
アクションを構成するFusion Webアプリケーションからのページが表示されます。
注意: エンド・ユーザーがデータをアップロードしようとしてサーバーに接続されていない場合、 |
Fusion Webアプリケーションからのページを表示する詳細は、8.4項「Fusion WebアプリケーションからのWebページの表示」を参照してください。 それ以外の、データをアップロードするために構成するアクション・セットの実行時の動作については、7.8.2項「実行時の処理: ADF表コンポーネントによるデータのアップロード」を参照してください。
ADFデスクトップ統合は、Table.Upload
操作時に正常にアップロードされたすべての行の変更を、1つ以上の行で失敗があった場合でもコミットします。たとえば、100行がアップロードされ、3行のみで失敗があった場合は、97行がデータベースにコミットされます。詳細は、7.8項「ADF表コンポーネントから変更をアップロードするためのADFコンポーネントの構成」を参照してください。
UploadAllOrNothing
アクションを使用すると、すべての行が正常にアップロードされた場合にかぎり変更されたすべての行をコミットするように、アップロード・プロセスを構成できます。たとえば、100行がアップロードされ、いくつかの行で失敗があった場合は、行はデータベースにコミットされません。
ワークシート・リボン・コマンドなどのADFコンポーネントを構成し、アクション・セットを起動します。これは、続いてADF表コンポーネントのUploadAllOrNothing
アクションを起動します。
開始する前に:
ADFコンポーネントを構成してデータをADF表データ・コンポーネントからアップロードする方法を理解しておくと役立ちます。詳細は、7.9項「UploadAllOrNothingアクションを使用して変更をアップロードするためのADF表コンポーネントの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
UploadAllOrNothingアクションを使用するためにADFコンポーネントを構成するには:
統合Excelワークブックを開きます。
アクションの編集ダイアログを開いて、ADF表コンポーネントのアクションを起動するアクション・セットを構成します。
アクション・セットの詳細は、8.2項「アクション・セットの使用」を参照してください。
ADF表コンポーネントのUploadAllOrNothing
アクションを、実行時にアクション・セットにより起動されるアクションのリストに追加します。
「OK」をクリックします。
UploadAllOrNothing
アクションを選択した場合、ADFデスクトップ統合は、すべての行が正常にアップロードされた場合にかぎり、行の変更をコミットします。
注意:
|
UploadAllOrNothing
アクション時に、ADFデスクトップ統合は、CommitBatchActionID
によって指定されたアクションが起動される前に、変更されたすべてのワークシート行をアップロードします。1つ以上の行レベルの失敗があると、FailureActionID
によって指定されたアクションは起動されますが、CommitBatchActionID
によって指定されたアクションは起動されません。
失敗があると、変更されたすべての列値は未変更のままになります。ステータス列は行レベルのすべての失敗に対してエラーを示しますが、エラーのない行については空白のままになります。すべての行が成功し正常にコミットされると、変更された列の値は消去され、アップロードされた行のステータス列は成功を示します。
注意:
|
UploadAllOrNothing
アクションで非常に多くの変更済ワークシート行をアップロードすると、アプリケーション・サーバーでのメモリー消費量が大幅に増加する可能性があります。UploadAllOrNothing
アクションの実行時にエンド・ユーザーが非常の多くのデータをアップロードすることを防ぐために、アップロードできる変更済データの合計を制限するUploadAllOrNothing.ChangedDataLimit
サーブレット・パラメータを設定します(Kb
で指定)。パラメータ値が指定されない場合は、デフォルトの制限値の10,240 Kb
が使用されます。
変更済データのアップロードの合計がUploadAllOrNothing.ChangedDataLimit
値を超過すると、エンド・ユーザーにエラー・メッセージが報告され、UploadAllOrNothing
アクションが中止されます。変更済データの制限を超過すると、Table.RowActions.FailureActionID
によって指定されたアクションが起動されます。
ADF表コンポーネントは、アクション(DeleteFlaggedRows
)を公開します。このアクションは起動されると、ADF表コンポーネントでフラグの付いた行に対応するFusion Webアプリケーションの行を削除します。ADF表コンポーネントでフラグの付けられた行とは、7.11項「ADF表コンポーネントでのバッチ処理」に示すように、エンド・ユーザーがダブルクリックしたか、_ADF_FlagColumn
列のセルに文字を入力した行です。_ADF_FlagColumn
列を構成してFusion Webアプリケーションの行を削除するには、列がADF表コンポーネントに存在する必要があります。
また、ADF表コンポーネントをホストするワークシートに関連付けるページ定義ファイルは、Delete
アクション・バインディングを公開する必要があります。
ADF表コンポーネントから行を削除するには、Delete
アクション・バインディングをページ定義ファイルに追加し、ADF表コンポーネントのRowActions
プロパティ・グループを構成して、さらにアクション・セットを構成してDeleteFlaggedRows
アクションを起動する必要があります。
開始する前に:
ADF表コンポーネントを構成してFusion Webアプリケーションのデータ行を削除する方法を理解しておくと役立ちます。詳細は、7.10項「Fusion Webアプリケーションで行を削除するためのADF表コンポーネントの構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネントを構成して、Fusion Webアプリケーションで行を削除するには:
JDeveloperでFusion Webアプリケーションを開きます。
存在しない場合は、Delete
アクション・バインディングを、ADF表コンポーネントをホストするExcelワークシートに関連付けられたページ定義ファイルに追加します。
詳細は、4.3項「統合Excelワークブックのページ定義ファイルの使用」を参照してください。
ADF表コンポーネントのプロパティ・インスペクタを開いて、表7-7に示すようにRowActions
プロパティ・グループの値を設定します。
表7-7 ADF表コンポーネントのRowActionsプロパティ
設定するプロパティ | 目的 |
---|---|
|
ページ定義ファイルで公開された |
|
デフォルト値は |
ADF表コンポーネント・プロパティの詳細は、A.12項「ADF表コンポーネントのプロパティとアクション」を参照してください。
「OK」をクリックします。
統合Excelワークブックを開きます。
「アクションの編集」ダイアログを開き、実行時にアクション・セットを起動するときにエンド・ユーザーが使用するOracle ADFコンポーネント、リボン・コントロール、ワークシート・イベントにアクション・セットを構成します。
ADF表コンポーネントのDeleteFlaggedRows
アクションを、実行時にアクション・セットにより起動されるアクションのリストに追加します。
アクション・セットの起動の詳細は、8.2項「アクション・セットの使用」を参照してください。
「OK」をクリックします。
注意:
|
エンド・ユーザーは、7.11.2項「ADF表コンポーネントでの行のフラグ付け」で説明されているように、削除する行にフラグを付けます。それからエンド・ユーザーはアクション・セットを起動します。次に示す一連のイベントが発生します。
指定があれば、BatchOptions.StartBatchActionID
プロパティに参照されるアクション・バインディングが起動されます。
この手順での失敗はエラーとして処理されます。エラーがあると、アクション・セットの起動が停止します。また、アクション・セットにエラー条件が返されます。ActionSet.FailureActionID
プロパティにアクション・バインディングが指定されている場合、アクション・セットは指定されたアクション・バインディングを起動します。
バッチ・オプションの構成の詳細は、7.11項「ADF表コンポーネントでのバッチ処理」を参照してください。
アクション・セットは、RowActions.DeleteRowActionID
により指定されたDelete
アクション・バインディングを起動します。
注意: ADF表コンポーネントの |
Delete
アクション・バインディングの起動中にエラーがなければ、成功のメッセージ・エントリが_ADF_StatusColumn
列に表示されます。失敗があった場合、ADF表コンポーネントはDelete
アクション・バインディングの起動を中止して、手順4に進みます。
BatchOptions.CommitBatchActionID
プロパティにアクション・バインディングが指定されている場合、アクション・セットがそれを起動します。この手順に失敗した場合、アクション・セットはバッチ処理を停止します。失敗がなかった場合、アクション・セットはBatchOptions.StartBatchActionID
プロパティによって指定されたアクション・バインディングを起動することにより、すべてのバッチがアクションによって処理されるまで次のバッチを処理します。
アクション・セットがすべてのバッチを正常に処理した場合、ActionOptions.SuccessActionID
プロパティにアクション・バインディングが指定されていれば、このプロパティにより指定されたアクション・バインディングが起動されます。RowActions.DeleteRowActionID
で指定されているDelete
アクション・バインディングが起動して、Fusion Webアプリケーションにより削除された行がワークシートから削除され、アクション・セットに成功コードが戻されます。
アクションがバッチを処理する間に失敗があった場合、アクション・セットはそのActionOptions.FailureActionID
プロパティで指定されたアクション・バインディングを起動します(このプロパティにアクション・バインディングが指定されている場合)。このアクション・バインディングは、アクション・セットに失敗コードを返します。
アクション・セットがアクションを起動する際に予期しない例外が発生した場合、アクション・セットにエラー・コードが返されます。行レベルのエラーはすべてStatus列に表示され、バッチ・レベルのエラーはすべてTable.errors
から追跡できます。エラー処理の詳細は、12.4項「統合Excelワークブックでレポートされるエラー」を参照してください。
注意: Excelフィルタが適用されたADF表で |
ADFコンポーネントは、Excelワークブックで変更された行を、行ごとにではなくバッチ処理でアップロードします。バッチのサイズや、バッチのアップロード時にADF表コンポーネントが起動するアクションを決定するバッチ・オプションのプロパティを構成できます。
ADF表コンポーネントには、ADF表コンポーネントによる行のバッチの管理を構成できるプロパティ・グループ(BatchOptions
)があります。これらのプロパティの詳細は、A.12項「ADF表コンポーネントのプロパティとアクション」を参照してください。
開始する前に:
ADF表コンポーネントでのバッチ処理について理解しておくと役立ちます。詳細は、7.11項「ADF表コンポーネントでのバッチ処理」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネントのバッチ・オプションを構成するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
表示されたプロパティ・インスペクタでBatchOptions
プロパティ・グループの値を設定します。
表7-8 RowData.BatchOptionsプロパティ
設定するプロパティ | 目的 |
---|---|
|
ADF表コンポーネント・アクション( |
|
ADF表コンポーネントがそれぞれのバッチを処理した後で起動するアクション・バインディング。通常これは |
|
デフォルト値は |
|
各バッチの開始時に起動するアクション・バインディングを指定します。 |
「OK」をクリックします。
エンティティ・レベルでの失敗はバッチの失敗とは見なされません。コミット・レベルでの失敗(たとえば、外部キー属性の間違った値)はバッチの失敗と見なされます。
ADF表コンポーネントには、フラグの付いた処理で行を簡単に選択できる_ADF_FlagColumn
列がデフォルトで含まれています。_ADF_FlagColumn
列のセルをダブルクリックすると、対応する行にコンポーネント・アクションによって起動されるアクションによる処理のフラグが付きます。
エンド・ユーザーが_ADF_FlagColumn
列のセルをダブルクリックすると、セルに実線の円が表示されるか非表示になり、その行にフラグが付いているかどうかが示されます。図7-12はフラグの付いた列の例を示します。
注意: デフォルトでは、実線の円記号はフラグ付けされた行処理としてフラグ付けされた行を示します。ただし、 |
次のコンポーネント・アクションは、フラグ付けされた行に対して起動できます。
DeleteFlaggedRows
DownloadFlaggedRows
すべての行にフラグを付けるにはFlagAllRows
コンポーネント・アクションを、ADF表コンポーネントのすべての行からフラグを取るにはUnflagAllRows
コンポーネント・アクションを使用できます。
注意:
|
これらのコンポーネント・アクションの使用は、ADF表コンポーネントの_ADF_FlagColumn
列があるかどうかによって決まります。ADF表コンポーネントから_ADF_FlagColumn
列を削除すると、これらのコンポーネント・アクションはいずれも起動できません。コンポーネント・アクションの詳細は、A.12.3項「ADF表コンポーネントのアクション」を参照してください。
実行時にはエンド・ユーザーは以前にリストされたすべてのコンポーネント・アクションをアクション・セットから起動できます。起動されたコンポーネント・アクションは、フラグ付けされたすべての行を処理します。たとえば、フラグ付けされたすべての行をダウンロードまたは削除します。コンポーネント・アクションを起動するアクション・セットの構成の詳細は、8.2.2項「アクション・セット内のコンポーネント・アクションの起動方法」を参照してください。
ADF表コンポーネントからデータをアップロードする際に、特定の状況ではエンド・ユーザーが予期しないエラーを体験する可能性があります。バッチからの変更を記録した後に、ADFデスクトップ統合はCommitBatchActionID
で指定されたアクションを実行します。コミット・アクション中に発生したエラーが、それ以降のレコードのバッチにエラーがなくても、後に続くバッチ・コミット・アクションで引き続き報告される可能性があります。これは、CommitBatchActionID
アクションが失敗し、保留中のモデル更新が自動的に元に戻らなかった場合に発生する可能性があります。
このようなエラーを回避するには、コミットが失敗した後に存在する保留中のモデル更新を明示的に元に戻す必要があります。たとえば、最初に保留中のモデル変更をコミットしようとするカスタムのアクションをCommitBatchActionID
に作成します。ただし、コミット中に例外が発生した場合は、カスタム・メソッドは後に続くすべてのバッチ・コミットが成功するように、最初に保留中のモデル変更をロールバックする必要があります。
注意: クライアントで期待されるとおりにコミット・エラーが報告されるように、ロールバック後にコミットの例外がスローされることが重要です。 |
ADF表コンポーネントには、ワークシートにADF表コンポーネントを挿入する際にいくつかの列がデフォルトで含まれています。これらの列は、必要に応じてそのまま残しておくことも、削除することもできます。次に、これらの列とその目的を示します。
_ADF_ChangedColumn
この列のセルは、ADF表コンポーネントの行の変更を追跡します。ダウンロードまたは最後に成功したアップロード以降にADF表コンポーネントの行のデータを変更した場合、上向き矢印のような記号が、_ADF_ChangedColumn
列の対応するセルに表示されます。ユーザーのこの列のセルをダブルクリックすると、この記号は切り替わります(表示または非表示)。図7-13に例を示します。
注意: エンド・ユーザーがADF表コンポーネントの |
ADF表コンポーネントのDownload
アクションが起動されると、確認のダイアログがエンド・ユーザーに表示され、この列の1つ以上の行が変更済としてフラグ付けされます。Download
アクションの実行を許可するには「OK」を、Download
アクションの実行を停止するには「取消」をクリックします。
_ADF_FlagColumn
エンド・ユーザーがこの列のセルをダブルクリックすると、対応する行がフラグ付けされた行処理としてフラグ付けされます。実線の円記号が表示され、フラグ付けされた行処理のために行にフラグが付けられたことが示されます。この列の詳細は、7.11.2項「ADF表コンポーネントでの行のフラグ付け」を参照してください。
ADF表コンポーネントのDownloadFlaggedRows
アクションが起動されると、確認のダイアログがエンド・ユーザーに表示され、_ADFChangedColumn
と_ADF_FlagColumn
の1つ以上の行がフラグ付けされます。アクションの実行を許可するには「OK」を、アクションの実行を停止するには「取消」をクリックします。
注意: デフォルトでは、実線の円記号はフラグ付けされた行処理としてフラグ付けされた行を示します。ただし、 |
_ADF_StatusColumn
この列は、次のADF表コンポーネント・アクションの起動の結果をレポートします。
DeleteFlaggedRows
Upload
_ADF_StatusColumn
のセルにメッセージが表示され、対応する行の起動結果が示されます。エンド・ユーザーがADF表列で定義されたDoubleClickActionSet
を起動してエラーが発生した場合、そのエラーは対応する行のステータス列でもレポートされます。図7-14は、ステータス列のメッセージの例を示します。
_ADF_RowKeyColumn
「キー」列とも呼ばれるこの列には、実行時にADFデスクトップ統合によって使用されるADF表コンポーネントに関する重要な情報が含まれます。この列は実行時と設計時の両方に表示されます。設計時に表からこの列を削除できますが、実行時には表の最後の列として自動的に表示される点に注意してください。
_ADF_RowKeyColumn
の詳細は、7.13項「ADF表コンポーネントのキー列の構成」を参照してください。
ADF表コンポーネントでは、_ADF_ChangedColumn
列、_ADF_FlagColumn
列、_ADF_RowKeyColumn
列および_ADF_StatusColumn
列のプロパティは、それが参照する他の列のプロパティとは別の方法で処理されます。InsertComponent
やInsertUsesUpdate
、UpdateComponent
などのプロパティの値セットは、表A-14に示すようなDisplayRowErrors
アクションを起動する場合を除いて無視されます。CellStyleName
やHeaderStyleName
など、スタイルや外観に関連するプロパティの値が読み取られます。
統合ExcelワークブックにADF表を追加すると、設計時に「キー」列(列ID: _ADF_RowKeyColumn
)が自動的に表示されます。「キー」列には、ADFデスクトップ統合で表が正しく機能するために使用される重要な情報が含まれます。実行時には「キー」列を削除しないでください。
「キー」列の位置、スタイルのプロパティ、ヘッダー・ラベルを構成できます。デフォルトでは_ADFDI_TableKeyCellStyle
スタイルが適用されます。
開始する前に:
ADF表コンポーネントのキー列について理解しておくと役立ちます。詳細は、7.13項「ADF表コンポーネントのキー列の構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
「キー」列を構成するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
「コンポーネントの編集: ADF表」ダイアログで、Columnsの入力フィールドの横にある参照(...)アイコンをクリックします。
「列の編集」ダイアログが表示され、選択したADF表コンポーネントのすべての列が一覧表示されます。
ID
が_ADF_RowKeyColumn
の列を選択します。
必要に応じて列のプロパティを変更します。ただし、次のプロパティは変更しないでください。
DynamicColumn
InsertComponent
InsertUsesUpdate
UpdateComponent
ID
Visible
必要があれば、「上」と「下へ」の配列キーを使用して、列の位置を変更します。
「OK」をクリックして、「列の編集」ダイアログを閉じます。
「OK」をクリックして、コンポーネントの編集: ADF表ダイアログを閉じます。
旧バージョンのADFデスクトップ統合を使用して準備および構成された統合Excelワークブックを使用する場合、設計時に「キー」列は使用できません。この列は実行時にのみ表示されます。「キー」列のプロパティを構成するには、設計時にこれをワークブックに追加します。
開始する前に:
ADF表コンポーネントのキー列について理解しておくと役立ちます。詳細は、7.13項「ADF表コンポーネントのキー列の構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
設計時に手動で「キー」列を追加するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
表7-9の説明に従って、ADF表に新しい列を追加してプロパティを指定します。列の追加の詳細は、7.3.2項「ADF表コンポーネントへの列の追加方法」を参照してください。
表7-9 「キー」列のプロパティ
設定するプロパティ | 値 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
Valueのプロパティは空白にする必要があります。 |
|
|
必要があれば、「上」と「下へ」の配列キーを使用して、「キー」列の位置を変更します。
「OK」をクリックします。
注意: 新しい列の |
ADF表コンポーネント列で値のドロップダウン・リストをレンダリングする場合は、TreeNodeListサブコンポーネントを使用します。値リストは、実行時に最大250の値を表示できます。5.5項「コンポーネント・パレットの使用」で説明されているように、ADFデスクトップ統合とは異なり、TreeNodeListサブコンポーネントはコンポーネント・パレットには表示されません。これは、ADF表コンポーネント列のInsertComponent
プロパティやUpdateComponent
プロパティに値を指定するときに、サブコンポーネントとして起動します。ADF表コンポーネント列のプロパティの詳細は、A.12.2項「ADF表コンポーネント列のプロパティ」を参照してください。
TreeNodeListサブコンポーネントを起動した後、モデルドリブンのリストに関連付けられたツリー・バインディング属性を、TreeNodeListサブコンポーネントのList
プロパティの値として指定する必要があります。モデルドリブン・リストに関連付けられたツリー・バインディング属性は、表コンポーネントのDownload
アクションが起動された後で、表コンポーネントの列のドロップダウン・メニューに値リストを移入します。
注意:
|
TreeNodeListサブコンポーネントのプロパティの詳細は、A.9項「TreeNodeListサブコンポーネントのプロパティ」を参照してください。
ADF表コンポーネント列に列を追加して、TreeNodeList
をサブコンポーネントとして選択します。それから、ツリー・バインディング属性をTreeNodeList
サブコンポーネントのList
プロパティの値に指定します。モデルドリブン・リストは、指定するツリー・バインディング属性に関連付ける必要があります。
注意:
|
開始する前に:
ADF表コンポーネントでの値リストの作成方法を理解しておくと役立ちます。詳細は、7.14項「ADF表コンポーネント列での値リストの作成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネント列に値リストを作成するには:
統合Excelワークブックを開きます。
ADF表コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
「コンポーネントの編集: ADF表」ダイアログで、Columnsの入力フィールドの横にある参照(...)アイコンをクリックします。
「列の編集」ダイアログが表示され、選択したADF表コンポーネントのすべての列が一覧表示されます。
「追加」をクリックして、新しい列を追加します。
新しく作成した列に適切なオプションを選択します。
InsertComponentの入力フィールドの横にある参照(...)アイコンをクリックして、挿入操作の実行時の値リストを構成します。
UpdateComponentの入力フィールドの横にある参照(...)アイコンをクリックして、更新操作とダウンロード操作の実行時の値リストを構成します。
両方のオプションでも、作成するサブコンポーネントの選択ダイアログが表示されます。
TreeNodeListを選択して、「OK」をクリックします。
手順5で選択したプロパティを展開して、次のように値を構成します。
List
プロパティのモデルドリブン・リストに関連付けられたツリー・バインディング属性を選択します。
8.8項「統合Excelワークブックでの依存値リストの作成」の説明にあるように、従属する値リストを作成する場合にのみ、DependsOnList
の値を選択してください。 DependsOnList
に選択したツリー・バインディング属性またはリスト・バインディングは、従属値リスト内で親の値リストとして機能します。
必要に応じてReadOnly
プロパティを構成します。
これらのプロパティの詳細は、A.9項「TreeNodeListサブコンポーネントのプロパティ」を参照してください。
図7-15は、TreeNodeList
が列のUpdateComponent
プロパティのサブコンポーネントとして選択された後の、EditCustomers-DT.xlsx
のADF表コンポーネント列のプロパティ・インスペクタを示しています。
「OK」をクリックします。
実行時には、ADF表コンポーネントはDownload
アクションを起動して、それぞれの列に値を移入します。また、このアクションは値リストをレンダリングするよう構成した列に値リストを移入します。図7-16は、ADFデスクトップ統合のSummitサンプル・アプリケーションのEditCustomers-DT.xlsx
からの例で、ここではCountryが値のリストを表示するように構成された列です。
ModelDrivenColumnComponentサブコンポーネントをADF表コンポーネントに追加できます。ModelDrivenColumnComponentの値は、サーバー上でそれぞれの属性に指定されたコントロール・タイプのヒントにより決まります。
設計時には、列について、UpdateComponent
プロパティまたはInsertComponent
プロパティに対して、サブコンポーネント・タイプをModelDrivenColumnComponent
と指定します。実行時には、属性に関連付けられたモデルドリブン・リストがある場合は、列はTreeNodeListサブコンポーネントを使用したドロップダウン・リストを使用します。
注意: 属性に関連付けられたモデルドリブン・リストがなかったり、リストに基づいていないコントロール・タイプが指定されている場合、列で入力テキスト・サブコンポーネントが使用されます。コントロール・タイプが |
モデルドリブン・リストの作成の詳細は、Oracleアプリケーション開発フレームワークによるFusion Webアプリケーションの開発のモデルドリブン・リストの作成方法に関する項を参照してください。
従属値リストのサポート
複数のModelDrivenColumnComponentリスト・サブコンポーネントがADF表コンポーネントで公開される場合、ADFデスクトップ統合は各リストが別のモデルドリブン・リストに依存するかどうかを判断します。リストに指定されたバインド変数が、別のリストにバインドされた属性を参照するかどうかが検証されます。
リストが別のモデルドリブン・リストに従属する場合、サブコンポーネントのDependsOnList
値は実行時に自動的に設定されます。
サーバー・サイド・リストのバインディングの従属性は、同じツリー・ノードにあるリストについてのみ判断されます。次のツリー・ノード・リストのバインディングはサポートされていません。
異なるツリーまたはツリー・ノード内のリスト・バインディングに依存するバインディング
ページ定義ファイル内のリスト・バインディングに依存するバインディング
ビュー・オブジェクトによって返される使用可能な属性に応じて、実行時にADF表コンポーネントが拡張または収縮するように、ADF表コンポーネントに動的な列を追加できます。TableColumn
配列内にあるColumns
グループのDynamicColumn
プロパティによって、この動作は制御されます。列を動的にするには、DynamicColumn
プロパティをTrue
に設定します。TableColumn
配列の動的な列とは、属性名が設計時に認識されていないツリー・バインディングまたはツリー・ノード・バインディングにバインドされている列です。動的な列は、実行時に複数のワークシートの列に拡張できます。
ADF表コンポーネントの動的な列は、次のサブコンポーネント・タイプをサポートしています。
入力テキスト
出力テキスト
ModelDrivenColumnComponent
注意: ADFデスクトップ統合は、動的な列にあるサブコンポーネント・タイプTreeNodeListをサポートしていません。 |
モデルドリブンの値リストのサポート
また、動的な列を構成して、サブコンポーネント・タイプが実行時のモデルの構成から決定される値リスト・サブコンポーネントをサポートできます。設計時には、UpdateComponent
プロパティまたはInsertComponent
プロパティに対して、サブコンポーネント・タイプをModelDrivenColumnComponent
と指定します。実行時には、動的な列の拡張の際に、値リストをキャッシュする前にモデルドリブンのランタイム・コンポーネントが決定されます。リモート・サーブレットによって、クライアントはモデル構成を取得でき、クライアントは希望する列のサブコンポーネント・タイプを選択できるようになります。ModelDrivenColumnComponentの詳細は、7.15項「ADF表コンポーネントへのModelDrivenColumnComponentサブコンポーネントの追加」を参照してください。
EL式を次の形式で、ADF表コンポーネント列のInsertComponent
プロパティによってサブコンポーネントとして指定されたコンポーネントのValue
プロパティについて指定することにより、動的な列は、構成します。
#{bindings.TreeID.[TreeNodeID].AttributeNamePrefix*.inputValue}
または
#{bindings.TreeID.AttributeNamePrefix*.inputValue}
説明:
TreeID
はADF表コンポーネントで使用されるツリー・バインディングのIDです。
TreeNodeID
は、ツリー・ノード・バインディングIDを指定するオプションの値です。この値を省略する場合は、属性がどのツリー・ノード・バインディングに属するかに関係なく、ツリー・バインディングからの一致するすべての属性が表示されます。
AttributeNamePrefix
は、ツリー・バインディングの基底にあるイテレータ内に存在する属性のサブセットを識別します。AttributeNamePrefix
の値を指定しない場合、ツリー・バインディングまたはツリー・バインディング・ノードのすべての属性が返されます。常に*
文字を使用してください。
注意: 動的な列を追加する際、ツリー・ノード属性名がページ定義ファイルで指定されていないことを確認してください。実行時には、ツリー・ノード・オブジェクトは基底にあるイテレータからすべての属性名を返します。ページ定義ファイルに指定された属性名がある場合、ツリー・ノード・オブジェクトはそのリストに基づいて、使用可能な属性名のリストを限定します。 |
次の例は、EmpTree
バインディングのmodel.EmpView
ノードにある、"period
"で始まる名前を持つすべての属性を返します。
#{bindings.EmpTree.[model.EmpView].period*.inputValue}
ADF表コンポーネントのDownload
アクションまたはDownloadForInsert
アクションが起動されると、ADF表コンポーネントは一致する属性の最新のセットが含まれるように動的な列を自動的に更新します。Download
が起動されるたびに、ADFデスクトップ統合は動的な列に対して、すべての行に同じ属性セットがあることを要求します。Download
の際に属性のセットが行ごとに異なる場合、エラーが発生することがあります。
動的な列がInsert
操作とUpdate
操作をどちらもサポートする場合、動的な列のInsertComponent
サブコンポーネントとUpdateComponent
サブコンポーネントについて、Value
プロパティに同じEL式を指定する必要があります。実行時には、ADF表コンポーネントはEL式により返される属性バインディングの値を表示する動的な列を含むように拡張します。
ADF表コンポーネントのUpload
アクションが起動されるとき、ワークブックはエンド・ユーザーに対して、以前にダウンロードした属性がツリー・バインディングにもう存在しない場合、データのアップロードを続行するかどうかを決定するプロンプトを表示します。
注意: Excel AutoFilterが動的な列で構成された表に適用されている場合、動的な列が展開、縮小、調整されるたびに、AutoFilterは自動的に削除されます。 |
宣言型SQLモードによるビュー・オブジェクトのサポート
宣言型SQLモードで構成され、実行時にカスタマイズされたビュー・オブジェクトをサポートするために、属性が定義されていないページ定義ファイルのツリー・バインディングを公開します。例:
<tree IterBinding="DeclSQLModeIterator" id="DeclSQLModeTree"> <nodeDefinition Name="DeclSQLModeTreeNode"/> </tree>
実行時に、ツリー・バインディングは選択した属性を、基礎となる宣言型SQLモード・ビュー・オブジェクトから統合Excelワークシートへ戻します。
次の構文を使用して、動的な列のHeaderLabel
プロパティにEL式を記述します。
#{bindings.TreeID.[TreeNodeID].hints.AttributeNamePrefix*.label}
または
#{bindings.TreeID.hints.AttributeNamePrefix*.label}
動的な列でInsert
操作およびUpdate
操作がサポートされている場合、動的な列のInsertComponent
およびUpdateComponent
のValue
プロパティに指定するものと同じツリー・バインディングID、ツリー・ノード・バインディングID、および属性名の接頭辞の値を、動的な列のHeaderLabel
プロパティで指定します。
エンド・ユーザーが値を入力しなければならない必須の列に、記号や文字列でマークを付ける場合は、HeaderLabel
プロパティを構成する必要があります。次の構文を使用して、すべての必須の列に記号や文字列を追加するEL式を記述します。
=IF(#{bindings.
TreeID
.[TreeNodeID]
.hints.*.mandatory}, "
<prefix_for_mandatory_cols>
", "") & "#{bindings.
TreeID
.[
TreeNodeID
].hints.*.label}"
たとえば、次のEL式は必須の列のラベルにアスタリスク(*)文字を追加します。
=IF(#{bindings.MyTree.[myapp.model.MyChildNode].hints.*.mandatory}, "* ", "") & "#{bindings.MyTree.[myapp.model.MyChildNode].hints.*.label}"
列のデータ型に応じて、データ型ごとに異なるスタイルを指定できます。次の構文を使用して、動的な列のCellStyleName
プロパティにEL式を記述します。
=IF("#{bindings.
TreeID
.[
TreeNodeID
]
.hints.*.dataType}"="<
data_type
>", <
custom_style_expression1
>, <
custom_style_expression2
>)
次の例では、すべてのdate
列にMyDateStyle
スタイルが適用され、他のデータ型の列にはMyDefaultStyle
が適用されます。
=IF("#{bindings.MyTree.[myapp.model.MyChildNode].hints.*.dataType}"="date", "MyDateStyle", "MyDefaultStyle")
次の例は、MyDateStyle
スタイルがすべてのdate
データ型の列に、MyNumberStyle
がすべてのnumber
データ型の列に、MyDefaultStyle
がその他のデータ型の列にそれぞれ適用されるシナリオを示します。
=IF("#{bindings.MyTree.[myapp.model.MyChildNode].hints.*.dataType}"="date", "MyDateStyle", IF("#{bindings.MyTree.[myapp.model.MyChildNode].hints.*.dataType}"="number", "MyNumberStyle", "MyDefaultStyle"))
EL式の詳細は、付録B「ADFデスクトップ統合のEL式」を参照してください。
ADF表コンポーネントの列幅を構成して、実行時に自動的にサイズ変更されるようすることができます。列は、Excelの列幅の自動調整機能を使用してサイズ変更できます。この機能は、列のデータ値に基づいて幅を決定します。ADFデスクトップ統合では、EL式から導出された明示的な幅値を使用して列をサイズ変更することもできます。
ADF表の列のサイズ変更の動作は、表レベルで構成されます。その後、列レベルで上書きできます。
設計時ResizeColumnsMode
プロパティを使用して、ADF表コンポーネントのすべての列の共通サイズ変更動作を指定できます。ResizeColumns
表コンポーネント・メソッドを使用して、サイズ変更がいつ行われるかを制御します。特定の列のサイズ変更動作をオーバーライドするには、列のResizeMode
プロパティを使用します。
実行時の列幅のサイズ変更は、2ステップのプロセスです。まず、目的の幅関連プロパティ値で表の列を構成する必要があります。次に、目的のアクション・セットにResizeColumns
を追加します。
開始する前に:
これは、ADF表の列のサイズ変更動作の構成を理解するのに役立つことがあります。詳細は、7.17項「ADF表コンポーネントの列幅の構成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表の列のサイズ変更動作を構成する手順:
統合Excelワークブックを開きます。
ADF表コンポーネントのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
「コンポーネントの編集: ADF表」ダイアログで、ResizeColumnsMode
プロパティを表7-10の説明に従って構成および設定します。
表7-10 ADF表コンポーネントのResizeColumnsMode値
値 | 説明 |
---|---|
|
デフォルトです。個々の列の |
|
表の境界内のすべての列が、Excelの自動調整サポートを使用して最適なサイズに変更されます。ヘッダー・セルを含む列のセルのデータ値が最適なサイズの決定に使用されます。
表の上または下にある列のセルの値は、最適なサイズの検出時に考慮されません。 |
|
表の境界内のすべての列が、Excelの自動調整サポートを使用して最適なサイズに変更されます。ヘッダー・セルを除く列のセルのデータ値が最適なサイズの決定に使用されます。
表の上または下にある列のセルの値は、最適なサイズの検出時に考慮されません。 |
図7-17に、設計時のResizeColumnsMode
プロパティを示します。
コマンドのサイズ変更動作を構成し、表レベルのサイズ変更動作をオーバーライドするには、ResizeMode
プロパティを設定します。
「コンポーネントの編集: ADF表」ダイアログで、Columns
プロパティを展開し、ResizeMode
プロパティを表7-11の説明に従って設定します。
表7-11 ADF表の列プロパティのResizeMode値
値 | 説明 |
---|---|
|
列はサイズ変更されません。列幅は現在の設定のままになります。 |
|
デフォルトです。列は表の
|
|
ヘッダー・セルを含め、列はExcelの自動調整サポートを使用して最適なサイズに変更されます。 |
|
ヘッダー・セルを除き、列はExcelの自動調整サポートを使用して最適なサイズに変更されます。 |
|
ADFデスクトップ統合では、 |
図7-18に、設計時のEditCustomers-DT.xlsx
のADF表コンポーネントの4つの異なる列のResizeMode
プロパティを示します。
ResizeColumnsMode
がUseColumnValue
に設定され、ResizeMode
がSpecifiedWidth
に設定されている場合は、Column.Width
を列に表示する文字数に設定します。
特定の列のWidth
プロパティは、リテラル数値、または1から255までの数値に評価されるEL式に設定できます。式を評価できない場合、または式が1未満か255より大きい値に評価される場合、ResizeMode
はManual
と見なされ、列はサイズ変更されません。属性としてUIヒントdisplayWidth
を利用するWidth
のEL式の例を次に示します。
#{bindings.Customers.hints.Name.displayWidth}
「OK」をクリックします。
ADF表コンポーネントのResizeColumns
アクションを呼び出すように、ワークシートのリボン・コマンド、ADFボタン・コンポーネントまたはワークシート・イベントのアクション・セットを構成できます。
多くの列および多くの行のある表のサイズ変更には時間がかかることがあります。
開始する前に:
これは、ADF表の列のサイズ変更動作の構成を理解するのに役立つことがあります。詳細は、7.17項「ADF表コンポーネントの列幅の構成」および8.2項「アクション・セットの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネントの列をサイズ変更するようにアクション・セットを構成する手順:
統合Excelワークブックを開きます。
「Oracle ADF」タブで、「ワークシート・プロパティ」ボタンをクリックし、リボン・コマンドを追加します。ワークシートにリボン・コマンドを追加する方法の詳細は、8.3.1項「実行時リボン・タブのワークブック・コマンド・ボタンの構成方法」を参照してください。
注意: リボン・コマンドを追加するかわりに、実行時にアクション・セットを起動するように、ワークシート・イベントまたはOracle ADFコンポーネント(たとえばボタン)を構成できます。 |
アクションの編集ダイアログを開き、アクション・セットを構成します。アクション・セットの起動の詳細は、8.2項「アクション・セットの使用」を参照してください。
ADF表コンポーネントResizeColumns
アクションを、実行時にアクション・セットにより起動されるアクションのリストに追加します。ResizeColumns
はコンポーネント・アクションです。
「OK」をクリックします。
図7-19に、設計時のEditCustomers-DT.xlsx
のResizeColumns
アクションを示します。
ADF表の列は、アクション・セット内のTable.ResizeColumns
コンポーネント・アクションの実行結果としてサイズ変更されます(7.17.2項「実行時にADF表コンポーネントの列をサイズ変更するようにアクション・セットを構成する方法」を参照)。
ADF表コンポーネントの列を含むワークシート全体の列は、Table.ResizeColumnsMode
およびColumn.ResizeMode
プロパティの値に応じてサイズ変更されます。表の列のサイズ変更は、表の境界外の同じExcelワークシート列にあるセルまたは他のコンポーネント(フォーム・コンポーネントなど)の内容に影響します。
ワークシートに、実行時にサイズ変更されるようにアクション・セットで構成された2つ以上のADF表コンポーネントが含まれる場合、各表はExcelワークシート列を個別にサイズ変更しようとしますが、最後に実行される表のResizeColumns
アクションによって列幅が設定されます。
ヒント: 複数のADF表コンポーネントを含むワークシートの場合は、プライマリ表に対してのみ |
注意:
|
ADF表およびADF読取り専用表コンポーネントの表の列ヘッダーにツールチップを追加できます。ツールチップは、ADF表コンポーネントの特殊な列のヘッダーに対しては最初は常に空になります。
表の列ヘッダーにツールチップを追加する手順:
統合Excelワークブックを開きます。
表タイプ・コンポーネントがExcelワークシートにすでに挿入されている場合は、表のセルをクリックし、「Oracle ADF」タブで「プロパティの編集」をクリックします。
表タイプをワークシートに挿入するには、コンポーネントを配置するセルを選択します。コンポーネント・パレットまたはバインディング・パレットで、表タイプ・コンポーネントまたはバインディングを選択し、「コンポーネントの挿入」または「バインディングの挿入」をクリックします。
「コンポーネントの編集: ADF表」ダイアログで、Columns
プロパティを展開します。目的の列のTooltip
プロパティの参照(...)アイコンをクリックし、ツールチップ・メッセージを入力します。
図7-20に、EditCustomers-DT.xlsx
のADF表の列ヘッダーのツールチップEL式を示します。
「OK」をクリックします。
図7-21に、実行時のツールチップ・メッセージを示します。ヘッダー・セルの右上にある小さな赤い矢印に注意してください。これは、ヘッダー・セルにコメントがあることを示します。マウス・ポインタをセルに合せると、ツールチップ・メッセージが表示されます。
列ヘッダーのツールチップは、表の最初の初期化、Table.Initialize
、Table.Download
アクションなど、表の列ヘッダーがレンダリングされるときに評価およびレンダリングされます。
デフォルトでは、特殊な列のツールチップは空です。特殊な列のTooltip
プロパティが空でない式に設定されている場合は、空白がトリムされ、ターゲット・セルにExcelコメントとして挿入されます。
実行時に展開された各動的列の一意のツールチップを取得するには、ToolTip
プロパティに次の構文で式を入力します。
#{bindings.<TreeID>.hints.*.tooltip}
実行時に、動的列は指定されたツリーまたはノードの使用可能な属性のセットに展開されます。ADFデスクトップ統合では、対応するツールチップ値も取得され、前述のルールを使用して適切な列に適用されます。
ツールチップの詳細は、6.9.1項「表の列のツールチップに関する必知事項」を参照してください。表コンポーネントの特殊な列のヘッダー(7.12項「ADF表コンポーネント内の特殊な列」を参照)および動的列(7.16項「ADF表コンポーネントへの動的な列の追加」)にツールチップを追加することもできます。
実行時、ADF読取り専用表コンポーネントは、参照するツリー・バインディングのデータを表示する、連続した範囲のセルにまたがる表をレンダリングします。エンド・ユーザーが編集できないデータを表示する場合に、このコンポーネントを使用します。
このコンポーネントは、Download
アクションの起動時にコンポーネントがダウンロードする行数を決定するRowLimit
などのプロパティをサポートします。また、これには実行時にExcelワークシートに表示されるツリー・バインディングの列を決定するプロパティ・グループ(Columns
)も含まれます。TreeID
プロパティは、コンポーネントが参照するツリー・バインディングを指定します。これらのプロパティや、ADF読取り専用表コンポーネントがサポートする他のプロパティの詳細は、A.13項「ADF読取り専用表コンポーネントのプロパティおよびアクション」を参照してください。
ADFデスクトップ統合は、ワークシートの最初の列(列A)を使用して、読取り専用表コンポーネントの適切な操作に必要ないくつかの特別な情報を格納します。そのため、実行時に、ADF読取り専用表コンポーネントの1つ以上のインスタンスを含むワークシートでは、列Aが非表示になります。列Aを非表示にする補正を行い、設計時の視覚的なレイアウトを維持するために、ワークシートのコンテンツは右方向に1列シフトされます。設計時に戻るときに、列Aは再度表示され、ワークシートの内容は左方向に1列シフトされます。
図7-22に、設計時のADF読取り専用表コンポーネントを示します。プロパティ・インスペクタが最前面に表示されています。
図7-23は、実行時にCustomers
ツリー・バインディングを参照するADF読取り専用表コンポーネントの列を示しています。
注意:
|
ADFデスクトップ統合デザイナの作業ウィンドウを使用して、ADF読取り専用表コンポーネントをワークシートに挿入します。
開始する前に:
ADF読取り専用表コンポーネントについて理解しておくと役立ちます。詳細は、7.19項「ADF読取り専用表コンポーネントの作成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF読取り専用表コンポーネントを挿入するには:
統合Excelワークブックを開きます。
コンポーネントを配置するExcelワークシートのセルを選択します。
表コンポーネントへの挿入の際、2つの表のデータが実行時に重複しないことと、選択したセルがマージされたセルでないことを確認する必要があります。
バインディング・パレットで、ADF読取り専用表コンポーネントを作成するバインディングを選択して、バインディングの挿入をクリックします。
表示されるダイアログで、「ADF読取り専用表」を選択します。
注意: または、コンポーネント・パレットまたは「Oracle ADF」タブを使用しても、ADF読取り専用表コンポーネントを挿入できます。「ADF読取り専用表」を選択して、コンポーネントの挿入をクリックします。コンポーネント・パレットを使用してコンポーネントを作成する場合は、実行時にコンポーネントに表示されるそれぞれの列を追加する必要があります。 |
表示されるプロパティ・インスペクタでプロパティを構成し、表示される列とコンポーネントが実行時に起動するアクションを決定します。
「OK」をクリックします。
注意: コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。 表コンポーネントを削除するには、「削除」リボン・コマンドを使用します。詳細は5.14項「ADFデスクトップ統合コンポーネントの削除」を参照してください。 |
その他の列をADF読取り専用表コンポーネントに手動で追加したり、以前に削除した列をもう一度追加したりすることができます。
開始する前に:
ADF読取り専用表コンポーネントについて理解しておくと役立ちます。詳細は、7.19項「ADF読取り専用表コンポーネントの作成」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF読取り専用表コンポーネントに手動で列を追加するには:
統合Excelワークブックを開きます。
ADF読取り専用表コンポーネントをホストするワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
「コンポーネントの編集: ADF表」ダイアログで、Columnsの入力フィールドの横にある参照(...)アイコンをクリックします。
「列の編集」ダイアログが表示され、選択したADF表コンポーネントのすべての列が一覧表示されます。
「追加」をクリックして、ADF読取り専用表コンポーネントに手動で新しい列を追加します。
新しい列のプロパティに値を設定します。
ADF読取り専用表コンポーネントのプロパティの詳細は、表A-16を参照してください。
「OK」をクリックします。
ADF表またはADF読取り専用表コンポーネントがダウンロードする行数は、コンポーネントのRowLimit
プロパティ・グループの値を設定すれば後世できます。また、必要に応じて、ダウンロード可能な行数が指定した行数を超過したときにエンド・ユーザーに警告する警告メッセージを表示できます。
Download
アクションを起動するときにコンポーネントがダウンロードする行数を、RowLimit.MaxRows
プロパティの値として指定します。オプションで、ダウンロード可能な行数がRowLimit.MaxRows
で指定した値を超過した場合に、エンド・ユーザーがメッセージを受信するように、RowLimit.WarningMessage
プロパティのEL式を記述します。
開始する前に:
ADF表コンポーネントにデータをダウンロードする際に行数を制限する方法を理解しておくと役立ちます。詳細は、7.20項「表タイプ・コンポーネントがダウンロードする行数の制限」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
表タイプ・コンポーネントがダウンロードする行数を制限するには:
統合Excelワークブックを開きます。
表タイプ・コンポーネントを参照するExcelワークシートのセルを選択し、「Oracle ADF」タブの「プロパティの編集」ボタンをクリックします。
詳細は、8.2項「アクション・セットの使用」を参照してください。
表7-12の説明に従って、RowLimit
プロパティ・グループのプロパティを構成します。これらのプロパティの詳細は、A.1項「ADFデスクトップ統合で頻繁に使用するプロパティ」を参照してください。
表7-12 RowLimitプロパティ・グループ
設定するプロパティ | 設定する値 |
---|---|
|
|
|
ダウンロードする最大行数に評価されるEL式を記述します。 |
|
このプロパティにEL式を記述して、ダウンロード可能な行数が このプロパティの値がNULLの場合、 |
「OK」をクリックします。
図7-24は、ADF表コンポーネントの行の制限が構成されているEditCustomers-DT.xlsx
ワークブックの「コンポーネントの編集」ダイアログを示しています。
表タイプ・コンポーネントのDownload
アクションが起動されると、RowLimit.MaxRows
の値として指定した行数がFusion Webアプリケーションからダウンロードされます。RowLimit.MaxRows
にEL式を指定したり、デフォルト値を変更しない場合、図7-25に示すものに似たメッセージ・ダイアログが表示されます。
表A-12に示すRowData
プロパティ・グループを使用して、ADF表コンポーネントでキャッシュするデータを指定できます。この機能の詳細は、次を参照してください。
ADF表コンポーネントは、アクション(ClearCachedRowAttributes
)を公開します。これは、公開されるとADF表コンポーネントの現在の行のキャッシュされた属性の値をクリアします。
エンド・ユーザーがRowData.CachedAttributes
配列の要素にも指定した属性バインディングを表示または編集できるように、コンポーネント(ADF表コンポーネントの列やADF入力テキスト・コンポーネントなど)は構成しないでください。RowData.CachedAttributes
配列は、ワークシートのDownSync
アクションで取得された値をキャッシュします。ワークシートUpSync
アクションは、RowData.CachedAttributes
配列の値をFusion Webアプリケーションに送信します。これによって、エンド・ユーザーがワークシート内のコンポーネントを通して公開される属性バインディングに行う編集がオーバーライドされることがあります。
ADF表コンポーネントのClearCachedRowAttributes
アクションを起動するアクションを含むDoubleClickActionSet
を構成します。
開始する前に:
ADF表コンポーネントでキャッシュされた属性をクリアする方法を理解しておくと役立ちます。詳細は、7.21項「ADF表コンポーネントでのキャッシュされた属性値のクリア」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ADF表コンポーネント内のキャッシュされた属性の値をクリアするには:
統合Excelワークブックを開きます。
実行時にDoubleClickActionSet
を起動するOracle ADFコンポーネントの「アクションの編集」ダイアログを開きます。
アクション・セットの起動の詳細は、第8章「アクション・セットの使用」を参照してください。
ADF表コンポーネントのClearCachedRowAttributes
アクションを起動するDoubleClickActionSet
にアクションを追加します。
「OK」をクリックします。
エンド・ユーザーは、ADF表コンポーネントをホストする統合Excelワークブックのセルで、データを作成したり変更できます。
列が更新可能で読取り専用でなければ、変更の追跡がアクティブ化されます。エンド・ユーザーが次の変更を行うと、変更の追跡がアクティブ化されます。
セルの値の編集
セルの値の挿入または削除
どこかでコピーした値をADF表コンポーネント列のセルに貼り付ける場合
エンド・ユーザーが対応する行のデータを変更した場合、上向きの矢印に似た記号が_ADF_ChangedColumn
列に表示されます。図7-26に例を示します。
この記号は、コンポーネントのReadOnly
プロパティの値がFalse
に設定されているコンポーネントによってホストされているデータを、エンド・ユーザーが変更すると表示されます。ADF入力テキストおよびTreeNodeListサブコンポーネントには、どちらにもReadOnly
プロパティがあります。True
あるいはFalse
に評価されるこのReadOnly
プロパティに、EL式または静的な文字列を記述できます。True
に評価される静的な文字列またはEL式を記述する場合、_ADF_ChangedColumn
列には記号は表示されません。読取り専用
EL式と変更トラッキングに関する詳細は、7.23項「読取り専用プロパティのEL式の評価」を参照してください。
表の列の読取り専用EL式にバインディング式(#{row.bindings.color.inputValue}
など)が含まれる場合、その式の実行時の評価は評価が行われるタイミングによって異なります。評価は次のときに行われます。
データのダウンロード(Download
、DownloadFlaggedRows
、DownloadForInsert
)
データのアップロード(Upload
)および変更トラッキング
Upload
中、またはエンド・ユーザーが変更可能表の値を変更する場合、EL式はDownload
とは異なる方法で評価されます。具体的には、EL式の評価の前に、空白の文字列がバインディング式に対して置換されます。
たとえば、次のEL式が編集可能コールにある場合:
=IF("#{row.bindings.color.inputValue}"="RED", True, False)
Upload
中、またはエンド・ユーザーが変更可能表の値を変更する場合、EL式は=IF(""="RED", True, False),
に評価され、常にFalse
が返されます。
Upload
および変更トラッキング中に、EL式を適切に評価するためには、サーバーとの追加のデータ転送がバインディング値を取得するために必要です。サーバーとの追加のデータ転送はパフォーマンスにマイナスの影響を与え、エンド・ユーザーに現在有効なセッションがない場合には新しいログインが必要になることもあります。
注意: 同じEL式の評価の動作は、表の変更トラッキング中に新しいワークシートの行を挿入する場合、 |
動作の違いにより、可能ならば、バインディング式を含む読取り専用EL式は避ける必要があります。ただし、指定したユースケースが読取り専用式で属性値を使用することが重要な場合、ワークシートの保護をAutomatic
へ設定することを検討する必要があります。ワークシート保護の詳細は、9.7項「ワークシート保護の使用」を参照してください。
たとえば、次のEL式がセルにある場合:
=IF("#{row.bindings.color.inputValue}"="RED", True, False)
Download
中に、この列のRED
セルをLocked
に設定すると、エンド・ユーザーはこれらのセルを編集できません。
実行時にバインディング・コンテナ・メタデータがサーバーから取得されたら、ADFデスクトップ統合はワークシートを構成またはカスタマイズするいくつかの機能を提供します。ただし、クライアントがバインディング・コンテナ・メタデータを取得する前に、データまたはバインディング・コンテナをカスタマイズすることもできます。たとえば、設計時に表をワークシートに追加しますが、その表を操作するビュー・オブジェクトは実行時まで指定しない場合があります。使用されるビュー・オブジェクトはパラメータ値または設定によって決まりますが、それらの値が実行時まで不明の場合は、このような操作が必要です。さらに、実行時パラメータ値(属性の追加、表示される属性の指定など)に基づいて、ビュー・オブジェクトをカスタマイズすることもできます。同様に、実行時パラメータ値に基づいてバインディング・コンテナを構成することもできます。このようなユース・ケースでは、バインディング・コンテナ・メタデータがサーバーからワークシートに送信される前に、設定タスクを実行する必要があります。
ADFデスクトップ統合の明示的なワークシート設定アクション機能を使用すると、クライアントがバインディング・コンテナ・メタデータを取得する前に起動される設定アクションを指定できます。
ワークシートのSetupActionID
プロパティを使用すると、バインディング・コンテナ・メタデータがワークシートに送信される前に起動されるメソッドを指定できます。メソッドでは、データおよびバインディング・コンテナでのカスタマイズに必要なロジックを実装できます。
開始する前に:
明示的なワークシート設定アクション機能について理解しておくと役立ちます。詳細は、7.24項「明示的なワークシート設定アクションの使用」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、7.1.2項「表タイプ・コンポーネントの追加機能」を参照してください。
ワークシートのSetupActionIDプロパティを使用するには:
統合Excelワークブックのワークシートを開きます。
Excelリボンで、「ワークブック・プロパティ」をクリックします。
「ワークシート・プロパティの編集」ダイアログで、データを展開し、図7-27に示すように、SetupActionIDプロパティの入力フィールドの横にある参照(...)アイコンをクリックします。
「バインディングの選択」ダイアログで、バインディング・コンテナ・メタデータがワークシートに送信される前に起動するアクションを選択し、「OK」をクリックします。
注意:
|
「OK」をクリックし、「ワークシート・プロパティの編集」ダイアログを閉じます。
SetupActionID
プロパティによって指定されたアクションが実行されたら、ワークシートに送信されるバインディング・コンテナ・メタデータはメソッドで構成されたカスタマイズを反映します。ADFデスクトップ統合では、バインディング・コンテナ・インスタンスに対して設定アクションが1回のみ実行されるようにします。なんらかの理由で新しいバインディング・コンテナ・インスタンスがワークシートに関連付けられると、新しいバインディング・コンテナ・インスタンスが構成されるように設定アクションが再度起動されます。
設定アクションの起動時にエラーが発生すると、ADFデスクトップ統合はワークシート内で自動的に無効になります。ログアウトし再度ログインしても、ワークシート内のADFデスクトップ統合は有効になりません。Excelリボンから「全データのクリア」コマンドを実行すると、ワークシート内のADFデスクトップ統合は再度有効になり、設定アクションは後続の要求時に再度実行されます。