レッスン 1: 共有データセットの作成とレポート パラメーターの構成 (SSRS)
このレッスンでは、共有データセットを作成し、Employee_Sales_Summary_2008R2 レポートのデータセット クエリ パラメーターに基づくレポート パラメーターを構成します。
学習する内容
このチュートリアルでは、次の方法を学習します。
基になる基本レポートのコピーを作成します。
プロジェクトおよびレポートに複数の共有データセットを追加します。
データセット クエリ パラメーターごとに自動的に作成されるレポート パラメーターを構成します。
レポートの目的をレポート ユーザーに示すシナリオの説明を追加します。
データ ソースとデータセット クエリの情報を表示する、条件によって非表示になるテキストを追加します。
レポート ユーザーが選択したパラメーターの値を表示する、条件によって非表示になるテキストを追加します。
レポートの説明を表示する、条件によって非表示になるテキストを追加します。
レポート タイトルを追加します。
レポートをプレビューして確認します。
レポートを配置します。
このチュートリアルの推定所要時間: 15 分
必要条件
必要条件については、「AdventureWorks 2008R2 サンプル レポートの前提条件 (SSRS)」を参照してください。
このレッスンでは、「レポート サーバー プロジェクトと AdventureWorks2008R2_Base レポートの作成 (SSRS)」を完了していることを前提としています。
プロジェクトを開いてレポートをコピーするには
Business Intelligence Development Studio で、レポート サーバー プロジェクト AdventureWorks 2008R2 サンプル レポートを開きます。
ソリューション エクスプローラーで、次の手順を実行します。
レポート AdventureWorks2008R2_Base.rdl を右クリックし、[コピー] をクリックします。
このプロジェクトのノードを右クリックし、[貼り付け] をクリックします。
コピーしたレポートの名前を Employee_Sales_Summary_2008R2.rdl に変更します。
共有データセットの作成
このレポート プロジェクトでは、共有データ ソース AdventureWorks2008R2 に基づく 4 つの共有データセットを使用します。
EmployeeSalesYearOverYear2008R2 の作成
前年比売上の共有データセットを追加するには
ソリューション エクスプローラーで、EmployeeSalesYearOverYear2008R2 という名前の共有データセットを追加します。
このデータは、"自分の季節売上の前年比はどのくらいか" という質問への回答に役立ちます。
レポートでは、折れ線グラフとスパークライン グラフにこのデータが表示されます。
AdventureWorks2008R2 共有データ ソースを参照し、次のクエリを追加します。
SELECT P.FirstName + ' ' + P.LastName AS Employee, DATEPART(Year, SOH.OrderDate) AS [Year], DATEPART(Month, SOH.OrderDate) AS MonthNumber, DATENAME(Month, SOH.OrderDate) AS [Month], SUM(DET.LineTotal) AS Sales FROM [Sales].[SalesPerson] SP INNER JOIN [Sales].[SalesOrderHeader] SOH ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [Sales].[SalesTerritory] ST ON SP.[TerritoryID] = ST.[TerritoryID] INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] P ON P.[BusinessEntityID] = SP.[BusinessEntityID] WHERE (DATEPART(Year, SOH.OrderDate) <= @ReportYear - 1 OR DATEPART(Year, SOH.OrderDate) = @ReportYear AND DATEPART(Month, SOH.OrderDate) <= @ReportMonth) AND (SOH.SalesPersonID = (@EmployeeID)) GROUP BY P.FirstName + ' ' + P.LastName, SOH.SalesPersonID, DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), DATENAME(Month, SOH.OrderDate)
共有データセットがソリューション エクスプローラーに表示されます。
レポート データ ペインで、EmployeeSalesYearOverYear2008R2 という名前のデータセットを作成します。
[データセットのプロパティ] ダイアログ ボックスで、[共有データセットを使用する] を選択し、ソリューション エクスプローラーで作成したデータセットをクリックします。
このデータセット クエリには、クエリ変数 @ReportMonth、@ReportYear、および @EmployeeID が含まれます。
[データセットのプロパティ] で、各クエリ変数に対してデータセット パラメーターが作成されていることを確認します。
レポート データ ペインで、各データセット パラメーターに対してレポート パラメーターが作成されていることを確認します。
レポート データ ペインのデータセットは、ソリューション エクスプローラーの共有データセットへの参照です。レポートがパブリッシュされると、参照先はレポート サーバーまたは SharePoint サイト上の共有データセットになります。
EmployeeSalesDetail2008R2 の作成
各販売注文のデータを含む共有データセットを追加するには
ソリューション エクスプローラーで、EmployeeSalesDetail2008R2 という名前の共有データセットを追加します。
このデータは、"月全体と各カテゴリの販売ノルマを達成しているかどうか" という質問への回答に役立ちます。
レポートでは、マトリックスと埋め込みインジケーターにこのデータが表示されます。
AdventureWorks2008R2 共有データ ソースと次のクエリを使用します。
SELECT PER.FirstName + ' ' + PER.LastName AS Employee, PS.Name AS Subcategory, SUM(DET.LineTotal) AS Sales, SOH.SalesOrderID, SOH.SalesOrderNumber, P.Name AS Product, SUM(DET.OrderQty) AS OrderQty, DET.UnitPrice, PC.Name AS Category FROM Sales.SalesOrderHeader SOH INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID] INNER JOIN Production.Product P ON DET.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID WHERE (DATEPART(Year, SOH.OrderDate) = @ReportYear) AND (DATEPART(Month, SOH.OrderDate) = @ReportMonth) AND (SOH.SalesPersonID = @EmployeeID) GROUP BY PER.FirstName + ' ' + PER.LastName, DATEPART(Month, SOH.OrderDate), SOH.SalesOrderID, SOH.SalesOrderNumber, P.Name, PS.Name, DET.UnitPrice, PC.Name
共有データセットがソリューション エクスプローラーに表示されます。
レポート データ ペインで、EmployeeSalesDetail2008R2 という名前のデータセットを作成します。
[データセットのプロパティ] ダイアログ ボックスで、[共有データセットを使用する] を選択し、ソリューション エクスプローラーで作成したデータセットをクリックします。
EmpSalesMonth2008R2 の作成
前月比売上の共有データセットを追加するには
ソリューション エクスプローラーで、EmpSalesMonth2008R2 という名前の共有データセットを追加します。
このデータは、"今月のカテゴリの売上の前年同月比はどのくらいか" という質問への回答に役立ちます。
レポートでは、縦棒グラフとデータ バー グラフにこのデータが表示されます。
AdventureWorks2008R2 共有データ ソースと次のクエリを使用します。
SELECT PER.FirstName + ' ' + PER.LastName AS Employee, DATEPART(Year, SOH.OrderDate) AS [Year], DATEPART(Month, SOH.OrderDate) AS [MonthNumber], DATENAME(Month, SOH.OrderDate) AS [Month], PC.Name AS Category, SUM(DET.LineTotal) AS Sales FROM Sales.SalesOrderHeader SOH INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID] INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID] INNER JOIN Production.Product P ON DET.ProductID = P.ProductID INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID WHERE (DATEPART(Year, SOH.OrderDate) <= @ReportYear) AND (DATEPART(Month, SOH.OrderDate) = @ReportMonth) AND (SOH.SalesPersonID = @EmployeeID) GROUP BY PER.FirstName + ' ' + PER.LastName, DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), DATENAME(Month, SOH.OrderDate), PC.Name
共有データセットがソリューション エクスプローラーに表示されます。
レポート データ ペインで、EmpSalesMonth2008R2 という名前のデータセットを作成します。
[データセットのプロパティ] ダイアログ ボックスで、[共有データセットを使用する] を選択し、ソリューション エクスプローラーで作成したデータセットをクリックします。
SalesEmployees2008R2 の作成
従業員に使用できる値の一覧のデータセットを作成するには
ソリューション エクスプローラーで、SalesEmployees2008R2 という名前の共有データセットを追加します。
このデータは、@EmployeeID パラメーターに有効な値を提供します。
AdventureWorks2008R2 共有データ ソースと次のクエリを使用します。
SELECT s.[BusinessEntityID], p.[FirstName] + N' ' + p.LastName AS Employee, e.[JobTitle] FROM [Sales].[SalesPerson] s INNER JOIN [HumanResources].[Employee] e ON e.[BusinessEntityID] = s.[BusinessEntityID] INNER JOIN [Person].[Person] p ON p.[BusinessEntityID] = s.[BusinessEntityID]
共有データセットがソリューション エクスプローラーに表示されます。
レポート データ ペインで、SalesEmployees2008R2 という名前のデータセットを作成します。
[データセットのプロパティ] ダイアログ ボックスで、[共有データセットを使用する] を選択し、ソリューション エクスプローラーで作成したデータセットをクリックします。
レポート パラメーターの構成
共有データセットには、ReportYear、ReportMonth、および EmployeeID のクエリ変数を使用するデータセット クエリが含まれます。各クエリ変数に対して、対応するレポート パラメーターが自動的に生成されます。既定では、各レポート パラメーターのプロパティが文字列型の単一値に対して設定され、既定値や有効な値の一覧は設定されません。必要に応じて、各パラメーターを手動で構成する必要があります。
パラメーターの順序の変更
レポート ビューアー ツール バーのパラメーターの順序を変更するには
レポート データ ペインで、[ShowAll] をクリックします。
レポート データ ペインのツール バーで、[下へ移動] をクリックして、このパラメーターを一覧の末尾に移動します。
[ReportMonth] をクリックします。
[上へ移動] をクリックして、このパラメーターを一覧の先頭に移動します。
ReportMonth の構成
個別に指定した一連の値からのみ値を受け入れるように @ReportMonth パラメーターを構成します。既定値にそれらのいずれかの値が設定されていなければ、レポートは自動的に実行されません。
レポート パラメーター @ReportMonth を構成するには
レポート データ ペインで [パラメーター] を展開します。
@ReportMonth の [パラメーターのプロパティ] を開きます。
[全般] ページで、[データ型] を [整数] に変更します。
[使用できる値] ページで、[値の指定] を選択します。
12 か月それぞれのエントリを追加します。[ラベル] を月の名前、[値] を月の序数値に設定します。たとえば、最初のエントリは「January」と「1」になります。最後のエントリは「December」と「12」になります。12 の値をすべて入力します。
[既定値] ページで、[値の指定] を選択します。[値] に「7」と入力します。
これにより、既定値が 7 月に設定されます。各レポート パラメーターに既定値が指定されていれば、レポートは最初に表示したときに自動的に実行されます。
ReportYear の構成
レポート パラメーター @ReportYear を構成するには
@ReportYear の [パラメーターのプロパティ] を開きます。
[全般] ページで、[データ型] を [整数] に変更します。
[既定値] ページで、[値の指定] を選択します。
値を追加します。[値] に「2007」と入力します。
EmployeeID の構成
レポート パラメーター @EmployeeID を構成するには
@EmployeeID の [パラメーターのプロパティ] を開きます。
[全般] ページで、[プロンプト] を「Employee」に変更します。
[データ型] を [整数] に変更します。
[使用できる値] ページで [クエリから値を取得] を選択します。
[データセット] で [SalesEmployees2008R2] を選択します。
[値] で [BusinessEntityID] を選択します。
[ラベル] で [Employee] をクリックします。
[既定値] ページで、[値の指定] を選択します。[値] に「283」と入力します。この値は、David Campbell の従業員 ID です。
シナリオの説明の追加
シナリオの説明を追加するには
シナリオの説明のテキスト ボックスで、既存のテキストを次のテキストに置き換えます。
AdventureWorks の販売員として、自身の季節売上の前年比を知りたいと考えています。
折れ線グラフとスパークライン グラフには、すべてのカテゴリの前年比売上が表示されます。
インジケーター付きのマトリックスには、ノルマと比較した現在の売上が表示されます。レポート ビューアー ツール バーで、ノルマの値を変更します。
縦棒グラフとデータ バー グラフには、各カテゴリの売上が表示されます。
この後のレッスンで、テキストの文字列から関連するデータ領域にリンクします。
データ ソース、データセット、およびパラメーターの値の表示
データセット クエリ コマンドのテキスト、および各レポート パラメーターに対してユーザーが選択した値を表示することができます。レポートを見やすくするために、この情報はテキスト ボックスに入力し、最後のページの条件によって非表示になる四角形のコンテナーに配置します。
四角形を追加するには
レポートの下部にあるページ フッターの上に四角形を追加します。
[四角形] のプロパティで、次の手順を実行します。
[全般] ページで、[前に改ページを追加する] をオンにします。
[表示] ページで、[式を基に表示/非表示を切り替える] を選択し、「=NOT Parameters!ShowAll.Value」と入力します。
以降の手順でテキスト ボックスを作成したら、それぞれこの四角形に追加します。必要に応じて四角形を拡大してください。四角形をコンテナーとして使用すると、すべてのテキスト ボックスを 1 つの単位として簡単に移動できます。
パラメーターの値を表示するテキスト ボックスを追加するには
レポート本文にテキスト ボックスを追加し、各行に次のテキストを入力します。
Report Month: [@ReportMonth] [@ReportMonth.Label]
Report Year: [@ReportYear]
EmployeeID: [@EmployeeID] [@EmployeeID.Label]
テキスト ボックスを四角形にドラッグし、必要に応じてサイズを調整します。
データ ソースとデータセットの情報を表示するテキスト ボックスを追加するには
レポート本文に DataSourceandDatasets という名前のテキスト ボックスを追加し、次のテキストを入力します。
-
データ ソース AdventureWorks2008R2:
AdventureWorks2008R2 という名前のプレースホルダーを作成し、値を「=DataSources!AdventureWorks2008R2.DataSourceReference」に設定します。
データセット EmployeeSalesYearOverYear2008R2:
EmployeeSalesYearOverYear2008R2 という名前のプレースホルダーを作成し、値を「=DataSets!EmployeeSalesYearOverYear2008R2.CommandText」に設定します。
データセット EmployeeSalesDetail2008R2:
EmployeeSalesDetail2008R2 という名前のプレースホルダーを作成し、値を「=DataSets! EmployeeSalesDetail2008R2.CommandText」に設定します。
データセット EmpSalesMonth2008R2:
EmpSalesMonth2008R2 という名前のプレースホルダーを作成し、値を「=DataSets! EmpSalesMonth2008R2.CommandText」に設定します。
必要に応じて、テキストの書式を設定します。たとえば、データセット名に下線を付けます。
テキスト ボックスを四角形にドラッグし、必要に応じてサイズを調整します。
説明の追加
説明を追加するには
ページ フッターで、説明のテキスト ボックスのテキストを次のテキストに置き換えます。
目的: 概要レポート。すべてのカテゴリ、個々のカテゴリ、およびノルマの前年比売上を表示します。グラフ (折れ線、スパークライン、スケール区切り付き縦棒、データ バー)、Tablix (トグル行、行グループ、テーブル レベルおよびグループ レベルのインジケーター)、グループ変数とレポート変数、四角形のコンテナー、共有データセット、共有データ ソース、グラフの線の色に関するカスタム コード、ブックマーク、ドリルスルー アクション、複数値パラメーター、およびテキスト ボックスとトグル行の条件付き表示を制御するパラメーターが含まれています。
レポートの背景をクリックし、プロパティ ペインに [レポートのプロパティ] を表示します。
[説明] に、説明のテキストを貼り付けます。
レポート タイトルの追加
レポート タイトルを追加するには
ページ ヘッダーで、テキスト ボックスを追加して、次のテキストを 2 行で入力します。
Sales Report for [@EmployeeID.Label]
[@ReportMonth.Label], [@ReportYear]
必要に応じて書式を設定します。
レポートのプレビュー
レポートをプレビューして確認するには
レポートをプレビューします。
レポートが自動的に実行されることを確認します。
レポート ビューアー ツール バーで、次の点を確認します。
Report Month のドロップダウン リストにすべての月が表示されていること。既定値は July です。
Report Year の既定値が 2007 であること。
Employee のドロップダウン リストに、すべての従業員の名前が表示されていること。既定値は David Campbell です。
ページ ヘッダーに、ロゴ、レポート名、およびレポート タイトルが表示されます。
切り替えアイテムをクリックすると、シナリオのテキストが表示されます。
ShowAll を True に設定している場合、レポートを実行すると、パラメーターの値、データ ソースとデータセットの情報、および説明がレポートの最後のページに表示されます。
レポートの配置
レポートを配置するには
ソリューション エクスプローラーで、プロジェクトを右クリックし、[配置] をクリックします。BI Development Studio のステータス行または出力ペインで、エラーを確認します。
注 レポートは共有データセットに依存するため、初めてレポートを配置するときに、プロジェクト全体を配置する必要があります。
ブラウザーで、レポート サーバーまたは SharePoint サイトに移動し、共有データ ソース、共有データセット、およびレポートが正しいフォルダーに表示され、レポートを表示できることを確認します。
次の手順
これで、レポート プロジェクトと基本レポートの作成が完了しました。次はサンプル レポートを作成します。詳細については、「チュートリアル: AdventureWorks 2008R2 サンプル レポートの作成 (SSRS)」を参照してください。