レッスン 3 : パラメータを使った、初期の並べ替え方法と対話型の並べ替え方法の変更

新規 : 2006 年 7 月 17 日

データ領域またはグループを構成する 1 つ以上の列について、そのレポート データの並べ替え順序をレポート ユーザーが対話的に変更できるようにレポートを定義できます。そのためには、対話的な並べ替えまたはパラメータ化された並べ替えを使用して、並べ替え順序を変更します。

対話的な並べ替えを使用する場合は、列またはグループ ヘッダー テキスト ボックスに UserSort プロパティを設定します。こうすると、レポートを生成したとき、並べ替え用のコントロール ボタンが列見出しに表示されます。レポート ユーザーは、このボタンをクリックしてデータを並べ替えることができます。最初は、データが並べ替えられていない状態で表示されます。このボタンを最初にクリックすると、データは昇順で並べ替えられます。その後は、ボタンをクリックするたびに昇順と降順が切り替わります。

パラメータ化された並べ替えを使用する場合は、並べ替え順序を設定するパラメータを作成し、データセット、データ領域、またはグループを並べ替えるための式に、このパラメータを使った式を挿入します。

このレッスンでは、これら両方の種類の並べ替え機能を追加します。まず、InitialSort というパラメータを追加し、テーブル列 TotalDue に並べ替え式を設定して、最初は合計値を基準にしてテーブル グループが並べ替えられるようにします。次に、SortBy パラメータを作成して、テーブルの Store 列を店舗名で並べ替えるか、店舗あたりの販売注文数で並べ替えるかをレポート ユーザーが選択できるようにします。さらに、Store 列に対話型の並べ替えボタンを追加し、その並べ替え式で SortBy 値を使用するよう設定します。

Advanced Parameters Tutorial レポート サーバー プロジェクトを開くには

  1. SQL Server Business Intelligence Development Studio で、Advanced Parameters Tutorial レポート サーバー プロジェクトをまだ開いていなければ開きます。

  2. ソリューション エクスプローラで、Resellers Worldwide レポートをダブルクリックします。レポートが [レイアウト] ビューに表示されます。

次の手順では、テーブル グループ ヘッダーを変更して、店舗名と各店舗の販売数が両方とも表示されるようにします。また、レポート パラメータを作成し、テーブル グループを店舗名で並べ替えるか、店舗あたりの販売数で並べ替えるかをレポート ユーザーが選択できるようにします。

グループのカウント数をグループ ヘッダーに追加するには

  1. 先頭のテーブル グループ ヘッダー行にある [Store] ボックスを選択します。

  2. =Fields!Store.Value という式を、次の式に置き換えます。

    =Fields!Store.Value & vbCrLf & vbTab & "(" & 
    Count(Fields!SalesOrderNumber.Value, "table1_Store") & ")"
    
  3. (省略可) [プレビュー] をクリックすると、店舗名と各店舗の販売数が、グループ ヘッダーの先頭行に改行して表示されます。

次の手順では、レポート パラメータを作成し、テーブル グループを店舗名で並べ替えるか、店舗あたりの販売数で並べ替えるかをユーザーが選択できるようにします。

新しいレポート パラメータを追加するには

  1. [レポート] メニューの [レポート パラメータ] をクリックします。[レポート パラメータ] ダイアログ ボックスが表示されます。

  2. [追加] をクリックします。新しいパラメータが既定値で生成されます。

  3. [プロパティ] セクションの [名前] ボックスに、「UserSortBy」と入力します。データ型が String であることを確認します。

  4. [表示名] に「テーブル グループをどのように並べ替えますか」と入力します。

  5. [空白の値を許可] チェック ボックスをオフにします。

  6. [使用できる値] セクションで [クエリなし] を選択し、次の表を参照して値を入力します。

    ラベル

    Name of store

    Name

    Number of sales per store

    Number

  7. [既定値] セクションで [クエリなし] を選択し、テキスト ボックスに「Name」と入力します。

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

次の手順では、店舗名と販売数を表示するグループ ヘッダー テキスト ボックスに UserSort (対話型の並べ替え) コントロールを追加し、このコントロールに、レポート パラメータ UserSortBy の値を使った式を設定します。レポートをプレビューすると、この列に並べ替えボタンが表示されます。この並べ替えボタンをクリックすると、パラメータで定義したフィールドの並べ替えを昇順または降順に切り替えることができます。

対話型の並べ替えボタンをグループに追加するには

  1. テーブル ヘッダー行で、[textbox2] という名前の先頭テキスト ボックスを右クリックし、[プロパティ] をクリックします。このテキスト ボックスには "Store" という文字列が入力されています。[テキスト ボックスのプロパティ] ダイアログ ボックスが表示されます。

  2. [対話的な並べ替え] タブをクリックします。

    [対話的な並べ替え] タブでプロパティを設定すると、テキスト ボックスで UserSort にプロパティを設定した場合と同じ結果が得られます。

  3. [対話的な並べ替えアクションをこのテキスト ボックスに追加する] チェック ボックスをオンにします。

  4. [Fx] () ボタンをクリックします。[式の編集] ダイアログ ボックスが表示されます。

  5. 式ペインに次の式を貼り付けます。

    =IIF(Parameters!UserSortBy.Value="Name",Fields!Store.Value,
    Count(Fields!SalesOrderNumber.Value, "table1_Store"))
    

    この式をテキスト ボックスに直接貼り付けると、式の 1 行目しか貼り付けられないので注意してください。

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

  7. [並べ替えるデータ領域またはグループ] で [データ領域またはグループを選択] を選択し、一覧で [table1] を選択します。これはテーブル データ領域を表します。

  8. [このスコープの並べ替え式の評価] で [データ領域またはグループを選択] を選択し、一覧で [table1_Store] を選択します。これはテーブル内の店舗グループを表します。

    UserSortBy パラメータが Name に設定された場合、この式は Fields!Store.Value として評価され、前のレッスンと同様、店舗名がアルファベット順になるようにテーブル グループが並べ替えられます。UserSortBy パラメータが Name でない場合、テーブル グループは、各グループの販売数が昇順になるように並べ替えられます。

  9. [プレビュー] をクリックします。

    テーブルの Store 列に、対話型の並べ替えボタンが表示されます。並べ替え順序の初期状態は、テーブル グループの並べ替えの既定値によって決まります。対話型の並べ替えボタンを最初にクリックすると、UserSortBy パラメータの値に基づいて列が並べ替えられます。その後は、対話型の並べ替えボタンをクリックするたびに昇順と降順が切り替わります。

  10. 一覧で、UserSortBy のパラメータ値を [Number of sales per store] に変更し、[レポートの表示] をクリックします。

    並べ替え列はこの時点では変わりません。更新するには、レポートを再実行し、新しいパラメータ設定でパラメータ式を評価し直す必要があります。これで、店舗名ではなく、販売数を基準として列が並べ替えられるようになりました。

次の手順では、パラメータを追加して、テーブルの詳細行の並べ替え方法をユーザーが選択できるようにします。

パラメータ化された並べ替え用の新しいレポート パラメータを追加するには

  1. [レポート] メニューの [レポート パラメータ] をクリックします。[レポート パラメータ] ダイアログ ボックスが表示されます。

  2. [追加] をクリックします。新しいパラメータが既定値で生成されます。

  3. [プロパティ] セクションの [名前] ボックスに「InitialSort」と入力し、データ型が String であることを確認します。

  4. [表示名] に「テーブルの詳細行をどのように並べ替えますか」と入力します。

  5. [空白の値を許可] チェック ボックスをオフにします。

  6. [使用できる値] セクションで [クエリなし] を選択し、次の表を参照して値を入力します。

    ラベル

    Total due

    TotalDue

    Sales order date

    OrderDate

  7. [既定値] セクションで [クエリなし] を選択し、テキスト ボックスに「TotalDue」と入力します。

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

次の手順では、レポート パラメータ InitialSort を使用した並べ替え式を定義して、選択した値に基づいてテーブルの詳細行が並べ替えられるようにします。

テーブルの詳細行に並べ替え式を追加するには

  1. テーブルを選択し、テーブルの枠線を右クリックして [プロパティ] をクリックします。[テーブルのプロパティ] ダイアログ ボックスが表示されます。

  2. [並べ替え] タブをクリックします。

  3. [式] ボックスの一覧で、[<式>] を選択します。[式の編集] ダイアログ ボックスが表示されます。

  4. 等号 (=) を次の式に置き換えます。

    =IIF(InStr(Parameters!InitialSort.Value,"TotalDue")>0,Fields!TotalDue.Value,Fields!OrderDate.Value)
    

    この式は、パラメータに文字列値 "TotalDue" が指定されているかどうかをチェックし、指定されている場合は、TotalDue フィールドを基準にしてデータを並べ替えます。そうでない場合は、OrderDate フィールドを基準にしてデータを並べ替えます。並べ替えの方向 ([昇順] または [降順]) は式では評価されません。[並べ替え] タブで設定した値が、式で判定されたフィールドに適用されます。

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

  6. (省略可) InitialSort パラメータ値を変更して、[レポートの表示] をクリックします。Efficient Cycling という店舗のノードを展開して、詳細行が InitialSort の設定に従って並べ替えられていることを確認します。

次の手順

ここでは、Store 列に表示される対話型の並べ替えボタンを使用して、データを店舗名で並べ替えるか、販売数で並べ替えるかを選択できるようにするパラメータと、テーブルの詳細行を発注日で並べ替えるか、支払総額で並べ替えるかを選択できるようにするパラメータを追加しました。次のレッスンでは、非表示のブール型パラメータを使用して、このレポートの最初のドリルダウン状態を制御する方法を学習します。「レッスン 4 : ドリル ダウンの初期状態を制御するブール型パラメータの追加」を参照してください。

参照

その他の技術情報

Reporting Services でのパラメータを使用した作業
データの並べ替え

ヘルプおよび情報

SQL Server 2005 の参考資料の入手