The Reporting Services SOAP APIs allow more complex operations, such as creating and managing reports and subscriptions, data sources, and Report Server database items.. Using URL Access
Trang 1Reporting Services is an extensible reporting platform, complete with a set of APIs
that allow developers to design and build reporting solutions Reporting Services can
be integrated into custom applications in two ways: using URL access and using the
Reporting Services Simple Object Access Protocol (SOAP) API The programming
method you choose depends on the functionality you need in your application URL
access is best used when users only need to view or navigate through rendered
reports through a Web browser The Reporting Services SOAP APIs allow more
complex operations, such as creating and managing reports and subscriptions, data
sources, and Report Server database items There are also times when a combination
of these two methods most effectively meets your business needs
You can also develop and manage extensions consumed by the Reporting Services
components using the available managed code API You can create assemblies using
the Microsoft NET Framework that add new Reporting Services functionality to
meet your specialized business tasks
Using URL Access in a Window Form
Even though accessing your reports using URL links is best suited for Web environments,
you can also launch a report by starting your Internet Explorer programmatically from
a Windows form, or you can use a Web browser control to display a report on your
Windows form
Starting Internet Explorer from a Windows Form
Internet Explorer can be started from a Windows form using the Process class of the
System.Diagnostics namespace The Process class is used for controlling applications on
your computer To view a report in your ReportServer database, you set the arguments of
the Process.Start function with the IExplore.exe application and the URL of the report
The following code shows launching the IExplore process to display a report when a user
clicks a button on a Windows form:
Imports System.Diagnostics
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Process.Start("iexplore.exe", _
"http://localhost/ReportServer/Pages/" & _
"ReportViewer.aspx?%2fProducts+Report")
End Sub
Trang 2Notice how, at the top of the code, the Imports declaration is used to include the System.Diagnostics namespace When the user clicks the Button1 button, the Internet Explorer browser is started and the Products report is displayed
Embedding a Browser Control on a Windows Form
You can add a Web browser control to your Windows form for viewing your report The Web browser control is included in the Internet Controls Library, shdocvw.dll
To add the Web browser control to your Windows form:
1. Create a Windows form application in one of the NET framework languages
2. Select the Web Browser control from the Toolbox and drag it onto the design surface of your Windows form
3. Right-click the Web browser control and select the Properties option from the pop-up menu
4. Set the URL property to the URL access string for your report In our example, the URL string is: http://localhost/ReportServer/Pages/ReportViewer
.aspx?%2fProducts+Report
When the application is run, the report will automatically be generated and displayed in the Web browser as shown in Figure 9-14
Figure 9-14 Report in Web browser control
Trang 3Integrating Reporting Services Using SOAP
While you can view reports in your Windows programs using URL access, the
Reporting Services SOAP APIs expose the full set of management functions, allowing
you to develop customized business reporting solutions All of the administrative
actions of the Report Manager are available to the developer through the SOAP APIs
Using the SOAP API in a Windows Application
A Web service object is provided that allows you to call the Reporting Services
functions from your Windows form application code To use the Web service object,
you declare the object in your program code as follows:
Dim RepSrv As New ReportingService()
Then you can set the properties and use the methods just as you would for any
other object The ReportingService object allows you to manage actions such
as catalog item retrieval, data sources, events, extensions, jobs, policies, roles,
schedules, subscriptions, and tasks The following code example shows how to list
the items in a ReportServer database:
' Create a new Web service object
Dim RepSrv As New ReportingService()
RepSrv.Credentials = _
System.Net.CredentialCache.DefaultCredentials
' Return the list of items in My Reports
Dim CatItms As CatalogItem() = _
RepSrv.ListChildren("/My Reports", False)
Dim CatItm As CatalogItem
For Each CatItm In items
catalogComboBox.Items.Add(CatItm.Name)
End If
Next CatItm
Extensions
You can extend specific features of Reporting Services and its components by using
the managed code API that is available The Reporting Services Extension Library is
a set of classes, interfaces, and value types that are included in Reporting Services
Trang 4You can use this library to access system functionality; it is designed to be the foundation on which NET Framework applications can be used to extend Reporting Services components You can build custom extensions to add functionality in areas such as data processing, delivery, rendering, and security The extension functions are included in namespaces that you can import into your NET applications The extensions library namespaces are as follows:
Microsoft.ReportingServices.DataProcessing Classes and interfaces to extend the data processing capability of
Reporting Services Microsoft.ReportingServices.Interfaces Classes and interfaces to extend delivery extensions, and security
extensions for Reporting Services Microsoft.ReportingServices.ReportRendering Classes and interfaces to extend the rendering capabilities of
Reporting Services
RDL
The Report Definition Language (RDL) is composed of Extensible Markup Language (XML) elements that describe report layout and query information RDL conforms to the XML grammar created for Reporting Services It defines a common schema that enables the interchange of report definitions as a standard way of communicating using reports RDL can be generated from an application using the NET Framework classes
of the System.Xml namespace
Accessing Reports
You can access and manage your reports through the Report Manager tool or by pointing your browser directly to a report URL link Report Manager is a Web-based tool you can use to view published reports, run reports, and subscribe to reports Administrators can also use the Report Manager to configure permissions and manage report distribution You access the Report Manager through your browser using the URL http://<servername>/reports
Using URL Access
You access reports through a report server URL request that enables you to access the reports, resources, and other items in the report server database Report parameters for your report, the rendering output, and device settings are contained in the query string
of the URL You can embed the hyperlink URL to your reports and report server items into Web or Windows applications
Trang 5URL Access Through a Web Application
The easiest method for accessing reports in a Web application is by directly pointing
your browser to a URL address An example of directly accessing a URL is shown
here:
<a
href="http://localhost/ReportServer/Pages/ReportViewer.
aspx?%2fProducts+Report&rs:Command=Render&rc:LinkTarget=main" target="main" >
Click here for the Products report</a>
While this method is quite straightforward, it has some limitations, in that some
servers and browsers have a 256-character limit To get around this, you can use the
POST request on a submission form
URL Access Through a Form POST Method
By using the METHOD=“POST” on a forms submission, an application can access
reports without allowing the user to modify the URL query string The following
code shows an example of using the POST method:
<FORM id="frmRender"
action=http://server/reportserver?/SampleReports/Products
method="post" target="_self">
<INPUT type="hidden" name="rs:Command" value="Render">
<INPUT type="hidden" name="rc:LinkTarget" value="main">
<INPUT type="hidden" name="rs:Format" value="HTML4.0">
<INPUT type="submit" value="Button">
</FORM>
Report Authoring
In the first part of this chapter you learned about the various components that make
up SQL Server 2005’s Reporting Services In the second half of this chapter you’ll
get a more detailed look at the steps required to design and deploy a simple report
Development Stages
To develop a simple Reporting Services application, you begin by using the Report
Designer to define the report’s data sources and layout You then need to build
and deploy the report to the Report Server Finally, you need to make the report
Trang 6available to end users by either embedding the report within an application or adding subscriptions for the report
Designing the Reporting Solution
To create Reporting Services solution using one of the interactive tools, you first create a reporting project and select a dataset that defines the data that will be used in the report Then you lay out the individual data fields on the report To handle stock reports that are presented in a tabular or matrix format, the Report Wizard steps you through the process of creating a data source and laying out the report For more complex reports, use the Report Designer to define data sources, design specialized report layouts, and include custom items, such as images
Building and Deploying the Reporting Solution
Once the report has been designed, you need to build the report and then deploy
it to the Report Server Building the report creates a NET assembly that will run the report Deploying the report essentially takes this assembly and copies it to the Reporting Services Report Server While you can perform this sequence manually, the Report Designer has built-in options to both build and deploy reports to the Report Server
Making the Report Available to End Users
After the report has been deployed to the Report Server, you can then make the report available to end users via several different mechanisms You can allow access
to the reports by embedding them in an application, via their URLs, or by creating
a subscription that will push the report to the end user Report subscriptions can be set up to be delivered at a certain time, or they can be data driven
Now that you have an overview of the Reporting Services development process, the next section will take you through the steps of developing and deploying a simple report using SQL Server 2005’s Reporting Services
Creating a Reporting Services Report
You begin using the Report Designer either by starting the Report Wizard and using
it to create your initial report or by starting with a blank design surface and then adding your own report definition elements In either case, defining a dataset is the first thing you need to create a report In this example, we’ll look at how to build
a report using the Report Designer
Trang 7To build a Reporting Services application, first open the Business Intelligence
Development Studio and then select the File | New | Project option to display the
New Project dialog that’s shown in Figure 9-15
To create a new Reporting Services report using the Report Designer, select
the Business Intelligence Projects option from the Project Types list Then in the
Templates list shown in the right side of the screen select the Report Project option
Fill in the boxes at the bottom of the dialog, setting the name and location for your
project Clicking OK creates the project and displays the Report Designer In the
Solution Explorer to the right of the screen, you will see the Report Project with two
folders in its directory structure: the Shared Data Sources folder and the Reports
folder
Right-click the Reports folder A pop-up menu displays the options Add New
Report, Add >, and Properties If you select the Add New Report option, the Report
Wizard will start to guide you through creating a simple tabular or matrix report
Here we will select the Add > | New Item option, which displays the Add New Item
dialog as shown in Figure 9-16
Figure 9-15 Creating a new report: New Project
Trang 8Select the Report option from the Templates area of the dialog and click the Add button to add the report file to your project and start the Report Designer The design surface in the center of the environment presents three tabs: Data, Layout, and Preview You define a dataset by clicking the Data tab to reveal the Data pane You create datasets in the Data pane to access data sources to include in your report Click the Datasets drop-down box and select the <New Dataset> option This starts the Dataset dialog shown in Figure 9-17, which allows you to define your connection
to the database
Type a name for your data source in the Name text box This name is used only for identification and can be anything you choose Next, use the Type drop-down
to select the type of database system that the data source will use The default value
is Microsoft SQL Server, but you can also choose OLE DB, Microsoft SQL Server Analysis Services, Oracle, or ODBC Next, in the Connection String box input the connection string that’s required to connect to the target database If you’re unfamiliar with the connection string values, you can click Edit to display the Data Link dialog, which will step you through the creation of the Data Source
Next, de-select the Generic Query Designer button The interactive Query Builder tool will be loaded into the design surface under the Data tab The Query Builder
Figure 9-16 Add New Item
Trang 9is a query design tool that enables you to build SQL queries without needing to be
a SQL expert However, to effectively use the Query Design tool, you still need
to have a good basic knowledge of your database’s design and scheme You can
select tables from your database by right-clicking in the top portion of the Query
Builder and then selecting Add Table from the pop-up menu to display the Add
Tables dialog There you can select one or more tables (multiple tables are selected
by holding down the ctrl key and clicking the desired table) The Query Builder
will automatically detect any relationships between the tables in terms of matching
column names and data types and will draw links between the tables visually
showing the relationships
After selecting the tables, you then select the desired columns from each table by
putting a check in the check box that precedes the column name Checking the * (All
Columns) entry will automatically select all of the columns from the table As you
interactively select the tables and columns and define the relationships between the
tables, the Query Designer automatically builds the SQL statement that will retrieve
data for your report You can test the query by clicking the exclamation icon (!)
shown in the toolbar
Figure 9-17 Select the data source
Trang 10Parameterized Queries
The Query Builder can also be used to build parameterized queries where the end user supplies a value to the query at run time To build a parameterized query using the Query Builder, you simply type a question mark into the Filter column that’s in the row of the database column name that you want to use with a parameter The Query Builder will automatically convert the question mark character to the =@ Param value
After you’ve completed designing the query, click the Layout tab to display the report layout in the design surface area Click the Toolbox tab on the left side of the environment to display a list of report items that you can drag and drop onto the report design surface The standard report items that you can place on your report are: Textbox, Line, Table, Matrix, Rectangle, List, Image, Subreport, and Chart Figure 9-18 shows an example of the report layout design area with several report items added to it
You can associate the report items with fields from the data source by right-clicking the report item and selecting the Properties option from the pop-up menu
A Properties dialog will be displayed allowing you to customize the report item
Figure 9-18 Report layout design