この章の内容は次のとおりです。
ADFデスクトップ統合フォーム・タイプ・コンポーネントを使用すると、エンド・ユーザーが統合ExcelワークブックでFusion Webアプリケーションから取得したデータを管理できるようになります。ADFデスクトップ統合では、次のコンポーネントを使用して、統合Excelワークブックにフォーム・タイプ機能を作成します。
ADF入力テキスト
ADF入力日
ADF出力テキスト
ADFラベル
ADF値リスト
ADFボタン
ADFイメージ
図6-1に、これらのコンポーネントの一部を示します。図6-1に示すリボン・コマンドは、実行時に統合ExcelワークブックのExcelリボンに表示されるワークシートレベルのリボン・コマンドです(ADFボタン・コンポーネントではありません)。詳細は、「実行時リボン・タブの構成」を参照してください。
ADF値リスト・コンポーネントの使用は、「Excelワークシートでの値リストの作成」に説明されています。
図6-1 ADFデスクトップ統合フォーム・タイプ・コンポーネント
ADFデスクトップ統合フォーム・タイプ・コンポーネントは、ユーザーの入力やFusion Webアプリケーションからの出力用に統合Excelワークブックでフォームをビルドするときに使用されます。図6-2に示すように、EditWarehouseInventory-DT.xlsx
のナビゲーション・フォームに使用されるフォーム・タイプ・コンポーネントにより、エンド・ユーザーはデータを容易にナビゲートおよび更新できます。
図6-2 ADFデスクトップ統合フォーム・タイプ・コンポーネントの使用
ワークシートにコンポーネントを追加した後、イベントやエンド・ユーザーのアクションに対する応答など、機能を追加しなければならないことがあります。フォーム・コンポーネントで使用可能な他の機能へのリンクは次のとおりです。
値リスト: ADF値リスト・コンポーネントを使用して、統合Excelワークブックに値リストを作成できます。詳細は、「値リストの使用」を参照してください。
マネージドBeanからの出力を表示するためのADFラベルまたはADF出力テキスト・コンポーネント。詳細は、「ADFコンポーネントのマネージドBeanからの出力の表示」を参照してください。
マネージドBeanからの出力の表示: ADFラベル・コンポーネントまたはADF出力テキスト・コンポーネントを使用して、マネージドBeanからの出力を表示できます。詳細は、「ADFコンポーネントのマネージドBeanからの出力の表示」を参照してください。
スタイル: 事前定義済のExcelのスタイルをいくつか使用して、フォーム・タイプ・コンポーネントの表示を構成できます。詳細は、「スタイルの使用」を参照してください。
EL式: EL式をフォーム・タイプ・コンポーネントとともに使用できます。詳細は、「ADFデスクトップ統合のEL式」を参照してください。
ADFラベル・コンポーネントは、静的な文字列値を表示するために、アクティブなワークシートに挿入できるコンポーネントです。プロパティ・インスペクタのLabel
の入力フィールドに値を指定するか、式ビルダーを起動して、実行時に文字列に解決されるEL式を記述します。取得される文字列は、リソース・バンドルまたはエンティティあるいはビュー・オブジェクトの属性コントロールのヒント内で定義できます。たとえば、次のEL式は実行時にCountryId属性のラベルの値に解決されます。
#{bindings.CountryId.label}
ADFラベル・コンポーネントや他のOracle ADFコンポーネントでLabel
プロパティに指定する値は、Oracle ADFコンポーネントをホストするワークシートが初期化(初めて開く)されるときに評価されます。
プロパティ・インスペクタを使用して、スタイルや位置などのコンポーネントのプロパティをワークシートで構成できます。
図6-3に、ADFラベル・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADFラベル・コンポーネントは、実行時にCountryId属性のラベルに解決されるEL式を参照します。
図6-3 設計モードのADFラベル・コンポーネント
ADFラベル・コンポーネントを挿入するには:
図6-4は、実行時のADFラベル・コンポーネント(黒線の枠内)の例を示しています。
図6-4 実行時のADFラベル・コンポーネント
注意:
ADFラベル・コンポーネントは1回のみレンダリングされ、Worksheet.DownSync
のコール後は更新されません。表示される値をWorksheet.DownSync
のコール後に変更する場合は、かわりにADF出力テキスト・コンポーネントを使用することを検討してください。
統合Excelワークブックでのラベルの使用の詳細は、「統合Excelワークブックでのラベルの使用」を参照してください。
ADF入力テキスト・コンポーネントは、コンポーネント・パレットを使用して、アクティブなワークシートに挿入するコンポーネントです。コンポーネントを挿入したワークシートのアクティブなセルには、実行時に、ワークシートDownSync
アクションが起動された後のコンポーネントのバインディングの現在の値が表示されます。エンド・ユーザーは実行時にこの値を編集できます。エンド・ユーザーが行った値の変更がFusion Webアプリケーションに転送されるように、ワークシートUpSync
アクションを構成します。Fusion Webアプリケーションの変更をコミットするように、Commit
アクション・バインディングを構成します。
ユーザーがプロパティ・インスペクタを使用してワークシートのセル(DoubleClickActionSet
プロパティ)をダブルクリックすると、位置やスタイル、動作といったコンポーネントのプロパティの多くを構成できます。DoubleClickActionSet
の詳細は、「アクション・セットの使用」を参照してください。
図6-5に、ADF入力テキスト・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。ADF入力テキスト・コンポーネントは、ADFデスクトップ統合のSummitサンプル・アプリケーションのCity
属性バインディングへバインドされます。ユーザーは、このコンポーネントに市の名前を入力します。
図6-5 設計モードのADF入力テキスト・コンポーネント
ADF入力テキスト・コンポーネントを挿入するには:
図6-6は、実行時のADF入力テキスト・コンポーネント(黒線の枠内)の例を示します。
図6-6 実行時のADF入力テキスト・コンポーネント
ADF出力テキスト・コンポーネントは、コンポーネント・パレットを使用して、アクティブなワークシートに挿入できるコンポーネントです。コンポーネントの挿入時、ワークシートのアクティブなセルには、ワークシートDownSync
アクションを起動した後のコンポーネントのバインディングの現在の値が表示されます。コンポーネントにより表示される値は読取り専用です。エンド・ユーザーがセルの値に加える変更で、コンポーネントを配置するものは、変更がFusion Webアプリケーションに送信される際に無視されます。セルの内容をエンド・ユーザーが変更できないようにするには、「ワークシート保護の使用」の説明に従って、ワークシート・プロパティで自動シート保護を有効にします。
また、このコンポーネントはADF表コンポーネントおよびADF読取り表コンポーネントのサブコンポーネントとして機能することができます。ADF表コンポーネントおよびADF読取り専用コンポーネントの列は、ADF出力テキスト・コンポーネントを使用するように構成できます。
スタイル、セルをダブルクリックしたときの動作(DoubleClickActionSet
プロパティ)および位置など、コンポーネントの様々なプロパティを、プロパティ・インスペクタを使用してワークシートで構成できます。
図6-7に、ADF出力テキスト・コンポーネントのプロパティ・インスペクタが最前面に表示された状態を示します。
図6-7 設計モードのADF出力テキスト・コンポーネント
ADF出力テキスト・コンポーネントを挿入するには:
図6-8は、実行時のADF出力テキスト・コンポーネント(黒線の枠内)の例を示します。
図6-8 実行時のADF出力テキスト・コンポーネント
ADF入力日コンポーネントでは、エンド・ユーザーが日付型フィールドで日付値を選択できる日付ピッカーが実行時に表示されます。実行時に「値」.の入力フィールドの日付/時刻の値に解決される、属性バインディングまたはEL式を設計時に指定できます。その他の日付/時刻の値はサポートされていません。
図6-9に、設計時のADF入力日コンポーネントを示します。
図6-9 設計モードのADF入力日コンポーネント
ADF入力日コンポーネントをフォーム内のフィールドまたは表コンポーネント内の列として挿入できます。日付属性を含むモデルドリブン列として、ADF入力日コンポーネントを追加することもできます。
ADF入力日コンポーネントを挿入する手順:
図6-10に、実行時のADF入力日コンポーネントの例を示します。
図6-10 実行時のADF入力日コンポーネント
選択した場合、ADF入力日コンポーネントでは、実行時にカレンダがモードレス・ウィンドウに表示されます。エンド・ユーザーは、表示されている月から日付を選択したり、矢印アイコンを使用して他の月に移動したりできます。月または年をクリックして、他の月や年に移動したり、10年単位で移動することもできます(図6-11を参照)。
エンド・ユーザーは、ADF入力日コンポーネントをホストするセルに、時刻を手動で入力できます。エンド・ユーザーからのこの入力を受け入れるには、ADF入力日コンポーネントをホストするセルに時刻値と日付値を入力できるように、Excelの「セルの書式設定」のプロパティを構成します。ADFバインディング・タイプにより、使用される時刻値が決定されます。デフォルトでは、時刻値は0:00
になっています。
図6-11 実行時のADF入力日コンポーネントでのナビゲーション
ADFイメージ・コンポーネントを使用して、統合Excelワークシートにイメージ(企業のロゴなど)を挿入できます。設計時にSource
にイメージ・ファイルのURLを指定すると、ADFイメージ・コンポーネントが実行時にイメージをレンダリングします。イメージは、実行時に元のサイズでレンダリングされます。
実行時に、ADFイメージ・コンポーネントがレンダリングされるときに、ADFデスクトップ統合によってSource
プロパティ値が絶対URLか相対URLかが判断されます。ソースURLは、http
およびhttps
で開始する場合は絶対とみなされます。これらのスキームのみサポートされます。URLが絶対の場合は、イメージをフェッチするためにそのまま使用され、そのイメージがワークシートに挿入されます。URLが絶対でない場合、部分的なURIがワークブックのWebAppRoot
の相対と想定されます。このような場合、WebAppRoot
値およびSource
値は完全なイメージURLを形成するために連結されます。
どのような理由でもイメージが実行時にレンダリングされない場合(例: 無効なURL)、設計時に構成した短い説明テキストがイメージのかわりに表示され、ADFデスクトップ統合でログ・エントリが作成されます。失敗に関する技術的な詳細は、クライアント・ログにレポートされます。ADFデスクトップ統合は、ワークシートの初期化を中断せず、警告またはエラー・メッセージをエンド・ユーザーに表示しません。エンド・ユーザーには、成功した場合に、イメージが表示されるセル位置にイメージの短い説明が表示されます。
図6-12に、設計時のADFイメージ・コンポーネントを示します。
図6-12 設計モードのADFイメージ・コンポーネント
ADFイメージ・コンポーネントを挿入する手順:
図6-13に、実行時のADFイメージ・コンポーネントの例を示します。
図6-13 実行時のADFイメージ・コンポーネント
注意:
ワークシートが保護されていない場合、エンド・ユーザーは実行時にイメージをサイズ変更または移動できます。イメージのサイズによっては、他のADFデスクトップ統合コンポーネントなど、他のワークシート・コンテンツの上に表示され、そのコンテンツを非表示にすることがあります。
ADFボタン・コンポーネントは、実行時にExcelワークシートのボタンをレンダリングします。エンド・ユーザーはこのボタンをクリックして、ClickActionSet
プロパティ・グループで指定される1つ以上のアクションを起動します。
注意:
設計時または実行時に統合ExcelワークブックでADFボタン・コンポーネントを使用する場合は、「ADFデスクトップ統合と協働するExcelの構成」の手順を実行する必要があります。ADFボタン・コンポーネントの技術的な制限(後述の注意を参照)により、ワークシートレベルのリボン・コマンドをかわりに使用することを検討してください。詳細は、「実行時リボン・タブのワークシート・リボン・コマンドの構成方法」を参照してください。
LowerRightCorner
プロパティおよびPosition
プロパティは、実行時にExcelワークシートでボタンが占有する領域を決定します。
図6-14に、ADFボタン・コンポーネントのプロパティ・インスペクタが表示された状態を示します。エンド・ユーザーが実行時にこのボタンをクリックすると、ClickActionSet
で指定された配列のアクションが起動します。
図6-14 設計モードのADFボタン・コンポーネント
ADFボタン・コンポーネントのプロパティの詳細は、「ADFボタン・コンポーネントのプロパティ」を参照してください。
ADFボタン・コンポーネントを挿入するには:
注意:
Excelワークシートのビュー・モードをページ・レイアウトまたはページ・ブレーク・モードに変更した場合、ADFボタン・コンポーネントは予期しない位置にレンダリングされる可能性があります。ボタンを元の位置でレンダリングするために、ワークブックを保存せずに通常モードに戻り、統合Excelワークブックを実行して停止する必要があります。
ワークシートでセルを選択することで、後でコンポーネントのプロパティを変更できます。ADFボタン・コンポーネントをクリックすると、そのプロパティ・インスペクタが開きます。
ADFボタン・コンポーネントは100%ズームの状態でのみアクティブであり、エンド・ユーザーが統合Excelワークシートでズームインやズームアウトすると無効になります。
コンポーネントを削除するには、「削除」リボン・コマンドを使用します。詳細は、「ADFデスクトップ統合コンポーネントの削除」を参照してください。
ヒント:
設計モードでは、ボタンにフォーカスがある場合に、ボタンをクリックしたりスペースバーを押してプロパティ・インスペクタを開くことができます。ボタンはマウスの右クリックに反応しません。
ADFコンポーネントを構成して、マネージドBeanからの出力をFusion Webアプリケーションで表示できます。Fusion WebアプリケーションでマネージドBeanを使用する方法の詳細は、『Oracle Application Development FrameworkによるFusion Webアプリケーションの開発』のFusion WebアプリケーションでのマネージドBeanの使用に関する項を参照してください。統合Excelワークブック内のマネージドBeanはEL式を通じて参照します。Excelワークシートに関連付けるページ定義ファイルにメソッド・アクション・バインディングを追加して、マネージドBeanの値を取得し、それを属性バインディングに割り当てます。EL式を使用して、実行時に属性バインディングの値を取得します。
EL式は、EL式をサポートするプロパティ(Label
プロパティなど)に記述します。
開始する前に:
マネージドBeanに関する知識が役立つ場合があります。詳細は、「ADFコンポーネントのマネージドBeanからの出力の表示」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「ADFデスクトップ統合フォーム・タイプ・コンポーネントの追加機能」を参照してください。
マネージドBeanからの出力を表示するには:
ADFデスクトップ統合モジュールは、コンポーネント内で、1つのコンポーネントにより、計算または複数のバインディング式の連結に基づいたデータを表示可能なEL式をサポートしています。
EL式は、入力テキストまたは出力テキスト・コンポーネントのValue
プロパティに対して記述します。
図6-17に、ADF出力テキスト・コンポーネントが2つのフィールド、List PriceおよびCost Price間のマージンを表示するように構成されているEL式の例を示します。
図6-17 計算されたデータを表示するADF出力テキスト・コンポーネント
開始する前に:
ADFコンポーネント内での連結または計算されたデータの表示方法を理解しておくと役立ちます。詳細は、「コンポーネント内での連結または計算されたデータの表示」を参照してください。
他のADFデスクトップ統合の機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、「ADFデスクトップ統合フォーム・タイプ・コンポーネントの追加機能」を参照してください。
計算されたデータを表示するEL式を作成するには
EL式の詳細は、「ADFデスクトップ統合のEL式」を参照してください。
注意:
ADF入力テキスト・コンポーネントのValue
プロパティに式が含まれる場合、ReadOnly
プロパティの値に関係なく、ADF入力テキスト・コンポーネントは実行時に読取り専用となります。
フォーム・コンポーネントやバインディングをマージされたセルに挿入、またはフォーム・コンポーネントやバインディングの挿入後にセルをマージすることはできますが、複数のフォーム・コンポーネントをマージされたセルに挿入、または異なるフォーム・コンポーネントがあるセルをマージすることはできません。
コンポーネントをマージされたセルに挿入する前に、次のことに注意してください。
ドラッグ・アンド・ドロップ機能は、コンポーネントのマージされたセルへの挿入ではサポートされません。
コンポーネント・セルを、上または左にある空白ではないセルとマージしないでください。2つ以上のセルがマージされる場合、Excelでは最も左上のセルのデータおよびスタイルが保持され、残りのセルのデータは破棄されます。そのため、コンポーネント・セルを、上または左にある空白ではないセルとマージすると、コンポーネント・データが上書きされることになります。
値またはバインディングがない空のコンポーネント・セルを、上または左の空白のセルと、マージしないでください。空のコンポーネント・セルを、上または左にある空白のセルとマージすると、コンポーネント・セルのスタイルが上書きされることになります。
ADFボタンは、マージされたエリア全体まで自動的に拡張されません。必要に応じて、ボタンのPosition
およびLowerRightCorner
プロパティを編集してサイズを変更できます。