MS Access for the Business Environment: "Upsize" MS Access Reports to MS Reporting Services - Page 2
July 6, 2004
A Brief Introduction to Reporting Services
Reporting Services is a comprehensive reporting solution that integrates numerous components within an elastic, web-based architecture. These components include:
When we adopt the MSSQL Server 2000 / Reporting Services combination, regardless of the extent of the evolution of our BI efforts before, we avail ourselves of a highly integrated, powerful aggregation of BI components that includes:
Although its own central reporting database is housed within MSSQL Server, Reporting Services can easily access data from a wide range of data sources via ODBC and OLE DE. Reporting Services was designed with seamless integration in mind, and it will become known as a universal solution among a diverse range of environments. While Reporting Services also integrates with a wide variety of report creation tools and environments, it contains everything administrators and authors need to create and deliver reports without the requirement to write the code involved. The development environment is contained within a graphical tool called Report Designer, which works inside the project framework of the feature-rich Visual Studio .NET development environment. Illustration 1 depicts a report that is under development in the Report Designer.
Report Designer plays an important role in the upsizing of MS Access reports into Reporting Services. We use Report Designer to import MS Access reports, either from an MS Access database (.mdb) or MS Access project (.adp) file. Each imported report is converted to Report Definition Language ("RDL") by the Report Designer. RDL is an XML-based standard for report definition, developed by Microsoft and several industry partners.
All reports created in Reporting Services are defined in the RDL format, which generates XML in a way that is transparent to the report author. The RDL standard is being adopted rapidly by ISV's from the perspective of support, so upsizing reports from MS Access, just like writing them "from scratch" in the Report Designer (or a custom authoring tool, if appropriate) only means more integration and enhanced usability of our information products.
We will be examining the import / conversion process in our practice exercise later. Let's take a look at some of the realities of conversion that we will need to understand before undertaking the conversion of our MS Access reports to Reporting Services.
The Realities of Conversion
As we said, we can import reports from an .mdb or .adp file. In either case, the full set of reports associated with the file will be imported, and converted to .rdl files. In our practice example, we will import a full set of reports from a copy of the sample Northwind database. Other ways to manage this might be to create a "halfway house" .mdb, through which we can pass the reports at a controlled pace. We can also import the entire set of reports into a surrogate report project that we create beforehand in Report Designer, then, once the importation / conversion to .rdl files has occurred for the full set, open the individual reports in another report project, for a degree of insulation or staging, if that is useful for some reason. In any case, the original reports, and the MS Access database that houses them, are safe from corruption or otherwise disrupted utility.
Keep in mind that Access 2002 and above are supported as import targets of Reporting Services. Access 2002 or later is the only native import option, with regard to having a menu item reserved for that purpose, but the import and conversion of other popular report formats will soon become common options. I have already worked with multiple organizations that are in the process of creating such capabilities for Crystal Reports (several parallel ventures are underway in this arena, apparently), as well as for specific products of Cognos, BO and other "Big Sister" applications. Utilities of this sort will become commonplace as organizations all over the planet begin to see the huge savings involved in making the switch - and especially see others doing so around them. Once this train gets rolling ... well, we all know the metaphor.
In addition to being housed within an Access 2002 or later database, Reporting Services will require that the data sources associated with any reports designated for import must be available for the conversions to be successful. Reporting Services, as we shall see, actually converts the data source to a Reporting Services source that is active as soon as the report is converted and available.
Some MS Access Components are Not Supported
As we might expect, some modules, controls and other components found in import-targeted MS Access reports are not compatible with Reporting Services. The resulting build errors are presented in the Task List of the Design Environment (normally the lower window), where we can review what was culled out of a given report to ascertain whether its rejection was crippling to the report in its new incarnation in Reporting Services. Because the two reporting environments are significantly different, Reporting Services may modify some of the features of the imported reports, or may reject the components entirely.
Supported features are detailed in the Reporting Services Books Online. In addition, an overview is provided that treats the manner in which MS Access features and components are converted to RDL. The documentation explains, in many cases, what the action taken by Reporting Services can be expected to be, when it encounters an unacceptable item, and whether a warning or error is likely in the Task List. The components that are discussed include:
Other considerations are discussed here and elsewhere in the Books Online, as well, including the fact that conditional formatting is not automatically converted, that the report properties description field in MS Access is not converted, and so forth. This section of the Books Online is a "must read" for any practitioner who seeks to prepare for the sometimes tricky process of importing his or her organization's reports into Reporting Services. (For that matter, as of this writing the initial offerings on the book market for SQL Server Reporting Services is, in my opinion, so poor that the Books Online - which they essentially recast on paper - is still the best source of information that exists in a single document. In this case, I feel that the independent reviews we see on the major online booksellers are mostly quite accurate.)
Despite the differences in the two applications, and the features that may exist in our MS Access reports that will not carry over to identical functionality in Reporting Services, we can still often obtain efficiencies by using the import feature to upsize our reports. This is particularly true when our reports are not heavily endowed with the features or components that do not readily translate, or if the number of non-convertible items is minimal. If we have resources on hand that make the "import and modify" process more efficient than fresh rewrites, then the import capability obviously still offers a boost in the upsizing effort. It is, however, important to consider that the reports that we translate via this means may still warrant examination by knowledgeable practitioners to determine if enhancements or additions may be available in the far more powerful Reporting Services environment, and if the upsizing process might present an opportunity to make our reports more useful and performance oriented, as well as more easily deployed, delivered, and so forth via the new Reporting Services paradigm.
Let's begin our practice exercise at this point, preparing a database with reports to convert, and then getting hands-on exposure to the process in general. This will provide some insight into the decision to perform this on a larger scale later in our respective organizations.