1 June 2009
ページ ツール |
このチュートリアルを実行するには、ColdFusionおよびFlash Builder 4ベータ版入門の記述に従って、環境を設定し、テストしておく必要があります。
このシリーズの他のチュートリアルを既に終了している場合は、上記の手順を省略できます。
すべて
このチュートリアルは、次のような方を対象としています。
Adobe Flash Builder 4ベータ版(以前の名前はFlex Builder)には、サーバーサイドデータをFlexフレームワークUIコントロールにバインドするためのきわめてシンプルなインターフェイスが用意されています。デザインモードを使用すれば、コンポーネントをドラッグ&ドロップして、レイアウトを作成し、データをバインドできます。コードをまったく記述せずに、動的挿入を行うアプリケーションを数分間で作成できます。
このチュートリアルでは、DataGridおよびPieChartコントロールを使用して、ColdFusion Component(CFC)関数から返されたデータにバインドする方法を学びます。また、2つのコントロールのデータを同期する方法も学びます。
初めに述べたように、このチュートリアルでは、ColdFusionおよびFlash Builder 4ベータ版入門や、このシリーズの他のチュートリアルと同じ開発環境を使用します。この節では、CFC関数への異なるサービス呼び出しに使用する、別のデータ型を指定します。
getEmployeeDataByRegion()関数を右クリックし、「戻り値の型を設定」を選択します(図2を参照)。
クエリからの各レコードは、名前/値ペアの各データ列(FIRSTNAME、LASTNAME、EMAILなど)が設定された状態で、ActionScriptオブジェクト内に格納されます。各レコードには、0から始まるインデックスが付けられます。
注意:ColdFusionと異なり、ActionScript言語のインデックスは0から始まります。
ウィザードを使うと、返されたデータをオブジェクトとして一般的に参照する代わりに、戻り値の型の名前をデータに付けることができます。次にこれを行います。
注意:このデータ型は、ColdFusionおよびFlash Builder 4ベータ版入門チュートリアルで定義されたEmployeeSalesDataデータ型とは異なり、regionという引数の指定が必要です。この引数は、返されるデータを特定の地域の従業員に限定する役割を果たします。また、データベースから返すデータ列の数も少なくなっています。
クエリー結果を返すには、引数の値としてCentralを入力する必要があります。これは単に、クエリーが正しく動作していることを示して、クエリーの戻り値の型の名前を定義できるようにするためのしくみです。この後の手順で、アプリケーションに実際に引数値を渡すようにコードを変更します。
図6に示すように、EmployeeSalesDataByRegionデータ型が、データとサービスビューのデータ型カテゴリに表示されます。データ型のプロパティが、CFCメソッドから返されたクエリー列であることに注意してください。
CFCから返されたデータには、地域(Northwest、Southwest、Central、Northeast、Southeast)に関連する従業員情報が含まれます。アプリケーションに動的データを渡す方法については、ColdFusion URL変数を使用したFlexアプリケーションの展開を参照してください。このチュートリアルでは、地域の値をコードに直接書き込みます。
この節では、EmployeeDataByRegionデータをFlexフレームワークのDataGridコントロールにバインドします。このためにコードを書く必要はまったくありません。組み込みのFlash Builderウィザードを使用して、すべてのコードを生成できます。
Flash Builderのデザインモードのドラッグ&ドロップ機能を使用して、DataGridコンポーネントを追加できます。
注意:実際の作業では、Flash Builderプロジェクトで使用するメインアプリケーションファイルは1つだけなのが普通です。このシリーズでは、プロジェクトを多数作成するのを避けるため、チュートリアルごとにメインアプリケーションファイルを作成します。
次に、データとサービスビューからDataGridコントロールに関数をドラッグ&ドロップして、返されるデータをバインドします。
getEmployeeDataByRegion()関数を選択します。ソースモードに切り替わり、コード中のregion変数が強調表示されてDataGridコントロールが作成できるようになります(図8を参照)。
'Central'に置き換えます。protected function dataGrid_creationCompleteHandler(event:FlexEvent):void
{
getEmployeeDataByRegionResult.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central');
}
注意:既に説明したように、ここではgetEmployeeDataByRegion 関数の属性regionの値をコードに直接記述します。アプリケーションに動的データを渡す方法については、ColdFusion URL変数を使用したFlexアプリケーションの展開を参照してください。
DataGridコントロールの列タイトルが、バインドされたデータを反映します(図9を参照)。
図11に示すように、ColdFusionデータソースからのデータがDataGridコントロールに挿入されます。
この節では、FlexフレームワークのPieChartコントロールにデータをバインドします。DataGridコントロールの場合と同様、このためにコードを書く必要は一切ありません。
前と同様に、Flash Builderのデザインモードのドラッグ&ドロップ機能を使用して、PieChartコントロールをアプリケーションに配置します。
図12に示すチャートの作成ダイアログボックスが表示されます。シリーズエレメントエリアにSeries 1という名前のエレメントがあらかじめ挿入されていることを確認します。
UIコントロールに添付されたデータをすべて表示する必要はありません。PieChartコントロールのseriesプロパティを使用すると、どのデータフィールドをチャートに表示するかを指定できます。チャートにはデータフィールドのシリーズを複数個プロットできますが、この例では1個しか使用しません。
注意:チャートを表示するには、「デザインモード」ボタンの右側の「更新」ボタンをクリックする必要がある場合があります。MXMLファイル名を含む「エディター」タブをダブルクリックして、デザインエリアを展開したり折りたたんだりすることもできます。デザインモードの左上隅に凡例が表示されたら、PieChartコントロールの隣にドラッグ&ドロップします。
この節では、PieChartコントロールにデータをバインドします。
getEmployeeDataByRegion()関数を、PieChartコントロールにドラッグ&ドロップします。 getEmployeeDataByRegion()関数呼び出しの新しいインスタンスをPieChartコントロールにドラッグすると、このアプリケーションで実際にはこの関数を2回呼び出すことになります。DataGridコントロールに対して1回、PieChartコントロールに対して1回です。
データにバインドダイアログボックスが表示されます(図13を参照)。見出し「チャートを設定」の下の表に、2つの列、シリーズとフィールドがあります。
ソースモードに切り替わり、PieChartコントロールのgetEmployeeDataByRegion()関数呼び出しでregion属性が強調表示されます(図14を参照)。
'Central'に置き換えます。 注意:このチュートリアルでは、値を直接コードに記述します。
protected function YTDPieChart_creationCompleteHandler(event:FlexEvent):void
{
getEmployeeDataByRegionResult2.token = f4CF_Getting_Started_Service.getEmployeeDataByRegion('Central');
}
注意:Flex Builder 3のライセンスされたコピーがシステム上にない場合、PieChartコントロールの上にウォーターマークが表示されます。
PieChartコントロールのデータは変化しないはずです。これは、サービスの呼び出しを2つ別々に作成し、返されたデータのインスタンスを2つ別々に取得したからです。
この節では、DataGridコントロールにバインドされているのと同じデータにPieChartコントロールをバインドします。
図17に示すメッセージを記載したバインド操作ダイアログボックスが表示されます。
getEmployeeDataByRegionResultはDataGridコントロールにバインドされたサービス呼び出しからの結果データであり、getEmployeeDataByRegionResult2はPieChartコントロールにバインドされたサービス呼び出しからの結果データです。
このチュートリアルでは、Flash Builderを使用して、サーバーデータをFlexフレームワークコンポーネントに容易にバインドする方法と、それによってコンポーネントを対話的に動作させられることを示しました。サービス呼び出し、返されるデータ、データ型について詳しくは、フォームの生成チュートリアルを参照してください。
FlexとColdFusionの協調動作については、次のチュートリアルを参照してください。