パート3:より高度なOracle ADF Desktop Integration対応Excelワークブックの開発
パート2では、Oracle ADF Fusion Webアプリケーションに統合される基本的なExcelワークブックを作成しました。チュートリアルのこのパートでは、そのワークブックに高度な機能を追加して、より機能的なワークブックを作成します。

EditDept_LOVワークブックには、LOVフィールドや挿入/更新/削除機能のある表が含まれています。また、ワークブック内のExcelリボンにリボン・コマンドを追加します。


EditDept_LOVワークブック


ステップ1:EditDept_LOVワークブックの再表示
EditDept_LOVワークブックは、EditTable_LOV.jspxページ定義をベースとしています。

  1. ここでは、パート2で作成したEditDept_LOV_src.xlsxワークブックを基にして作業を行います。
    このワークブックが開いていない場合は、ダブルクリックしてExcelで開きます。

    アプリケーション・ナビゲータ
  2. ExcelのADF Desktop Integration 12cバインディング・ペインに、ページ定義から利用できるバインディングが表示されます。

    ADFdiのバインディング・ペイン
  3. ページ定義(ADFdi_view_EditTable_LOVPageDef)には、このチュートリアルのパート2で使用したツリー・バインディングに加えて、数種類のバインディングが含まれています。

    EditTable_LOV.jspxページに対するデータ・バインディングのスクリーンショットに含まれるバインディングに注目してください。これらのアクション・バインディングは、JSFページに含まれるボタン・アクションを表しています。

    JDeveloperのアクション・バインディング
  4. Save」ボタンをクリックしてワークシートを最新にします。

ステップ2:ワークブック・プロパティと表プロパティの設定
  1. ExcelリボンのOracle ADFタブで、「Workbook Properties」ボタンをクリックします。

    Excelワークシート
  2. Edit Workbook Propertiesで、WebAppRootフィールドの横の値がhttp://127.0.0.1:7101/ADFdi_BCになっていることを確認し、「OK」をクリックします。このURLは、パート2で設定した値で、ワークブックが統合されるFusion WebアプリケーションのURLです。
    URLが正しい場合は、「OK」をクリックします。

    Edit Workbook Properties
  3. Excelワークシートに表示された表の左上のセル(F5)を選択し、ExcelリボンにあるOracle ADFタブのADF Componentsグループで「PropertiesアイコンEdit Propertiesアイコンをクリックします。

    Edit Properties
  4. Edit Component: ADF Tableダイアログで、「RowActions」ノードを開き、DeleteRowActionIDフィールドの横にある「Moreアイコン」moreボタンをクリックします。

    Edit Component:  ADF Tableダイアログ
  5. Select Bindingダイアログで、「Delete (action)」を選択し、「OK」をクリックします。

    Select Bindingダイアログ

  6. 一連のRowActionsプロパティは、ワークシート内にある表の行の動作を定義します。

    たとえば、このステップでDeleteを選択すると、DeleteFlaggedRowsの実行中に各フラグ付き行に対して呼び出されるアクション・バインディングを定義できます。この後説明するステップでは、ワークシートに含まれるその他の行の動作を定義します。
  7. InsertBeforeRowActionIDフィールドに対して前のステップを繰り返し、「CreateInsert (action)」を選択します。

    Select Bindingダイアログ

    OK」をクリックします。

  8. RowActionsセクションで、ドロップダウン・リストから次の値を追加で設定します。

    オプション
    DeleteRowEnabled True
    InsertRowEnabled True
    UpdateRowEnabled True

    RowActionsのプロパティは、次のように表示されます。

    RowActionsプロパティ
  9. BatchOptionsセクションで、CommitBatchActionIDの値をCommitに設定し、「OK」をクリックします。

    Batch Optionsセクション
  10. Edit Componentダイアログで、Columnsフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Componentダイアログ
  11. Membersペインで列番号6(LocationId)を選択し、UpdateComponentフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    UpdateComponent
  12. Select Componentダイアログで「TreeNodeList」を選択し、「OK」をクリックします。

    Select Componentダイアログ
  13. 列番号3DepartmentIdを選択し、「UpdateComponent」ノードを開きます。ReadOnlyプロパティをTrueに変更します。

    Edit Columnsダイアログ


  14. 実際に設計するアプリケーションでは、部門IDをユーザーが変更できないようにする必要があります。
    この要件を実現するには、(このステップで設定したように)ReadOnlyプロパティをTrueに設定し、またフィールドの更新ができないことをユーザーに対して視覚的に示すスタイルをDepartmentIdフィールドに適用します。
  15. 列番号3DepartmentIdを引き続き選択した状態で、CellStyleNameフィールドにある「Edit Columnsダイアログmoreボタンをクリックします。

    Edit Columnsダイアログ
  16. Edit Expressionダイアログで、「Styles」ノードを開きます。

    Edit Expressionダイアログ
  17. _ADFDI_TableCellROStyle」(列が読取り専用であることを視覚的に示すスタイル)を選択し、「Insert Into Expression」をクリックします。

    Edit Expressionダイアログ

    OK」をクリックし、再度「OK」をクリックします。もう一度「OK」をクリックしてExcelに戻ります。

  18. Excelワークブックを保存します。

ステップ3:Queryリボン・コマンドの定義
このステップでは、ワークシートの上部にあるExcelリボンにリボン・コマンドを追加します。DepartmentsListワークシートでは、起動時にデータがワークシートにダウンロードされるように指定しました。ここではリボン・コマンドを1つ作成して、ユーザーがクリックすることでワークシート表にデータが移入されるようにします。
  1. Oracle ADFタブで、「Worksheet Properties」ボタンをクリックします。 「Ribbon Commands」フィールドを選択し、「Moreアイコンmoreボタンをクリックします。

    Edit Worksheet Properties

    Edit Worksheet Properties
  2. Edit Ribbon Commandsダイアログで「Add」をクリックします。

    Edit Ribbon Commands
  3. 右側のペインで「SelectActionSet」ノードを開き、Actionsフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Ribbon Commandsダイアログ
  4. Edit Actionsダイアログで、Addボタンの三角マークをクリックして、ドロップダウン・リストから「ADFmAction」を選択します。

    Edit Actionsダイアログ
  5. ADFmActionプロパティのEdit Actionsダイアログで、ActionIDフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Actionsダイアログ
  6. Select Bindingダイアログで「Execute」を選択し、「OK」をクリックします。

    Select Bindingダイアログ
  7. Edit Actionsダイアログに戻り、DesignAnnotationフィールドにRun queryと入力します。

    Edit Actions
  8. Edit Actionsダイアログで、「Add」ボタンをクリックし、ドロップダウン・リストから「ComponentAction」を選択します。

    Edit Actions
  9. Actionフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Actions
  10. Choose Component Actionダイアログで、「Download」を選択し、「OK」をクリックします。

    Choose Component Actionダイアログ
  11. Edit Actionsに戻り、DesignAnnotationフィールドにDownloadと入力し、「OK」をクリックします。

    Edit Actions
  12. Edit Ribbon Commandsダイアログに戻り、LabelフィールドにQueryと入力します。

    Edit Ribbon Commandsダイアログ

    OK」をクリックします。もう一度「OK」をクリックしてExcelに戻ります。

  13. "Query"は、Excelリボンに表示されるコマンド項目のラベルです。ユーザーがQueryコマンド項目をクリックすると、ワークシート内の表にデータがダウンロードされます。

    また、ラベルにリソース式を作成して、'ローカライズ'アプリケーションを作成することもできます。
  14. SaveアイコンSaveボタンをクリックして、Excelワークブックを保存します。

ステップ4:Delete Rowsリボン・コマンドの定義
このステップでは、ワークシートの上部にあるExcelリボンにリボン・コマンドをもう1つ追加します。ここで追加するリボン・コマンドは、表内のフラグ付き行を削除するためのもので、アクションの実行前にユーザーに確認を求めます。
  1. Oracle ADFタブで、「Worksheet Properties」ボタンをクリックします。

    Worksheet Propertiesボタン
  2. Edit Worksheet Propertiesダイアログで「Ribbon Commands」フィールドを選択し、「more」ボタンをクリックします。

    Edit Worksheet Propertiesダイアログ
  3. Edit Ribbon Commandsダイアログで「Add」をクリックします。

    Edit Ribbon Commandsダイアログ
  4. 右側のペインで、Actionsフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Ribbon Commandsダイアログ
  5. Addボタンの三角マークをクリックし、ドロップダウン・リストから「Confirmation」を選択します。

    Edit Actions
  6. Dataセクションに次の値を入力します。

    プロパティ
    Prompt Are you sure you want to delete these rows?
    Title Delete Departments

    Dataセクション
    ラベル・プロパティの定義。

    統合されたワークブックのローカライズの詳細については、開発者ガイドを参照してください。
  7. Addボタンの三角マークをクリックし、ドロップダウン・リストから「ComponentAction」を選択します。

    Edit Actionsダイアログ
  8. Edit Actionsダイアログで、Actionフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Action Collection Editorダイアログ
  9. Choose Component Actionで、「DeleteFlaggedRows」を選択します。

    Choose Component Actionダイアログ

    OK」をクリックし、もう一度「OK」をクリックします。

  10. Edit Ribbon Commandsで、LabelフィールドにDelete Flaggedと入力します。

    Edit Ribbon Commandsダイアログ

    OK」をクリックします。もう一度「OK」をクリックしてExcelに戻ります。

  11. すべての作業内容を保存します。

ステップ5:Uploadリボン・コマンドの定義

このステップでは、ワークシートの上部にあるExcelリボンにリボン・コマンドをもう1つ追加します。ここで追加するコマンド項目は、表からWebアプリケーションへとデータをアップロードします。
  1. Oracle ADFタブで、「Worksheet Properties」ボタンをクリックします。

    Worksheet Propertiesボタン
  2. Ribbon Commands」フィールドを選択し、「more」ボタンをクリックします。

    Edit Worksheet Propertiesダイアログ
  3. Edit Ribbon Commandsダイアログで「Add」をクリックします。

    Edit Ribbon Commandsエディタ
  4. 右側のペインで、Actionsフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Ribbon Commandsエディタ
  5. Edit Actionsダイアログで、「Add」ボタンをクリックし、ドロップダウン・リストから「ComponentAction」を選択します。

    Edit Actionsダイアログ
  6. Edit Actionsダイアログで、Actionフィールドの横にある「Moreアイコンmoreボタンをクリックします。

    Edit Actionsダイアログ
  7. Choose Component Actionダイアログで、「Upload」を選択します。OK」をクリックします。

    Choose Component Actionダイアログ

    もう一度「OK」をクリックします。

  8. Edit Ribbon Commandsダイアログで、LabelフィールドにUploadと入力し、「OK」をクリックします。

    Edit Ribbon Commandsダイアログ
  9. 以上で、ワークシートには3つのリボン・コマンドが定義されました。

    Edit Worksheet Propertiesダイアログ

    OK」をクリックします。

  10. ワークブックを保存Saveアイコン」します。

ステップ6:ワークブックの使い勝手の改善
  1. このステップでは、ツールチップの使用について説明します。
    ユーザーが列の上にカーソルを置いたときに、それぞれの列またはフィールドのツールチップが表示されるようにできます。

    EditDept_LOV_srcワークブックの設計ビューに戻り、ワークブックのセルの1つをダブルクリックしてEdit Component: ADF Tableダイアログを開きます。

    Excelリボンに表示されたOracle ADFタブ
  2. Edit Component: ADF Tableタブで「Columns」ノードを選択し、右端にある「...」ボタンをクリックします。

    Excelリボンに表示されたOracle ADFタブ
  3. Edit Columnsペインで、「DepartmentId」列を選択します。Dataノードの下に、Tooltipプロパティが表示されます。

    Excelリボンに表示されたOracle ADFタブ
  4. ここで、Department Idのツールチップとして使用する値をハードコードすることもできますが、この方法は再利用性に欠けます。ハードコードされたツールチップはこのワークブックにのみ表示され、すべてのワークブックの同期を維持するには、ワークブックごとに同じツールチップの値を使用して更新する必要があります。

    ここに表示されている値は、DepartmentViewのDepartment Idに対するツールチップのUIヒントを参照しています。

    Excelリボンに表示されたOracle ADFタブ
  5. それでは、ツールチップの値の設定または変更は、どこで行えばよいのでしょうか。

    JDeveloperに戻り、Applicationsウィンドウで「Model」プロジェクトを開き、「DepartmentsView」ビュープロジェクトをダブルクリックします。

    Excelリボンに表示されたOracle ADFタブ
  6. エディタで「Attributes」タブを選択します。
    次に、DepartmentIdを選択した状態で、「UI Hints」タブを見つけてクリックします。

    Excelリボンに表示されたOracle ADFタブ
  7. TooltipプロパティをDo not change the Department Id valueのような値に設定します。
    作業内容を保存します。

    Excelリボンに表示されたOracle ADFタブ
  8. Applicationウィンドウで、「ViewController」→「Web Content」を開き、「EditTable_LOV.jspx」を右クリックして「Run」を選択します。
    この操作により、新しいツールチップの値がアプリケーション・サーバーにデプロイされ、Excelワークブックで使用できるようになります。

    Logウィンドウで、アプリケーションへのデプロイを確認します。

    ワークブックを実行すると、Department Idラベルの右上に赤い三角マークが表示されます。このマークの上にカーソルを置くと、ツールチップが表示されます。

    Excelリボンに表示されたOracle ADFタブ

    Excelリボンに表示されたOracle ADFタブ
  9. 次に、ワークブックにいくつか変更を加えます。この変更により、表示されるデータのサイズに合わせて列の幅が自動的に変更されるようにします。

    EditDept_LOV_src Excelワークブックに戻り、設計ビューでセルの1つをダブルクリックします。

    Excelリボンに表示されたOracle ADFタブ
  10. Appearanceノードにある「ResizeColumnsMode」を選択し、「AutoFitAllWithHeader」を選択します。「OK」をクリックします。

    Excelリボンに表示されたOracle ADFタブ
  11. Oracle ADFメニューの「Worksheet Properties」を選択します。

    Excelリボンに表示されたOracle ADFタブ
  12. Behaviorノードで、Ribbon Commandsプロパティとその値を見つけます。プロパティ値の右側にある「...」ボタンをクリックします。

    Excelリボンに表示されたOracle ADFタブ
  13. Members領域で「Query」コマンドを選択し、「SelectActionSet」ノードを開きます。

    Excelリボンに表示されたOracle ADFタブ
  14. Actions」プロパティを選択してから「...」ボタンをクリックします。

    Excelリボンに表示されたOracle ADFタブ
  15. Edit Actionsペインで「Downalod Member」を選択し、下部にある「Add」→「ComponentAction」をクリックします。

    Excelリボンに表示されたOracle ADFタブ
  16. Action」プロパティを選択し、「...」ボタンをクリックします。

    Excelリボンに表示されたOracle ADFタブ
  17. Component Actionリストから「ResizeColumns」を選択します。
    OK」を2回クリックしてEdit Component: ADF Tableペインに戻ります。

    Excelリボンに表示されたOracle ADFタブ
  18. Dataノードの下の「Columns」ノードを開きます。

    Excelリボンに表示されたOracle ADFタブ
  19. RowKeyColumn (7)」を開き、ResizeModeSpecificedWidthに設定します。

    Excelリボンに表示されたOracle ADFタブ
  20. Widthプロパティを5に設定します。
    OK」をクリックします。

    Excelリボンに表示されたOracle ADFタブ
  21. 設計モードで、列の幅を1516程度に少し広げます。
    すべての作業内容を保存します。

    Excelリボンに表示されたOracle ADFタブ

ステップ7:EditDept_LOVワークブックのテスト
  1. Excelリボンの「Oracle ADF」タブをクリックします。

    Excelリボンに表示されたOracle ADFタブ
  2. Testグループにある「Run」ボタンをクリックします。

    Runボタン
    Validateボタンの使用。詳細を表示/非表示詳細表示

    ワークシートを実行する前に「Validate」ボタンをクリックすると、ワークブックに含まれる構成の問題を発見し、修正できます。
  3. ワークブックに、チュートリアルのパート2で設定したデータが移入されたADF表がロードされ、表示されます。

    カーソルをDepartment Idの上に移動すると、ツールチップの値が表示されます。

    ワークブック
  4. ExcelリボンでOracle ADFタブの右側に表示されている「MyWorkbook」タブをクリックします。

    MyWorkbookタブ
  5. 作成が済んだ3つのコマンドが、Worksheetグループに表示されます。これらのコマンドは3つのリボン項目にそれぞれ対応します。
    Query」ボタンをクリックします。

    Queryボタン
  6. 取得したデータがワークシートに表示されます。データが別のワークシートまたはOracle ADF Webアプリケーションによって変更されている場合は、更新後の値が表示されます。パート2でダウンロード・アクションを追加しているため、レコードは同じになります。

    ワークシート
  7. DepartmentId列は、他の列とは異なる色の網かけで表示されます。これは読取り専用のスタイルであり、更新できない列であることをユーザーに視覚的に示すために先ほどDepartmentId列に適用したものです。このような視覚的効果は、アプリケーションのユーザビリティを大幅に向上します。
  8. 新しい行を追加します。ワークシート内の任意の箇所を右クリックし、コンテキスト・メニューから「Insert」を選択します。

    Insertオプション

    Insertダイアログで「Entire Row」を選択し、「OK」をクリックします。

    Insertオプション

  9. 新しい部門名New Sales)を入力し、ドロップダウン・リストから都市を選択します。

    ワークシート
  10. 新しい行では、自動的にChanged列にフラグが付けられています。

    ワークシート
  11. 既存の行に対して、ドロップダウン・リストを使用してLocationIdを変更してみます。
    この行が更新されたことがChanged列に示されます。

    ワークシート

    ワークシート
  12. Excelリボン内に新しく作成した「Upload」コマンド項目をクリックし、変更を保存します。

    Uploadコマンド

    Upload Optionsダイアログで、デフォルト値のままにして「OK」をクリックします。Changed列に行の更新を示すフラグが2ヶ所付いていることに注意します。

    Upload Optionsダイアログ
  13. 新しい行が挿入され、部門IDが生成されて、フラグが削除されていることを確認します。

    ワークシート
  14. 直前に挿入した行の「Flagged」列をダブルクリックします。

    ワークシート
  15. Delete Flagged」ボタンをクリックします。

    Delete Flaggedボタン
  16. 先ほど作成したDelete Confirmationダイアログで、「Yes」をクリックします。

    Delete Confirmationダイアログ
  17. ワークシートが更新されます。

    ワークシート
  18. Oracle ADF」タブをクリックしてから「Stop」ボタンをクリックし、設計モードに戻ります。

    Stopボタン

    Fusion Webアプリケーションに統合され、データベースからのデータの挿入、更新、削除を行うことができる、完全な機能を備えたワークブックの作成が完了しました。このチュートリアルの次のパートでは、ワークブックの公開について説明します。


ブックマーク 印刷 すべて表示 | すべて非表示
Copyright © 2014, Oracle.All rights reserved.