Top Banner
Saves the day. Trainingsunterlagen SSRS Rainer Stropek software architects gmbh http://www.timecockpit.com [email protected] @rstropek SQL Server Reporting Services Web Mail Twitter
92

SSRS Training

Feb 12, 2017

Download

Documents

doandieu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: SSRS Training

Saves the day.

Trainingsunterlagen

SSRS

Rainer Stropeksoftware architects gmbh

http://www.timecockpit.com

[email protected]

@rstropek

SQL Server Reporting Services

Web

Mail

Twitter

Page 2: SSRS Training

Further Readings

Reporting Services (SSRS) in MS Technethttp://technet.microsoft.com/en-us/library/ms159106.aspx

SQL Server Reporting Services Team Bloghttp://blogs.msdn.com/b/sqlrsteamblog/

SQL Server Data Tools Team Bloghttp://blogs.msdn.com/b/ssdt/

Videos about SSRS on Channel9http://channel9.msdn.com/search?term=reporting+services&type=All

Book: Professional SQL Server 2012 Reporting ServicesLink to Amazon

Page 3: SSRS Training

Resources

SQL Server 2012 DownloadsExpress Ed.: http://www.microsoft.com/en-us/download/details.aspx?id=29062

Trial Ed.: http://www.microsoft.com/en-us/download/details.aspx?id=29066

SQL Server Data Tools BI for Visual Studio 2012http://www.microsoft.com/en-us/download/details.aspx?id=36843

SQL Server 2012 Report Builderhttp://www.microsoft.com/en-us/download/details.aspx?id=29072

AdventureWorks Sample DatabasesRecommended install: AdventureWorks, AdventureWorksDW

http://msftdbprodsamples.codeplex.com/

Sample code from book Professional SQL Server 2012 Reporting Serviceshttp://www.wrox.com/WileyCDA/WroxTitle/Professional-Microsoft-SQL-Server-2012-Reporting-Services.productCd-1118101111.html

Page 4: SSRS Training

IntroductionSQL Server Reporting Services Basics

Page 5: SSRS Training

What is SSRS?

Server components that execute reportsGet data from data source

Render report to a certain target format (e.g. PDF, Excel, HTML, etc.)

Web portal for managing reportsManagement tasks (upload report, schedule report execution, etc.)

Trigger report execution incl. interaction (drill down, links between reports, etc.)

SharePoint integration

APIWeb services

URL-based API

.NET components for WinForms and ASP.NET

Page 6: SSRS Training

Managing ReportsReport Manager

http://myserver/Reports

Manage SSRS ItemsReports

Data Sources

Subscriptions

Users and permissions

Run reportsServer-based reporting (as

opposed to local mode and

RDLC)

Page 7: SSRS Training

Demo

Report Manager A lap around SSRS Report Manager

Page 8: SSRS Training

Config Manager

Configure server-wide

settings for SSRS

For system administrators

See also Technet

Page 9: SSRS Training

Report Builder

Office-like UI

Report creation front-end

for end users

3rd party alternative

availableCompatibility on RDL-level

Image source (lower image): Technet

Page 10: SSRS Training

SSDTSQL Server Data Tools – BI

aka SQL Server BI Studio

Visual Studio extensionReport Designer

Report creation UI for

developers and power

users

Page 11: SSRS Training

Demo

Report Creation

Report Builder

Visual Studio with SSDT

A lap around SSRS Report Builder

and SSDT

Page 12: SSRS Training

Web ServicesManage SSRS and render reports

Set of SOAP web serviceshttp://myserver/reportserver/

ReportExecution2005.asmx

http://myserver/reportserver/Rep

ortService2010.asmx

Detailed reference see

Technet

Page 13: SSRS Training

Report ViewerWinForms/WPF und ASP.NET

Report viewer controlC:\Program Files (x86)\Microsoft

Visual Studio 10.0\

ReportViewer

WinFormsCan be used in WPF, too (see

MSDN)

Detailed reference see

MSDN

Page 14: SSRS Training

URL Access

Launch reports using URLDetails see MSDN, chapter URL

Access (SSRS)

Detailed reference see

Technethttp://localhost/ReportServer/Pages/ReportViewer.aspx?

/AdventureWorks%202012/Employee_Sales_Summary

&rs:Command=Render

Page 15: SSRS Training

InstallationSSRS Installation Basics, Server Architecture

Page 16: SSRS Training

Installation

Fully integrated in SQL Server installation

Native Mode or SharePoint ModeSharePoint mode not covered here

Windows service

Support for multiple

instances

Page 17: SSRS Training

Editions

Developer EditionFull feature set at a reduced price

For non-production use only!

Can be installed on client OS, too

Different editions for

production use

Source of feature list tables: Turley et al. Professional Microsoft SQL Server 2012 Reporting Services. Wiley.

Page 18: SSRS Training

Server Architecture

Note: SSRS does not use IISIIS and SSRS can co-exist on a

single server

Security SublayerKerberos is preferred (Windows

Authentication)

Basic Authentication is possible in

combination with TLS/SSL

Highly extensibleDetailed reference see Technet

Image source: Technet

Page 19: SSRS Training

Data Sources and Rendering Extensions

Data SourcesMicrosoft SQL Server

Microsoft SQL Server Analysis Services

OLE DB data sources

ODBC data sources

Oracle

XML data sources

Etc. (details see Technet)

Rendering ExtensionsCSV

Excel

Word

HTML

PDF

TIFF

XML

Atom

Details see Technet

Page 20: SSRS Training

Demo

Sources, Rendering

Adding different Data

Sources

Rendering reports into

different formats

Page 21: SSRS Training

Databases

ReportServerMain data store for SSRS

ReportServerTempDBSession and caching data

Detailed reference see

Technet

Page 22: SSRS Training

Report DesignCreating Reports with SSRS

Page 23: SSRS Training

Report Elements

Data Connection aka Data SourceConnection to the underlying data source (e.g. SQL Server)

Shared or Embedded Data Sources

Data SetData returned from the data source

Shared (i.e. cached) or Embedded Data Sets

Report ParametersUsed to filter and control the report data

Also used for passing parameters in links (interactivity)

Page 25: SSRS Training

Demo

Create a Report

Create a Data Source

Create a Data SetSELECT * FROM

vSalesByTimeAndTerritory

Create a Matrix

Format the report

Publish the reporthttp://myserver/reportserver

Using the Matrix Wizard

Page 26: SSRS Training

DemoCREATE view [dbo].[vSalesByTimeAndTerritory] asselect top 100 percent

d.CalendarYear, d.CalendarQuarter, d.MonthNumberOfYear, d.EnglishMonthName MonthName, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry, sum(s.SalesAmount) SalesAmt, sum(s.OrderQuantity) OrderQty, sum(s.Freight) Frieght

from FactResellerSales s inner join DimDate d

on s.OrderDateKey = d.DateKeyinner join DimSalesTerritory st

on s.SalesTerritoryKey = st.SalesTerritoryKeygroup by

d.CalendarYear, d.CalendarQuarter, d.MonthNumberOfYear, d.EnglishMonthName, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry

order byd.CalendarYear

, d.CalendarQuarter, d.MonthNumberOfYear, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry

Prerequisites

Create a view with revenue dataAdventureWorksDW2012 DB

Page 27: SSRS Training

DemoMatrix Wizard

Page 28: SSRS Training

Demo

Create a Report

Build matrix report manually

Group property windowCorrect sorting

Property paneAvailable for all report items

Report Formatting

Manual matrix creation

Page 29: SSRS Training

Table and Matrix

TablesStatic columns

Dynamic rows

MatrixDynamic columns

Dynamic rows

TablixUnder the hood, everything is a tablix

You can change from table to matrix

and back as you like

Image Source: MSDN

Page 30: SSRS Training

Report Structure

Page 31: SSRS Training

Tablix StructureVisual Indicators

Page 32: SSRS Training

Formatting

Ribbon

Property Window

Property pane

Page 33: SSRS Training

FormattingExpressions in property pane

Use expressions to add

dynamic formatting

Page 34: SSRS Training

Formatting

Tip: Use formulas for

property values for

dynamic formatting

Page 35: SSRS Training

Grouping

Defining groupsGrouping pane

Drag & drop columns

Fine-tune grouping

properties with group

property windowE.g. sorting

Page 36: SSRS Training

Demo

Interactive Reports

Interactive Sorting

Drill-Down Reports

Page 37: SSRS Training

Sorting

Sort details or groups

Interactive sortingAdded to a cell in column

headers

Can sort groups or details

Page 38: SSRS Training

Drill-Down ReportsAdding Interactivity

Toggle visibility of a group

Image source: Technet

Page 39: SSRS Training

Data AccessDetails about data access

Page 40: SSRS Training

Data Sources

Represent a connection to a database

Embedded data sourceOnly available for a single report

Can be used by multiple Data Sets

Shared data sourcesAvailable for multiple reports

Often easier to maintain (e.g. after moving to a new DB server)

Tip: Prefer Shared Data SourcesSimplifies maintenance

Page 41: SSRS Training

Demo

Data Sources in VS

Page 42: SSRS Training

Deployment in VSDeployment settings

Page 43: SSRS Training

Data Sources

Shared or embedded

TypesSQL Server, Oracle, etc.

Connection stringNote: Can be defined using an

expression

CredentialsTip: Prefer Windows Authentication

Page 44: SSRS Training

Data Sets

SQL SELECT StatementQuery type Text

Query Designer available

Full table

Stored procedure

Page 45: SSRS Training

Queries

Query as textT-SQL

Query BuildersNote: Query builders in VS and

Report Builder are different

Detailed reference see Technet

Query builder in Visual

Studio

Query builder in Report

Builder

Page 46: SSRS Training

Demo

Complex Data Set

Complex query with

parametersIncluding NULL handling

Page 47: SSRS Training

Queryselect year(soh.OrderDate) as OrderYear,

month(soh.OrderDate) as OrderMonth,p.ProductLine,p.Name as ProductName,st.Name as TerritoryName,sum(sod.OrderQty * sod.UnitPrice) as Revenue

from Sales.SalesOrderHeader sohinner join Sales.SalesOrderDetail sod

on soh.SalesOrderID = sod.SalesOrderIDinner join Production.Product p

on sod.ProductID = p.ProductIDinner join Sales.Customer c

on soh.CustomerID = c.CustomerIDinner join Sales.SalesTerritory st

on c.TerritoryID = st.TerritoryIDwhere year(soh.OrderDate) = @OrderYear

and (p.ProductLine=@ProductLine or @ProductLine is null)and (p.ProductID = @ProductID or @ProductID is null)and (st.TerritoryID = @TerritoryID or @TerritoryID is null)

group by year(soh.OrderDate),month(soh.OrderDate),p.ProductLine,p.Name,st.Name

Page 48: SSRS Training

Query

Page 49: SSRS Training

Parameters

Page 50: SSRS Training

ParametersList of values

Get LOV from Data Set

Detailed reference see

Technet

Page 51: SSRS Training

ParametersList of values

Null handling in LOVs

Page 52: SSRS Training

ParametersList of values

Cascaded Parameter LOVsSSRS cares for auto-refreshing of

LOVs

Detailed reference see

Technet

Page 53: SSRS Training

Data Set Filters

Filtering done by SSRS, not

at the DB levelCan still use parameters

Used for data set caching

with long-running

queries

Page 54: SSRS Training

Data Set Best Practices

Use shared data sources instead of embedded ones

Use shared data sets for reusing complex queries

Filter on the DB-level whenever possibleReduces network traffic

Reduces load on SSRS servers

Page 55: SSRS Training

Advanced ReportingAdvanced feature for report building

Page 56: SSRS Training

DemoCREATE view [dbo].[vResellerSalesProdTerrDate] asselect top 100 percent

d.CalendarYear, d.CalendarQuarter, d.MonthNumberOfYear, d.EnglishMonthName MonthName, pc.EnglishProductCategoryName Category, sc.EnglishProductSubcategoryName Subcategory, p.EnglishProductName ProductName, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry, sum(s.SalesAmount) SalesAmt, sum(s.OrderQuantity) OrderQty, sum(s.Freight) Frieght

from FactResellerSales s inner join DimDate d on s.OrderDateKey = d.DateKeyinner join DimProduct p on s.ProductKey = p.ProductKeyinner join DimProductSubcategory sc on p.ProductSubcategoryKey = sc.ProductSubcategoryKeyinner join DimProductCategory pc on sc.ProductCategoryKey = pc.ProductCategoryKeyinner join DimSalesTerritory st on s.SalesTerritoryKey = st.SalesTerritoryKey

group byd.CalendarYear

, d.CalendarQuarter, d.MonthNumberOfYear, d.EnglishMonthName, pc.EnglishProductCategoryName, sc.EnglishProductSubcategoryName, p.EnglishProductName, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry

order byd.CalendarYear

, d.CalendarQuarter, d.MonthNumberOfYear, pc.EnglishProductCategoryName, sc.EnglishProductSubcategoryName, p.EnglishProductName, st.SalesTerritoryGroup, st.SalesTerritoryRegion, st.SalesTerritoryCountry

Prerequisites

Create a view with revenue dataAdventureWorksDW2012 DB

Page 57: SSRS Training

Hands-On LabSELECT CalendarYear, CalendarQuarter, MonthNumberOfYear,

MonthName, Category, Subcategory, ProductName, SalesTerritoryGroup, SalesTerritoryRegion, SalesTerritoryCountry, SalesAmt, OrderQty, Frieght

FROM vResellerSalesProdTerrDate

Create this report and format it

appropriately

Page 58: SSRS Training

Built-in Aggregation Functions

Note: If you do not specify an aggregation function although there are

multiple values, the first value of the group is displayed

Source: MSDN

Page 59: SSRS Training

Demo

ScopesAggregate functions and scopes

Page 60: SSRS Training

Scopes

Use Lists to combine report

items and data regions

List grouped

by OrderYear

Name of the

Data Set

Name of the

details grouping

of year list

Page 61: SSRS Training

ScopesReport Definition

Page 62: SSRS Training

Sub-Reports

Combine multiple reportsPass parameters to sub report

Avoid if possible, use DWH-approach insteadHigh load on DB servers

Rendering problems

Detailed reference see Technet

Image source: Technet

Page 63: SSRS Training

Text Boxes

Detailed reference for

formatting textboxes see

Technet

Single-value expression

Range of textMultiple expression placeholders

Range of text can be individually

formatted

Can contain HTML tags

Page 64: SSRS Training

Document Maps

Detailed reference see

Technet

Page 65: SSRS Training

LinksDrill-through reports

Navigate to a different

reportAka Drill-Through Reports

Parameters for filtering can be

passed

Navigate to bookmarks

Navigate to websitesTip: You can build URL using an

expression

Page 66: SSRS Training

Recursive Parents

Tip: Use Level() function

Detailed reference see

Technet

DimEmployee

Page 67: SSRS Training

Charts

Page 69: SSRS Training

Defining Chart

Image source: Technet

Page 70: SSRS Training

Defining Chart

Page 71: SSRS Training

Chart Axis

Page 72: SSRS Training

Chart Tips & Tricks

Configure axis

Use Color property to change

the color of a data series

Add tooltips to data values

Page 73: SSRS Training

Chart Tips & Tricks

Change distance between

chart series

Additional tips & tricks see

Formatting a Chart in

Technet

Page 74: SSRS Training

SparklinesChart in a nested data region

Detailed reference see

Technet

Page 75: SSRS Training

Gauges

Page 76: SSRS Training

Demo

Data VisualizationIndicators and Gauges combined

Page 77: SSRS Training

Gauge Demowith AggregatedResellerSales as (

select frs.EmployeeKey,dd.CalendarYear,dd.CalendarQuarter,sum(frs.SalesAmount) as TotalSalesAmount

fromdbo.FactResellerSales frsinner join dbo.DimDate dd on

frs.OrderDateKey = dd.DateKeygroup by frs.EmployeeKey,

dd.CalendarYear,dd.CalendarQuarter

)select ars.EmployeeKey,

ars.CalendarYear,ars.CalendarQuarter,ars.TotalSalesAmount,fsq.SalesAmountQuota,ars.TotalSalesAmount / fsq.SalesAmountQuota as Ratio

from AggregatedResellerSales arsfull join dbo.FactSalesQuota fsq on

ars.EmployeeKey = fsq.EmployeeKeyand ars.CalendarYear = fsq.CalendarYearand ars.CalendarQuarter = fsq.CalendarQuarter

Sample Query

Page 78: SSRS Training

Gauge DemoIndicators and Gauge combined

=Sum(Fields!TotalSalesAmount.Value) /

Sum(Fields!SalesAmountQuota.Value)

Page 79: SSRS Training

ExpressionsSSRS Expression Language

Page 80: SSRS Training

Expression Types

Simple Expressions

Reference to a single item in a

built-in collection (e.g. field)

Complex Expressions

Contains references to multiple

items, operators, functions, etc.

Page 81: SSRS Training

Expression Reference

Data Typeshttp://technet.microsoft.com/en-us/library/dd255246.aspx

Built-in functionsSystem.Math

System.Convert

VB Runtime Library

Built-in aggregate functionshttp://technet.microsoft.com/en-us/library/dd255275.aspx

Built-in collectionshttp://technet.microsoft.com/en-us/library/dd255235.aspx

Page 82: SSRS Training

Add Custom Code

Use VB to embed custom codeReport properties/Code

Detailed reference see Technet

Alternative: Custom

AssembliesDetailed reference see Technet

Page 83: SSRS Training

Expression Language Tips & Tricks

Use vbCrLf to add line break in

string constant

Use Join function to concat

multiple values (e.g. multi-valued

filter, result of LookupSet)

Use Lookup and LookupSet to

combine multiple data setsSee also Blog post

Use Switch instead of Iif to

combine multiple conditions

First and Last are useful in page

header/footerUse First(ReportItems("LastName").Value) to get

first value on page

Use RowNumber to get row

numberAlso useful to control page breaks or zebra

striping

See also Technet

Page 84: SSRS Training

Programming SSRS

Page 85: SSRS Training

Web Services

Add Service References in

Visual Studio

Detailed reference see

Technet

Page 86: SSRS Training

Demo

Web Services

Rendering a report using

web services

Page 87: SSRS Training

Web Services// Prepare report parameter.REService.ParameterValue[] parameters = GetReportExecutionParameters();

// make sure the report either has parameters that are set or has no parameters.if ((_reportHasParameters && parameters.Length != 0) || !_reportHasParameters) {

// Load the report, set the parameters and then render._rsExec.LoadReport(reportItem.Path, historyID);_rsExec.SetExecutionParameters(parameters, "en-us");result = _rsExec.Render(selectedFormat.Name,

devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);

// Make sure there is an output path then output the file to the file system.if (txtOutputFolder.Text != "") {

string fullOutputPath = txtOutputFolder.Text + "\\" + reportItem.Name + selectedFormat.Extension;

FileStream stream = File.Create(fullOutputPath, result.Length);stream.Write(result, 0, result.Length);stream.Close();MessageBox.Show("Report Rendered to: " + fullOutputPath);

}else {

MessageBox.Show("Choose a folder first");}

}else {

MessageBox.Show("No parameters, click Get Parameters button first and then set values.");

}

Rendering a report using

web services

Page 88: SSRS Training

Demo

Report Viewer

Page 90: SSRS Training

Saves the day.

Trainingsunterlagen

Q&A

Rainer Stropeksoftware architects gmbh

[email protected]

http://www.timecockpit.com

@rstropek

Thank your for coming!

Mail

Web

Twitter

Page 91: SSRS Training

is the leading time tracking solution for knowledge workers.

Graphical time tracking calendar, automatic tracking of your work using

signal trackers, high level of extensibility and customizability, full support to

work offline, and SaaS deployment model make it the optimal choice

especially in the IT consulting business.

Try for free and without any risk. You can get your trial account

at http://www.timecockpit.com. After the trial period you can use

for only 0,20€ per user and day without a minimal subscription time and

without a minimal number of users.

Page 92: SSRS Training

ist die führende Projektzeiterfassung für Knowledge Worker.

Grafischer Zeitbuchungskalender, automatische Tätigkeitsaufzeichnung über

Signal Tracker, umfassende Erweiterbarkeit und Anpassbarkeit, volle

Offlinefähigkeit und einfachste Verwendung durch SaaS machen es zur

Optimalen Lösung auch speziell im IT-Umfeld.

Probieren Sie kostenlos und ohne Risiko einfach aus. Einen

Testzugang erhalten Sie unter http://www.timecockpit.com. Danach nutzen

Sie um nur 0,20€ pro Benutzer und Tag ohne Mindestdauer

und ohne Mindestbenutzeranzahl.