Pro VS 2005 Reporting Using SQL Server and Crystal Reports
By:Â Kevin S. Goff, Rod Paddock
Paperback | 1 November 2006
At a Glance
528 Pages
23.5 x 19.05 x 2.69
Paperback
$90.67
or 4 interest-free payments of $22.67 with
 orÂAims to ship in 7 to 10 business days
Reports offers a proven methodology for building
reporting solutions. The authors focus on SQL Server 2005
and Crystal Reports, but also cover other popular
technologies like Oracle and ActiveReports, to give you a
thorough grounding in the reporting field. The book
presents the requirements for a real-world reporting
application in a distributed environment, and covers all
the phases of development. In many business applications,
reports play a critical role. The stakeholders of a
software system expect reports to summarize data and
efficiently present it to business users and decision
markers. They expect reports to present data in ways they
can easily interpret, and in ways that help them evaluate
and analyse business performance. Visual Studio 2005, SQL
Server 2005, and Crystal Reports contain powerful
capabilities to help you build and deliver sophisticated
presentation output. This is the only book available that
shows you how to use all these disparate technologies
together to create a cohesive solution.
About the Authors | p. xvii |
About the Technical Reviewer | p. xix |
Acknowledgments | p. xxi |
Introduction | p. xxiii |
The Requirements: Begin with the End in Mind | |
Defining the Requirements | p. 3 |
The First Meeting: Defining the Requirements | p. 3 |
Building the Plan of Attack | p. 7 |
Building a Report Draft and Report Style Guide | p. 9 |
Summary | p. 10 |
Building the Database with SQL Server 2005 | |
Generating Result Sets with T-SQL 2005 Stored Procedures and UDFs | p. 13 |
Defining the Result Set | p. 13 |
Querying on a Variable Number of Selections | p. 16 |
Handling Variable Selections with XML | p. 19 |
Table-Valued UDFs and How to Apply Them | p. 20 |
Moving On: UDF to Get Worker Rates | p. 22 |
Putting It All together: Stored Procedure GetTimeSheetData | p. 24 |
Summary | p. 28 |
More T-SQL 2005 Stored Procedures | p. 29 |
Building the Construction Job Summary Report | p. 30 |
Determining the Total Labor Data | p. 31 |
Retrieving Material Purchases | p. 33 |
Retrieving Invoiced Amounts and Payments | p. 34 |
Putting It All Together | p. 35 |
Building the Result Sets for an Aging Receivables Report | p. 36 |
General SQL Server Programming Tasks | p. 40 |
TOP N Reporting | p. 40 |
Common Table Expressions/Recursive Queries | p. 41 |
Implementing Audit Trail Functionality | p. 43 |
Getting Immediate Feedback with Output and Output Into in SQL Server 2005 | p. 45 |
Using Dynamic SQL (and Finding Alternatives) | p. 45 |
New Functions in SQL Server 2005 to Assign Ranking Values | p. 47 |
Implementing Better Error Handling with Try...Catch | p. 48 |
Using Like to Perform Text Searches | p. 49 |
Working with XML Data | p. 49 |
Using Date Parts | p. 51 |
A Cleaner Alternative to In: Intersect and Except | p. 52 |
Apply Revisited: Using UDFs with Correlated Subqueries | p. 52 |
Using SQL Server 2000 | p. 53 |
Summary | p. 54 |
Recommended Reading | p. 54 |
Defining and Building the Architecture | |
Building Remoting/Web Service Solutions with Interfaces | p. 57 |
Begin with the End in Mind | p. 58 |
.NET Remoting | p. 58 |
.NET Web Services | p. 61 |
Your Development Goals | p. 62 |
Remoting and Web Services | p. 67 |
General Usage Notes for .NET Remoting | p. 68 |
General Usage Notes for .NET Web Services | p. 68 |
Defining the Interface | p. 68 |
Building a Remoting Application | p. 69 |
Writing the Server-Side Code | p. 70 |
Building the Client-Side of a Remoting Piece | p. 73 |
Building a Web Service | p. 74 |
Building a Web Service | p. 74 |
Using the Web Service from a Client Application | p. 79 |
Creating a Factory to Simplify the Process | p. 84 |
New Features for Remoting in Visual Studio 2005 | p. 88 |
Secure TCP Remoting and TCP Channel Timeouts | p. 88 |
The New IPC Client Channel | p. 89 |
Serializing DataSets in a Binary Format | p. 89 |
Using .NET Generics to Simplify Remoting Interfaces | p. 90 |
Summary | p. 91 |
Recommended Reading | p. 92 |
Building a Data Access Layer | p. 93 |
Overview: What Is a Data Access Layer? | p. 93 |
Requirements for a DAL | p. 94 |
Building a Data Access Class | p. 95 |
Handling Multiple Databases with a DBKey Identifier | p. 95 |
Handling Stored Procedure Parameters | p. 98 |
Implementing a Custom Timeout | p. 100 |
Using Your Basic Data Access Class | p. 102 |
Are You Satisfied with This? | p. 102 |
Populating Typed DataSets Using .NET Generics | p. 103 |
Looking at Where You Are | p. 105 |
The Aging Report Business Object (bzAgingReport) | p. 106 |
The Aging Report Web Service (wAgingReport.asmx) | p. 106 |
The Aging Report Data Access Class (daAgingReport.cs) | p. 107 |
Your Final Data Access Class (cgsDataAccess.cs) | p. 108 |
Extending a Data Access Class | p. 111 |
Multiple Active Result Sets | p. 111 |
Loading a DataSet from a DataReader | p. 112 |
Using Provider Factories to Support Multiple Database Products | p. 112 |
Asynchronous Processing Made Simple | p. 113 |
Summary | p. 116 |
Using Strongly-Typed DataSets | p. 119 |
What Are Typed DataSets? | p. 119 |
Building Typed DataSets for This Application | p. 120 |
Building a Utility to Generate a Typed DataSet from Your Stored Procedures | p. 120 |
Creating a Typed DataSet Manually | p. 124 |
Benefits of Typed DataSets | p. 126 |
Strong Typing | p. 126 |
Easier Traversing of Hierarchical Data | p. 127 |
Find Your Way Easier | p. 127 |
Null Value Handling | p. 128 |
But Wait-More Benefits! | p. 128 |
Reporting | p. 128 |
Subclassing | p. 128 |
Simplify Data Binding | p. 129 |
Using Typed DataSets with Designer Tools | p. 129 |
Using Typed DataSets for Reports | p. 129 |
Viewing Typed DataSets in Windows Forms | p. 130 |
Overcoming the Shortcomings | p. 133 |
The Great Debate on Typed DataSets | p. 134 |
Stop the Presses! Something Doesn't Match | p. 134 |
Breakpoint: The Architecture As It Stands | p. 136 |
Breaking Down the Code | p. 138 |
Summary | p. 141 |
Recommended Reading | p. 141 |
Middleware Data Summarization Using Typed DataSets | p. 143 |
Capabilities in ADO.NET | p. 143 |
The Scenario: Produce an Aging Report Result Set from a Flat List of Invoices | p. 144 |
Creating an Instance and Adding Rows | p. 146 |
Creating Default Column Values for New Rows | p. 147 |
Looping Through Strongly-Typed Rows | p. 148 |
Performing Date Math | p. 148 |
Performing Lookups on Primary Keys | p. 149 |
Filtering | p. 150 |
Performing the Equivalent of Select Distinct | p. 152 |
Handling Data Relations | p. 152 |
Computing Subtotals Automatically | p. 154 |
Computing Subtotals Manually | p. 155 |
Putting It All Together | p. 157 |
Some Miscellaneous ADO.NET Tips | p. 161 |
Reading/Writing Null Values | p. 161 |
More Date Handling | p. 162 |
Choices, Choices: When to Use RowFilter, When to Use Select()? | p. 163 |
Summary | p. 163 |
Report Writers | |
Basic/Intermediate Report Design with Crystal Reports | p. 167 |
Versions of Crystal Reports | p. 168 |
The Crystal Reports Push Model | p. 168 |
Building a Reusable Header and Footer Subreport | p. 169 |
Creating the Generic Report Header and Defining the Data Source | p. 170 |
Editing Options | p. 175 |
Using Report Sections to Build the Report Header | p. 178 |
Building the Footer Page | p. 180 |
Using the Report Header and Footer in a New Report | p. 182 |
"Houston, We Have a Problem" | p. 185 |
Implementing a Base Report Template | p. 186 |
The End Result | p. 186 |
Integrating the Header Subreport and a New Base Report Template | p. 186 |
Using Your New Base Report Template | p. 196 |
Summary | p. 197 |
Advanced Report Design with Crystal Reports | p. 199 |
Implementing the Timesheet Report | p. 200 |
The End Result | p. 200 |
The Result Set | p. 201 |
The Steps to Build It | p. 202 |
Final Notes | p. 219 |
Implementing the Gantt Chart | p. 219 |
The End Result | p. 219 |
The Result Set | p. 220 |
The Steps to Build It | p. 221 |
Implementing Dynamic images on a Customer Invoice | p. 227 |
The End Result | p. 227 |
The Result Set | p. 228 |
The Steps to Build It | p. 228 |
Implementing a Stacked Bar Chart | p. 229 |
The End Result | p. 229 |
The Result Set | p. 230 |
The Steps to Build It | p. 230 |
Implementing the Labor/Cost Report/Graph | p. 234 |
The End Result | p. 235 |
The Result Set | p. 237 |
The Steps to Build It | p. 238 |
Final Note: The Aging Receivables Report | p. 242 |
Summary | p. 242 |
Using ActiveReports for .NET | p. 243 |
ActiveReports Basics | p. 243 |
Creating Your First Reporting Application | p. 243 |
Binding to the XML-XSD File | p. 245 |
Simple ActiveReports Layout | p. 247 |
Creating a Report Viewer | p. 249 |
Building Header and Footer Subreports | p. 251 |
Header/Footer Strategy | p. 252 |
Creating the Header | p. 252 |
The Timesheet Details Report | p. 260 |
Creating Subtotals and Totals | p. 263 |
Printing | p. 265 |
Exporting | p. 266 |
Summary | p. 268 |
Using Microsoft SQL Server Reporting Services | p. 269 |
What Is SQL Server Reporting Services? | p. 269 |
SSRS Basics | p. 269 |
Creating a Report Project | p. 269 |
Configuring Your Project | p. 270 |
Reporting Project Components | p. 271 |
Accessing XML Data with SSRS | p. 272 |
Accessing Data from a Static XML Data Source | p. 272 |
Creating Your First Report | p. 274 |
Examining the Report Designer | p. 274 |
Creating an SSRS Dataset | p. 277 |
Basic XML Query Syntax | p. 278 |
Presenting Your Data | p. 281 |
Deploying Your Project | p. 284 |
Accessing Data from Web Services | p. 285 |
Creating the Test Web Service | p. 285 |
Creating the Data Source | p. 289 |
Basic Web Service Syntax | p. 290 |
Understanding SOAP Request and Response Packets | p. 291 |
Parameter Query Syntax | p. 293 |
Summary | p. 297 |
Recommended Reading | p. 297 |
Integrating the Reporting Tool with the Application | p. 299 |
Begin with the End in Mind: Your Final Result | p. 299 |
Using the Crystal Reports .NET Object Model | p. 300 |
The ReportDocument Object Model | p. 301 |
Building a Generic Crystal Reports .NET Library | p. 314 |
The Generic Report Manager: ccCrystalManager | p. 315 |
Report Header/Footer Data Objects: ccReportInfo | p. 321 |
The Generic Print Options Form: ccCrystalPrintOptionForm | p. 322 |
The Generic Report Preview Form: ccCrystalViewer | p. 323 |
Miscellaneous Reporting Tasks | p. 324 |
Determining the Current Executing Folder for Exporting to a Location | p. 324 |
Loading Untyped Reports | p. 325 |
Changing Report Authentication | p. 325 |
Utilizing Your Library to Generate a Report | p. 326 |
Building the Aging Receivables Report | p. 326 |
The Final Results for the Aging Receivables Report | p. 327 |
Summary | p. 339 |
Recommended Reading | p. 340 |
Building the Client Piece | |
Constructing the User Interface | p. 343 |
Building Reusable Winforms Classes | p. 343 |
Creating Winform Classes | p. 346 |
Subclassing the Windows Forms Controls | p. 349 |
Creating an Inherited Windows Form | p. 355 |
Some Commentary on the Visual Studio Forms Designer | p. 361 |
Building an Authentication Screen | p. 362 |
Building the Layers, Redux | p. 364 |
Creating a Report Options Screen | p. 382 |
Creating a Reusable Record Selection Screen | p. 383 |
Creating a Reusable Footnote Entry Screen | p. 391 |
Building Your Report Options Screen | p. 391 |
Viewing Previously Saved PDF Files | p. 398 |
Summary | p. 400 |
Building Report Output Using Microsoft PowerPoint | p. 401 |
Introducing PowerPointTools | p. 401 |
Creating PowerPointTools: Begin with the End in Mind, Times Two! | p. 402 |
An Overview of PowerPointTools | p. 402 |
Adding COM References to the PowerPoint and Excel Object Models | p. 403 |
The Source Code for PowerPointTools | p. 405 |
Using PowerPointTools | p. 418 |
Creating an Instance of PowerPointTools | p. 418 |
Starting a New Presentation with a Template and a Title Page | p. 419 |
Creating a Text-Only Slide with a Title and a Set of Bullet Points | p. 422 |
Building an Excel Table to Be Used As the Source of a PowerPoint Table | p. 424 |
Creating a Slide That Displays an Excel Table | p. 426 |
Building an Excel Table to Be Used As a Source of an Excel Chart Object | p. 428 |
Setting Animations and Slide Transitions | p. 438 |
Defining Slide Footer Information | p. 439 |
Saving the Presentation | p. 440 |
Closing Excel | p. 440 |
When in Doubt, Use Office Macros! | p. 440 |
Summary | p. 442 |
Appendixes | |
Client Specs | p. 445 |
Timesheet Report | p. 445 |
Construction Job Summary/Profit Report | p. 446 |
Project Timeline (Gantt) Chart | p. 448 |
Client invoice | p. 448 |
Aging Receivables Report | p. 449 |
Combination Report/Graph of Labor and Costs | p. 450 |
Stacked Bar Chart Showing Labor/Costs by Month | p. 452 |
Construction Job Profile Report | p. 453 |
Database Schema | p. 455 |
Database Schema | p. 455 |
Categories of Data | p. 461 |
Employees and Rates and Rate Types | p. 461 |
Overhead Rates | p. 461 |
Construction Job Master Data | p. 462 |
Timesheet/Labor Data | p. 463 |
Material Purchases | p. 463 |
Jobs and Invoices and Invoice Receipts | p. 464 |
Technical Roadmap and Reference | p. 465 |
Application Component Reference | p. 465 |
The Common Ground Framework Library | p. 465 |
The Construction Demo Solution | p. 471 |
Class Library Project: ConstructionDemo.Business | p. 472 |
Class Library Project: ConstructionDemo.DataAccess | p. 473 |
Windows Application Project: ConstructionDemo.RemotingServer | p. 475 |
Class Library Project: ConstructionDemo.CrystalReports | p. 475 |
Class Library Project: ConstructionDemo.Datasets | p. 476 |
Class Library Project: ConstructionDemo.Interfaces | p. 476 |
Class Library Project: ConstructionDemo.WebServices | p. 477 |
Main Windows Application: ConstructionDemo.Client.Winforms | p. 478 |
Some Final Notes | p. 478 |
Setting Project Dependencies | p. 478 |
Alternative Approaches | p. 479 |
Handling Master Tables | p. 480 |
Looking at the User Interface | p. 480 |
Index | p. 485 |
Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9781590596883
ISBN-10: 1590596889
Series: Pro
Published: 1st November 2006
Format: Paperback
Language: English
Number of Pages: 528
Audience: General Adult
Publisher: Springer Nature B.V.
Country of Publication: US
Dimensions (cm): 23.5 x 19.05 x 2.69
Weight (kg): 0.82
Shipping
Standard Shipping | Express Shipping | |
---|---|---|
Metro postcodes: | $9.99 | $14.95 |
Regional postcodes: | $9.99 | $14.95 |
Rural postcodes: | $9.99 | $14.95 |
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In
Architecting Data and Machine Learning Platforms
Enable Analytics and Ai-Driven Innovation in the Cloud
Paperback
RRP $125.50
$55.25
OFF
This product is categorised by
- Non-FictionBusiness & ManagementBusiness Communication & Presentation
- Non-FictionComputing & I.T.Business ApplicationsEnterprise Software
- Non-FictionLanguage & LinguisticsReference, Dictionaries & GuidesWriting & Editing Guides
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentDatabase Programming
- Non-FictionComputing & I.T.DatabasesDatabase SoftwareSQL Server & MS SQL
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
- Non-FictionComputing & I.T.DatabasesData Mining