Microsoft Reporting Services in Action
Teo Lachev
  • August 2004
  • ISBN 9781932394221
  • 656 pages

There are less than a dozen books dealing with MSRS, I think this is the best of the competition.

Staff Reviewer, Computing Reviews

Business reporting is a lifeline of business, so a better reporting environment is a big deal. With a sophisticated, modern tool like Microsoft SQL Server 2000 Reporting Services, you can report-enable any type of application, regardless of its targeted platform or development language.

Written for information workers, system administrators, and developers, Microsoft Reporting Services in Action is a detailed and practical guide to the functionality provided by Reporting Services. It systematically shows off many powerful RS features by leading you through a dizzying variety of possible uses. Following a typical report lifecycle, the book shows you how to create, manage, and deliver RS reports.

Table of Contents detailed table of contents

foreword

preface

acknowledgments

roadmap

source code

author online

about the title and cover

1. Introducing Microsoft Reporting Services

1.1. What is RS?

1.1.1. Why do we need RS?

1.1.2. How is RS implemented?

1.1.3. RS and the Microsoft BI platform

1.2. RS at a glance

1.2.1. Authoring features

1.2.2. Management features

1.2.3. Delivery features

1.2.4. Extensibility features

1.2.5. Scalability features

1.2.6. Security features

1.2.7. Deployment features

1.3. RS architecture

1.3.1. The Report Server

1.3.2. The Report Server database

1.3.3. The Report Manager

1.4. Understanding Report Processing

1.4.1. Execution stage

1.4.2. Rendering stage

1.5. Delivering reports

1.5.1. On-demand delivery

1.5.2. Subscribed delivery

1.6. What is the report lifecycle?

1.7. RS in action

1.7.1. About the Adventure Works Reporter

1.7.2. Your first report

1.8. Evaluating RS

1.9. Summary

1.10. Resources

Part 1 Authoring reports

2. Report authoring basics

2.1. The report-authoring process: step by step

2.1.1. Analysis

2.1.2. Construction

2.1.3. Testing

2.1.4. Deployment

2.2. Authoring reports in VS.NET

2.2.1. Authoring reports with the Report Wizard

2.2.2. Authoring reports with the Report Designer

2.2.3. Importing reports from Microsoft Access

2.3. Creating reports programmatically

2.3.1. The AW Ad Hoc Reporter sample

2.3.2. Implementation details

2.4. Creating reports with third-party tools

2.4.1. Cizer’s Quick Query

2.4.2. Hitachi’s RDL Generator

2.5. Summary

2.6. Resources

3. Working with data

3.1. Working with data sources

3.1.1. Connecting to the database

3.1.2. Choosing an authentication mechanism

3.1.3. Deploying data sources

3.2. Working with report datasets

3.2.1. Understanding the dataset definition

3.2.2. Creating a report dataset

3.2.3. Using multiple datasets

3.3. Authoring dataset queries

3.3.1. Using the Graphical Query Designer

3.3.2. Using the Generic Query Designer

3.4. Parameter-driven reports

3.4.1. The role of parameters

3.4.2. Building parameter-driven queries

3.4.3. Setting up the report-level parameters

3.4.4. Working with stored procedures

3.5. Data limitations

3.5.1. Data source limitations

3.5.2. Parameter limitations

3.6. Summary

3.7. Resources

4. Designing reports

4.1. Anatomy of a report

4.1.1. Getting started with a new report

4.1.2. Understanding report sections

4.1.3. Understanding report items

4.1.4. Understanding data regions

4.2. Designing tabular reports

4.2.1. Parameterized tabular reports

4.2.2. Tabular reports with interactive features

4.2.3. Table region limitations

4.3. Designing freeform reports

4.3.1. Freeform reports with nested regions

4.3.2. Grouping freeform data

4.3.3. Freeform reports with side-by-side data regions

4.4. Designing Chart Reports

4.4.1. The chart data region

4.4.2. Working with charts

4.4.3. Nesting chart regions

4.5. Designing crosstab reports

4.5.1. Matrix region advantages

4.5.2. Working with the matrix region

4.5.3. Adjusting the report layout

4.6. Designing Subreports

4.6.1. Laying out the report

4.6.2. Synchronizing the subreport with the master report

4.7. Designing multicolumn reports

4.7.1. Setting up multiple columns

4.7.2. Testing multicolumn reports

4.8. Summary

4.9. Resources

5. Using expressions and functions

5.1. Understanding expressions

5.1.1. Using the Expression Editor

5.1.2. Expression syntax

5.1.3. Determining expression execution order

5.1.4. Understanding expression scope

5.1.5. Dealing with expression errors

5.2. Exploring the Report Object Model

5.2.1. Using the ReportItems collection

5.2.2. Using the Fields collection

5.2.3. Using the Parameters collection

5.2.4. Using the Globals collection

5.2.5. Using the User collection

5.3. Working with functions

5.3.1. Referencing external functions

5.3.2. Using aggregate functions

5.3.3. Using other internal functions

5.4. Designing reports with navigational features

5.4.2. Reports with document maps

5.5. Report rendering considerations

5.5.1. Exporting reports to HTML

5.5.2. Exporting reports to MHTML

5.5.3. Exporting reports to HTML with Office Web Components

5.5.4. Exporting reports to other formats

5.6. Designing localized reports

5.6.1. Report localization basics

5.6.2. Localization techniques

5.7. Summary

5.8. Resources

6. Using custom code

6.1. Understanding custom code

6.1.1. Using embedded code

6.1.2. Using external assemblies

6.2. Custom code in action: implementing report forecasting

6.2.1. Forecasting with OpenForecast

6.2.2. Implementing report forecasting features

6.3. Using XML-based reports

6.3.1. Understanding XML exporting

6.3.2. Exposing the report content as an RSS feed

6.4. Summary

6.5. Resources

Part 2 Managing reports

7. Managing the Reporting Services environment

7.1. Managing RS with the Report Manager

7.1.1. How the Report Manager works

7.1.2. Managing Report Server settings

7.1.3. Managing content

7.1.4. Managing report execution

7.1.5. Managing linked reports

7.2. Managing RS with the Web service

7.2.1. Understanding the Web service management API

7.2.2. Tracing calls to the SOAP API

7.2.3. Deploying reports programmatically

7.2.4. Batching methods together

7.3. Managing RS with the WMI provider

7.3.1. Understanding the WMI provider

7.3.2. Implementing an RS management console

7.4. Other ways to manage Reporting Services

7.4.1. Managing RS with the script host

7.4.2. Using other management utilities

7.5. Analyzing report execution

7.5.1. Analyzing the Report Server execution log

7.5.2. Analyzing trace log files

7.6. Summary

7.7. Resources

8. Securing Reporting Services

8.1. Exploring Reporting Services role-based security

8.1.1. How Windows authentication works

8.1.2. Using role-based authorization

8.1.3. Managing role-based security with the Report Manager

8.1.4. Managing role-based security with the Web service

8.2. Understanding code access security

8.2.1. Defining code access terminology

8.2.2. Exploring the RS default security policy

8.2.3. Managing RS code access security

8.3. Best practices for securing reports

8.3.1. Filtering data

8.3.2. Using dynamic dataset queries

8.3.3. Implementing custom security models

8.3.4. Enforcing a secured connection to the Report Server

8.4. Summary

8.5. Resources

Part 3 Delivering reports

9. On-demand report delivery

9.1. How RS provides on-demand report delivery

9.2. URL-based report access

9.2.1. Understanding URL syntax

9.2.2. Requesting resources by URL

9.2.3. Requesting reports by URL

9.2.4. Working with report commands

9.2.5. Working with the HTML Viewer

9.2.6. URL access in action

9.3. Web service-based report access

9.3.1. Requesting reports with SOAP

9.3.2. Rendering images

9.3.3. Handing report sessions

9.3.4. Automating the report generation process

9.4. Evaluating URL and Web service access options

9.4.1. Evaluating URL access

9.4.2. Evaluating Web service access

9.4.3. Choosing an integration approach

9.5. Summary

9.6. Resources

10. Reporting for Windows Forms applications

10.1. Rich client wanted

10.1.1. Report-enabling rich clients

10.1.2. Using the Client-to-Report Server model

10.1.3. Using the Client-to-Façade-to-Report Server model

10.2. Introducing the Adventure Works Report Wizard

10.2.1. Designing the Report Wizard

10.2.2. The Report Wizard step-by-step

10.3. Behind the scenes of the Adventure Works Report Wizard

10.3.1. Implementing the application framework

10.3.2. Selecting reports

10.3.3. Dealing with snapshot reports

10.3.4. Handling report parameters

10.3.5. Specifying the export format

10.3.6. Confirming the report request

10.4. Enhancing application performance

10.4.1. Using in-memory caching

10.4.2. Using multithreading

10.5. Summary

10.6. Resources

11. Reporting for web-based applications

11.1. Understanding web reporting

11.1.1. Reporting for intranet applications

11.1.2. Reporting for Internet applications

11.1.3. Reporting for extranet applications

11.1.4. Introducing the Adventure Works Web Reporter

11.2. Client-side reporting techniques

11.2.2. Creating write-back reports

11.2.3. Using HTTP-POST

11.2.4. Calling the RS Web service on the client side

11.3. Server-side reporting techniques

11.3.1. Using the ReportViewer control

11.3.2. Using the Adventure Works ReportViewer control

11.3.3. Reporting off application datasets

11.3.4. Business-to-consumer reporting

11.3.5. Business-to-business reporting

11.4. Summary

11.5. Resources

12. Reporting for OLAP applications

12.1. Understanding OLAP

12.1.1. OLTP vs. OLAP

12.1.2. How Reporting Services and Analysis Services compare

12.1.3. Understanding the OLAP storage model

12.1.4. Designing OLAP solutions

12.2. Implementing an OLAP solution: AW Data Miner

12.2.1. Implementing the data warehouse

12.2.2. Implementing the OLAP cube

12.2.3. Authoring OLAP-based reports with RS

12.2.4. Implementing AW Data Miner

12.3. Summary

12.4. Resources

13. Enterprise reporting

13.1. Understanding enterprise reporting

13.1.1. Evaluating enterprise reporting

13.1.2. Introducing the Adventure Works Enterprise Reporter

13.2. Behind the scenes of the Adventure Works Enterprise Reporter

13.2.1. Implementing the Report Configuration Store

13.2.2. Implementing the presentation layer

13.2.3. Implementing the Enterprise Reporting Façade

13.2.4. Designing for scalability

13.3. Implementing custom application authorization

13.3.1. Understanding the Windows Authorization Manager

13.3.2. Securing the AW Enterprise Reporter

13.4. Summary

13.5. Resources

14. Subscribed report delivery

14.1. Understanding subscribed report delivery

14.1.1. Subscription-based reporting scenarios

14.1.2. The subscriber-publisher design pattern

14.1.3. How the Reporting Services subscription-based model works

14.2. Configuring subscribed report delivery

14.2.1. Creating a new subscription

14.2.2. Choosing the subscription type

14.2.3. Configuring delivery extensions

14.2.4. Managing subscriptions

14.3. Subscribed report delivery in action

14.3.1. "Pushing" reports via standard e-mail subscriptions

14.3.2. Archiving reports to a file share

14.3.3. Sending reports to a data-driven list of recipients

14.3.4. Triggering subscriptions programmatically

14.4. Summary

14.5. Resources

Part 4 Advanced reporting

15. Extending Reporting Services

15.1. Understanding Reporting Services extensibility

15.1.1. Understanding interface-based programming

15.1.2. Working with interface inheritance

15.2. Reporting off ADO.NET datasets with a custom dataset data extension

15.2.1. Design goals and tradeoffs

15.2.2. Authoring dataset-bound reports

15.2.3. Implementing the custom dataset extension

15.2.4. Debugging dataset extensions

15.3. Distributing reports to Web services using custom delivery extensions

15.3.1. Design goals and tradeoffs

15.3.2. Using the custom delivery extension

15.3.3. Implementing the custom delivery extension

15.3.4. Debugging custom delivery extensions

15.4. Implementing custom security

15.4.1. Design goals and tradeoffs

15.4.2. Intranet reporting with custom security

15.4.3. Implementing the custom security extension

15.4.4. Debugging the custom security extension

15.5. Using custom HTTP modules

15.5.1. The HTTP module design goals and tradeoffs

15.5.2. Implementing the custom HTTP module

15.6. Considerations for custom rendering extensions

15.7. Summary

15.8. Resources

16. Performance and scalability

16.1. Understanding capacity planning

16.1.1. Capacity planning fundamentals

16.1.2. The capacity planning process

16.2. Capacity planning with Reporting Services in action

16.2.1. Determining requirements

16.2.2. Setting up the testing environment

16.2.3. Performance testing

16.2.4. Analyzing performance results

16.2.5. Identifying resource constraints

16.2.6. Eliminating resource constraints

16.3. Summary

16.4. Resources

Appendix A: Installing Reporting Services

A.1. Choosing components to install

A.2. Selecting the service account

A.3. Specifying RS virtual folders

A.4. Configuring the Report Server database

A.5. Configuring Reporting Services for e-mail delivery

A.6. Setting up the RS samples

A.7. Configuring RS licensing mode

A.8. Post-installation steps

A.8.1. Installing RS sample reports

A.8.2. Backing up the encryption key

A.9. Resources

index

About the book

In the first half, you will master the skills you need to create reports. System administrators will learn the ropes of managing and securing the report environment. The second half of the book teaches developers the techniques they need to integrate RS with their WinForm or web-based applications. It does this with the help of a wide variety of real-world scenarios which will give you ideas on how to use RS in addition to teaching you the ropes.

What's inside

  • Extend RS with custom code
  • Implement dynamic reports with Office Web Components
  • Create reports off ADO.NET datasets
  • Deliver reports to Web Services
  • Expose reports as RSS feeds
  • Customize RS security
  • Evaluate RS performance and capacity
  • and more

About the author

Teo Lachev has more than 11 years of experience designing and developing Microsoft-centered solutions. He is currently working as a technology consultant with the Enterprise Application Services practice of Hewlett-Packard. Teo is a Microsoft Certified Solution Developer and Microsoft Certified Trainer. He lives in Atlanta, GA.


eBook $39.99 PDF only

FREE domestic shipping on three or more pBooks