前のトピック次のトピック


チュートリアル 5: JavaScript でのイベント・ハンドラーの作成

このチュートリアルでは、イベント・ハンドラーの作成について説明します。 このチュートリアルでは、Classic Models, Inc. サンプル・データベースを基にした基本レポート設計があると仮定します。 レポート設計を開始する上での唯一の要件は、お客様の名前の列があるお客様のテーブルが、レポート設計に含まれていることです。 このチュートリアルでは、名前にストリング "Mini" が含まれているお客様の数をカウントし、ポップアップ・ウィンドウに結果を表示します。

このチュートリアルでは、以下のタスクを実行します。

タスク 1: レポート設計のオープン

クラシック・カーのサンプル・データベースを使用したレポート設計を開き、お客様の名前のテーブルを表示します。

  1. 必要に応じて、「ウィンドウ」->「ビューの表示」->「ナビゲーター」を選択して「ナビゲーター」を開きます。
  2. 該当するレポート設計をダブルクリックします。 図 22-4 に示されるように、レイアウト・エディターにファイルがオープンします。

タスク 2: Table.onCreate( ) メソッドでのカウンターの生成および初期化

名前にストリング「Mini」が含まれるお客様の数をカウントするには、最初にグローバル・カウンターを宣言し、その値をゼロに設定する必要があります。 Table.onCreate( ) メソッドは行が取得される前に実行されるため、Table.onCreate( ) がこのタスクの実行に最適な場所です。 このカウンターは、Row.onCreate( ) メソッド内で条件付でインクリメントします。

  1. 「レイアウト」で、テーブルの左下隅にカーソルを移動して、そのテーブルを選択します。 図 22-5 に示されるように、テーブル・アイコンが表示されます。
  2. 「スクリプト」タブを選択する。図 22-6 に示されるように、スクリプト・タブが表示されます。
  3. onCreate( ) メソッドの「スクリプト」ウィンドウに以下のコード行を入力します。
  4. countOfMinis = 0; 
    
  5. レポートを実行し、そのコードでエラーが発生しないことを検証するには、「プレビュー」を選択します。
  6. JavaScript のエラー・メッセージが表示される、レポートの下部にスクロールします。 エラーがない場合、そのレポートは図 22-7 に示されるように表示されます。
  7. エラー・メッセージが出される場合は、ステートメントが正しく入力されていないと考えられます。 その場合は「スクリプト」ウィンドウに戻り、変更したメソッドを選択してエラーを訂正し、「プレビュー」を再度選択します。

タスク 3: Row.onCreate( ) メソッドでのカウンターの条件付のインクリメント

名前にストリング「Mini」があるお客様の数をカウントするには、それぞれのお客様の名前を調べ、出現するごとにカウンターに 1 を追加する必要があります。 このタスクを実行する論理的な場所は Row.onCreate( ) メソッドであり、このメソッドはデータ・ソースからのデータ行の取得ごとに実行されます。

  1. 「レイアウト」で行を選択し、次に「スクリプト」を選択します。
  2. 「スクリプト」ウィンドウの上部にあるメソッドのリストをプルダウンし、図 22-8 に示されるように、「onCreate」を選択します。
  3. 「スクリプト」ウィンドウに以下の JavaScript コード行を入力します。
  4. row=this.getRowData( ); 
    
    この後にピリオドを入力すると、getRowData など、使用可能なすべてのメソッドおよびプロパティーが含まれるポップアップが表示されます。 このコード行では、メソッド getExpressionValue( ) を持つ IRowData のインスタンスを取得し、その行の列の内容を取得します。
  5. 入力した行の後に、以下の JavaScript の行を入力します。
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    このコード行では、データ・セット内の CUSTOMERNAME 列からのテーブル列の内容が戻されます。
  7. 以下のコード行を入力し、『Table.onCreate( ) メソッドでのカウンターの生成および初期化』で作成したカウンターを条件付でインクリメントします。
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    JavaScript パレットを使用し、上記の行に以下の各要素を挿入できます。
    • indexOf( )
    • 「ネイティブ (JavaScript) オブジェクト (Native ( JavaScript ) Objects)」->「String 関数」->「indexOf( )」を選択します
    • !=
    • 「演算子」->「比較」->「!=」を選択します
    • +=
    • 「演算子」->「代入」->「+=」を選択します
  9. 「プレビュー」を選択してレポートを再実行し、入力したコードでエラーが発生しないことを検証します。

タスク 4: ReportDesign.afterFactory( ) メソッドを使用した結果の表示

名前にストリング「Mini」があるお客様の数を表示するには、テーブル内のすべての行の処理後に実行されるメソッドにコードを追加します。 このコードの論理的な場所は、ReportDesign.afterFactory( ) メソッド内です。

  1. 「アウトライン」で、図 22-9 に示されるようにレポート設計を選択します。
  2. 「スクリプト」ウィンドウのドロップダウン・リストから afterFactory( ) メソッドを選択します。
  3. afterFactory( ) メソッドに以下のコードを入力します。
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. 「プレビュー」を選択して結果を表示します。 そのコードにエラーがなければ、図 22-10 に類似したレポートが表示されます。

「Count of Minis」のウィンドウが見えない場合は、「Eclipse」ウィンドウの裏側を探してください。 「Count of Minis」ウィンドウが表示されない場合に最も考えられる原因は、入力したコードのいずれかで発生したスクリプト・エラーです。

スクリプト・エラーが発生したと考えられる場合は、すべてのスクリプト・エラー・メッセージが表示される、レポートの下部にスクロールします。 ほとんどの場合、正符号 ( + ) の次に簡単なエラー・メッセージがあります。 正符号は、詳しいエラー・メッセージがあることを示し、簡単なエラー・メッセージを展開した場合にのみ詳しいメッセージが表示されます。 簡単なエラー・メッセージを展開するには、正符号を選択します。 スクロールダウンすると、詳細なエラー・メッセージが表示されます。


 (c) Copyright Actuate Corporation 2006

前のトピック次のトピック