Crystal Reports for Visual Studio .NET 2003 Reviewer's Guide
Data. Millions and millions of megabytes of data. Each year, application developers write hundreds of thousands of lines of code with the primary purpose of storing and retrieving data. And what do application users do with this data? Many simply look at it, but a growing number of users want to do more than see the data. They want to interact with it. They want to slice and dice the data to fit their individual interests.
How can developers address the needs of these users? The Crystal Reports for Visual Studio .NET reporting toolkit, included with Visual Studio .NET, provides maximum flexibility in report development, viewing and deployment with minimal effort. Crystal Reports for Visual Studio is unsurpassed in terms of ease of use, power, and flexibility. Read on to discover the power, flexibility, and simplicity of Crystal Reports for Visual Studio .NET.
A significant amount of time and effort can be spent designing and writing code to display complex data cleanly and efficiently. Even more time and effort can be spent implementing functions that enable application users to customize data views to suit their individual tastes. This presentation, which most development tools and frameworks typically limit to the static projection of query results onto a Web page or the binding of data to a grid on an application form, misses the mark. Ease of use features such as grouping, sorting and filtering and presentation features such as color coding or graphing is often difficult to implement.
Existing controls in Visual Studio .NET, such as the DataGrid or DataRepeater, can be used to present data; however, anything beyond a basic display - functions like grouping, totaling at multiple levels, charting, and conditional formatting - can be complicated and time-consuming to implement and customize. Reporting technology helps solve this problem by providing a robust set of tools and methods for creating rich data displays that meet the demands of end-users. Embedding reporting technology within an application reduces development time and effort for non-trivial data presentation while giving the user control to view and navigate through the data.
While a subset of Crystal Reports 10, Crystal Reports for Visual Studio .NET is a complete reporting technology toolkit that dramatically simplifies report development and deployment while simultaneously providing a robust and dynamic presentation options for users. The Crystal Reports Report Designer, seamlessly integrated in the Visual Studio .NET development environment, allows developers to quickly create complex and professional-looking reports and incorporate them within both Windows and Web applications written in Visual Basic .NET, C#, Visual C++ or Visual J#. Through the Crystal Reports Report Viewer Control, end users can take charge of what they see and do with a report's data. And, best of all, developers can create rich, interactive reports with little or no code!
Crystal Reports, developed by Crystal Decisions in the early 90s, arrived as the world's first Microsoft Windows report writer in 1992. In 1993, Microsoft bundled Crystal Reports in Microsoft Visual Basic. The initial version consisted of a designer, the Crystal Reports API and the Crystal Reports control. Crystal Reports quickly became the de facto tool for developing reports with Visual Basic.
In 2002, Microsoft bundled Crystal Reports with Visual Studio .NET. Business Objects, the market leader in the business intelligence industry, acquired Crystal Decisions in December 2003. This union of two industry leaders gave Business Intelligence (BI) users their first clear standard for managing, analyzing, and reporting on data. Their strategy of constant innovation has led to the development of products that are acknowledged by companies as best-of-breed solutions. Business Objects leads the market in reporting, analysis and information delivery and will provide innovative products and services not only today, but well into the future.
Developers often think they can build an application that is just as good as many third party tools. However, when compared to the built-in functionality of Crystal Reports for Visual Studio.NET, a custom solution would require a significant amount of time, effort and code to achieve even a fraction of the functionality that Crystal Reports for Visual Studio .NET provides. Developers will prefer Crystal Reports for Visual Studio. NET to a custom-built solution because, out of the box, Crystal Reports for Visual Studio .NET offers an easy to use designer, a report viewer control which can be dragged and dropped from the Toolbox onto a Windows Form or Web Form, drivers for dozens of popular databases, and the ability to export data to popular file formats such as PDF and Excel.
In terms of flexibility, not only can Crystal Reports for Visual Studio .NET build a standard report that lists repeating data, but it can also be used in many ways that aren't typically associated with a report writer. For example, with Crystal Reports for Visual Studio .NET, a developer can easily create a report containing a chart or graph. Application users can view data represented graphically and drill down on charts and graphs to view data details. Another useful example is creating form letters using Crystal Reports for Visual Studio .NET.
Developers can use Crystal's report designer to create a form letter template and pull customer information from a variety of databases. Generated form letters can be printed and mailed to customers. An additional example of Crystal Reports for Visual Studio .NET's broad range of use includes formatting a report as an invoice. Invoices for a specific date range or a particular set of customers can be produced and exported as a .pdf file with minimal effort and almost no coding.
Creating a new Crystal Report file with Crystal Reports for Visual Studio .NET is as straightforward as adding a new item to a Visual Studio project. Much like adding a new class module or form, a Crystal Report item appears within the list of Templates in the Add New Item dialog in Visual Studio .NET. Once a Report file is added to a project, the Crystal Report Designer is launched. A new report can be created in one of three ways: through the Report Expert, as a blank report, or using an existing report as a starting point (see Figure 1).
Figure 1 - Report creation options
Selecting the Report Expert option starts the Report Expert Wizard. The Report Expert Wizard guides the developer through all of the steps necessary to create a report: selecting a data source, selecting which fields will appear on the report, grouping options, summary values, the number of records to display, whether a chart should be included on the report, selection criteria and the style of the report. The Report Expert Wizard generates a Report file based on the selected items. The result: a tailor-made and professional looking report (see Figure 2) - all without writing a single line of code.
Figure 2 Report created using the Standard Report Expert
The second option, creating a report as a blank report, displays a blank Report file (see Figure 3) in the Crystal Reports Designer with the header, details and footer sections displayed. The data source and other fields can be edited through the Field Explorer window (Figure 4). From the Field Explorer window fields can be dragged and dropped onto the report in the Crystal Reports Designer. Again – a complete report can be created without writing a single line of code!
Figure 3 Blank Report Example
The third option, creating a report from an existing report, allows a developer to choose an existing report as a template for a new report. The new report will be created with the same design as the selected report. Subsequent reports can be created from the template report. This allows an organization to provide a consistent look and feel across all reports without requiring developers to repeatedly code the common elements. And since two reports rarely require the exact same functionality, the "child" reports can be customized. This option saves developers a considerable amount of time when trying to create a consistent presentation among several reports in a solution.
Figure 4 Field Explorer
Reports display data, and gone are the days when corporations stored all of their data in a single data store or format. Today, companies store information in flat-files, relational database, worksheets, and a variety of other places. It's important that a reporting technology be able to retrieve data from all of these sources.
The data used in a Crystal Report can reside in dozens of locations. A report's data source can be any database with an ODBC driver or OLEDB Provider, Microsoft Access databases, Microsoft Excel workbooks, an ADO.NET DataSet, an ADO recordset, a CDO (Crystal Data Object) recordset, a DAO recordset, an RDO recordset and even an XML file. Developers can build reports based on data stored in virtually any database from SQL Server to Oracle to MySQL. Once a data source is associated with a report all of the available tables and corresponding data fields are displayed in the Database Fields list in the Field Explorer window (see Figure 5). To add a field to a report, the field is dragged and dropped from the Database Fields list within the Field Explorer window onto the report. Once a field has been added to a report, a check mark appears next to the field's name.
Figure 5 Database Fields
To provide the most flexibility in data access to developers, the database drivers included with Crystal Reports for Visual Studio .NET are designed to support both a "pull" and a "push" model of data access. When using the pull model, the driver will connect to the database and pull data on demand. Both the connection to the database and the SQL command used to retrieve data are handled by Crystal Reports for Visual Studio .NET itself and do not require any additional coding by a developer. The pull model is used by default.
Sometimes, database resources are at a premium and special attention must be paid when connecting to the database or retrieving data. When using the push model, a developer writes code to connect to the database, perform a SQL command to create a recordset or dataset that holds the fields used in the report. A developer also writes a few lines of code to pass the data in the recordset or dataset to a report as a parameter. This process enables developers to customize the data retrieval mechanism and build features like connection-sharing and data-filtering before Crystal Reports for Visual Studio .NET receives it. The result: a highly-scalable, highly-flexible reporting application with minimal coding.
Report data can be displayed in numerous ways, and a reporting tool should offer developers and users a variety of formatting options. Formatting can be used to draw attention to specific data, change the appearance of fields, or group comparable values together in a logical ordering. To facilitate formatting, Crystal Reports for Visual Studio .NET provides the Format Editor which can be used to change the appearance of any field placed on a report.
Available formatting options are based on the data type of the field. Numeric fields can be customized in many ways. For example, Crystal Reports for Visual Studio .NET allows a developer to specify the number of decimal places to display, display a negative number in a different color than the default, specify whether a currency symbol should be displayed and which symbol to use, and even specify whether a thousands separator should be displayed.
The format of Date and Time fields is also highly customizable. For example, Crystal Reports for Visual Studio .NET allows specifying that a report display only the date portion of a DateTime field, only the time portion, or both. Crystal Reports for Visual Studio .NET allows a report writer to specify whether a month's name or number is displayed, whether time is displayed in a twelve or twenty-four hour format, and even which separator to use when displaying date and time fields.
One of the primary purposes for dividing data into groups in a report is to run calculations on each group of records instead of running a calculation for all the records in a report. For example, if a data source contains sales information for a specific time period, the report might group data by year and month. Crystal Reports for Visual Studio .NET can also infer data groupings that don't explicitly exist in the data's source. For example, all data for a specific month and year can be grouped on a report even if the underlying data source does not have the data grouped by month and year.
Crystal Reports for Visual Studio .NET reporting technology automatically summarizes data, sorts data, breaks it into groups, and summarizes the values in each group. Summary information, like totals or averages, can be calculated for each defined group in addition to calculating values such as grand totals which include all records in a report. This satisfies the needs of users who want to see data summarized across many levels but also want the ability to see the detailed report data used to compute summary numbers.
Another important feature in reporting is a tool's ability to create formulas: calculations that don't exist in the underlying data source. To facilitate and simplify the creation of formulas, Crystal Reports for Visual Studio .NET provides the Formula Editor (see Figure 6).
The Formula Editor is yet another example of Crystal Report's out-of-the-box functionality that aids in the creation of highly customizable reports. The Formula Editor contains four main windows: the Report Fields window, the Functions window, the Operators window, and the Formula text window. Together, these windows make creating even complex formulas simple. Developers create formulas by combining report fields, functions and operators. Any field in the Report Fields, Functions and Operators windows can be dragged and dropped into the Formula text window. Developers can also construct formulas manually if they prefer. The Formula Editor also allows a developer to verify the syntax of the formula by simply clicking a button.
Figure 6 Formula Editor
Another common use of the Formula Editor is to create customized fields for a report. If the data source does not contain all of the information the users want to see, developers can create Formula Fields to represent the missing data. For example, if a report's data source contains monthly and yearly totals for an item, a Formula Field called MonthlyPercentage can be created which is the monthly total divided by the yearly total. The MonthlyPercentage field can be added to a report and displayed along with the monthly and yearly totals.
Report field properties like borders, font style, size and color can also be based on formulas allowing developers to conditionally format reports based on data. If a formula is associated with a field, it will override the default setting. For example a developer can create a formula that changes the font color of a field to red if the field's value is less than zero with the following line of code:
if (Sales.Profit) < 0 then crRed else crBlack
Developers can also use Formula Fields to alter the display of existing fields. For example, if the data source contains a user's last name and first name as separate fields, a field called Name can be created to represent the concatenation of the first name, a space, and the last name. The Name field can be added to the report.
In addition to using customized numerical formulas, common mathematical functionality - like subtotals, grand totals, percentages, and averages - can also be added within the Report Designer. When right clicking on a numeric field the context menu displays the following options: Insert Subtotal, Insert Grand Total, Insert Summary, and Insert Running Total. When a formula is selected, the corresponding calculated fields will be displayed in the appropriate section(s) of the report without writing a single line of code.
A Report File (see Figure 7 for an example) is divided into the following sections: a Report Header, a Page Header, optional Group Header section(s), a Details section, optional Group Footer Section(s), a Report Footer and a Page Footer. Developers can control the presentation of the report by placing fields in the appropriate sections. This provides tremendous flexibility.
Fields in the Report Header section (Section 1 in Figure 7) are displayed only on the first page of a report; items such as a report's title might appear in this section. Fields in the Page Header section (Section 2 in Figure 7) are displayed at the top of every page of a report; items such as the field headers for columns in a report would appear in this section. If the report was designed with groups, a corresponding Group Header section (Sections 6, 8 and 10 in Figure 7) will appear above the Details section and a corresponding Group Footer section (Sections 7, 9, and 11 in Figure 7) will appear below the Details for each group defined. Items like the group name would appear in the Group Header section, while any summary information for the group would appear in the Group Footer section.
Figure 7 Report File example
The Details section (Section 3 in Figure 7) of a report contains the report's detail data. Fields in the Report Footer section (Section 4 in Figure 7) are displayed only on the last page of a report; items such as a grand total would appear in this section. Fields in the Page Footer section (Section 5 in Figure 7) are displayed at the bottom of every page of a report; fields like the printed date of a report or the current page number would most likely appear in this section. A complete list of the integrated special fields that can be displayed on a report include: Print Date, Print Time, Modification Date, Modification Time, Data Date, Data Time, Record Number, Page Number, Group Number, Total Page Count, Report Title, Report Comments, Record Selection Formula, Group Selection Formula, File Path and Name, File Author, File Creation Date and Page N of M.
With many reporting toolkits, reports have an affinity with a specific range of data. Developers create reports for a specific date range - the fourth-quarter sales report, for example - or a specific geographic region – the Midwest district's revenues. When someone needs third-quarter sales data or data for the Pacific Rim region, a developer creates a new report.
Instead of requiring a developer to create a new report in these situations, Crystal Reports for Visual Studio .NET provides several ways for users to vary a report's data and thus eliminating the need to create a new report. One such way is Parameter Fields. Parameter Fields are extremely useful when one report will suit the needs of many users provided each user has the ability specify how much of the data he or she wants to see.
For example, in a report that displays sales information, a developer might include a parameter that prompts the user to enter a date range. The report would then return the results for the selected date range instead of returning the results for all dates or a single, pre-defined date range.
In Crystal Reports for Visual Studio .NET, there are two ways to set the value of a Parameter Field. A user can be prompted to supply a value for a parameter just before the report is displayed or a user can set a parameter value from another control and the value of the Parameter Field will be assigned at run time before the report is bound to a Viewer control. Parameter fields support the following data types: Boolean (which requires a yes/no or true/false answer), Currency (which requires a dollar amount), Date (which requires a date value), DateTime (which requires both date and time), Number (which requires a numeric value), String (which requires a text answer) and Time (which requires a value with a time format). Additionally, parameter fields can be used in formulas, the group or record selection criteria, or displayed as a field in the report itself.
If a developer chooses to let the Crystal Report prompt the user for a value, the developer can create a pick list for the users to choose the parameter value rather than requiring a user to manually enter a value. The text that prompts a user for a Parameter Field value is also customizable.
Charts are a graphical way to present data to a user. Crystal Reports for Visual Studio .NET not only allows developers to easily represent data as charts, but also allows users to drill down on a chart for detailed information on the data. The list of supported chart types includes: Bar, Line, Area, Pie, Doughnut, 3D Riser, 3D Surface, XY Scatter, Radar, Bubble, and Stock.
When a chart is added to a Report file, it appears in the Report Designer with sample data. Properties such as the Title, XAxisTitle and YAxisTitle are editable in the Properties window. Figure 7 shows an example of a Report file with a Bar chart in the group footer section. The Bar chart displays the totals for the details section at that group level. There are no other controls included with Visual Studio .NET that can so easily display data in a graphical manner. Any custom graphing solution would be time consuming and difficult to develop.
Figure 8 Report File with a Chart
Once a report is designed, the next step is incorporating the report into an application. This can be done by including a Report Viewer control within an application. Crystal Reports for Visual Studio .NET provides two report viewers with which users can view a report: the Windows Forms Viewer is used for Windows applications and the Web Forms Viewer is used with Web application.
The controls are added automatically to the Toolbox within the Windows Forms and Web Forms tabs. Developers can drag and drop the control onto a form and either initialize properties of the control at design time or interact with other controls on the form at run time. For example a form could have a list of available reports and a user could select a report and click a button. The code behind the button click action would set the ReportSource property of the Viewer control to the selected report and the report would be displayed. Another common use of runtime customization is to allow a user to select some criteria to filter the report information using parameters.
The major difference between the Windows Form and Web Form Viewer controls is that the Windows Forms Viewer control actually hosts the generated report while the Web Forms Viewer control emits static HTML 3.2 or HTML 4.0 script to a browser which provides a true Zero Client solution for viewing reports. A constraint of static HTML is that printing is limited to the printing capabilities of the browser, and the browser is only able to print the currently displayed page. However, there are ways to work around the limitation, such as exporting the report to a different file format or sending the report to a printer directly from the server. The two controls behave similarly but they do have a slightly different appearance.
When most people think of reports they think of a static view of data. However, the Crystal Reports Report Viewer provides end users with a very robust and dynamic interaction with report data. The control, composed of three sections: the Toolbar, the GroupTree, and the report area, allows users to navigate to the exact page they want to see, export the report to a variety of file formats and drill down into the underlying data. These controls are included "for free" on every Crystal Report and require no additional work by a developer.
The Toolbar at the top of the Report Viewer manages common report functionality like paging, printing, exporting, displaying and navigating the group tree, zooming, searching and refreshing the view. All of the buttons on the Toolbar can be displayed or hidden from end users. The Toolbar in the Windows Forms Viewer (see Figure 9) and the Toolbar in the Web Forms Viewer (see Figure 10) have a slightly different appearance since the Web Forms Viewer is rendered in HTML.
Figure 9 Windows Form Report Viewer Toolbar
Figure 10 Web Forms Report Viewer Toolbar
Both toolbars support paging forward, backward, to the first, the last or a specific page within a report. They both support a search function which allows users to search for a string within a report. Both toolbars allow users to zoom in or out of a report with a zoom factor between 25 and 400. Additionally, the Windows Forms Viewer Toolbar supports the ability to close a report page, print a report, export a report, and toggle the display of the group tree within the Viewer.
The Web Forms Viewer Toolbar has an additional button, Drill Up, which allows users to navigate up one level to the parent group of the current view. In addition to the built-in functions, the CrystalReportViewer control programmatically exposes the functionality of the Toolbar allowing developers to create their own custom toolbar without sacrificing features.
If a report includes groups, the GroupTree displays the report's group names in a hierarchical fashion. This highly useful feature allows users to navigate to a specific group within a report without paging through the report trying to find the particular group. The group nodes are similar to visual bookmarks that are assigned to sections of a report. Clicking on a group node within a Group Tree instantly displays the page that contains the selected group. Since the Web Forms Report Viewer renders the report in HTML, the Web Forms Report Viewer Group Tree looks slightly different from the Windows Forms Report Viewer Group Tree (see Figure 11).
Figure 11 Web Forms Report Viewer Group Tree (left) and the Windows Form Report Viewer Group Tree
The generated report is displayed in the right hand section of the Report Viewer. Figure 12 is an example of a Windows Forms Report Viewer and Figure 13 is an example of a Web Forms Report Viewer hosting the same report file.
Figure 12 Sample Report in a Windows application based on Figure 7's Report File
Figure 13 Sample Report in a Web application based on Figure 7's Report File
If the report has groups defined then double-clicking (or single-clicking in the case of a Web Form) on a group header or group footer section in the main report will open a new page with only the selected group's data displayed. For example clicking on the January 2004 group header on the report in Figure 12 will open a new page within the Report Viewer control with only data from January 2004 (see Figure 14).
Figure 14 Viewing a selected group's data
Figure 15 is an example of a report with Bar charts associated with its data. Double-clicking (or, in the case of a Web Form, single-clicking) on a bar within the chart displays the underlying data on a new page within the Report Viewer control.
Figure 15 Sample Report with Bar Charts in a Windows application
Users often want to save reports for later viewing or export them to a format better suited for detailed analysis. Crystal Reports for Visual Studio .NET makes both of these operations a snap. The Export button on the Windows Form Report Viewer Toolbar supports exporting the report to the following formats: Adobe Acrobat (.pdf), Microsoft Excel (.xls), Microsoft Word (.doc), or Microsoft Rich Text (.rtf). Developers can add custom code to support exporting to Crystal Reports Report Files (.rpt) or HTML 3.2 and 4.0 (.html). All of the supported formats can be exported to a disk file, to a Microsoft Exchange public folder, or even Microsoft Mail (MAPI) which will email the report to a list of recipients.
The ability to export a report to a local drive or email it to a group of people is a highly valuable feature of Crystal Reports for Visual Studio .NET. Using built-in functionality, a sales team could export a report to Microsoft Excel and run an analysis against the data, while an office administrator could export the exact same report as an Adobe Acrobat file and email it to the company officers.
Caching is the process of storing an object in memory for faster retrieval on subsequent requests. Through caching, Crystal Reports for Visual Studio .NET allows users to access frequently viewed Web reports faster by saving the Crystal Repots Engine a trip to the database and instead returning a recent copy of the report. When a report is added to a Web application, the class for a cached version of the report is automatically created, too, meaning a developer does not have to perform any extra coding to create a cached version of a Web report. To provide maximum flexibility and ensure a cached report's data does not become stale, developers can set a report's CacheTimeOut property which indicates a time span (in days, hours, minutes, seconds, or milliseconds) before the cache is cleared and the report's data is retrieved again from the data source.
An oft-dreaded parts of the development cycle is preparing applications for deployment. In most cases adding an additional component to a solution, like a new class file or a new form, means an additional headache when deploying the application. However deploying an application that uses Crystal Reports for Visual Studio .NET requires just a few additional steps.
Once a report had been designed and a Report Viewer control has been placed in the host application, the next logical step is to deploy the application containing the report to client machines or a web server. To do this, the Report (.rpt) files need to be distributed when the host application is deployed. Crystal Reports for Visual Studio .NET provides several flexible options for deploying reports. Reports can be deployed as embedded report resources within an application, by referencing the reports as non-embedded report files, or publishing a report as a Web Service.
In a Visual Studio project, if Report files are compiled as embedded resources, they are written into the hosting application's assembly manifest. As a result, the report files are compiled as part of the hosting application's EXE or DLL. The benefit of this deployment option is that no addition report files (with the exception of the reporting engine .dlls described later in the section) need to be distributed. However when a report is updated, the entire application must be recompiled and redeployed.
A second option is to distribute report files separately from the hosting application's assembly. While this method of deployment requires that additional files, the .rpt files, be distributed, it provides the advantage of keeping reports external to the assembly. As a result, reports can be updated and distributed without affecting the host application. Non-embedded Report files can be loaded from a local hard drive, a network location or from a Web Service.
When a developer creates a Report file in either a Web Application or Web Service project, the option to publish the report as a Web service becomes available. By publishing a report as a Report Web Service, Visual Studio compiles the Web Service to an assembly and generates an XML file that describes the public functions, input parameters, data types, and return data types exposed by the Report Web Service.
Both the assembly and the XML file are published on the Web server as a Report Web Service. Any application that can consume Web Services can access and use the report and its data. Both Web and Windows applications can connect to a Report Web Service and host the reports exposed by the Report Web Service with a Viewer control. An example for this scenario would be a company creating a report that shows its current unfilled orders. If this report is exposed as a Web service, vendors could reference this Report Web Service from their own applications and view pending orders real-time. Vendors would instantly see any updates to data or the report's format.
Once the method of delivery of the Report files has been selected, creating a setup project for the host application is straightforward. When a Crystal Reports Report Viewer control is added to a form on a Web or Windows project, the required assemblies are automatically added as References to the project. When creating a setup project for the host application, the Crystal Reports merge modules need to be added to the setup project. The merge modules ensure the correct report components and component versions are installed with the application.
Crystal Reports for Visual Studio .NET is the definitive "out of the box" reporting technology for use in .NET Windows and Web applications. It allows developers to create rich, dynamic applications and delivers highly-interactive, professional-looking reports to the end-user. It does all of this and requires developers to write little or no additional code. Crystal Reports for Visual Studio .NET supplies developers with access to heterogeneous systems through a wide array of data source options.
In addition to creating "traditional" reports, Crystal Reports for Visual Studio .NET can also be used to display data in the form of invoices, form letters, and mailing labels. With Crystal Reports for Visual Studio .NET the possibilities are endless. Crystal Reports' reporting technology can be incorporated in Windows or Web applications written in Visual Basic .NET, C#, Visual C++ or Visual J#.
Crystal Reports has been integrated with Microsoft Visual Studio products since 1993. Crystal Reports for Visual Studio .NET is an integral part of the Visual Studio .NET product family. It is installed by default in all major versions of Visual Studio .NET and will be included in the Whidbey release of Visual Studio. The basic functionality included within Visual Studio .NET offers an integrated designer, a rich API and an interactive viewer control.
If additional functionality is required, the feature-rich upgrades Crystal Reports 10 Developer Edition and Advanced Developer Edition take reporting for .NET applications to the next level with innovative new technology for advanced Web browser printing and export functionality, additional data source formats, additional export formats, reports for mobile devices, customizable report preview at design time, more report design and formatting options, component reuse for faster report design, enhanced DataSet processing, simplified deployment, and a standalone report designer.
Crystal Reports is the industry standard for embedded reporting. There are over one million registered Crystal Reports developers. Numerous third-party applications and major enterprise applications like PeopleSoft, SAP and Baan integrate the Crystal Reports reporting technology. It is the embedded reporting technology of choice for hundreds of Independent Software Vendors (ISVs), including Microsoft Customer Relationship Manager (CRM), which is Microsoft's first .NET business application, and SAP Business Warehouse (BW), which is SAP's strategic BI platform. The Crystal Reports community is strong and provides a great support network. Web sites like Developer Zone, newsgroups, and numerous publications offer great reference materials for developers of all technologies.
For more information on Crystal Reports for Visual Studio .NET, including conceptual information and tutorials, check out the following link:
https://support.businessobjects.com/communityCS/TechnicalPapers/cr_net_sdk_additional_en.zip.asp
Sample code for the tutorial can be found here:
Shannon Geraci is a consultant at Clarity Consulting Inc., a Chicago-based information technology firm and Microsoft Gold Certified Partner. Shannon has designed and developed solutions for Fortune 500 companies in a variety of industries, including financial, accounting, and publishing. Visit https://www.claritycon.com for more information about Clarity Consulting.
Top of Page