Customers_Near_Stores_2008R2 レポートの作成 (SSRS)

このチュートリアルでは、一連の AdventureWorks 2008R2 サンプル レポートから Customers_Near_Stores_2008R2 レポートを作成できます。

このレポートには、地理的に指定した範囲内に居住する AdventureWorks の個人顧客について、顧客と顧客の人口統計の一覧が表示されます。地理的位置情報は、地理的な位置の Well Known Text (WKT) 表現を含む String パラメーターとして渡されます。レポート一式とそのリレーションシップの詳細については、「チュートリアル: AdventureWorks 2008R2 サンプル レポートの作成 (SSRS)」を参照してください。

学習する内容

このチュートリアルでは、次のタスクを実行します。

  • 各顧客の情報 (自宅の住所から指定された場所までの距離など) を含むデータセットを追加します。

  • 再販業者店舗情報を含むデータセットを追加します。

  • 地理的位置情報をテキストとして含むパラメーターを構成します。

  • 店舗からの距離を指定するパラメーターを構成します。

  • データ ソース、データセット、および選択されたパラメーターの値をレポートの最後のページに表示します。

  • レポートの目的に関する情報を含むレポート タイトルを追加します。

  • レポートの説明を追加します。

  • 指定した店舗からの指定範囲内に居住する顧客の人口統計を表示するテーブルを追加します。

  • 指定された距離内に住む顧客がいない場合に表示する NoRowsMessage を定義します。

  • レポートをプレビューして確認します。

このチュートリアルの推定所要時間: 15 分

必要条件

必要条件の一覧については、「AdventureWorks 2008R2 サンプル レポートの前提条件 (SSRS)」を参照してください。

このチュートリアルでは、「レポート サーバー プロジェクトと AdventureWorks2008R2_Base レポートの作成 (SSRS)」が完了していることを前提としています。

プロジェクトを開いてレポートをコピーするには

  1. Business Intelligence Development Studio で、レポート サーバー プロジェクト AdventureWorks 2008R2 を開きます。

  2. ソリューション エクスプローラーで、次の手順を実行します。

    1. レポート AdventureWorks2008R2_Base.rdl を右クリックし、[コピー] をクリックします。

    2. このプロジェクトのノードを右クリックし、[貼り付け] をクリックします。

    3. コピーしたレポートの名前を Customers_Near_Stores_2008R2.rdl に変更します。

顧客情報のデータセットを作成するには

  • レポート データ ペインで、CustomerLocations という名前の埋め込みデータセットを追加します。AdventureWorks2008R2 共有データ ソースと次のクエリを使用します。

    SELECT
        [CustomerID]
       , [PersonID] as BusinessEntityID 
       , p.FirstName as Name1
       , p.LastName AS Name2
       , ea.EmailAddress
      -- , t.Name as AddressType -- Home or Shipping
       , ad.City, ad.PostalCode
       , sp.Name as StateProvince
       , sp.StateProvinceCode
       , ad.SpatialLocation.STDistance((@GeoLocation))/1609.344 as DistanceinMiles
       , ad.SpatialLocation
       , p.Demographics.value('declare namespace awns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; (awns:IndividualSurvey/awns:NumberCarsOwned) [1]','int') as NumberCarsOwned
       , p.Demographics.value('declare namespace awns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/IndividualSurvey"; (awns:IndividualSurvey/awns:CommuteDistance) [1]','varchar(30)') as CommuteDistance
      FROM [Sales].[Customer] c
       INNER JOIN Person.Person p ON p.BusinessEntityID = c.PersonID
       INNER JOIN Person.BusinessEntityAddress a ON a.BusinessEntityID = p.BusinessEntityID
       INNER JOIN Person.AddressType t ON a.AddressTypeID = t.AddressTypeID
       INNER JOIN Person.[Address] ad ON ad.AddressID = a.AddressID 
       INNER JOIN Person.EmailAddress ea ON ea.BusinessEntityID = p.BusinessEntityID
       INNER JOIN Person.StateProvince sp ON sp.StateProvinceID = ad.StateProvinceID
     WHERE   -- StoreID IS NULL means Customer is an Individual
        StoreID IS NULL 
        AND t.Name = N'Home' 
        AND sp.CountryRegionCode = N'US'
        -- 1 Mile = 1609.344 Meters 
        AND (ad.SpatialLocation.STDistance((@GeoLocation))/1609.344) < (@Radius)
    

データセット クエリによって、@GeoLocation から @Radius マイル以内に住む顧客の情報 (人口統計を含む) が返されます。

レポートでは、このデータはマトリックスに表示されます。

Geolocation パラメーターの有効な値の一覧を作成するには

  • レポート データ ペインで、StoreLocation という名前の埋め込みデータセットを追加します。AdventureWorks2008R2 共有データ ソースと次のクエリを使用します。

    SELECT  
        [StoreID] as BusinessEntityID
        , s.Name as Store
       -- , t.Name as AddressType -- Main Office or Shipping
       , ad.PostalCode
       -- , sp.CountryRegionCode
       --, sp.Name as StateProvince
       --, sp.StateProvinceCode
       , ad.SpatialLocation.ToString() as GeoLocation
      FROM [Sales].[Customer] c
        INNER JOIN Sales.Store s ON s.BusinessEntityID = c.StoreID
        INNER JOIN Person.BusinessEntityAddress a ON a.BusinessEntityID = s.BusinessEntityID
        INNER JOIN Person.AddressType t ON a.AddressTypeID=t.AddressTypeID
        INNER JOIN Person.[Address] ad ON ad.AddressID = a.AddressID 
        INNER JOIN Person.StateProvince sp ON sp.StateProvinceID = ad.StateProvinceID
     WHERE  -- PersonID IS NULL means Customer is a store
       PersonID IS NULL 
       AND t.Name = N'Main Office' 
       AND sp.CountryRegionCode = N'US'
    

このデータセット クエリは、AdventureWorks の店舗とその地理的な位置情報の一覧を返します。

レポートでは、このデータが、@Geolocation パラメーターの有効な値の一覧として表示されます。レポート ビューアー ツール バーでは、店舗名を含むパラメーター ラベルは表示されますが、地理的位置情報を含む値は表示されません。

レポート パラメーター @Geolocation を構成するには

  1. @Geolocation[パラメーターのプロパティ] を開きます。

  2. [プロンプト] を「Store location?」に変更します。

  3. [使用できる値][クエリから値を取得] を選択します。

  4. [データセット] で [StoreLocation] を選択します。

  5. [値] で [GeoLocation] を選択します。

  6. [ラベル] で [Store] を選択します。

  7. [既定値] で、値を追加し、次のテキストに設定します。

    POINT (-82.4151596338717 40.7459610884615)

この値は、"The Bike Mechanics" という名前の店舗に対応しています。

レポート パラメーター @Radius を構成するには

  1. @Radius のパラメーター プロパティを開きます。

  2. [プロンプト] に、「Distance in miles?」を入力します。

  3. [データ型][整数] に変更します。

  4. [既定値] で、値を追加して「100」に設定します。

親レポートに戻る手順をページ ヘッダーに追加するには

  1. ページ ヘッダーの高さを拡大します。

  2. ロゴの下に tbBackInstructions という名前のテキスト ボックスを追加し、「親レポートに戻るには、ブラウザーの [戻る] ボタンを使用してください。」と入力します。

  3. 必要に応じて、テキスト ボックスの書式を設定します。

レポート タイトルを追加するには

  1. レポートの上部のページ ヘッダーの下に、tbTitle という名前のテキスト ボックスを追加して、次のテキストを入力します。

    Demographics for the [NCustomers] [Customers]

    living within [@Radius] miles of the store

    [@GeoLocation.Label]

    Grouped by Commute Distance

  2. [NCustomers] を右クリックして [プレースホルダー プロパティ] ダイアログ ボックスを開き、[名前] を「NCustomers」に、[値] を「=CountDistinct(Fields!CustomerID.Value,"CustomerLocations")」に設定します。

  3. [Customers] を右クリックして [プレースホルダー プロパティ] ダイアログ ボックスを開き、[名前] を「Customers」に、[値] を「=IIF(CountDistinct(Fields!CustomerID.Value,"CustomerLocations")=1,"Customer","Customers")」に設定します。

  4. テキスト ボックスをレポートの中央に配置し、必要に応じて各行のテキストの書式を設定します。

シナリオのテキスト ボックスを削除するには

  • ToggleInformation テキスト ボックス、およびシナリオ テキストを含むテキスト ボックスを削除します。

このレポートでは、追加したレポート タイトルにシナリオの情報が含まれています。

説明の追加

説明を追加するには

  1. ページ フッターで、説明のテキスト ボックスのテキストを次のテキストに置き換えます。

    目的: Sales_by_Region_2008R2 の店舗マーカーからのドリルスルー レポート。ある店舗から指定された距離 (マイル) 以内に居住する顧客に関する情報が表示されます。店舗の地理的位置情報は Well Known Text (WKT) 値を含む文字列パラメーターです。

  2. レポートの背景をクリックし、プロパティ ペインに [レポートのプロパティ] を表示します。

  3. [説明] に、説明のテキストを貼り付けます。

テーブルでの顧客の人口統計の表示

テーブルを追加するには

  1. CustomerLocations データセットから次のフィールドを表示する tblxTable_Demographics という名前のテーブルを追加します。

    • [Name2], [Name1]

    • [DistanceinMiles]

    • [NumberCarsOwned]

    • [EmailAddress]

  2. [CommuteDistance] に基づいた行グループを追加します。

  3. 必要に応じて、テーブルの書式を設定します。

データが存在しない場合に表示するメッセージを追加するには

  1. テーブルを選択します。

  2. プロパティ ペインで、NoRowsMessage を探し、式「="No customers live within " & Parameters!Radius.Value & " miles. Display the parameters on the toolbar and enter a different distance."」を入力します。

レポートのプレビューおよび確認

レポートをプレビューして確認するには

  • レポートを実行し、次の点を確認します。

    1. パラメーター値がレポート タイトルに表示されていること。

    2. テーブルが通勤距離別に構成されていること。

    3. radius パラメーターの値を変更すると顧客の数が変化すること。

    4. 指定した距離内に顧客がいない場合に NoRowsMessage の値が表示されること。

次の手順

これで、このレポートの作成が完了しました。他の AdventureWorks サンプル レポートを作成するには、「チュートリアル: AdventureWorks 2008R2 サンプル レポートの作成 (SSRS)」を参照してください。

関連項目

その他の技術情報

変更履歴

変更内容

  • レポートが、AdventureWorks2008R2_Base.rdl に基づくレポートに変更されました。