Crystal Reports  

コマンドまたは SQL クエリーに基づく仮想テーブルの定義

使用中のデータベースで SQL などのクエリー言語がサポートされている場合は、Crystal Reports で Table オブジェクトとして表示される独自のコマンドを作成できます。経験豊富なデータベース ユーザーであれば、作成したコマンドを使って、データベース サーバーにプッシュ ダウンされるデータ処理を完全に制御できます。また、経験を積んだユーザーであれば、サーバーから返されるデータ セットのサイズを大幅に縮小する、高度に最適化されたコマンドを作成できます。

データベース エキスパートの[コマンドの追加]ノードを使って独自のコマンドを作成し、コマンドの処理結果を表示する仮想テーブルを作成できます。

コマンドとして作成された仮想テーブルを使用する場合、Crystal Reports では、サーバーに送信される SQL の構文が変更されることはありません。つまり、自動的に引用符やエスケープ文字が追加されることはありません。これは、コマンド内で使用されるパラメータにも当てはまります。したがって、ユーザーは、データベース ドライバに必要な引用符およびエスケープ文字を自分で追加する必要があります。

独自のコマンド オブジェクトを作成するには

  1. フィールド エクスプローラで[データベース フィールド]を右クリックし、[データベース エキスパート]をクリックします。
  2. [データベース エキスパート]ダイアログ ボックスでフォルダを開き、目的のデータ ソースを見つけます。
  3. データ ソースの下で、[コマンドの追加]ノードをダブルクリックします。
  4. [レポートへのコマンドの追加]ダイアログ ボックスで、開いたデータ ソースに対応する適切なクエリーまたはコマンドを入力します。

    例 :

    SELECT
        Customer.`Customer ID`,
        Customer.`Customer Name`,
        Customer.`Last Year's Sales`,
        Customer.`Region`,
        Customer.`Country`,
        Orders.`Order Amount`,
        Orders.`Customer ID`,
        Orders.`Order Date`
    FROM
        Customer Customer INNER JOIN Orders Orders ON
            Customer.`Customer ID` = Orders.`Customer ID`
    WHERE
        (Customer.`Country` = 'USA' OR
        Customer.`Country` = 'Canada') AND
        Customer.`Last Year's Sales` < 10000.
    ORDER BY
        Customer.`Country` ASC,
        Customer.`Region` ASC
  5. [OK]をクリックします。

    Crystal Reports ActiveX デザイナに戻ります。フィールド エクスプローラの[データベース フィールド]の下に、指定したデータベース フィールドを示す Command テーブルが表示されます。

    注   デフォルトでは、作成したコマンドには Command という名前が使用されます。コマンドのエイリアスを変更するには、F2 キーを押します。

コマンド オブジェクトを編集するには

  1. データベース エキスパートの[選択したテーブル]領域で、編集するコマンドを選択します。
  2. コマンドを右クリックし、ショートカット メニューの[コマンドの編集]をクリックします。
  3. [コマンドの変更]ダイアログ ボックスで変更を行い、変更終了後、[OK]をクリックします。

[レポートへのコマンドの追加]ダイアログ ボックスまたは[コマンドの変更]ダイアログ ボックスでパラメータ フィールドを作成できます。

コマンド オブジェクトのパラメータを作成するには

  1. [レポートへのコマンドの追加]ダイアログ ボックスまたは[コマンドの変更]ダイアログ ボックスの[パラメータ リスト]領域で、[作成]をクリックします。
  2. [コマンド パラメータ]ダイアログ ボックスで、表示されるフィールドに次の情報を入力します。
    • パラメータ名

      パラメータを識別するための名前を入力します。

    • プロンプト テキスト

      プロンプトで表示するテキストを入力します。

    • 値の型

      パラメータ フィールドのデータ型を入力します。

    • デフォルト値

      新しい値を指定しない場合に、プログラムによって使用される値を入力します。

  3. [OK]をクリックします。

    [パラメータ リスト]にパラメータが追加されます。追加したパラメータを変更または削除するには、[コマンドの変更]ダイアログ ボックスに戻ります。

コマンド オブジェクトにパラメータを追加するには

  1. カーソルをクエリー テキスト内に移動します。
  2. [パラメータ リスト]内のパラメータの名前をダブルクリックします。

    パラメータはカーソルの位置に追加されます。次のようになります。

    WHERE
        Customer.`Country` = '{?CountryParam}'

    作成したパラメータ フィールドを変更する場合は、フィールド エクスプローラに移動して、[パラメータ フィールド]ノードから変更するフィールドを選択してください。

参照

データベース フィールドの挿入