Download presentation
Presentation is loading. Please wait.
1
Taking the Scare Out of Monster Reports
Pam Shaw
2
Explore Everything PASS Has to Offer
FREE ONLINE WEBINAR EVENTS FREE 1-DAY LOCAL TRAINING EVENTS VOLUNTEERING OPPORTUNITIES LOCAL USER GROUPS AROUND THE WORLD ONLINE SPECIAL INTEREST USER GROUPS PASS COMMUNITY NEWSLETTER Make sure you explore everything PASS has to offer for data professionals! You can join local user groups around the world, virtual chapters, find free online resources through our learning center and read up on the latest community news in the Connector Newsletter. For those interested in Business Analytics check out the PASS Business Analytics Conference happening in May next year. Visit for more information or to subscribe to our bi-weekly BA Insights newsletter. FREE ONLINE RESOURCES BUSINESS ANALYTICS TRAINING BA INSIGHTS NEWSLETTER
3
Pam Shaw Bio Pam Shaw has been in IT for over 30 years. Since 2001, Pam has been working with SQL Server, first 2000, then 2005, 2008, 2008 R2 and now Pam currently works for Bisk Education as a BI Developer. Pam is also the Chapter Leader of the Hillsborough SQL Users Group PASS chapter and organizer of SQL Saturday Tampa. @pamshaw linkedin.com/in/pshaw1129 sqlpam.wordpress.com
4
Agenda Types of Monster reports Controlling Disparate Data
Controlling Disparate Controls Please note that queries are contained in the RDL for ease of delivery to you. In a real world situation, these would be contained in stored procedures. Stored procedures make delivery to you more difficult. The queries are written against extracted data from SQL 2012 Report Server. The data will need to be optimized for use on your report server. My hope was that you would be able to utilize this when you get home.
5
Monster Report: Should I be afraid?
6
Types of Monster Reports
Disparate Data Lots of different types / sources of data to organize and present Disparate Controls Lots of controls to present in an organized manner
7
Types – Disparate Data This is a report that combines the results of multiple data sets into a single table. In some cases, the row data differs in format from one result set to the next.
8
Sample Disparate Data Note this shows 3 different row formats plus detail. There is also a link for charts to be displayed. They are hidden and could be displayed by clicking the graphic to the far right of the details.
9
Types – Disparate Controls
This is a report that combines the results of lots of small reports – commonly charts – into a single report. These are often referred to as “Dashboard” reports.
10
Sample Disparate Controls
On this we have both a pie and expanded charts, bar and column charts as well as some grids.
11
Disparate Data Challenges
Special ordering required Multiple Row Formats Addition of charts Additional columns Tool Tips There is a lot of data involved. So how do we tackle this – how do you eat an elephant? One bite at a time. In this case – one query at a time. Ordering may not be by either a number, a date or even a description. It might be from some special order defined outside of your organization – but you need to assure that the data is in the requested order. Sometimes you need to combine multiple queries that different column counts. Find the maximum column counts and work from there, Adding columns that define the layout on the report can be critical. These added columns will allow you to hide or reveal rows. Tool tips are not automatically formatted. If you have to add tool tips and they get “wordy”, you will need to format the tool tips based on what the client wants.
12
Sample Disparate Data Please note this is “fuzzed” out so that the client’s confidential data is not revealed.
13
Disparate Data Control Table This is a table – usually specific to the report – that allows the maintenance to control information about groups of data on a report. Once we assemble all of the data the next step is to organize. A control table allows us to both organize and resolve some of our challenges.
14
Control Table Sample CREATE TABLE [dbo].[rptPerformanceReport]( [rptGroupingID] [int] IDENTITY(1,1) NOT NULL, [Category] [varchar](100) NULL, [CategoryOrder] [int] NULL, [GroupingLabel] [varchar](100) NOT NULL, [GroupingOrder] [int] NULL, [GroupingType] [varchar](20) NULL, [GroupingTotal] [int] NULL, [SourceFieldName] [varchar](50) NULL, [SourceTableName] [varchar](50) NULL, [GrpToolTip1] [varchar](100) NULL, [GrpToolTip2] [varchar](100) NULL, [GrpToolTip3] [varchar](100) NULL, [ChartName] [varchar](100) NULL ) ON PRIMARY The control table allows us to add layers to the groupings. Each query usually defines a grouping – just above the details. We can define the Multi-level ordering. I add documentation – where did each data element come from plus I allowed the formatting of the tooltips.
15
Demo Take a look at: The data collection The report layout
Adding formatting Report Stats 1 Show the SQL Script. I am using a cte because my original data was very small and this worked well. You will need to work with your data and determine what works best for your data. Note that this data was built one query at a time and then UNIONed. I am using a cte for the control table for portability. This is unwieldy in a real world experience – especially if you have to expend the control table – and you almost always have to expand the control table. Go to the report and update the background color (cut and paste the data change).
16
Disparate Control Challenges
Different sized charts, gauges, and grids Controlling data Solution – Think Lego Blocks Lots of times you are just given a list of charts, graphs, gauges and grids the client wants displayed. It becomes your responsibility to put them together in a pleasing manner. Many times the data becomes a challenge because you need to determine the best place for the data to reside within the report. You will need to sketch it out roughly if the user does not give you exactly what they want. At the simplest level – we need to look at this like Lego blocks. We build each component individually like we previously built the queries. This allows these components to be made available as individual reports or for use on the dashboard. Identify the individual components and build each Get each component working without the complication of the other components. Build a catalog of individual components as single reports – you will need to manage the parameter specifics once they are deployed. Create the building blocks you need for the “Monster”.
17
Sample Disparate Controls
Please note this is “fuzzed” out so that the client’s confidential data is not revealed.
18
Disparate Controls Two approaches I have used: Tables containing calls to sub-reports Build everything on the base report Each of these has its own challenges and we will review.
19
Disparate Controls Pre-build the controls needed Keep width consistent Each control is usually simple to build Usually components can be made to fit consistent columns Determine the different widths you need Build components using pre-determined widths I usually attempt to use a template to build my components so they have a common look and feel – Also makes custom color pallets easier
20
Tables containing calls to sub-reports
The 2 issues I encountered with this approach were: Different sized controls left gaps on the report Parameters being passed could not be report parameters If widths are not consistent you will get horizontal gaps If the lengths are inconsistent you will get vertical gaps. If there are a number of sub reports, there comes a point where randomly the parameters seem to get lost. To avoid this, I created datasets that results with the parameters. By creating multiples of these datasets I was able to work around the “lost” parameters.
21
Demo Take a look at: Table containing sub-reports
Add a sub-report Show passing parameters Work around for reporting gaps Look at Report Server Stats 2 Show data sets for passing parameters Show controls: chtDayOfWeek chtDayOfMonth chtTop10Users chtTop5Folders ReportStats Add each as sub report to Stat 2 Now remove Report Stats and add Report Stats 1 & 2
22
Build everything on the base report
The 2 issues I encountered with this approach were: All datasets must be defined in the main report Gaps when multi-sized controls are used When building on the base report – you can copy / paste the contents of each control – but this does not bring over the data. To allow this to work you must copy over each data set information for each control to the base report. We encounter the same issue with the vertical spacing when the controls are not the same size.
23
Demo Take a look at: Adding controls directly to the main report
Datasets for controls need to be in place Work around for reporting gaps Rectangles Look at Report Server Stats 3 Show that the data has already been added to the base report Copy /paste the controls onto the base report for the 1st 2 columns and shpw results Pull up Report Server Stats 4 Point out the rectangles .
24
Don’t Forget to fill out the Surveys
Event Survey: Speaker Surveys:
25
Contact Info You can reach me at: @pamshaw (twitter) User group web site Hillsborough.sqlpass.org
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.