使用中のデータベースで SQL などのクエリー言語がサポートされている場合は、Crystal Reports で Table オブジェクトとして表示される独自のコマンドを作成できます。経験豊富なデータベース ユーザーであれば、作成したコマンドを使って、データベース サーバーにプッシュ ダウンされるデータ処理を完全に制御できます。また、経験を積んだユーザーであれば、サーバーから返されるデータ セットのサイズを大幅に縮小する、高度に最適化されたコマンドを作成できます。
データベース エキスパートの[コマンドの追加]ノードを使って独自のコマンドを作成し、コマンドの処理結果を表示する仮想テーブルを作成できます。
コマンドとして作成された仮想テーブルを使用する場合、Crystal Reports では、サーバーに送信される SQL の構文が変更されることはありません。つまり、自動的に引用符やエスケープ文字が追加されることはありません。これは、コマンド内で使用されるパラメータにも当てはまります。したがって、ユーザーは、データベース ドライバに必要な引用符およびエスケープ文字を自分で追加する必要があります。
独自のコマンド オブジェクトを作成するには
例 :
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
埋め込み Crystal Reports Designer に戻ります。フィールド エクスプローラの[データベース フィールド]の下に、指定したデータベース フィールドを示す Command テーブルが表示されます。
注 デフォルトでは、作成したコマンドには Command という名前が使用されます。コマンドのエイリアスを変更するには、F2 キーを押します。
コマンド オブジェクトを編集するには
[レポートへのコマンドの追加]ダイアログ ボックスまたは[コマンドの変更]ダイアログ ボックスでパラメータ フィールドを作成できます。
コマンド オブジェクトのパラメータを作成するには
パラメータを識別するための名前を入力します。
プロンプトで表示するテキストを入力します。
パラメータ フィールドのデータ型を入力します。
新しい値を指定しない場合に、プログラムによって使用される値を入力します。
[パラメータ リスト]にパラメータが追加されます。追加したパラメータを変更または削除するには、[コマンドの変更]ダイアログ ボックスに戻ります。
コマンド オブジェクトにパラメータを追加するには
パラメータはカーソルの位置に追加されます。次のようになります。
WHERE Customer.`Country` = '{?CountryParam}'
作成したパラメータ フィールドを変更する場合は、フィールド エクスプローラに移動して、[パラメータ フィールド]ノードから変更するフィールドを選択してください。