ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Frameworkデスクトップ統合開発者ガイド
11gリリース1(11.1.1.6.0)
B66694-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

9 統合Excelワークブックの外観の構成

この章では、Excelの事前定義済スタイルとカスタム・スタイルを使用して統合Excelワークブックの外観を構成する方法や、実行時にEL式を使用してワークブックのOracle ADFコンポーネントにスタイルを動的に適用する方法、Excelワークブックでのラベルとブランドの使用方法、ワークシート保護機能の使用方法について説明します。

この章の内容は次のとおりです。

9.1 統合Excelワークブックの外観の構成の概要

Excel機能とOracle ADF機能の両方を使用して、統合Excelワークブックの外観を構成できます。ワークブックの外観を構成すると、ワークブックの使い勝手がエンド・ユーザーにとってよりよくなることがあります。たとえば、実行時にADF出力テキスト・コンポーネントをレンダリングするセルに特定のスタイルを適用して、そのセルが読取り専用であることをエンド・ユーザーに示すことができます。また、会社のスタイル・シートやExcelワークブックが統合するFusion Webアプリケーションの色のスキームと一致するように、統合Excelワークブックの外観を構成する場合もあります。

ADFデスクトップ統合には、ワークブックで構成するADFデスクトップ統合コンポーネントに適用する事前定義済のExcelスタイルがいくつか用意されています。デスクトップ統合プロジェクトのニーズを満たすために、その他のスタイルを定義した方がよい場合もあります。その場合は、ロケールや地域、言語に応じて様々にレンダリングされるExcelワークブックの形式を十分に理解しておいてください。

実行時にADFデスクトップ統合コンポーネントに適用するスタイルを決定したら、EL式を記述してスタイルをコンポーネントに関連付けます。StyleNameを名前に含むADFデスクトップ統合コンポーネントのプロパティは、EL式を値として受け入れます。他のADFコンポーネントのADFラベル・コンポーネントとLabelプロパティでは、EL式もサポートされます。これらのEL式は、リソース・バンドルで定義された文字列キーの値やFusion Webアプリケーションで定義された属性コントロール・ヒントの値を取得できます。

最後に、Excelワークブックの外観を構成可能なスタイルに加えて、ADFデスクトップ統合にはプロパティのコレクション(BrandingItems)が用意されています。これを使用して、アプリケーション名やアプリケーションのバージョン詳細、著作権情報を使用して、Excelワークブックをブランディングできます。

9.2 スタイルの使用

ADFデスクトップ統合には、Excelで定義されたスタイルを実行時に一部のOracle ADFコンポーネントに適用するメカニズムが用意されています。スタイルのアプリケーションをサポートするOracle ADFコンポーネントには、名前にStyleNameを含むプロパティがあります。たとえば、ADF表コンポーネントとADF読取り専用表コンポーネントの列プロパティは、実行時に適用されるスタイルを決定するプロパティHeaderStyleNameおよびCellStyleNameをサポートします。

ADFデスクトップ統合により事前定義されたスタイル

プロパティには多くの場合、ADFデスクトップ統合モジュールのスタイルの事前定義済リストから引き出されるデフォルトの値があります。たとえば、HeaderStyleNameプロパティのデフォルト値は、ADFデスクトップ統合で事前定義されたスタイルの1つである_ADFDI_HeaderStyleです。ADFデスクトップ統合は、ExcelワークブックがADFデスクトップ統合との併用が有効になっている場合、これらの事前定義済スタイルをExcelワークブックに自動的に追加します。

次に、事前定義済スタイルを示します。

自分で定義するこれらのスタイルや他のスタイルを、統合ExcelワークブックからFusion Webアプリケーションと統合する予定の別のExcelワークブックにマージできます。追加で使用するスタイルをExcelワークブックで作成してもかまいません。たとえば、日付に固有の形式を追加するには、_ADFDI_TableCellStyleを複製して、MyTableCellDateStyleという名前を付け、日付に固有の形式を追加します。

新しいスタイルの作成と、ワークブックへのスタイルのマージの詳細は、Excelのドキュメントを参照してください。

Excelの日付形式とMicrosoft Windowsの地域と言語のオプション

Excelがセルに適用できる「数値」スタイルの「日付」カテゴリにある形式の一部は、ユーザーがMicrosoft Windowsのコントロール パネルからアクセス可能な地域と言語のオプションを使用してローカル・システムのロケールを変更すると変わります。「タイプ」・リストのこれらの形式の先頭に* 文字が付きます。図9-1は、フランス語(フランス)の表記規則を使用してセルの日付形式を設定する日付タイプの例を示します。

図9-1 Excelの日付形式

Excelの日付形式

エンド・ユーザーが、図9-2にあるように「英語 (米国)」を使用するようにシステムの地域設定オプションを変更した場合、 the cells that are formatted with the style in 図9-1のスタイルでフォーマットされるセルは、「英語 (米国)」の表記規則を使用します。

図9-2 Excelの地域と言語のオプション

Excelの地域と言語のオプション

9.2.1 Oracle ADFコンポーネントへのスタイルの適用方法

Oracle ADFコンポーネントにスタイルを適用するには、プロパティ・インスペクタを使用して、StyleNameを名前に持つプロパティの値を設定します。

スタイルを適用する手順:

  1. 統合Excelワークブックで、変更するOracle ADFコンポーネントを参照するセルを選択して、「Oracle ADF」タブの「コンポーネントの編集」ボタンをクリックします。

    たとえば、ADF表コンポーネントを参照するセルを選択します。

  2. 「列」に続いて、実行時にセルの形式を変更する列の配列にある列の値をクリックします。

  3. CellStyleNameプロパティを選択し、省略記号ボタン(...)をクリックして「式の編集」ダイアログを表示します。

  4. Stylesノードを展開して、実行時に列のセルに適用するスタイルを選択します。

    たとえば、通貨に基づいたスタイル(Currency[0])をCurrencyタイプのCost Priceデータ・バインド列に適用します。汎用のスタイルではなく、Currency[0]スタイルをCurrencyタイプのデータ・バインド列に適用すると、実行時のデータ(価格の値)が通常の値(小数桁数2桁)ではなく、小数桁数ゼロに切り捨てられた値として表示されます。

  5. 「式に挿入」をクリックして、Currency[0]を「式」フィールドに挿入します。

    図9-3は、「式の編集」ダイアログを示します。

    図9-3 スタイルを適用する「式の編集」ダイアログ

    「式の編集」ダイアログ・ボックスでスタイルを適用しています。
  6. 「OK」をクリックします。

9.2.2 スタイルがOracle ADFコンポーネントに適用される際の実行時の処理

名前にStyleNameが付いているプロパティの値として入力したEL式は、実行時に評価されます。これが事前定義済のスタイルであるか、または定義したスタイルの場合、そのスタイルはプロパティを設定したOracle ADFコンポーネントに適用されます。

Oracle ADFコンポーネントを参照するセルに、Oracle ADFのプロパティで定義されたものとは異なるスタイルが適用されている場合、Oracle ADFコンポーネントは既存のスタイルを実行時に上書きして、プロパティで定義されたスタイルを適用します。

たとえば、図9-4は、Currency[0]スタイルが適用されてデフォルトのTableCellCurrencyスタイルが上書きされた後のCost Price列の実行時の値を示します。

図9-4 別のスタイルを適用した後の実行時の値

別のスタイルを適用した後の実行時の列の値

9.3 EL式を使用した動的なスタイルの適用

StyleNameを名前に含むOracle ADFコンポーネントのプロパティは、EL式を値として受け入れます。記述するEL式は、実行時に指定されたOracle ADFコンポーネントに適用されるExcelスタイルに解決することができます。記述するEL式は、Oracle ADFデータ・バインディング式などを使用するExcel式です。ADFデスクトップ統合は、ユーザーがセル間を移動するときやアップロード時には、結果を評価または適用しません。

次の例は、EL式を使用して、実行時のOracle ADFコンポーネントの動作および外観を決定できる様々なコンテキストを示します。例9-1では、ダウンロード時にスタイルを動的に適用します。バインディングのステータス値がClosedの場合、読取り専用スタイル(MyReadOnlyStyle)を適用します。それ以外のときは、別のスタイル(MyReadWriteStyle)を適用します。

例9-1 ダウンロード時にスタイルを動的に適用する場合

=IF("#{bindings.Status}" = "Closed", "MyReadOnlyStyle", "MyReadWriteStyle")

例9-2では、Excel式とADFバインディング式を取り混ぜて使用し、エラーおよびタイプ変換を処理します。

例9-2 エラーをタイプ変換を処理するEL式

=IF(ISERROR(VALUE("#{bindings.DealSize}")), "BlackStyle", IF(VALUE("#{bindings.DealSize}") > 300, "RedStyle", "BlackStyle"))

9.3.1 EL式が評価される際の実行時の処理

実行時にEL式を評価する際、ADFデスクトップ統合はEL式が参照する値を決定します。そしてExcel式のEL式を、その値に置換します。例9-1では、まずADFデスクトップ統合は次のExcel式でEL式、#{bindings.Status}の値を決定します。

=IF("#{bindings.Status}" = "Closed", "MyReadOnlyStyle", "MyReadWriteStyle")

続いて、次の例にあるようにEL式を実行時の値に置換します。ここでは、式はClosedに評価されます。

=IF("Closed" = "Closed", "MyReadOnlyStyle", "MyReadWriteStyle")

Excelは式を評価し、この例ではMyReadOnlyStyleスタイルに適用します。

9.3.2 実行時にスタイルを適用するEL式の記述方法

Oracle ADFコンポーネントのプロパティ・インスペクタからアクセスできる「式の編集」ダイアログに、EL式をサポートするOracle ADFコンポーネントのプロパティのEL式を記述します。図9-5に、ADFボタン・コンポーネントのプロパティ・インスペクタ・ウィンドウから起動された「式の編集」ダイアログを示します。

図9-5 式の編集」ダイアログ

ELの「式の編集」ダイアログ・ボックス

実行時にスタイルを適用するEL式を記述する手順:

  1. 統合Excelワークブックを開きます。

  2. EL式を記述する、Oracle ADFコンポーネントを参照するExcelワークシートのセルを選択します。

  3. 「Oracle ADF」タブの「コンポーネントの編集」ボタンをクリックして、プロパティ・インスペクタを表示します。

  4. EL式を関連付けるプロパティ・インスペクタのプロパティを選択し、省略記号ボタン(...)をクリックして「式の編集」ダイアログを表示します。


    注意:

    「式の編集」ダイアログは、手順2で選択したOracle ADFコンポーネントがEL式をサポートする場合のみ表示されます。コンテキストに応じて、省略記号ボタン(...)で、アクション・コレクション・エディタなど他のエディタも起動できます。

    図9-5に示すように「式の編集」ダイアログには、EL式で参照できるOracle ADFコンポーネント、バインディング、スタイル、リソース、Excel機能の階層リストが表示されます。このダイアログに入力するEL式の構文の詳細は、付録B「ADFデスクトップ統合のEL式」を参照してください。

9.3.3 スタイルを適用するEL式に関する留意事項

実行時にスタイルを適用するEL式を記述する際は、次の点に注意してください。

ADFデスクトップ統合がどのようにスタイルを適用するか

スタイルに評価されるEL式は、次の場合に適用されます。

  • ADF表コンポーネントがDownloadアクションまたはDownloadForInsertアクションを起動する場合

  • 行がADF表コンポーネントに挿入される場合

  • ワークシートがDownSyncアクションを起動する場合

スタイルに評価されるEL式は、次の場合には適用されません。

  • ADF表コンポーネントがRowDownSyncアクションを起動する場合

  • エンド・ユーザーがセルの形式のプロパティを編集する場合

    また、エンド・ユーザーがセルの値を編集すると、スタイルに評価されるEL式は再評価されない点にも注意してください。

  • EL式の実行時の値は、エンド・ユーザーの統合Excelワークブックで定義されたスタイルには一致しません。

    このシナリオでは、対象セルのスタイルの形式は変わりません。かわりに、既存のスタイル形式が保持されます。クライアントサイドのロギングを構成した場合、EL式がエンド・ユーザーの統合Excelワークブックで定義されていないスタイルに評価されると、ADFデスクトップ統合はログ・ファイルにエントリを生成します。クライアントサイドのロギングの詳細は、C.3項「統合Excelワークブックのログ・ファイルの生成」を参照してください。

9.4 統合Excelワークブックでのラベルの使用

ラベルを使用して、統合Excelワークブックの機能をどのように使用するかについての情報をエンド・ユーザーに提供します。リソース・バンドルで定義された文字列キーの値あるいは属性コントロール・ヒントを取得するEL式を記述できます。統合Excelワークブックは、ワークブックが初期化されるときにのみLabelプロパティの値を評価します。

リソース・バンドルからの文字列キーの値の取得

図9-6は、 of tMaster Price ListモジュールのEditPriceList-DT.xlsxワークブックの設計時の表示の一部を示します。LabelプロパティにEL式が指定されている、ADFラベル・コンポーネントとADFボタン・コンポーネントの例を示します。

図9-6 Labelプロパティを持つADFラベル・コンポーネントとADFボタン・コンポーネントの設計時の表示

labelプロパティの設計時の表示

実行時には、これらのEL式はMaster Price Listモジュールに登録されたresリソース・バンドルで定義された文字列キーに解決されます。リソース・バンドルは、「ワークブック・プロパティ」ダイアログで定義します。リソース・バンドルからの文字列キーの参照の詳細は、10.2項「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。

図9-7は、図9-6に設計モードで示されているADFラベル・コンポーネントとADFボタン・コンポーネントの相当する実行時の表示を示します。

図9-7 Labelプロパティを持つADFラベル・コンポーネントとADFボタン・コンポーネントの実行時の表示

labelプロパティの実行時の表示

属性コントロール・ヒントの値の取得

リソース・バンドルからの文字列キーの他に、ADFラベル・コンポーネントと他のADFコンポーネントのLabelプロパティは、JDeveloperプロジェクトのエンティティ・オブジェクトとビュー・オブジェクトに定義する属性コントロール・ヒントを参照できます。図9-8は、EditPriceList-DT.xlsxワークブックのADF表コンポーネントにある「製品名」列の式ビルダーを示します。式ビルダーは、実行時に属性コントロール・ヒントに定義される値(Product Name)を取得する、ProductName列のHeaderLabelプロパティに対するEL式を含みます。

図9-8 Labelプロパティの属性コントロール・ヒントの値を取得するEL式

属性コントロール・ヒントを取得するEL式

属性コントロールのヒントは、ビュー・オブジェクトとエンティティ・オブジェクトの両方に構成できます。エンティティ・オブジェクトに属性コントロール・ヒントを追加する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のエンティティ・オブジェクトの属性コントロール・ヒントの定義に関する項を参照してください。ビュー・オブジェクトに属性コントロール・ヒントを追加する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のビュー・オブジェクトの属性コントロール・ヒントの定義に関する項を参照してください。

統合ExcelワークブックがLabelプロパティをどのように評価するか

統合Excelワークブックは、開発者またはエンド・ユーザーが初めてワークブックを開いた後、ワークブックが初期化されるときにADFコンポーネントのLabelプロパティを評価します。統合Excelワークブックは、ワークブック自身がシステム上のディレクトリに保存されるときに、Labelプロパティの取得された値を保存します。

Labelプロパティの取得された値は、ワークシートのDownSyncアクションやADF表コンポーネントのDownloadアクションのようなアクションの起動中にリフレッシュされません。表A-17に示されるようにワークブックのアクションClearAllDataまたはEditOptionsを起動する場合、Labelプロパティの取得された値を間接的にリフレッシュします。

9.5 操作性を向上するスタイルの使用

統合Excelワークブックのエンド・ユーザーに、Fusion Webアプリケーションに統合する目的で提供するADFコンポーネントの使用方法に関するわかりやすい情報を提供することはよい習慣です。これには次のようにします。

使い勝手を向上するADFラベル・コンポーネントの使用

ADFラベル・コンポーネントを使用して、統合Excelワークブックのエンド・ユーザーに、ワークブックで他のADFコンポーネントを使用する方法に関する情報を提供できます。たとえば、便宜上は多くのフォームで*を使用して、入力フィールドへの値の入力が必須であることをエンド・ユーザーに示します。図9-9は、3つのADF入力テキスト・コンポーネントと隣接するセルのADFラベル・コンポーネントを示します。それぞれのADFラベル・コンポーネントは、実行時にリソース・バンドルから文字列キーの値を取得するEL式を参照します。各文字列キーは、値の入力が必須であることをエンド・ユーザーに示すために、*文字を含めます。

図9-9 エンド・ユーザーに説明を提供するADFラベル・コンポーネント

エンド・ユーザーに説明を提供するADFラベル・コンポーネント

リソース・バンドルの使用の詳細は、10.2項「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。

統合Excelワークブックの読取り専用プロパティについて

統合Excelワークブックでの読取り専用プロパティに関して、次の点に注意してください。

エンド・ユーザーの混乱を避けるため、ADF出力テキスト・コンポーネントなどのコンポーネントに対して、コンポーネントが読取り専用か編集可能かをエンド・ユーザーに示すスタイルを適用してください。デフォルトでは、ADF出力テキスト・コンポーネントは事前定義済のスタイル、_ADFDI_OutputTextStyleを使用します。この章の説明にあるように、独自のスタイルを定義してそれをコンポーネントに適用できます。

ADFデスクトップ統合のコンポーネントがサポートするプロパティの詳細は、付録A「ADFデスクトップ統合コンポーネントのプロパティとアクション」を参照してください。

9.6 統合Excelワークブックのブランディング

ADFデスクトップ統合には、アプリケーション名やバージョン情報、著作権情報などの情報によって構成して統合Excelワークブックのブランディングに使用できるいくつかの機能があります。この情報を統合Excelワークブックに関連付けるために、ワークブックのBrandingItemsプロパティ・グループを使用できます。エンド・ユーザーがViewAboutDialogワークブック・アクションを実行時に起動するリボン・ボタンをクリックすればこのブランディング情報を閲覧できるように、8.3項「実行時リボン・タブの構成」の説明に従って、リボン・タブを構成する必要があります。ワークブック・アクションの詳細は、表A-17を参照してください。

また、リソース・バンドルに文字列キーを定義して、タイトルのような情報を、EL式がこれらの文字列キーの値を取得する際に、統合Excelワークブックの複数の場所で実行時に使用可能な場所に定義できます。文字列キーの定義の詳細は、10.2項「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。

9.6.1 統合Excelワークブックのブランディング方法

ワークブックBrandingItemsプロパティ・グループの値を定義します。

統合Excelワークブックをブランディングする手順:

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブで、「ワークブック・プロパティ」をクリックします。

  3. 「ワークブック・プロパティの編集」ダイアログで、BrandingItemsの入力フィールドの横にある省略記号ボタン(...)をクリックします。

  4. NameValuePairコレクション・エディタで、「追加」をクリックして、新しい要素に次のように値を指定します。

    • Name

      定義するブランディング項目の名前、またはEL式を指定します。

    • Value

      リテラル文字列を指定するか、または省略記号ボタン(...)をクリックして、式ビルダーを起動し、実行時に値を取得するEL式を記述します。BrandingItemsは、リテラル文字列またはリソース式を使用しなければならず、バインディング式を一切含むことはできません。

    図9-10は、Master Price Listモジュールのブランディング項目の設計時の表示を示します。

    図9-10 Master Price Listモジュールのブランディング項目の設計時の表示

    MPLモジュールのブランディング項目の設計時の表示
  5. 「OK」をクリックします。

9.6.2 統合Excelワークブックで項目をブランディングする際の実行時の処理

実行時には、BrandingItemsプロパティ・グループに定義する名前の値の組合せが、「Oracle ADF」タブの「情報」ボタンからエンド・ユーザーが起動するダイアログに表示されます。これは、8.3項「実行時リボン・タブの構成」の説明に従って、表示するように構成済です。図9-11は、Master Price ListモジュールのEditPriceList.xlsxワークブックにおけるブランディング項目の実行時の表示を示します。

図9-11 Master Price Listモジュールのブランディング項目の実行時の表示

MPLモジュールのブランディング項目の実行時の表示

9.7 ワークシート保護の使用

デフォルトでは、ADFラベルおよびADF出力テキストなど、読取り専用セルおよびADFデスクトップ統合読取り専用コンポーネントの値をエンド・ユーザーが編集できます。データをアップロードする際、Fusion Webアプリケーションからデータをダウンロードするときに、ADFデスクトップ統合はこれらの変更を無視して上書きします。

実行時に読取り専用のセルの編集を防止するため、ワークシート保護を有効にする必要があります。オプションで、エンド・ユーザーがワークシートの保護をオフにしないように、パスワードを提供できます。

9.7.1 ワークシート保護を有効化する方法

ワークシート保護を使用すると、読取り専用セルについて正真正銘の読取り専用モードを有効化し、実行時に編集されないようにします。

ワークシート保護を有効化する手順

  1. 統合Excelワークブックを開きます。

  2. 「Oracle ADF」タブで、「ワークシート・プロパティ」をクリックします。

  3. 「ワークシート・プロパティの編集」ダイアログで、Protectionプロパティを展開して次のように値を構成します。

    • 実行時にワークシートの保護を有効化するには、「モード」「自動」に設定します。

    • 必要があれば、「パスワード」・フィールドに値を入力します。エンド・ユーザーは、この値を知らなければ実行時にシートの保護をオフにできません。

      パスワードは暗号化されず、Excelで有効なパスワードの長さは最大255文字です。より長いパスワードを指定すると、シートの保護を切り替える際に実行時に警告なしで切り捨てられます。

    図9-12は、Master Price Listモジュールのワークシート保護の設計時の表示を示します。

    図9-12 Master Price Listモジュールのワークシート保護の設計時の表示

    ワークシート保護モードの設計時の表示
  4. 「OK」をクリックします。

9.7.2 ワークシート保護を有効化する際の実行時の処理

実行時にエンド・ユーザーが読取り専用のセルやADFデスクトップ統合の読取り専用コンポーネントを編集しようとすると、Excelに図9-13に示すような警告メッセージが表示されます。

図9-13 実行時のワークシート保護の警告

実行時のワークシート保護エラー

ワークシート保護が有効化されている場合、ADFデスクトップ統合はADFデスクトップ統合コンポーネントの範囲にあるセルのLockedプロパティを制御します。ADFデスクトップ統合コンポーネントの範囲外にあるLockedプロパティは、影響を受けません。

実行時には、ADFデスクトップ統合はコンポーネントの読取り専用動作を評価します。ADFラベルやADF出力テキストなど一部のコンポーネントは常に読取り専用で、ADF入力テキストのような他のコンポーネントは読取り専用のプロパティを持っています。実行時には、読取り専用コンポーネントがtrueに評価されると、Lockedプロパティはtrueに設定されます。ADF表コンポーネントのヘッダー・ラベルは常に読取り専用ですが、列のサブコンポーネントはADF出力テキストやADF入力テキストである場合があります。実行時には、各コンポーネントの読取り専用の動作が評価され、対応するセルのLockedプロパティは適切な値に設定されます。

9.7.3 ワークシートの保護に関する留意事項

ワークシートの保護はデフォルトでは有効化されておらず、特定のワークシートに使用する場合は設計時に有効化する必要があります。また、ワークシートの保護を有効化した後は、セルのLockedプロパティは設計時ではなく、実行時に設定されます。

ワークシートの保護に使用するパスワードは暗号化されず、安全な場所に保存されない点にも注意してください。ワークシートの保護は、ワークシートの操作性を向上するためのものであり、重要なデータを保護するものではありません。

ワークシートの保護を有効化した後は、Excelの動作が異なります。主な動作の違いは次のとおりです。

  • ADF表コンポーネントはKey列に読取り専用セルを含むため、ソートできません。

  • エンド・ユーザーは行全体または列全体を挿入できます。ただし、一度挿入すると削除はできません。

  • エンド・ユーザーは行や列を部分的には挿入できません。