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

前
 
次
 

6 ADFデスクトップ統合フォーム・タイプ・コンポーネントの使用

この章では、ADFデスクトップ統合でエンド・ユーザーがFusion Webアプリケーションから取得したデータを管理できるように提供されるコンポーネント(ボタン、ラベル、入力および出力テキスト、値リストなど)の挿入および構成の方法、およびこれらのコンポーネントでExcel式を使用して計算されたデータの表示方法について説明します。

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

6.1 ADFデスクトップ統合フォーム・タイプ・コンポーネントの概要

5.5項「コンポーネント・パレットの使用」にあるとおり、コンポーネント・パレットのADFフォーム・コンポーネントを公開するのではなく、ADFデスクトップ統合は次のコンポーネントを使用して、統合Excelワークブックでフォーム・タイプ機能を作成します。


注意:

ADFデスクトップ統合は、結合したセルに挿入されたコンポーネントはサポートしていません。

6.2 ADFボタン・コンポーネントの挿入

ADFボタン・コンポーネントは、実行時にExcelワークシートのボタンをレンダリングします。エンド・ユーザーはこのボタンをクリックして、ClickActionSetプロパティ・グループで指定される1つ以上のアクションを起動します。

LowerRightCornerプロパティおよびPositionプロパティは、実行時にExcelワークシートでボタンが占有する領域を決定します。

図6-1に、設計モードのExcelワークシートのボタンを示します。ボタンのプロパティ・インスペクタが最前面に表示されています。エンド・ユーザーが実行時にこのボタンをクリックすると、ClickActionSetで指定された配列のアクションが起動します。

図6-1 ADFボタン・コンポーネント

ADFボタン・コンポーネント

ADFボタン・コンポーネントのプロパティの詳細は、付録A.8「ADFボタン・コンポーネントのプロパティ」を参照してください。

ADFボタン・コンポーネントを挿入する手順:

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

  2. コンポーネントを配置するExcelワークシートのセルを選択します。

  3. コンポーネント・パレットで「ADFボタン」を選択して、コンポーネントの挿入をクリックします。または、「Oracle ADF」タブで、コンポーネントの挿入ドロップダウン・リストから「ADFボタン」を選択します。

  4. プロパティ・インスペクタで、コンポーネントが実行時に起動するアクションと、コンポーネントの外観、設計およびレイアウトを決定するプロパティを構成します。表6-1は、値を指定する必要のあるプロパティの概要および追加情報へのリンクを示します。

    図6-1 ADFボタン・コンポーネントのプロパティ

    プロパティ 指定する内容

    Label

    ADFボタン・コンポーネントの目的を示すために実行時にラベルに解決される文字列またはEL式。たとえば、実行時のMaster Price ListモジュールのEditPriceList-DT.xlsxワークブックにおける「拡張検索」ボタンのLabelプロパティは、設計モードでは次の値を持ちます。

    #{res['excel.advSearchButton.label']}

    このEL式は、resリソース・バンドルの文字列キーを参照します。リソース・バンドルの詳細は、10.2項「統合Excelワークブックでのリソース・バンドルの使用」を参照してください。統合Excelワークブックでのラベルの使用の詳細は、9.4項「統合Excelワークブックでのラベルの使用」を参照してください。

    ラベルにアンパサンド文字(&)を含めるには、&&を使用する必要があります。1つの&文字は特殊文字として機能し、ラベルには表示されません。

    ClickActionSet

    ClickActionSetActions配列で、エンド・ユーザーがADFボタン・コンポーネントをクリックしたときに起動する1つ以上のアクションを指定します。アクション・セットの詳細は、8.2項「アクション・セットの使用」を参照してください。


  5. 「OK」をクリックします。


    注意:

    • Excelワークシートのビュー・モードをページ・レイアウトまたはページ・ブレーク・モードに変更した場合、ADFボタン・コンポーネントは予期しない位置にレンダリングされる可能性があります。ボタンを元の位置でレンダリングするために、ワークブックを保存せずに通常モードに戻り、統合Excelワークブックを実行して停止する必要があります。

    • コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。

    • ADFボタン・コンポーネントは100%ズームの状態でのみアクティブであり、エンド・ユーザーが統合Excelワークシートでズームインやズームアウトすると無効になります。



    ヒント:

    設計モードでは、ボタンにフォーカスがある場合に、ボタンをクリックしたりスペースバーを押してプロパティ・インスペクタを開くことができます。右クリックして表示されるコンテキスト・メニューは、ボタンでは無効です。

統合Excelワークブックにナビゲーション・ボタンを追加して前または次のレコードに移動するには、6.9項「ナビゲーション・ボタンの使用」を参照してください。

6.3 ADFラベル・コンポーネントの挿入

ADFラベル・コンポーネントは、静的な文字列値を表示するために、アクティブなワークシートに挿入できるコンポーネントです。プロパティ・インスペクタのLabelの入力フィールドに値を指定するか、式ビルダーを起動して、実行時に文字列に解決されるEL式を記述します。取得される文字列は、リソース・バンドルまたはエンティティあるいはビュー・オブジェクトの属性コントロールのヒント内で定義できます。たとえば、次のEL式は実行時にリソース・バンドルで定義される文字列キーの値に解決します。

#{bindings.ProductList.label}

ADFラベル・コンポーネントや他のOracle ADFコンポーネントでLabelプロパティに指定する値は、Oracle ADFコンポーネントをホストするワークシートが初期化(初めて開く)されるときに評価されます。

プロパティ・インスペクタを使用して、スタイルや位置などのコンポーネントのプロパティをワークシートで構成できます。

図6-2に、ADFラベル・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADFラベル・コンポーネントは、実行時にresリソース・バンドルで定義される文字列キーの値に解決されるEL式を参照します。

図6-2 ADFラベル・コンポーネント

ADFラベル・コンポーネント

ADFラベル・コンポーネントを挿入する手順:

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

  2. コンポーネントを配置するExcelワークシートのセルを選択します。

  3. コンポーネント・パレットで「ADFラベル」を選択して、コンポーネントの挿入をクリックします。または、「Oracle ADF」タブで、コンポーネントの挿入ドロップダウン・リストから「ADFラベル」を選択します。

  4. プロパティ・インスペクタで、コンポーネントの外観、設計およびレイアウトを決定するプロパティを構成します。

  5. 「OK」をクリックします。


    注意:

    コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。または、セルで右クリックして、コンテキスト・メニューから「コンポーネントの編集」を選択し、プロパティ・インスペクタを開きます。

統合Excelワークブックでのラベルの使用の詳細は、9.4項「統合Excelワークブックでのラベルの使用」を参照してください。

6.4 ADF入力テキスト・コンポーネントの挿入

ADF入力テキスト・コンポーネントは、コンポーネント・パレットを使用して、アクティブなワークシートに挿入できるコンポーネントです。コンポーネントの挿入時、ワークシートのアクティブなセルには、ワークシートDownSyncアクションが起動された後のコンポーネントのバインディングの現在の値が表示されます。エンド・ユーザーは実行時にこの値を編集できます。ワークシートUpSyncアクションを構成して、エンド・ユーザーが値に加える変更をFusion WebアプリケーションおよびCommitアクション・バインディングに送信して、Fusion Webアプリケーションで変更をコミットします。

ユーザーがプロパティ・インスペクタを使用してワークシートのセル(DoubleClickActionSetプロパティ)をダブルクリックすると、位置やスタイル、動作といったコンポーネントのプロパティの多くを構成できます。DoubleClickActionSetの詳細は、8.2項「アクション・セットの使用」を参照してください。

ADF表コンポーネントは、ADF表コンポーネントの列のInsertComponentプロパティまたはUpdateComponentプロパティの値を設定すると、このコンポーネントをサブコンポーネントとして起動できます。このコンテキストでは、ADF入力テキスト・コンポーネントによって、エンド・ユーザーはADF表コンポーネントにデータを入力できるようになります。詳細は、7.5項「データを挿入するためのADF表コンポーネントの構成」を参照してください。

図6-3に、ADF入力テキスト・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADF入力テキスト・コンポーネントは、Fusion Order DemoアプリケーションのMaster Price ListモジュールのsearchTerm属性バインディングにバインドされます。エンド・ユーザーは、このコンポーネントに検索用語を入力してから、ADFボタン・コンポーネントを使用して検索を開始します。

図6-3 ADF入力テキスト・コンポーネント

入力テキスト・コンポーネントのプロパティ・インスペクタ

ADF入力テキスト・コンポーネントを挿入する手順:

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

  2. コンポーネントを配置するExcelワークシートのセルを選択します。

  3. コンポーネント・パレットで「ADF入力テキスト」を選択して、コンポーネントの挿入をクリックします。または、「Oracle ADF」タブで、コンポーネントの挿入ドロップダウン・リストから「ADF入力テキスト」を選択します。

  4. プロパティ・インスペクタで、コンポーネントの外観、レイアウトおよび動作を決定するプロパティを構成します。表6-2は、値を指定する必要のあるいくつかのプロパティの概要を示します。このコンポーネントの他のプロパティの詳細は、A.2項「ADF入力テキスト・コンポーネントのプロパティ」を参照してください。

    表6-2 ADF入力テキストのプロパティ

    プロパティ 指定する内容

    InputText.Value

    コンポーネントが参照するバインディングを決定するValueプロパティのEL式。

    InputText.ReadOnly

    エンド・ユーザーが加える変更がアップロードされるようにFalseに解決されるEL式。コンポーネントで変更を無視する場合は、Trueに解決されるEL式を記述してください。デフォルト値はFalseです。


  5. 「OK」をクリックします。


    注意:

    コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。または、セルで右クリックして、コンテキスト・メニューから「コンポーネントの編集」を選択し、プロパティ・インスペクタを開きます。

6.5 ADF出力テキスト・コンポーネントの挿入

ADF出力テキスト・コンポーネントは、コンポーネント・パレットを使用して、アクティブなワークシートに挿入できるコンポーネントです。コンポーネントの挿入時、ワークシートのアクティブなセルには、ワークシートDownSyncアクションを起動した後のコンポーネントのバインディングの現在の値が表示されます。コンポーネントにより表示される値は読取り専用です。エンド・ユーザーがセルの値に加える変更で、コンポーネントを配置するものは、変更がFusion Webアプリケーションに送信される際に無視されます。

また、このコンポーネントはADF表コンポーネントおよびADF読取り表コンポーネントのサブコンポーネントとして機能することができます。ADF表コンポーネントおよびADF読取り専用コンポーネントの列は、ADF出力テキスト・コンポーネントを使用するように構成できます。

スタイル、セルをダブルクリックしたときの動作(DoubleClickActionSetプロパティ)および位置など、コンポーネントの様々なプロパティを、プロパティ・インスペクタを使用してワークシートで構成できます。

図6-4に、ADF出力テキスト・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADF出力テキスト・コンポーネントは、Fusion Order DemoアプリケーションのMaster Price ListモジュールのADF表コンポーネントを参照します。実行時には、ADF出力テキスト・コンポーネントを配置するセルに、ADF表コンポーネントから戻されるエラーがすべて表示されます。

図6-4 ADF出力テキスト・コンポーネント

ADF出力テキスト・コンポーネント

ADF出力テキスト・コンポーネントを挿入する手順:

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

  2. コンポーネントを配置するExcelワークシートのセルを選択します。

  3. コンポーネント・パレットで「ADF出力テキスト」を選択して、コンポーネントの挿入をクリックします。または、「Oracle ADF」タブで、コンポーネントの挿入ドロップダウン・リストから「ADF出力テキスト」を選択します。

  4. プロパティ・インスペクタで、コンポーネントの外観、レイアウトおよび動作を決定するプロパティを構成します。

    たとえば、ADF出力テキスト・コンポーネントが何を参照するかを決定するために、ValueプロパティにEL式を記述または指定する必要があります。ADF出力テキスト・コンポーネントのプロパティに指定する値の詳細は、A.3項「ADF出力テキスト・コンポーネントのプロパティ」を参照してください。

  5. 「OK」をクリックします。


    注意:

    コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。または、セルで右クリックして、コンテキスト・メニューから「コンポーネントの編集」を選択し、プロパティ・インスペクタを開きます。

6.6 ADF値リスト・コンポーネントの挿入

ADF値リスト・コンポーネントは、実行時にExcelワークシートのセルにドロップダウン・メニューを表示するコンポーネントです。実行時に最高250の値を表示します。値リスト・コンポーネントは、Excelワークシートのセルに挿入できます。

ListIDプロパティの値を指定する必要があります。ListIDプロパティは、ワークブックDownSyncアクションを起動した後で実行時にドロップダウン・メニューに値リストを移入するリスト・バインディングを参照します。

図6-5に、ADF値リスト・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADF値リスト・コンポーネントは、実行時にExcelワークシートのドロップダウン・メニューに値を移入するリスト・バインディング(ProductList)を参照します。


注意:

ADF表コンポーネントの列のドロップダウン・メニューは、TableColumn配列のInsertComponentプロパティの値を指定する際に、TreeNodeListまたはModelDrivenColumnComponentを作成するサブコンポーネントとして選択すれば表示できます。詳細は、7.13項「ADF表コンポーネント列での値リストの作成」を参照してください。

図6-5 ADF値リスト・コンポーネント

ADF値リスト・コンポーネント

ADF値リスト・コンポーネントを挿入する手順:

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

  2. コンポーネントを配置するExcelワークシートのセルを選択します。

  3. コンポーネント・パレットで「ADF値リスト」を選択して、コンポーネントの挿入をクリックします。または、「Oracle ADF」タブで、コンポーネントの挿入ドロップダウン・リストからADF値リストを選択します。

  4. ListIDプロパティの入力フィールドの横にある省略記号ボタン(...)をクリックしてバインディングIDピッカーを起動し、ページ定義ファイルで公開されたリスト・バインディングを選択します。

  5. プロパティ・インスペクタで、コンポーネントの外観、設計およびレイアウトを決定する他のプロパティを構成します。ADF値リスト・コンポーネントのプロパティの詳細は、A.5項「ADF値リスト・コンポーネントのプロパティ」を参照してください。

  6. 「OK」をクリックします。


    注意:

    コンポーネントのプロパティを後から変更するには、コンポーネントを配置するワークシートのセルを選択して、プロパティ・インスペクタを表示します。または、セルで右クリックして、コンテキスト・メニューから「コンポーネントの編集」を選択し、プロパティ・インスペクタを開きます。

6.7 ADFコンポーネントのマネージドBeanからの出力の表示

ADFコンポーネントを構成して、マネージドBeanからの出力をFusion Webアプリケーションで表示できます。Fusion WebアプリケーションでのマネージドBeanの使用方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』の「Fusion WebアプリケーションでのマネージドBeanの使用」の項にあります。統合Excelワークブック内のマネージドBeanはEL式を通じて参照します。Excelワークシートに関連付けるページ定義ファイルにメソッド・アクション・バインディングを追加して、マネージドBeanの値を取得し、それを属性バインディングに割り当てます。EL式を使用して、実行時に属性バインディングの値を取得します。

6.7.1 マネージドBeanからの出力の表示方法

EL式は、EL式をサポートするプロパティ(Labelプロパティなど)に記述します。

マネージドBeanからの出力を表示する手順:

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

  2. マネージドBeanからの出力を表示するADFコンポーネントを選択し、そのプロパティ・インスペクタを開きます。

    図6-6は、Master Price ListモジュールのEditPriceList-DT.xlsxワークブックの一例を示します。ここでは、ADFラベル・コンポーネントが、アクション・バインディングにより移入された値を持つ属性バインディングからの出力を表示するように構成されています。

    図6-6 実行時にマネージドBeanからの出力を表示するADFラベル・コンポーネント

    マネージドBeanからの出力を表示するADFラベル・コンポーネント
  3. 実行時にマネージドBeanからの出力を取得するEL式を記述します。

    図6-6の例は、resリソース・バンドルからの文字列キー(excel.connectionPrefix)の値とloggedInUser属性バインディングの値を取得するEL式を示します。この属性バインディングは、マネージドBeanからの出力を参照します。

  4. 「OK」をクリックします。

6.7.2 ADFコンポーネントでマネージドBeanからの出力を表示する際の実行時の処理

メソッド・アクション・バインディングは、マネージドBeanからの値を取得して属性バインディングに移入します。記述するEL式は、属性バインディングからの値を取得し、出力を表示するように構成したADFコンポーネントを通じてそれをエンド・ユーザーに表示します。たとえば、図6-7に示す設計モードのADFラベル・コンポーネントは、実行時に次のような文字列を表示します。

Connected as sking

図6-7 実行時のマネージドBeanからの出力

実行時のマネージドBeanからの出力

図6-7では、skingは統合Excelワークブックを介してFusion Webアプリケーションにログオンしているユーザーのユーザー名です。

6.8 コンポーネント内での連結または計算されたデータの表示

ADFデスクトップ統合モジュールは、コンポーネント内で、1つのコンポーネントにより、計算または複数のバインディング式の連結に基づいたデータを表示可能なEL式をサポートしています。

6.8.1 計算されたデータを表示するようにコンポーネントを構成する方法

EL式は、入力テキストまたは出力テキスト・コンポーネントのValueプロパティに対して記述します。

図6-8は、Master Price ListモジュールのEditPriceList-DT.xlsxワークブックからのEL式の一例を示します。ここでは、列のADF出力テキスト・コンポーネントが、List Price列とCost Price列のマージンを表示するように構成されています。

図6-8 計算されたデータを表示するADF出力テキスト・コンポーネント

計算のためのEL式を表示するダイアログ

計算されたデータを表示するEL式を作成する手順

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

  2. 計算されたデータを表示する、ADF入力テキストまたはADF出力テキストのコンポーネントを選択します。

  3. プロパティ・インスペクタを開いて、Valueプロパティの省略記号ボタン(...)をクリックします。

  4. 2つ以上の式から出力を取得するEL式を記述します。

    図6-1は、ある項目のList Price列とCost Price列の値の差異を計算し、それをCost Price列の値で割ってマージンを生成するEL式を示します。

    例6-1 計算されたデータ用のEL式

    =(("#{row.bindings.ListPrice.inputValue}"-"#{row.bindings.CostPrice.inputValue}")/"#{row.bindings.CostPrice.inputValue}")
    
  5. 「OK」をクリックします。

EL式の詳細は、付録B「ADFデスクトップ統合のEL式」を参照してください。


注意:

ADF入力テキスト・コンポーネントのValueプロパティに式が含まれる場合、ReadOnlyプロパティの値に関係なく、ADF入力テキスト・コンポーネントは実行時に読取り専用となります。

6.9 ナビゲーション・ボタンの使用

図6-9に示すような、あるレコードから別のレコードに移動するためのナビゲーション・ボタン(次、前へ、最初へ、最後)を作成できます。別のレコードに移動する前にエンド・ユーザーがレコードのデータを変更した場合、それらの変更を保存するか、または無視するかを選択できます。

図6-9 統合Excelワークブックのナビゲーション・ボタン

ワークブックでのナビゲーション・ボタンの使用

別のレコードに移動する前に変更を保存し、次の順序でボタンのアクション・セットを定義する手順:

  1. Worksheet.UpSync

  2. Commit

  3. ナビゲーション・アクション(次など)

  4. Worksheet.DownSync


注意:

アクション・セットからCommitアクションを省略すると、複数のレコードに対する保留中のすべての変更は、エンド・ユーザーのWebアプリケーション・セッションが終了するときに失われます。

別のレコードに移動する前に変更を無視し、次の順序でボタンのアクション・セットを定義する手順:

  1. ナビゲーション・アクション(次など)

  2. Worksheet.DownSync


注意:

変更を無視するボタン・アクションを定義する場合、別のレコードに移動する前に変更を保存することはエンド・ユーザーの役割となります。