並べ替えの機能を使用して、実行時にレポートのデータを並べ替えることができます。この機能により、データをアルファベット順、または数値を昇順、降順で並べ替えることができます。
ページレポート/RDLレポートでは、データ領域、グループ化されたデータに対して並べ替えを適用することができます。ページレポートの場合は、ページ全体に対して並べ替えを適用することも可能です。また、SQLクエリでデータを直接並べ替えることができます。TextBoxコントロールに対して、対話的な並べ替えも設定可能です。
レポートの異なる範囲で並べ替える
並べ替えは、レポートの異なる範囲に対して設定することができます。ActiveReports Serverでは、データ領域、グループ化されたデータ、ページのダイアログに[並べ替え]ページを提供しています。
データ領域での並べ替え
Tableデータ領域、Listデータ領域内のデータを並べ替えることができます。並べ替えを設定するには、各データ領域の[並べ替え]ページへ移動し、並べ替えを設定します。
Tablix、BandedList、Chartの各データ領域では、グループ化されたデータに対してのみ並べ替えを設定することができます。したがって、これらのデータ領域独自の[並べ替え]のページはありません。
グループ化されたデータの並べ替え
[並べ替え]タブは、すべてのデータ領域のダイアログの[グループ]ページと、[List]ダイアログの[詳細行のグループ化]ページで用意されています。また、グループ化されたデータのソート順も変更することができます。このオプションは、データ領域内にグループが設定されている場合に有効になります。
ページでの並べ替え
ページレポートでは、動的な値に基づきグループ化されたページ上で並べ替えを設定することができます。
ページで設定した並べ替えは、レポート形式のレイアウトで配置されているすべてのデータ領域に適用されますが、データ領域に並べ替えを設定すると、データ領域のデータのみが並べ替えられます。
SQLクエリで並べ替えを設定する
レポートのデータを取得するには、データソースに接続し、データセットを作成して、クエリを定義する必要があります。クエリの「ORDER BY」キーワードを使用し、データを並べ替えることができます。
デフォルトでは、「ORDER BY」キーワードは昇順にデータを並べ替えますが、クエリに「DESC」キーワードを使用してデータを降順に並べ替えることができます。
たとえば、以下のようなクエリを指定することで、ReelsデータベースのMovieテーブルにあるTitleフィールドのデータを並べ替えることができます。
SELECT * FROM Movie ORDER BY Title
または
SELECT * FROM Movie ORDER BY Title ASC
また、以下のようにクエリを指定することで、Titleフィールドのデータを降順に並べ替えることができます。
SELECT * FROM Movie ORDER BY Title DESC
対話的な並べ替えを設定する
データ領域内にあるTextBoxコントロールに対して、対話的な並べ替えを設定することにより、ユーザーがビューワ上でデータを並べ替えることができます。
対話的な並べ替えを設定するには、[並べ替え]ページにある[対話的な並べ替えを有効にする]オプションを選択する必要があります。
TextBoxコントロールに対して対話的な並べ替えを設定すると、ビューワ、または[プレビュー]タブで並べ替えのアイコンが表示されます。このアイコンをクリックし、ユーザーがTextBox内のデータを昇順、または降順に並べ替えることができます。
対話的な並べ替えのページでは、次のオプションが用意されています。
セクションレポートでは、並べ替えは明示的には用意されていませんが、データベースからデータを取得する際に使用するSQLクエリを変更し、並べ替えを実現することができます。
SQLクエリで並べ替えを設定する
レポートをデータソースに接続し、データの取得に指定するクエリに「ORDER BY」キーワードを追加し、データを並べ替えることができます。
デフォルトでは、「ORDER BY」キーワードは昇順にデータを並べ替えますが、クエリに「DESC」キーワードを使用してデータを降順に並べ替えることができます。
たとえば、以下のようなクエリを指定することで、NWindデータベースのCustomersテーブルにあるCompanyNameフィールドのデータを並べ替えることができます。
SELECT * FROM Customers ORDER BY CompanyName
または
SELECT * FROM Customers ORDER BY CompanyName ASC
以下のようなクエリを指定することで、CompanyNameフィールドのデータを降順に並べ替えることができます。
SELECT * FROM Customers ORDER BY CompanyName DESC