6.3 クエリの作成
6.3.2 SAP BEx クエリの作成
6.3.2.4 クエリフィルタとプロンプトの定義
クエリにフィルタとプロンプトを追加して、レポートに表示されるデータを制限することができます。
注
フィルタとメンバー選択により、異なる方法でデータを並べ替えることができます。メンバー選択は、データのメ ジャーの値に作用しません。たとえば、ある国の 1 つの市またはすべての市を選択した場合、その国のメジャー の値は、メンバー選択に影響されません。
データのフィルタ処理は、メジャーの値に作用します。たとえば、特定の都市のデータをフィルタすると、関連 国の値は当該都市の値まで減少します。
6.3.2.4.1 クエリフィルタの作成
クエリーでは、次の種類のフィルタを使用できます。
• 定義済みフィルタ
これらのフィルタは、管理者が作成します。
• カスタム フィルタ
これらのフィルタは、クエリーの作成中に定義します。
• プロンプト
プロンプトは動的なフィルタであり、質問や値の一覧を表示する場合に定義します。ユーザは、レポートを 最新表示するたびに、異なるフィルタの値を選択できます。
クエリに定義済みフィルタを追加する
1 レポートで使用するオブジェクトをダブルクリックするか、または結果オブジェクト枠にドラッグします。
2 定義済みフィルタを [クエリフィルタ] 枠にドラッグします。
注
定義済みフィルタは、管理者が作成、編集します。[クエリパネル] のユーザは、定義済みフィルタのコンポー ネントを表示することも、編集することもできません。
クエリを実行すると、選択したクエリフィルタに対応するデータはレポートに返されます。
カスタムフィルタを作成する
3 [定数]、[LOV](値の一覧)、または [プロンプト] を選択します。
4 入力する値は、手順 3 で選択したオプションによって異なります。
説明 オプション
• テキストボックスに値を入力します。
定数
a [プロンプト] ダイアログボックスで、追加するメンバーをダブルクリックして一覧に 追加するか、[メンバー] 枠でメンバーを選択して中央の矢印をクリックします。
b [OK] をクリックします。
LOV
a [プロンプトの編集] ダイアログボックスで、[プロンプトの新規作成] を選択して新 しいプロンプトを追加するか、[ユニバースパラメータを使用する] を選択してユニ バースからパラメータを選択します。
b [プロンプトの新規作成] を選択した場合は、プロンプトオプションを入力します。
[ユニバースパラメータを使用する] を選択した場合は、パラメータを選択します。
c [OK] をクリックします。
プロンプト
フィルタがレポートに追加されます。[クエリパネル] で、フィルタを編集または削除できます。
関連項目
• 132 ページの「クエリフィルタ演算子のクイックリファレンス」
6.3.2.4.2 プロンプトの作成
プロンプトとは、レポートのデータを最新表示するたびに取得するデータを問い合わせる動的なフィルタです。
データを最新表示する前に、表示するデータのプロンプト値を入力または選択することで、プロンプトに回答し ます。Crystal Reports は、ユーザが指定した値のみをデータソースから取得し、それらの値をレポートに返しま す。
ヒント
プロンプトを使用すると、複数のユーザが単一のレポートを表示できるだけでなく、データソース情報の異なる サブセットを指定できます。プロンプトには、データソースからのデータ取得に要する時間を短縮できるという利 点もあります。
プロンプトを作成する
1 プロンプトを適用するオブジェクトを選択し、[クエリフィルタ] ペインにドラッグします。
たとえば、ユーザがレポートに地域を指定できるようにするには、[地域] オブジェクトを [クエリフィルタ] ペ インにドラッグします。
2 一覧から演算子を選択します。
注
[= NULL] または [≠ NULL] は、プロンプトの演算子として使用できません。
3 [プロンプト] を選択します。
4 [プロンプトの編集] ダイアログボックスで、[プロンプトの新規作成] を選択します。
5 [プロンプトテキスト] ボックスにプロンプトメッセージを入力します。
たとえば、"どの地域のデータを表示しますか" という質問を入力します。
6 プロンプトで値の一覧を表示してユーザがそこから値を選択できるようにする場合は、[一覧から選択] を選 択します。
7 [OK]をクリックしてプロンプトを確定します。
レポートを最新表示するたびに、プロンプトが表示されます。
関連項目
• 132 ページの「クエリフィルタ演算子のクイックリファレンス」
クエリフィルタとプロンプトの組み合わせ
同じクエリに複数のフィルタとプロンプトを適用することができます。
クエリフィルタ演算子のクイックリファレンス
クエリフィルタの定義に必要な演算子を選択する場合は、次の表を参照すると便利です。
作成されるフィルタ 選択
例 取得する値
<国> 等しい (=) US 等しい(=)
US のデータのみ取得す 指定した値と等しい値 る。
<四半期> 等しくない (≠) 等しくない Q4
第 4 四半期を除くすべ ての四半期のデータを取 得する。
指定した値とは異なる値
<顧客の年令> より大きい (>) 60
より大きい (>) 61 歳以上の顧客のデー
タを取得する。
指定した値より大きい値
<売上げ> 以上 1500000 以上 (≧)
売上げが 150 万ドル以 上のデータを取得する。
指定した値以上の値
<試験結果> より小さい (<) 40
より小さい (<) 試験結果が 40 点より低
いデータを取得する。
指定した値より小さい値
<年令> 以下 (≦) 30 以下 (≦)
30 歳以下の顧客を取得 指定した値以下の値
作成されるフィルタ 選択
例 取得する値
<週> 範囲内 25 から 36 範囲内
第 25 週から第 36 週ま での週(第 25 週と第 36 週を含む)を取得する。
指定した 2 つの値の範 囲内にある値(2 つの値 を含む)
<週> 範囲外 25 から 36 範囲外
1 年の中で、第 25 週か ら第 36 週までを除くす べての週を取得する。第 25 週と第 36 週は取得し ない。
指定した 2 つの値の範 囲外の値
<国> リスト内 'US,Japan,UK' US、Japan、および UK リスト内
のデータのみ取得する。
指定した複数の値に一 致する値
<国> リスト外 'US,Japan,UK' US、Japan、および UK リスト外
のデータは取得しない。
指定した複数の値とは異 なる値
<DOB> パターンと一致 パターンと一致 '72'
1972 年生まれの顧客を 取得する。
指定した文字列を含む値
<DOB> パターンと異なる パターンと異なる '72'
1972 年生まれではない 顧客を取得する。
指定した文字列を含まな い値
注
ワイルドカード記号 % を使用して、パターン演算子内で変数文字を表すことができます。
And または Or を使ったクエリフィルタの結合
次の表に、And 演算子と Or 演算子の違いを説明します。
選択 例
取得するデータ
AND 第 1 四半期および第 2 四半期に 注文した顧客。取得されるデータ には、第 1 四半期と第 2 四半期 の両方の期間に注文した顧客が 含まれる。
両方のフィルタに該当するデータ
選択 例
取得するデータ
または 第 1 四半期または第 2 四半期に
注文した顧客。取得されるデータ には、第 1 四半期にのみ注文し た顧客、第 2 四半期にのみ注文 した顧客、および第 1 四半期と第 2 四半期の両方の期間に注文し た顧客が含まれる。
どちらか一方のフィルタに該当す るデータ
注
一部の OLAP データソースは、Or 演算子をサポートしていません。
フィルタとプロンプトを組み合わせる
1 各クエリフィルタとプロンプトを作成します。
[クエリパネル] では、デフォルトでフィルタとプロンプトが [And] 演算子で結合されます。[And] 演算子をそ のまま使用することも、[Or] 演算子に変更することもできます。
2 必要な場合は、[And] 演算子をダブルクリックして演算子を [Or] に変更します。
注
一部の OLAP データソースは、Or 演算子をサポートしていません。
[OK] をクリックするか、またはレポートデータを最新表示すると、プロンプトが表示されます。