30.10.2011

Dynamisierung von Gruppen

Technical Value

In Reporting Service lässt sich die Gruppierung einer Tabelle, einer Matrix oder eines Charts extrem dynamisch gestalten. Als Grundlage für dieses Beispiel dient die Datenbank „AdventureWorksDW2008R2“.

Das Ergebnis sollte in etwa so aussehen:

clip_image002

1. DataSet mit folgendem Query anlegen:

  1. SELECT
  2.  
  3. PC.EnglishProductCategoryName AS Category
  4.  
  5. ,PSC.EnglishProductSubcategoryName AS Subcategory
  6.  
  7. ,P.EnglishProductName AS ProductName
  8.  
  9. ,G.EnglishCountryRegionName AS Country
  10.  
  11. ,G.StateProvinceName AS State
  12.  
  13. ,FIS.SalesAmount
  14.  
  15. FROM dbo.FactInternetSales FIS
  16.  
  17. INNER JOIN dbo.DimProduct P
  18.  
  19. ON FIS.ProductKey = P.ProductKey
  20.  
  21. INNER JOIN dbo.DimProductSubcategory PSC
  22.  
  23. ON P.ProductSubcategoryKey = PSC.ProductSubcategoryKey
  24.  
  25. INNER JOIN dbo.DimProductCategory PC
  26.  
  27. ON PSC.ProductCategoryKey = PC.ProductCategoryKey
  28.  
  29. INNER JOIN dbo.DimCustomer C
  30.  
  31. ON FIS.CustomerKey = C.CustomerKey
  32.  
  33. INNER JOIN dbo.DimGeography G
  34.  
  35. ON C.GeographyKey = G.GeographyKey

2. Matrix aus Toolbar hinzufügen

3. Feld „Category“ auf RowGroups ziehen

4. Feld „Country“ auf ColumnGroups ziehen

5. Feld „SalesAmount“ in Data-Feld der Matrix ziehen

6. Feld „Subcategory“ auf RowGroups unter Gruppe „Category“ ziehen

7. RowGroup „Category“ umbenennen in „ParentRowGroup“

8. RowGroup „Subcategory“ umbenennen in „ChildRowGroup“

9. ColumnGroup „Country“ umbenennen in ColumnGroup

10. Die Textboxen der Matrix entsprechend benennen

11. Parameter „ParentGroupParam“ anlegen:

clip_image004

12. Zwei weitere Parameter anlegen:

NAME

PROMPT

ChildRowGroupParam

Select Child Row Group

ColumnGroupParam

Select Column Group

13. Eigenschaften von „ParentGroupParam“ öffnen und unter „Available Values“ folende Einträge vornehmen:

clip_image006

14. Auf gleiche Weise werden die Einträge in „ChildGroupParam“ vorgenommen:

LABEL

VALUE

Country

Country

State/Province

State

15. Im Parameter „ChildRowGroupParam“ wird eine Anzeige-Logik hinterlegt. Dabei wird dieser Parameter in Abhängigkeit zum Parameter „ParentRowGroupParam“ gebracht:

LABEL

VALUE

=IIF(Parameters!ParentRowGroupParam.Value= "Category","ProductSubcategory",Nothing)

=IIF(Parameters!ParentRowGroupParam.Value= "Category","Subcategory",Nothing)

Product Name

ProductName

16. Eigenschaften von „ParentRowGroup“ öffnen und den Expression-Button neben „Group on:“ drücken und folgende Expression eingeben:

=Fields(Parameters!ParentRowGroupParam.Value).Value

17. In gleicher Weise werden auch die anderen Gruppen behandelt:

GROUP

GROUP ON EXPRESSION

ChildRowGroup

=Fields(Parameters!ChildRowGroupParam.Value).Value

ColumnRowGroup

=Fields(Parameters!ColumnGroupParam.Value).Value

18. In den Textboxen werden die gleichen Expressions wie in der „Group on“ – Expression verwendet:

TextboxName

Expression

ParentRowGroup

=Fields(Parameters!ParentRowGroupParam.Value).Value

ChildRowGroup

=Fields(Parameters!ChildRowGroupParam.Value).Value

ColumnRowGroup

=Fields(Parameters!ColumnGroupParam.Value).Value

Der Bericht kann nun nach verschiedenen Kriterien gruppiert werden.

Teilen auf

Newsletter Anmeldung

Abonnieren Sie unseren Newsletter!
Lassen Sie sich regelmäßig über alle Neuigkeiten rundum ORAYLIS und die BI- & Big-Data-Branche informieren.

Jetzt anmelden