SSRS Concepts
Ref:
http://basireddysubbareddy.blogspot.in/2013/08/deploy-ssrs-report-server-project.html
http://basireddysubbareddy.blogspot.in/2013/08/ssrs-some-concepts.html
Deploy SSRS Report Server Project
To deploy Report Server Project, please go through below steps:
1. Go to Report Service Configuration Manager then click on the Report Manager URL tab in order to get Report Server URL.
2. Now click on the Report Manager URL. We will get a empty screen as below:
3. Let us query catalog table of ReportServer Database.
When we design a report, Report Definition Language File (.rdl) is generated whcih is basically a XML file which contains all the information about our report. So when we deploy the report, the .rdl file gets inserted into the our Report Server Database.
5. In both case we will be directed to Project’s Properties Page where we are going to insert our Target Server URL Which is our Report Server Web Service URL.
In my case it is like
6. After click on OK, right click the Project and select Deploy from the context menu.
7. If all fine we will receive Success Message.
8. If here we query our Catalog table of Report Server database we will get results like following.
Here we can see the entries of Our Project and Report.In above result Type 1 means Project and 2 means Report.
If you want to see the XML content, execute following query:
SELECT
[REPORT NAME] = NAME,
[RDL CONTENT] = CAST(CAST(CONTENT AS VARBINARY(MAX)) AS XML)
FROM CATALOG
WHERE TYPE = 2
You will get results like following:
9. Now let us see our report from the browser.Go to Report Manager URL and you will get a screen like below:
10. Now click on StartSSRS and it will show the list of report.In our case it will show only 1 report which is PersonAddresDetails.
11. Now Click on PersonAddresDetails Report and you will get following screen:
Congratulations! Our First SSRS Project is successfully deployed.
1. Go to Report Service Configuration Manager then click on the Report Manager URL tab in order to get Report Server URL.
2. Now click on the Report Manager URL. We will get a empty screen as below:
3. Let us query catalog table of ReportServer Database.
SELECT * FROM CATALOGIt will show below output:
When we design a report, Report Definition Language File (.rdl) is generated whcih is basically a XML file which contains all the information about our report. So when we deploy the report, the .rdl file gets inserted into the our Report Server Database.
4. . Now come back to our SSRS Project. Right Click the Project and click on properties.
Alternatively we can also go from Project Menu.5. In both case we will be directed to Project’s Properties Page where we are going to insert our Target Server URL Which is our Report Server Web Service URL.
In my case it is like
http://bhushan-pc:8080/ReportServer
6. After click on OK, right click the Project and select Deploy from the context menu.
7. If all fine we will receive Success Message.
8. If here we query our Catalog table of Report Server database we will get results like following.
SELECT * FROM CATALOG
Here we can see the entries of Our Project and Report.In above result Type 1 means Project and 2 means Report.
If you want to see the XML content, execute following query:
SELECT
[REPORT NAME] = NAME,
[RDL CONTENT] = CAST(CAST(CONTENT AS VARBINARY(MAX)) AS XML)
FROM CATALOG
WHERE TYPE = 2
You will get results like following:
9. Now let us see our report from the browser.Go to Report Manager URL and you will get a screen like below:
10. Now click on StartSSRS and it will show the list of report.In our case it will show only 1 report which is PersonAddresDetails.
11. Now Click on PersonAddresDetails Report and you will get following screen:
Congratulations! Our First SSRS Project is successfully deployed.
Moving the Report Server Databases to Another Computer
You can move the report server databases that are used in a current installation to a SQL Server Database Engine instance that is on a different computer. Both the reportserver and reportservertempdb databases must be moved or copied together. A Reporting Services installation requires both databases; the reportservertempdb database must be related by name to the primary reportserver database you are moving.
Moving a database does not effect scheduled operations that are currently defined for report server items.
Schedules will be recreated the first time that you restart the Report Server service.
SQL Server Agent jobs that are used to trigger a schedule will be recreated on the new database instance. You do not have to move the jobs to the new computer, but you might want to delete jobs on the computer that will no longer be used.
Subscriptions, cached reports, and snapshots are preserved in the moved database. If a snapshot is not picking up refreshed data after the database is moved, clear the snapshot options in Report Manager, click Apply to save your changes, re-create the schedule, and click Apply again to save your changes.
Temporary report and user session data that is stored in reportservertempdb are persisted when you move that database.
SQL Server provides several approaches for moving databases, including backup and restore, attach and detach, and copy. Not all approaches are appropriate for relocating an existing database to a new server instance. The approach that you should use to move the report server database will vary depending on your system availability requirements. The easiest way to move the report server databases is to attach and detach them. However, this approach requires that you take the report server offline while you detach the database. Backup and restore is a better choice if you want to minimize service disruptions, but you must run Transact-SQL commands to perform the operations. Copying the database is not recommended (specifically, by using the Copy Database Wizard); it does not preserve permission settings in the database.
Important
The steps provided in this topic are recommended when relocating the report server database is the only change you are making to the existing installation. Migrating an entire Reporting Services installation (that is, moving the database and changing the identity of the Report Server Windows service that uses the database) requires connection reconfiguration and an encryption key reset. For more information about migrating a Reporting Services installation, see Migration (Reporting Services).
Detaching and Attaching the Report Server Databases
--------------------------------------------------------------------------------
If you can take the report server offline, you can detach the databases to move them to the SQL Server instance you want to use. This approach preserves permissions in the databases. If you are using a SQL Server 2008 database, you must move it to another SQL Server 2008 instance. After you move the databases, you must reconfigure the report server connection to the report server database. If you are running a scale-out deployment, you must reconfigure the report server database connection for each report server in the deployment.
Use the following steps to move the databases:
1.Backup the encryption keys for the report server database you want to move. You can use the Reporting Services Configuration tool backup the keys.
2.Stop the Report Server service. You can use the Reporting Services Configuration tool to stop the service.
3.Start SQL Server Management Studio and open a connection to the SQL Server instance that hosts the report server databases.
4.Right-click the report server database, point to Tasks, and click Detach. Repeat this step for the report server temporary database.
5.Copy or move the .mdf and .ldf files to the Data folder of the SQL Server instance you want to use. Because you are moving two databases, make sure that you move or copy all four files.
6.In Management Studio, open a connection to the new SQL Server instance that will host the report server databases.
7.Right-click the Databases node, and then click Attach.
8.Click Add to select the report server database .mdf and .ldf files that you want to attach. Repeat this step for the report server temporary database.
9.After the databases are attached, verify that the RSExecRole is a database role in the report server database and temporary database. RSExecRole must have select, insert, update, delete, and reference permissions on the report server database tables, and execute permissions on the stored procedures. For more information, see How to: Create the RSExecRole.
10.Start the Reporting Services Configuration tool and open a connection to the report server.
11.On the Database page, select the new SQL Server instance, and then click Connect.
12.Select the report server database that you just moved, and then click Apply.
13.On the Encryption Keys page, click Restore. Specify the file that contains the backup copy of the keys and the password to unlock the file.
14.Restart the Report Server service.
Backing Up and Restoring the Report Server Databases
--------------------------------------------------------------------------------
If you cannot take the report server offline, you can use backup and restore to relocate the report server databases. You should use the ‘Copy_Only’ option. Beginning in SQL Server 2008, SQL Server Management Studio supports copy-only backups. After you restore the databases, you must configure the report server to use the database on the new server instance. For more information, see the instructions at the end of this topic.
Using BACKUP and COPY_Only to Backup the Report Server Databases
When backing up the databases, set the COPY_OnlyL option and backup type to Full.
Note
Be sure to back up both the ReportServer and ReportServerTempDB databases as well as their associated log files.
For more information on using SQL Server Management Studio to backup a database, see How to: Back Up a Database (SQL Server Management Studio)
Using RESTORE and MOVE to Relocate the Report Server Databases
When restoring the databases, you can Use the RESTORE WITH NORECOVERY argument to perform the initial restore; this keeps the database in a restoring state, giving you time to review log backups to determine which one to restore. You would then repeat the RESTORE operation but use the RESTORE WITH RECOVERY argument.
Note
Be sure to restore both the ReportServer and ReportServerTempDB databases as well as their associated log files.
For more information on using SQL Server Management Studio to restore a database, see How to: Restore a Database Backup (SQL Server Management Studio)
How to Configure the Report Server Database Connection
1.Start the Reporting Services Configuration tool and open a connection to the report server.
2.On the Database page, click Change Database. Click Next.
3.Click Choose an existing report server database. Click Next.
4.Select the SQL Server that now hosts the report server database and click Test Connection. Click Next.
5.In Database Name, select the report server database that you want to use. Click Next.
6.In Credentials, specify the credentials that the report server will use to connect to the report server database. Click Next.
7.Click Next and then Finish.
Note
A Reporting Services installation requires that the SQL Server Database Engine instance include the RSExecRole role. Role creation, login registration, and role assignments occur when you set the report server database connection through the Reporting Services Configuration tool. If you use alternate approaches (specifically, if you use the rsconfig.exe command prompt utility) to configure the connection, the report server will not be in a working state. You might have to write WMI code to make the report server available. For more information, see Reporting Services WMI Provider.
Moving a database does not effect scheduled operations that are currently defined for report server items.
Schedules will be recreated the first time that you restart the Report Server service.
SQL Server Agent jobs that are used to trigger a schedule will be recreated on the new database instance. You do not have to move the jobs to the new computer, but you might want to delete jobs on the computer that will no longer be used.
Subscriptions, cached reports, and snapshots are preserved in the moved database. If a snapshot is not picking up refreshed data after the database is moved, clear the snapshot options in Report Manager, click Apply to save your changes, re-create the schedule, and click Apply again to save your changes.
Temporary report and user session data that is stored in reportservertempdb are persisted when you move that database.
SQL Server provides several approaches for moving databases, including backup and restore, attach and detach, and copy. Not all approaches are appropriate for relocating an existing database to a new server instance. The approach that you should use to move the report server database will vary depending on your system availability requirements. The easiest way to move the report server databases is to attach and detach them. However, this approach requires that you take the report server offline while you detach the database. Backup and restore is a better choice if you want to minimize service disruptions, but you must run Transact-SQL commands to perform the operations. Copying the database is not recommended (specifically, by using the Copy Database Wizard); it does not preserve permission settings in the database.
Important
The steps provided in this topic are recommended when relocating the report server database is the only change you are making to the existing installation. Migrating an entire Reporting Services installation (that is, moving the database and changing the identity of the Report Server Windows service that uses the database) requires connection reconfiguration and an encryption key reset. For more information about migrating a Reporting Services installation, see Migration (Reporting Services).
Detaching and Attaching the Report Server Databases
--------------------------------------------------------------------------------
If you can take the report server offline, you can detach the databases to move them to the SQL Server instance you want to use. This approach preserves permissions in the databases. If you are using a SQL Server 2008 database, you must move it to another SQL Server 2008 instance. After you move the databases, you must reconfigure the report server connection to the report server database. If you are running a scale-out deployment, you must reconfigure the report server database connection for each report server in the deployment.
Use the following steps to move the databases:
1.Backup the encryption keys for the report server database you want to move. You can use the Reporting Services Configuration tool backup the keys.
2.Stop the Report Server service. You can use the Reporting Services Configuration tool to stop the service.
3.Start SQL Server Management Studio and open a connection to the SQL Server instance that hosts the report server databases.
4.Right-click the report server database, point to Tasks, and click Detach. Repeat this step for the report server temporary database.
5.Copy or move the .mdf and .ldf files to the Data folder of the SQL Server instance you want to use. Because you are moving two databases, make sure that you move or copy all four files.
6.In Management Studio, open a connection to the new SQL Server instance that will host the report server databases.
7.Right-click the Databases node, and then click Attach.
8.Click Add to select the report server database .mdf and .ldf files that you want to attach. Repeat this step for the report server temporary database.
9.After the databases are attached, verify that the RSExecRole is a database role in the report server database and temporary database. RSExecRole must have select, insert, update, delete, and reference permissions on the report server database tables, and execute permissions on the stored procedures. For more information, see How to: Create the RSExecRole.
10.Start the Reporting Services Configuration tool and open a connection to the report server.
11.On the Database page, select the new SQL Server instance, and then click Connect.
12.Select the report server database that you just moved, and then click Apply.
13.On the Encryption Keys page, click Restore. Specify the file that contains the backup copy of the keys and the password to unlock the file.
14.Restart the Report Server service.
Backing Up and Restoring the Report Server Databases
--------------------------------------------------------------------------------
If you cannot take the report server offline, you can use backup and restore to relocate the report server databases. You should use the ‘Copy_Only’ option. Beginning in SQL Server 2008, SQL Server Management Studio supports copy-only backups. After you restore the databases, you must configure the report server to use the database on the new server instance. For more information, see the instructions at the end of this topic.
Using BACKUP and COPY_Only to Backup the Report Server Databases
When backing up the databases, set the COPY_OnlyL option and backup type to Full.
Note
Be sure to back up both the ReportServer and ReportServerTempDB databases as well as their associated log files.
For more information on using SQL Server Management Studio to backup a database, see How to: Back Up a Database (SQL Server Management Studio)
Using RESTORE and MOVE to Relocate the Report Server Databases
When restoring the databases, you can Use the RESTORE WITH NORECOVERY argument to perform the initial restore; this keeps the database in a restoring state, giving you time to review log backups to determine which one to restore. You would then repeat the RESTORE operation but use the RESTORE WITH RECOVERY argument.
Note
Be sure to restore both the ReportServer and ReportServerTempDB databases as well as their associated log files.
For more information on using SQL Server Management Studio to restore a database, see How to: Restore a Database Backup (SQL Server Management Studio)
How to Configure the Report Server Database Connection
1.Start the Reporting Services Configuration tool and open a connection to the report server.
2.On the Database page, click Change Database. Click Next.
3.Click Choose an existing report server database. Click Next.
4.Select the SQL Server that now hosts the report server database and click Test Connection. Click Next.
5.In Database Name, select the report server database that you want to use. Click Next.
6.In Credentials, specify the credentials that the report server will use to connect to the report server database. Click Next.
7.Click Next and then Finish.
Note
A Reporting Services installation requires that the SQL Server Database Engine instance include the RSExecRole role. Role creation, login registration, and role assignments occur when you set the report server database connection through the Reporting Services Configuration tool. If you use alternate approaches (specifically, if you use the rsconfig.exe command prompt utility) to configure the connection, the report server will not be in a working state. You might have to write WMI code to make the report server available. For more information, see Reporting Services WMI Provider.
MONDAY, DECEMBER 20, 2010
SQL Server Reporting Services: Quick way to get 10 digit year (all the zero’s) using String.Format
Dates are fun. See, by default most dates come out like 5/6/2008. But computers, and programs like them formatted as 05/06/2008. That way, all the dates, no matter what month or day, are all the same length, cool huh?
Well, in Reporting Services, if you have a date field coming back in a dataset, and you want to format it as a 10 digit string, there are about 50 different ways to do it. You can use old VBA Left and Mid etc, or you can use String.Format like..
=String.Format(“{0:MM}/{0:dd}/{0:yyyy}”,CDate(Fields!CalendarDate.Value))
Well, in Reporting Services, if you have a date field coming back in a dataset, and you want to format it as a 10 digit string, there are about 50 different ways to do it. You can use old VBA Left and Mid etc, or you can use String.Format like..
=String.Format(“{0:MM}/{0:dd}/{0:yyyy}”,CDate(Fields!CalendarDate.Value))
MONDAY, SEPTEMBER 27, 2010
Working with Report Snapshots in SQL Server Reporting Services (SSRS)
Problem
We have many SQL Server Reporting Services (SSRS) reports that use our OLTP systems as data sources. We are always adding new reports and the number of users running these reports is also increasing rapidly. We would like to look at leveraging report snapshots as a way to reduce some of the load on our database servers. Can you provide us with an example of how to do this?
Solution
A report snapshot provides the ability to run a report at a scheduled time or on demand and save the report in the ReportServer database. When a user requests the report, they automatically get the snapshot version stored in the ReportServer database rather than executing the SQL queries to retrieve the data from the underlying data source. You can schedule report snapshots to be run during off-peak hours; this can reduce the load on your database servers. You can also create snapshots manually and select which snapshot version of a report that you would like to run. You can save as many snapshots as you like or you can have Reporting Services limit the number of snapshots that are saved. Besides reducing the load on your database servers, you can use report snapshots to archive reports at a particular point in time for later viewing; e.g. month-end reports, year-end reports, etc. Depending on how many report snapshots you keep, you could use a significant amount of space in the ReportServer database
We have many SQL Server Reporting Services (SSRS) reports that use our OLTP systems as data sources. We are always adding new reports and the number of users running these reports is also increasing rapidly. We would like to look at leveraging report snapshots as a way to reduce some of the load on our database servers. Can you provide us with an example of how to do this?
Solution
A report snapshot provides the ability to run a report at a scheduled time or on demand and save the report in the ReportServer database. When a user requests the report, they automatically get the snapshot version stored in the ReportServer database rather than executing the SQL queries to retrieve the data from the underlying data source. You can schedule report snapshots to be run during off-peak hours; this can reduce the load on your database servers. You can also create snapshots manually and select which snapshot version of a report that you would like to run. You can save as many snapshots as you like or you can have Reporting Services limit the number of snapshots that are saved. Besides reducing the load on your database servers, you can use report snapshots to archive reports at a particular point in time for later viewing; e.g. month-end reports, year-end reports, etc. Depending on how many report snapshots you keep, you could use a significant amount of space in the ReportServer database
Creating a Drill Down Report with SQL Server 2008
In SSRS we can generate drill down reports in very easy way. To create Drill down reports, please follow the following steps.
Step1: Create New Report Project with one Shared DataSource with data query for generating report.
Step1: Create report by taking Table type report as shown bellow
Step3: Now Add Group for product by right clicking on Product Column as shown bellow
Select Add Parent group
Selet Product from Group By DropDown and check Add Group Header, then click OK
The report table looks like this
Step 4: From Row groups > select Product group details (group Details and not group header) > go to Group Properties > select Visibility tab > select Hide > click on Display can be toggled by this group item and select the name of the group then click on OK
Then the preview the report
Step 5:We can also change the drill down and make it reverse by setting ‘InitialToggleState’ to True and by selecting the group properties (header), visibility tab and click Show
Step1: Create New Report Project with one Shared DataSource with data query for generating report.
Step1: Create report by taking Table type report as shown bellow
Step3: Now Add Group for product by right clicking on Product Column as shown bellow
Select Add Parent group
Selet Product from Group By DropDown and check Add Group Header, then click OK
The report table looks like this
Step 4: From Row groups > select Product group details (group Details and not group header) > go to Group Properties > select Visibility tab > select Hide > click on Display can be toggled by this group item and select the name of the group then click on OK
Then the preview the report
Step 5:We can also change the drill down and make it reverse by setting ‘InitialToggleState’ to True and by selecting the group properties (header), visibility tab and click Show
Navigating in SQL Server Reporting Services 2008
We can make three types navigations in SQL Server Reporting Services
1.Navigating in same report(Book Marking)
This can be achieve with Book Marking in Reports.
Abookmark is a text box or image in a report that can be used as a navigational link. If you want to allow the user to click an item and navigate to another item, assign a bookmark value to each of the target items.
First, open the Textbox Properties dialog by right-clicking the text box and selecting Properties from the pop-out menu. In the Textbox Properties dialog, then switch to the Action tab in left panel.
To enable Hyperlink to a bookmark, set the Go to bookmark property to the target bookmark.
Using bookmarks to navigate within a report is very easy to do. Each report item has a BookMark property that may be assigned a unique value.
After adding bookmarks to any target items, use the Go to Bookmark Selection list to select the bookmark in the Properties for the Source item. This allows the user to navigate to items within the same report.
- Navigating in same report(Book Marking)
- Navigating to another Report(Jump to Report)
- Navigation Website(Jum to URL)
1.Navigating in same report(Book Marking)
Abookmark is a text box or image in a report that can be used as a navigational link. If you want to allow the user to click an item and navigate to another item, assign a bookmark value to each of the target items.
First, open the Textbox Properties dialog by right-clicking the text box and selecting Properties from the pop-out menu. In the Textbox Properties dialog, then switch to the Action tab in left panel.
2.Navigating to another Report(Jump to Report)
This powerful feature enables a text box or image to be used as a link to another report by passing parameter values to the target report. The target report can consist of a specific record or multiple records, depending on the parameters passed to the target report.
The following example uses a Products by Category report.That means the Products report shows the list of all Products and the Category Report shows the information about perticular Product. Name text box is used to link to a report that will display the details of a single product record. The Product Details report is very simple. This report accepts a ProductID parameter to filter the records and narrow down to the record requested.
First, open the Textbox Properties dialog by right-clicking the text box and selecting Properties from the pop-out menu. In the Textbox Properties dialog, then switch to the Action tab.
Then select the Go to report radio button, and select the target report from the drop-down list. And Add the perameters for the targetting report by clicking on Add button.
When a product name is clicked on the main report, the viewer redirects to the detailed report for the specific product by passing the ProductID parameter value.
3.Navigation Website(Jum to URL)
The Go to URL option can be used to navigate to practically any report or document content on your report server, and files, folders, and applications in your intranet environment or on the World Wide Web. It can also be set to an expression that uses links stored in a database, custom code, or any other values. It’s more accurate to say that any URI (Uniform Resource Identifier) can be used since a web request is not limited only to a web page or document. With some creative programming, queries, and expressions, your reports could be designed to navigate to a web page, document, e-mail address, Web service request, or a custom web application, directed by data or custom expressions.
This powerful feature enables a text box or image to be used as a link to another report by passing parameter values to the target report. The target report can consist of a specific record or multiple records, depending on the parameters passed to the target report.
The following example uses a Products by Category report.That means the Products report shows the list of all Products and the Category Report shows the information about perticular Product. Name text box is used to link to a report that will display the details of a single product record. The Product Details report is very simple. This report accepts a ProductID parameter to filter the records and narrow down to the record requested.
First, open the Textbox Properties dialog by right-clicking the text box and selecting Properties from the pop-out menu. In the Textbox Properties dialog, then switch to the Action tab.
Then select the Go to report radio button, and select the target report from the drop-down list. And Add the perameters for the targetting report by clicking on Add button.
3.Navigation Website(Jum to URL)
The Go to URL option can be used to navigate to practically any report or document content on your report server, and files, folders, and applications in your intranet environment or on the World Wide Web. It can also be set to an expression that uses links stored in a database, custom code, or any other values. It’s more accurate to say that any URI (Uniform Resource Identifier) can be used since a web request is not limited only to a web page or document. With some creative programming, queries, and expressions, your reports could be designed to navigate to a web page, document, e-mail address, Web service request, or a custom web application, directed by data or custom expressions.
Click on "Fx" to enter custom Web URL like http://www.google.co.in/ then click on ok.
Once you run the Report and click on the column which you have set "Go to URL", then you will be redirected to that web site.