Top Banner

of 23

SSRS Report

Apr 03, 2018

Download

Documents

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
  • 7/28/2019 SSRS Report

    1/23

    Building and deploying basic reports

    If ever there was job for "real" developers to shuffle to their juniors, it is building reports.

    It's not real development anyway; it's more like glorified formatting. Besides, the esoterictools that you use to build reports try to provide an abstraction layer, which often

    prevents you from having any real control over the report. I've heard all these argumentsbefore. If this sounds like a conversation you've had by the water cooler, then I invite youto take a closer look at SQL Server 2005 Reporting Services (SSRS).

    SSRS 2005 is the latest version of SQL Reporting Services, and ships with all versions of

    SQL Server 2005. SSRS allows you to quickly and easily create reports from multiple

    database sources. The finished reports can be presented directly from the reportingservices website, or they can be displayed in your web- or Windows-based applications.

    Reports can be exported to multiple formats, including comma delimited text, XML,

    portable document format (pdf) and Microsoft Excel.

    This article is the first of four parts, which will provide in-depth coverage of SQL Server2005 Reporting Services:

    Part 1 covers the basics of the SSRS. It demonstrates how to build quick, simple

    reports and will familiarize you with the basic Report Designer environment

    Part 2 will cover use of custom functions, aggregate functions, sub-reporting, the

    matrix control, drill-downs, and sorting.

    Part 3 will take an in-depth look at the charting control

    Part 4 digs into the actual Report Definition Language (RDL) and the new Report

    Builder tool.

    Installing and configuring Reporting Services

    After much debate, we decided that full installation and configuration details wereoutside the scope of an article focused on how to build basic reports using SSRS,

    especially as there are already several online resources that treat this area in detail. See,

    for example:

    http://msdn2.microsoft.com/en-us/library/ms143736.aspx

    and

    http://www.awprofessional.com/articles/article.asp?p=357694&seqNum=1&rl=1

    Well worth reviewing are the details in the latter on the need to install SSL on any

    machine hosting SSRS.

    ---Editor's installation notes---In order to test the reports in this article, I went through a single-machine installation on

    Windows XP (meaning that SQL Server 2005, Reporting Services, and much more, are

    http://msdn2.microsoft.com/en-us/library/ms143736.aspxhttp://www.awprofessional.com/articles/article.asp?p=357694&seqNum=1&rl=1http://msdn2.microsoft.com/en-us/library/ms143736.aspxhttp://www.awprofessional.com/articles/article.asp?p=357694&seqNum=1&rl=1
  • 7/28/2019 SSRS Report

    2/23

    all installed on my poor laptop). Since I didn't install SSRS when I installed SQL Server

    2005 (I didn't have IIS installed at the time), I had to first install IIS 5.1, and then

    Reporting Services (from the SS2005 disks). I then jumped immediately into ReportingServices Configuration Manager tool (All Programs SQL Server 2005 Configuration

    tools). The left panel acts as a sort of checklist of items to configure:

    All went well until the Database Setup. Because I had not installed SSRS at the same

    time that I installed SQL Server, the ReportServer and ReportServerTempDB were not

    created by default. These databases hold all the report definitions and reporting serverconfiguration information. Connecting to SQL Server using Service Credentials, the

    databases appeared to be created, but I received an error suggesting that I didn't have

    permissions to perform the requested task, and a red cross remained next to the Database

    Setup icon. This had me stumped for a while eventually I appeared to solve it by

    hopping to the Server Status section, stopping the Report Server, opening SSMS anddeleting both the ReportServer and ReportServerTempDB databases, and then

    restarting the Report Server and trying again! Even though I swear this didn't work thefirst time I tried it, it seemed to do the trick the second time (while I was on the phone

    moaning to Steve that I couldn't get it to work!). However, I'm still not clear why I had

    the problem in the first place or why it suddenly went away.

  • 7/28/2019 SSRS Report

    3/23

    This wasn't quite the end of my problems. Installing SSRS creates two new virtual

    directories under the default website on IIS. By default, they are named Reports and

    ReportServer. The ReportServer site hosts a web service for running and managingreports. The Reports site allows you upload reports from a browser and run reports over

    the web. When I tried to navigate to http://localhost/ReportServer I received the

    following error: "Failed to access IIS metabase". Fortunately, the information on the errorpage is quite useful (for a change) and this, coupled with a quick Google search, led me

    to grant access to the metabase to the ASPNET user account by executing the following

    from the directory housing the aspnet_regiis executable(WINDOWS\Microsoft.NET\Framework\v2.0.50727, in my case):

    spnet_regiis -ga ASPNET

    This did the trick, and I was up and running. I received some raised eyebrows here when

    I proposed to install SSRS. It made my long-suffering sys admin team particularly

    nervous. The 2000 version of SSRS seems to have a very bad reputation among the RedGate team, both as a performance nightmare, and in one case for "completely

    annihilating" a developer's machine. However, the above slight quirks aside, the SSRS

    2005 experience seems pretty smooth and I've had no real performance, or other, issues.So far.

    -----End of Editor's note----

    Once you've completed the installation and configuration process, the first thing to do is

    download the code file for this article (see the Code Download link in the speech bubbleto the right of the article title). The code file contains a sample Visual Studio project and

    a SQL Script for creating the ReportDemo database. You will need this database if you

    want to follow the examples in this series of articles so go ahead and create the databaseusing the ReportingDemoDatabaseScript.sql script or, alternatively, by restoring the

    provided ReportingDemo.bak file.

    If you are using SQL Server Authentication on your SQL Server you will also need to set

    up a login with permissions to the ReportDemo database (for the examples, I set up alogin called DemoUser as a DBO on my ReportDemo database).

    Using the Report Wizard

    There are two ways to create SSRS Reports. You can build the report manually, or youcan use the Report Wizard to give yourself a head start. For this first report, we are going

    to take advantage of the wizard. Start a new Business Intelligence project in Visual

    Studio 2005. Then, from the menu, select Project > Add New Item. Select the Report

    Wizard option and call the file "FirstReportWZ.rdl". ClickAdd. ClickNext on the

    Welcome screen and this will bring you to the Select the Data Source screen:

  • 7/28/2019 SSRS Report

    4/23

    Select the New data source radio button and give the data source a name. SelectMicrosoft SQL Server as the type.

    Note:

    Use of theShared data source option is actually a better option in most cases but, for the

    sake of this example, we will just create a new data source. We're going to set up ashared data source later in this article.

    Click the Edit button to bring up the Connection Properties dialog:

  • 7/28/2019 SSRS Report

    5/23

    Enter or select a server name. The default is to log on using Windows Authentication. If

    you are using SQL Server Authentication, choose that setting, and enter the username

    and password. Finally, select a database, in this case ReportingDemo. Make sure you

    test the connection before you clickOK.

    Next up is the Design the Query screen. You can use the Query Builder by clicking the

    button at the top left, but in this case simply enter "Select * From Customer" into the

    Query string text box and click Next. On the Select the Report Type simply select the

    type you prefer (tabular or matrix) and hit Next.

    This brings up the Design the Table screen:

  • 7/28/2019 SSRS Report

    6/23

    Select State in the Available fields box and click the Group button. This will group thedata in the result set by State. Select Next. On the Choose the Table Layout page, select

    the Stepped option and check the Enable Drilldown checkbox. On the next screen,

    choose a style for your report (I chose Ocean) and clickNext.

    This brings up the final screen, Completing the Wizard:

  • 7/28/2019 SSRS Report

    7/23

    It shows a summary of your report options, and gives you an opportunity to rename thereport and to preview it. ClickFinish to end the wizard.

    You should be shown the report in the standard Report Designer:

  • 7/28/2019 SSRS Report

    8/23

    There are three tabs: Data, Layout and Preview. You should be on the Layout tab. Clickon the Preview tab to view the report. Since this report doesn't take any arguments, it will

    run as soon as you click on the tab.

  • 7/28/2019 SSRS Report

    9/23

    Use the +/- symbols next to the State abbreviations to expand and collapse the groupingof the report.

    Manual report creation

    The previous section, while perhaps overly simplistic, does show you how to get a report

    up and running with zero code and zero property setting. Obviously, such reports will not

    meet most development requirements, but do not discount this option as a starting pointfor more complicated reports. Once you've created a report with the Report Wizard, you

    are free to make any modifications to it.

    In this section, we are going to create a more realistic report from scratch, including howto create and use a shared data source object, stored procedures, and how to format yourreport, set report properties and use report parameters.

    Creating a shared data source

    Before we start the report, we are going to build a shared data source i.e. a data source

    that is common to, and can be used by, all of the reports on a reporting server. While each

  • 7/28/2019 SSRS Report

    10/23

    report can contain its own connection information, it is good practice to use shared data

    sources, as it will save you a lot time and headaches. This way, you only have to set the

    connection information once. For example, let's say your company has Development,Test and Production environments. If you put the connection information into each

    report, you will have to change it each time when you publish to Development, Test and

    Production. If you use a shared data source, you still have to set up a data source objectfor each of three environments, but you can simply publish the report to each

    environment, and they will automatically use the connection information associated with

    that environment.

    From the menu select Project > Add New Item > Select Data Source . On the Generaltab, call the data source "ReportsDB". Leave the Type as Microsoft SQL Server. Click

    the Edit button on the right, and enter the connection information for Reporting Demo, as

    before. ClickOKon the Shared Data Source screen and the data source is done.

    Add a new report

    From the menu select Project > Add New Item. Select Report and name it

    "FirstReportMan.rdl". A new report will be added to the project, and the ReportDesigner will open at the Data tab. At this point, let's take a closer look at the Report

    Designer tool. At the top of the Report Designer window are three tabs: Data, Layoutand Preview. The Data tab is used to build data sources for your report. The Layout tab

    is the physical report designer where you set up the header, the footer and the data

    presentation of the report. The Preview tab allows you to actually run the report fromVisual Studio 2005, without having to publish it to a report server first. If your report

    takes parameters, the Preview tab will ask you to fill them out before it runs the report.

    The first thing we need to do is get data into our report. At the top of the Data tab choose from the dropdown list:

  • 7/28/2019 SSRS Report

    11/23

  • 7/28/2019 SSRS Report

    12/23

    Name the dataset "ReportData", and select the ReportsDB data source from thedropdown. Select StoredProcedure as the command type, and enter

    "spr_CustomerSelectAll" in the query string box. ClickOKto close the dialog.

    Note:

    spr_CustomerSelectAll is a very simple, parameter-less stored procedure that selects allof the columns from the Customer table. The source code is included in the

    ReportingDemoDatabaseScript.sql script with the code download.

    Test the dataset by clicking on the big red exclamation point at the top of the report

    designer. This executes the query and displays the results. You can repeat these steps ifyou wish to add multiple datasets to your report.

    Setting up the report display

    Next, switch to the Layout tab. This is where you actually build the report display. Start

    by dragging a table from the Toolbox, onto the Body section of the report. By default, the

  • 7/28/2019 SSRS Report

    13/23

    table shows a header row at the top, a detail row in the middle and a footer row at the

    bottom. You can add additional columns to the table by right-clicking on one of the

    columns and selecting one of the two Insert Column options.

    Click on the Datasets tab under Toolbox on the left-hand side of the Visual Studio

    environment. You should see the ReportData dataset. Expand it, select FirstName anddrag it to the first cell of the body row of the table. This will display the First Name field

    in the first column. Now put the LastName in the second column, and the

    CustomerStatus in the third:

    Note that, when you drag the column FirstName into the body row of the table, SSRS

    make a guess as to what to call the row. It calls it "First Name". You can click on thePreview tab to view the report.

    Adding formatting

    OK, so we have a basic, very plain, report. Let's add some formatting to make it look

    good. Let's add the DateOfBirth column to the table. You can expand and shrink the size

    of the columns by highlighting and dragging:

  • 7/28/2019 SSRS Report

    14/23

    If you wish to get rid of the footer row of the table and then click on any field in the table.You will see a grey box surround the table. Right-click on the icon at the beginning of the

    body row and then click the Table Footer option to deselect it.

    The table header is next. To format all the cells in the header in the same way, click anddrag over all the cells to select them. Open the Properties window and set background

    color, font, and so on.

  • 7/28/2019 SSRS Report

    15/23

    Note, however, that if you wish to change the justification of the text or the size, then youdo so using the main menu at the top, not via the properties window. Again, you can click

    on the Preview tab to view the report.

    Add a report header

    The table already has a header, but the report can also have a header and footer. Report

    headers and footers appear on every page of the report. Put the Report Designer in

    Layout mode and select Report > Page Header from the menu. A new band labeled

    Page Header appears on the report above the body. Drag a text box onto the header andclick directly on it. Type "My First Report", not in the Properties window, but right on

    the control.

  • 7/28/2019 SSRS Report

    16/23

    To adjust the text style and size of your heading, highlight the text box and use the optionfrom the top menu.

    Formatting

    Each field can have formatting. Let's deal with that ugly Date of Birth field. The timeinformation is superfluous, so let's format the date properly. Right-click on the cell that

    contains the date of birth, and choose Properties. Next, select the Format tab.

  • 7/28/2019 SSRS Report

    17/23

    Click on the second button (labeled "") to the right of the Format code field. When

    the dialog opens, use the standard options. Select Date in the list on the left, then choosethe sample date format you want on the right. ClickOKto close the dialog.

  • 7/28/2019 SSRS Report

    18/23

    ClickOKto close the Properties window and then click on the Preview tab to view thereport.

    Setting report properties

    To access the report properties, you need to be on the Layout tab of the ReportDesigner. When you click on this tab, a new menu item, Report, activates. This menu

    gives you options for turning on and off the report header and footer sections (as we haveseen), adding embedded images, setting report properties, and setting report parameters.

    Setting up the report print settings is not intuitive, compared to other products. In the

    report Layout tab you see your report with a ruler across the top. That ruler is set up ininches. A standard sheet of paper is 8.5 x 11 inches. The default setting in SSRS is to

    have a 1-inch margin all the way around the content area. So, at 8.5 inches wide with a 1-

    inch margin on the left and another on the right, you have 6.5 inches for content. Any

    more, and the content beyond the 6.5 inches will spill over onto a second sheet of paperwhen printed. It will not automatically shift to Landscape.

    To get Landscape reports, you have to make the proper report settings. Navigate to the

    Layout tab of the Report Designer. From the Report menu select Report Properties.

    Switch to the Layout tab of the dialog box. To switch to Landscape printing, you need tochange Page width to 11in and the Page height to 8.5in.

  • 7/28/2019 SSRS Report

    19/23

    On the same Layout tab, you can also get up your report to display the data in multiple

    columns, and you can control the margins. By default, all the margins are set at 1 inch.Remember, if your report width, plus the right and left margins, is greater than the width

    of the printer, you will get spill-over when you print out your report.

    Using parameters

    There are two ways to add parameters to your reports. The first is to use parameters in thequeries in your data sources. The second is to set up parameters through the Report

    Parameters dialog box. We will do both.

    Query parameters

    First, we will set up parameters using a data source query. Navigate to the Data tab, and

    click the "" button right next the Dataset dropdown box. The Dataset dialog boxopens and allows you to edit the query for the dataset. Change the Query string from

    "spr_CustomerSelectAll" to "spr_CustomerSelectByState".

    Note:

    spr_CustomerSelectByState accepts a parameter called StateCD that allows us to filterthe data from the Customer table by State. Again, the source code is included in the

    ReportingDemoDatabaseScript.sql script with the code download.

  • 7/28/2019 SSRS Report

    20/23

    ClickOKand then run the query by clicking the red exclamation point (!) on the Data

    tab toolbar. You will be prompted to enter a parameter value for StateCD (the State

    code). Enter "CA" and clickOK. The query should return all the customers that live inCalifornia.

    Switch to the Preview tab. Instead of the report just running, there should be a place foryou to enter a value for the "StateCD" and run the report. Enter "CA" and click the View

    Report button. You should see your report filtered by state.

    To edit the parameters, or to add new ones, switch to the Layout tab of the Report

    Designer and open the Report Parameters dialog from the Report menu. First, we are

    going to make the "State code" prompt a little more friendly. Select StateCD in theParameters list box then, in the Parameters Properties box, change the prompt to read

    "State". In the Available values section enter "California" and "CA" on the first line.

    Enter "Louisiana" and "LA" on the second line.

    This will make the prompt for "State value" into a dropdown. You can also buildadditional datasets into your report, and use the values in those datasets as criteria for

    dropdowns.

  • 7/28/2019 SSRS Report

    21/23

    Report parameters

    Now let's add a parameter that is not used in a query. Click the Add button in the Report

    Parameters dialog from the Report menu. Give the new parameter the name"ReportTitle". Its Data type should be String. Set the Prompt to "Report Title". Click

    OKand close the dialog box.

    Drag a new text box onto the report header area. Right-click on it and choose the

    Expression option. In the Edit Expression dialog select Parameters. Double-click on

    the ReportTitle parameter. This text box will now display the value you pass to the

    Report Title parameter.

    Switch to the Preview tab and try it out.

    Publishing your reports

  • 7/28/2019 SSRS Report

    22/23

    Up to now, you have been running your reports in the Visual Studio 2005 environment

    but, to make them useful, you must publish them to a report server. The easiest way to do

    this is to have Visual Studio publish your reports.

    Start by right-clicking on Project in the Project Explorer and choose Properties.

    Set TargetServerURL to the URL of your report server. Use the TargetReportFolder

    property to set up a folder for your reports. If the folder does not exist, the Publisher will

    create it for you. The other key thing to pay attention to here is the

    OverwriteDataSources property. When this property is set to "True", it will

    automatically copy over all your data source objects when you publish. When set to

    "False", it will copy any new data source objects, but it will not overwrite existing ones.

    This is important when dealing with development, test and production servers. You canpublish a set of data source objects to each server, pointed at the correct database, and

    never have to worry about what database your reports are hitting in each environment.

    From the Build menu select Deploy Solution. This will publish the project to theselected folder on your report server. You can also deploy individual reports by right-

    clicking on the file in the Solution explorer and selecting Deploy.

    Once your report has been published, you can access and run it on your server through

    the browser at http:/// . From the Home page, youshould be able to find the folder you published to, with the reports in it. Select a report to

  • 7/28/2019 SSRS Report

    23/23

    run. At the top of the page you can enter any values for report parameters, and then run

    the report. From here, you can also print or export the report.

    Wrap up

    That's everything you need, to build a very basic report. In the next articles we'll get intoadding some more advanced options such as drill-downs, sorting and custom functions.

    Stay tuned.

    Steve Joubert continues this introductory article in Beginning SQL Server 2005Reporting Services Part 2. If you enjoyed this article, make sure you seeTen Common

    SQL Server Reporting Services Challenges and Solutions and other Reporting Services

    articles in ourReporting Services section.

    Easier Report Development. In this article, Steve Joubert offers a great introductory

    guide to creating reports using SSRS. However, as the complexity of your reports

    increases, so does the SQL that underpins them. Create reports quickly and accuratelyusing SQL Prompt, Red Gate's powerful code completion tool.

    http://www.simple-talk.com/sql/reporting-services/beginning-sql-server-2005-reporting-services-part-2/http://www.simple-talk.com/sql/reporting-services/beginning-sql-server-2005-reporting-services-part-2/http://www.simple-talk.com/sql/reporting-services/ten-common-sql-server-reporting-services-challenges-and-solutions/http://www.simple-talk.com/sql/reporting-services/ten-common-sql-server-reporting-services-challenges-and-solutions/http://www.simple-talk.com/sql/reporting-services/ten-common-sql-server-reporting-services-challenges-and-solutions/http://www.simple-talk.com/sql/reporting-services/http://www.red-gate.com/products/SQL_Prompt/index.htm?utm_source=SimpleTalk&utm_medium=article&utm_content=PromptNoteJoubert&utm_campaign=sqlprompthttp://www.simple-talk.com/sql/reporting-services/beginning-sql-server-2005-reporting-services-part-2/http://www.simple-talk.com/sql/reporting-services/beginning-sql-server-2005-reporting-services-part-2/http://www.simple-talk.com/sql/reporting-services/ten-common-sql-server-reporting-services-challenges-and-solutions/http://www.simple-talk.com/sql/reporting-services/ten-common-sql-server-reporting-services-challenges-and-solutions/http://www.simple-talk.com/sql/reporting-services/http://www.red-gate.com/products/SQL_Prompt/index.htm?utm_source=SimpleTalk&utm_medium=article&utm_content=PromptNoteJoubert&utm_campaign=sqlprompt