About the Series …
This article is a member of the series MSSQL Server Reporting Services. The series is designed to introduce MSSQL Server Reporting Services (“Reporting Services”), presenting an overview of its features, with tips and techniques for real-world use. For more information on the series in general, please see my initial Database Journal article, A New Paradigm for Enterprise Reporting. For the software components, samples and tools needed to complete the hands-on portion of this article, see BlackBelt Administration: Linked Reports in Report Manager, another article within this series.
About the BlackBelt Articles …
As I state in BlackBelt Components: Manage Nulls in OLAP Reports and other articles of this subs-series, the BlackBelt articles represent an attempt to minimize the setup required in simply getting to a point within an article where we can actually perform hands-on practice with the component(s) or method(s) under consideration. I typically accomplish this by using existing report samples or other “prefabricated” objects that either come along as part of the installation of the applications involved, or that are otherwise readily accessible to virtually any organization that has installed the Microsoft business intelligence solution. While we will often have to refine the sample involved (we will typically create a copy, to allow the original sample to remain intact), to provide the specific backdrop we need to proceed with the object or procedure upon which we wish to concentrate, we will still save a great deal of time and distraction in getting to our objective. In some cases, we will have to start from scratch with preparation, but my intention with the BlackBelt articles will be to avoid this, if at all possible.
For more information about the BlackBelt articles, see the section entitled “About the BlackBelt Articles” in BlackBelt Components: Manage Nulls in OLAP Reports.
In this article, we will get some hands-on exposure to conditional drillthrough. We will discuss the general concepts, and then set up a scenario within which we work with basic reports to expose the steps for establishing this capability. As a part of our examination of the steps involved in establishing conditional drillthrough within Reporting Services, we will:
- Open the sample Report Server project, AdventureWorks Sample Reports, and ascertain connectivity of its shared data source;
- Create three basic reports – a “Launch” report, and two “Target” drillthrough reports – with which to perform our practice exercise;
- Modify the reports to support drillthrough linkages between them;
- Make enhancements to the launch report to support conditional drillthrough to the two target reports;
- Preview the new report set in action to ascertain its fitness to demonstrate conditional drillthrough in meeting hypothetical business requirements.
Conditional Drillthrough in Reporting Services
Objective and Business Scenario
Among the numerous ways to design interactivity into our reports, we can add navigational links to allow consumers to open other reports (or web pages), to jump to another location within the same report. Reporting Services supports Bookmark links (which enable consumers to jump to other areas within a report), Drillthrough links (which support jumping to other reports), and Hyperlinks (which support jumps to Web pages from the report). The focus of this article is the Drillthrough variety of link, although the concepts we explore can be extrapolated to Hyperlinks of other types.
“Drillthrough reports” (to which I often refer as “target” reports) are opened when a consumer clicks a link within another report (a “launch” report). Drillthrough reports typically contain details (hence representing a conceptual “drillthrough”) about an item that is contained in an original summary report. As an example, we might craft a report for a chain of dialysis centers that presents a list of patients, for whom it summarizes lab test results for a given treatment location over a given month. The report could be designed with drillthrough capability, so that when an information consumer clicks on a specific patient name, another report opens that displays historical monthly lab readings, as well as other relevant details, for the selected patient.
Let’s say that we have a client, the Adventure Works organization, who has contacted us with a drillthrough need that is slightly more sophisticated than their current level of experience will support. The team with whom we are working is composed of a group of report developers and authors, who state that they have recently received a requirement from the Marketing Department to enhance an existing report to allow for conditional drillthrough, based upon the data field value selected, to one of two possible target reports.
Because we seek to leverage the immediate need for a training opportunity, we suggest the creation of three basic reports, based upon OLAP data stored within the Adventure Works sample cube.
a “launch” report that presents the annual customer growth factor by Sales Territory Group;
a “target” report that opens when we click upon a Sales Territory Group (and presents Sales information grouped by “Sales Reason” information collected by the company about its transactions);
and a simple “message report” (stating that information is currently unavailable – say, because the data is questionable for some reason, and is being examined before re-release at a later time) that appears when an information consumer clicks upon one Sales Territory Group in particular.
Our client colleagues suggest that we use the Pacific Sales Territory Group as a practice example for triggering the second target report.