1 June 2009
ページ ツール |
このチュートリアルを実行するには、ColdFusionおよびFlash Builder 4ベータ版入門の記述に従って、環境を設定し、テストしておく必要があります。
このチュートリアルまたはこのシリーズの他のチュートリアルを既に終了している場合は、上記の手順を省略できます。
このチュートリアルは、次のような方を対象としています。
すべて
Adobe Flash Builder 4(以前の名前はFlex Builder)にはフォームウィザードが備わっており、データを挿入したフォームを簡単に作成できます。これにより、データ操作のためのインターフェイスを容易に作成できます。
このチュートリアルでは、Flash Builderコントロールを使用して、簡単な従業員検索ツールを作成します。次に、カスタムデータ型を使用してフォームを生成します。最後に、検索ツールから返された従業員売り上げデータをフォームに挿入します。
初めに述べたように、このチュートリアルでは、ColdFusionおよびFlash Builder 4ベータ版入門およびこのシリーズの他のチュートリアルと同じ開発環境を使用します。
次の手順を実行して、CFCメソッドのgetItem()サービス呼び出しで取得されて返されるデータに、独自のデータ型名を割り当てます。
getItem()関数を右クリックし、「戻り値の型を設定」を選択します(図2を参照)。
クエリからの各レコードは、名前/値ペアの各データ列(FIRSTNAME、LASTNAME、EMAILなど)が設定された状態で、ActionScriptオブジェクト内に格納されます。各レコードには、0から始まるインデックスが付けられます。
注意:ColdFusionと異なり、ActionScript言語のインデックスは0から始まります。
ウィザードを使うと、返されたデータをオブジェクトとして一般的に参照する代わりに、戻り値の型の名前をデータに付けることができます。
注意:Adobe Flash Builder 4ベータ版によるデータの管理チュートリアルを実行して、データベース中の最初の従業員(Allen Sman)を削除した場合、「The operation returned a response of the type 'Object'.」というエラーメッセージが表示されます。この場合、100002や100003など、別の従業員のプライマリキーである別の値を使用します。
EmployeeSalesData()データ型がgetItem()サービス操作の下にリストされています(図6を参照)。データ型のプロパティが、CFCメソッドから返されたクエリー列であることに注意してください。
この節では、従業員の姓に基づいてデータレコードを取得する従業員検索ツールを作成します。
注意:実際の作業では、Flash Builderプロジェクトで使用するメインアプリケーションファイルは1つだけなのが普通です。このシリーズでは、Flash Builderプロジェクトを多数作成するのを避けるため、チュートリアルごとにメインアプリケーションファイルを作成します。
注意:コンポーネントビューはウィンドウ/コンポーネントを選択して開くこともできます。
TextInputコントロールは、検索ツールの入力フィールドの役割を果たします。TextInputコントロールに入力されたテキストをgetItem()関数の引数として渡して、従業員データが返されるようにします。
TextInputコントロールのIDプロパティは、SWFアプリケーションのコントロールの固有の識別名です。次のステップでは、TextInputコントロールのIDプロパティを設定する方法を示します。
注意:Enterキーを押すことにより、プロパティの値が保持されます。
次に、Search Buttonコントロールを使って、従業員売り上げレコードをこのアプリケーションに返すgetItem()サービス操作を実行します。ユーザーがButtonコントロールをクリックしたときに、TextInputコントロールに入力された値をgetItem()操作に引数として渡します。
getItem() CFC関数をドラッグして、デザインエリアの「Search」ボタンにドロップします(図11を参照)。
Flash Builderがソースモードに切り替わり、getItem()サービス呼び出しのSALESTARGETID引数が、このButtonコントロールに関連付けられた状態で強調表示されます。
getItem()関数をButtonコントロールにドロップしたときに、Flash Builderは、Buttonコントロールのclickイベントに、F4CF_Getting_Started_ServiceのgetItem()関数を挿入しています。getItem()関数の引数が強調表示されています。デフォルトではこれはSALESTARGETIDです。SALESTARGETIDはCFCで指定された引数の名前であり、データサービスウィザードがCFCを評価してデータとサービスビューに追加したときにイントロスペクトしたものだからです。
しかし、ここで使用したいのは、TextInputコントロールに入力された従業員のSALESTARGETIDです。TextInputコントロールにemployeeSearchという固有の識別子を与えたことを思い出してください。TextInputコントロールに入力されたテキスト値にアクセスするには、そのコントロールのtextプロパティを使用します。
注意:getItem()関数が必要とする引数は、SalesTargetsデータテーブルの任意の列に定義することもできます。CFC関数を単に適切に更新してください。
SALESTARGETID引数がf4CF_Getting_Started_Service.getItem()関数の括弧の間にありますが、これを次のスニペットに示すようにemployeeSearch.textプロパティに置き換えます。protected function button_clickHandler(event:MouseEvent):void
{
getItemResult.token =
f4CF_Getting_Started_Service.getItem(employeeSearch.text);
}
この節では、Flash Builderのフォームを生成ウィザードを使用して、従業員売り上げデータにバインドされたフォームを作成します。このフォームには、検索ツールによって要求された個々の従業員データが表示されます。
従業員のSALESTARGETIDを入力しても、フォームにデータが挿入されないはずです(図18を参照)。次の節で、これを修正します。
この節では、検索クエリーの結果に基づいてフォームにデータを挿入します。
<fx:Declarations>タグブロックを見つけます。 <fx:Declarations>タグブロックには、サービス操作をUIコントロールにドロップしたときにFlash Builderが生成するコードが含まれます。作成されたコードは、CallResponderコンポーネントとデータ型コンポーネントから構成されます。CallResponderコンポーネントは、返されるデータを処理します。フォームにデータを挿入するActionScript結果ハンドラーをこれに追加します。
getItemResult CallResponderコンポーネントを見つけ、CallResponderコンポーネントにresultイベントを追加します。<s:CallResponder id="getItemResult" result=""/>
フォームを生成ウィザードで作成したフォームは、employeeSalesDataデータ型インスタンスに基づいているので、サービス呼び出しから返されたデータをこのインスタンスに挿入します。
getItemResult CallResponderコンポーネントのresultイベントに、employeeSalesData =を(次のように)追加します。<s:CallResponder id="getItemResult" result="employeeSalesData = "/>
CallResponderインスタンスの名前はgetItemResultです。返されたデータは、getItemResultデータのlastResultオブジェクトに格納されています。
<s:CallResponder id="getItemResult" result="employeeSalesData = getItemResult.lastResult "/>
レコードは1つしか返されないので、最初の要素を参照する必要があります。ActionScriptのインデックスは0から始まるので、0を使用します。
getItemResult.lastResultの値の後に、[0]を追加します。<s:CallResponder id="getItemResult" result="employeeSalesData = getItemResult.lastResult[0] "/>
ActionScriptでは、値の代入の両辺のデータ型が一致する必要があるため、結果データをEmployeeSalesDataデータ型にキャストする必要があります。
[0]の後に、asを使用して、値のデータ型をEmployeeSalesDataデータ型に指定します。<s:CallResponder id="getItemResult"
result="employeeSalesData = getItemResult.lastResult[0]
as EmployeeSalesData"/>
注意:架空の従業員Allen Smanの情報がフォームに挿入されるはずです(図19を参照)。
このチュートリアルでは、Adobe Flash Builderのフォームを生成ウィザードを使用して、検索インターフェイスを作成する方法を学びました。SWFアプリケーションをColdFusion webページに統合してURL変数を渡す方法については、ColdFusion URL変数を使用したFlexアプリケーションの展開を参照してください。