【クエリビルダ】プロンプトフィルターを使いこなす記事に関連する投稿です。
プロンプト専用フィルターの使用例を紹介します。この使用例は実用的ではないでしょうが、基本となる考え方をご紹介できればと思います。
使用例では、SAP Business Oneデータモデルを使用し、プロンプト専用フィルターに渡した値を元に、Document Date列にフィルターをかけます。
Sharperlightパブリッシャーでレポートを作成し、そのレポートのクエリ定義でプロンプト専用フィルターを使用してみます。
先ずは、Sharperlightアプリケーションメニューからパブリッシャーを起動します。
パブリッシャーが起動したら新規
ボタンで新しいレポートの作成を開始します。
クエリの編集
クエリを編集
ボタンでクエリビルダを起動します。
製品
、Company
、テーブル
を下図のようにそれぞれ選択します。選択したテーブルに付随する既定の必須フィルターが自動設定されます。それらはそのままの状態で使用します。
フィルターの定義
この例では、年度
と季節
を引数として渡します。よって二つのプロンプト専用フィルターを準備します。
番号型とテキスト型の二種類を追加します。
クエリビルダのフィルター領域の右クリックメニューからその他のサブメニューを開きます。
サブメニューでは、様々なデータ型を選択することができます。
プロンプト専用フィルター : 年度
先ずは番号を選択し、フィルター領域に番号型のフィルターを追加します。フィルターの説明ダイアログが表示されるので、年度と入力します。
フィルターオプションダイアログを開き、フィルター名
、説明
、1つの値のみ
オプションを下図のように設定します。
プロンプト専用フィルター : 季節
次にフィルター領域にテキスト型のフィルターを追加します。フィルターの説明ダイアログが表示されるので、季節と入力します。
フィルターオプションダイアログを開き、フィルター名
、説明
、1つの値のみ
オプションを下図のように設定します。
このようになります。
通常フィルター : Document Date
クエリのWHERE句に使用される通常のフィルターを設定します。そして上記で設定したプロンプト専用フィルターをここで使用します。
選択リストからDocument Date列をフィルター領域にドラッグ&ドロップ。
フィルターオプションダイアログを開き日付オプションの選択から開始します。
関数
タブで、この年/月オプションを設定します。
次にFrom値とTo値に拡張表現式を用いてプロンプト専用フィルターの値を使用するよう設定を行います。
演算子
演算子
には、間(Between)を選択します。
演算子または値 (From)
演算子または値
(From)には、拡張表現を用いてSwitch文を設定します。右側のボタンでエディタが開きます。
プロンプト専用フィルター:年度
に2006が渡され、プロンプト専用フィルター:季節
に春が渡された場合、春の開始月である季節`2006/03を、夏の場合は、2006/06をといった具合です。
_Expression(
Switch( "{@季節}"
,"春","{@年度}" + "/03"
,"夏","{@年度}" + "/06"
,"秋","{@年度}" + "/09"
,"冬","{@年度}" + "/12"
,"<ALL>"
)
)
値 (To)
値
(To)にもSwitch文を拡張表現を用いて設定します。
プロンプト専用フィルター:年度
に2006が渡され、プロンプト専用フィルター:季節
に春が渡された場合、春の終り月である季節2006/05を、夏の場合は、2006/08をといった具合です。
冬の場合は、翌年の2月が終り月なので、プロンプト専用フィルター:年度
に1を加算します。
_Expression(
Switch( "{@季節}"
,"春","{@年度}" + "/05"
,"夏","{@年度}" + "/08"
,"秋","{@年度}" + "/11"
,"冬", CStr({@年度}+1) + "/02"
,"<ALL>"
)
)
出力アイテムの定義
選択リストから以下のような列を出力アイテムとして設定します。
クエリのプレビュー
プロンプト専用フィルター:年度
とプロンプト専用フィルター:季節
に、それぞれ2006と春と入力してプレビュー
ボタンを押します。
出力結果のDocument Date列の値を確認します。全てが2006/03から2006/05の範囲であればフィルターが正常に動いているということです。
同じように夏、秋そして冬を確認してみましょう。特に冬の場合は、全てが2006/12から2007/02の範囲であればOKです。
最後、クエリに戻り年度
と季節
以外のフィルターを全て非表示に設定し、クエリを保存します。
レポートからの検証
公開レポートのダイアログに戻ったら、コード、グループおよびタイトルを記入して保存します。
Sharperlightサービスを起動してブラウザで表示してみます。
このようになります。
今回、実用的ではない例で記事を書いてみましたが、プロンプト専用フィルターの使い方とその動きをご紹介できたかなと思っています。
では、失礼します。