
1
00:00:00,000 –> 00:00:02,500
You tried printing a gorgeous Power BI dashboard
2
00:00:02,500 –> 00:00:04,260
and got a pixelated multi-page mess
3
00:00:04,260 –> 00:00:06,700
that looked like it fell down a flight of stairs.
4
00:00:06,700 –> 00:00:09,340
The truth, Power BI visuals aren’t built for paper.
5
00:00:09,340 –> 00:00:10,900
Paginated reports are.
6
00:00:10,900 –> 00:00:12,900
Microsoft hides pixel-perfect output
7
00:00:12,900 –> 00:00:14,340
behind three different tools,
8
00:00:14,340 –> 00:00:17,420
each with trade-offs, the average user, blissfully ignores.
9
00:00:17,420 –> 00:00:19,340
In the next minutes, you’ll learn the three ways
10
00:00:19,340 –> 00:00:22,180
when to use each and how to avoid costly dead ends.
11
00:00:22,180 –> 00:00:24,380
Stay for a 30-second decision matrix
12
00:00:24,380 –> 00:00:26,260
and one shortcut that saves hours.
13
00:00:26,260 –> 00:00:28,380
Now let’s expose where each option lives
14
00:00:28,380 –> 00:00:31,100
and why the average user keeps picking the wrong door.
15
00:00:31,100 –> 00:00:32,180
Context.
16
00:00:32,180 –> 00:00:35,620
Why paginated reports exist and Power BI isn’t it?
17
00:00:35,620 –> 00:00:37,460
Executives want fixed layouts.
18
00:00:37,460 –> 00:00:39,420
Headers that repeat on every page.
19
00:00:39,420 –> 00:00:40,660
Page numbers that don’t lie.
20
00:00:40,660 –> 00:00:42,940
Legal disclaimers that never wander off the margin.
21
00:00:42,940 –> 00:00:44,540
They want what auditors want.
22
00:00:44,540 –> 00:00:46,060
The same output every time,
23
00:00:46,060 –> 00:00:48,340
regardless of screen size, browser zoom
24
00:00:48,340 –> 00:00:49,460
or printer mood swings.
25
00:00:49,460 –> 00:00:50,760
That’s not a dashboard problem.
26
00:00:50,760 –> 00:00:51,940
That’s a print problem.
27
00:00:51,940 –> 00:00:54,180
Paginated reports exist for that exact use case.
28
00:00:54,180 –> 00:00:56,420
They are RDL-based, report definition language,
29
00:00:56,420 –> 00:00:58,180
meaning print, first design,
30
00:00:58,180 –> 00:00:59,860
not a playground for slicers.
31
00:00:59,860 –> 00:01:01,180
It’s not just a different file.
32
00:01:01,180 –> 00:01:02,860
It’s a different philosophy.
33
00:01:02,860 –> 00:01:05,260
Interactive dashboards adapt fluidly.
34
00:01:05,260 –> 00:01:07,140
Paginated reports control every pixel
35
00:01:07,140 –> 00:01:09,140
like a Fuzzy stage manager with a ruler.
36
00:01:09,140 –> 00:01:10,300
Here’s how they fit.
37
00:01:10,300 –> 00:01:13,180
You connect an RDL report to a Power BI semantic model.
38
00:01:13,180 –> 00:01:15,660
Yes, the same data model feeding your dashboards.
39
00:01:15,660 –> 00:01:17,380
And the report engine renders pages
40
00:01:17,380 –> 00:01:18,980
with strict layout control.
41
00:01:18,980 –> 00:01:20,980
You define paper size, margins, headers,
42
00:01:20,980 –> 00:01:23,740
footers, groups and page breaks, the engine obeys.
43
00:01:23,740 –> 00:01:26,340
No mystery, no responsive surprises.
44
00:01:26,340 –> 00:01:28,420
Consequences of forcing dashboards to print,
45
00:01:28,420 –> 00:01:30,580
you waste time hacking column widths,
46
00:01:30,580 –> 00:01:32,420
then cry when a slicer reflows
47
00:01:32,420 –> 00:01:34,900
and your totals jump to page three.
48
00:01:34,900 –> 00:01:38,540
Export to PDF from Power BI is not pagination.
49
00:01:38,540 –> 00:01:41,020
It’s a screenshot with delusions of grandeur.
50
00:01:41,020 –> 00:01:43,620
The moment you need repeating headers, grouped totals
51
00:01:43,620 –> 00:01:46,260
or a thousand row list across clean pages,
52
00:01:46,260 –> 00:01:49,220
you’re in paginated territory whether you admit it or not.
53
00:01:49,220 –> 00:01:51,300
Benefits are obvious once you stop resisting.
54
00:01:51,300 –> 00:01:53,980
Precise pagination, reliable headers and footers
55
00:01:53,980 –> 00:01:56,020
and export ready formats like PDF and Word
56
00:01:56,020 –> 00:01:57,740
that hold their layout under pressure.
57
00:01:57,740 –> 00:01:59,300
You can do conditional visibility,
58
00:01:59,300 –> 00:02:01,140
show sections only when data exists,
59
00:02:01,140 –> 00:02:04,180
control widows and orphans and print like an adult.
60
00:02:04,180 –> 00:02:05,940
The quick win is painfully simple.
61
00:02:05,940 –> 00:02:07,100
Decide early.
62
00:02:07,100 –> 00:02:10,220
Dashboards are for screens, paginated is for paper.
63
00:02:10,220 –> 00:02:11,860
If the primary output goes to a printer,
64
00:02:11,860 –> 00:02:14,420
jump tools before you waste a sprint polishing a dashboard
65
00:02:14,420 –> 00:02:16,620
that will always betray you in the copy room.
66
00:02:16,620 –> 00:02:18,860
With the stakes set, here’s door number one,
67
00:02:18,860 –> 00:02:21,460
the deceptively easy option that seduces the average user
68
00:02:21,460 –> 00:02:24,980
because it lives in a browser and promises zero friction.
69
00:02:24,980 –> 00:02:29,220
Way one, power BI service, web paginated builder,
70
00:02:29,220 –> 00:02:30,980
fastest, most limited.
71
00:02:30,980 –> 00:02:32,740
Why this exists is straightforward.
72
00:02:32,740 –> 00:02:35,900
Zero install, any OS and you can crank out a simple table
73
00:02:35,900 –> 00:02:39,500
or matrix with headers, footers and page numbers before lunch.
74
00:02:39,500 –> 00:02:41,140
It’s the web based paginated editor
75
00:02:41,140 –> 00:02:43,220
living right in the power BI service.
76
00:02:43,220 –> 00:02:45,900
Open a workspace, hit new, choose paginated report,
77
00:02:45,900 –> 00:02:48,020
point it at your semantic model and you’re in.
78
00:02:48,020 –> 00:02:50,060
No downloads, no admin rights, no excuses.
79
00:02:50,060 –> 00:02:52,540
What it does is a basic audio editor in the browser
80
00:02:52,540 –> 00:02:55,020
tied directly to a power BI semantic model.
81
00:02:55,020 –> 00:02:57,660
You can add fields, define groups, drop in a logo,
82
00:02:57,660 –> 00:03:00,860
set a header and footer and pick a page size like letter or a four.
83
00:03:00,860 –> 00:03:02,780
It handles page numbers, current date
84
00:03:02,780 –> 00:03:04,820
and simple text boxes without drama.
85
00:03:04,820 –> 00:03:07,180
Think quick listing, not annual reporter,
86
00:03:07,180 –> 00:03:09,500
how to implement step-by-step, go to your workspace,
87
00:03:09,500 –> 00:03:11,540
click new, paginated report.
88
00:03:11,540 –> 00:03:14,460
Select the semantic model you already use for your dashboard.
89
00:03:14,460 –> 00:03:16,500
That way measures and security behave the same.
90
00:03:16,500 –> 00:03:18,780
Add a table, drag fields from your entities,
91
00:03:18,780 –> 00:03:21,700
set a group on something logical like region or category,
92
00:03:21,700 –> 00:03:26,140
then open the page setup to define paper size, margins and orientation.
93
00:03:26,140 –> 00:03:28,900
Add a header with the title and parameter echoes,
94
00:03:28,900 –> 00:03:31,780
a footer with page X of Y and preview.
95
00:03:31,780 –> 00:03:34,500
If it spans to wide, reduce column widths or margins
96
00:03:34,500 –> 00:03:37,100
until the horizontal fit indicator stops complaining.
97
00:03:37,100 –> 00:03:39,260
Save, share, done.
98
00:03:39,260 –> 00:03:41,580
Strengths, accessibility and speed.
99
00:03:41,580 –> 00:03:44,340
It’s excellent for quick iterations, especially when you need
100
00:03:44,340 –> 00:03:46,540
to validate requirements with a business lead
101
00:03:46,540 –> 00:03:48,820
who’s allergic to software installs.
102
00:03:48,820 –> 00:03:52,700
Versioning and permissions live in the service, so collaboration is immediate.
103
00:03:52,700 –> 00:03:54,700
And because you’re bound to a semantic model,
104
00:03:54,700 –> 00:03:57,660
row-level security and DAX logic carry over neatly.
105
00:03:57,660 –> 00:03:59,340
Limits and they matter.
106
00:03:59,340 –> 00:04:01,220
It’s table, matrix, centric.
107
00:04:01,220 –> 00:04:03,500
Charts are spars, maps are absent.
108
00:04:03,500 –> 00:04:06,620
An expression support is shallow compared to desktop tooling.
109
00:04:06,620 –> 00:04:09,900
Layout control is minimal, so complex conditional formatting,
110
00:04:09,900 –> 00:04:13,260
nested regions and elaborate groupings will hit a wall.
111
00:04:13,260 –> 00:04:16,100
If you want precision control over page breaks between groups,
112
00:04:16,100 –> 00:04:17,820
you’ll feel the constraint quickly.
113
00:04:17,820 –> 00:04:21,140
Use cases that actually fit simple invoices, index style listings,
114
00:04:21,140 –> 00:04:24,660
operational pick lists, or mail merch like summaries
115
00:04:24,660 –> 00:04:28,580
where the heavy lifting is rose on paper with a consistent mask head.
116
00:04:28,580 –> 00:04:29,500
Translation.
117
00:04:29,500 –> 00:04:30,540
You need it now.
118
00:04:30,540 –> 00:04:32,620
You don’t need fancy visuals, and nobody
119
00:04:32,620 –> 00:04:35,820
will require surgical control over typography next week.
120
00:04:35,820 –> 00:04:37,780
Common mistakes the average user makes.
121
00:04:37,780 –> 00:04:41,420
Treating this like full SSRS and expecting advanced features
122
00:04:41,420 –> 00:04:42,500
to magically appear.
123
00:04:42,500 –> 00:04:44,500
Ignoring margins and printable width, which
124
00:04:44,500 –> 00:04:46,660
leads to accidental horizontal overflow and surprise
125
00:04:46,660 –> 00:04:47,620
blank pages.
126
00:04:47,620 –> 00:04:49,860
Failing to learn basic field level expressions
127
00:04:49,860 –> 00:04:52,380
like concatenating a title or formatting numbers
128
00:04:52,380 –> 00:04:55,340
so reports look amateur when a tiny expression would fix it
129
00:04:55,340 –> 00:04:58,940
and anchoring too many columns because we need everything,
130
00:04:58,940 –> 00:05:01,460
which guarantees wrapping chaos.
131
00:05:01,460 –> 00:05:02,940
Quick win you can deploy today.
132
00:05:02,940 –> 00:05:06,500
Build a one page prototype here before committing to deeper tooling.
133
00:05:06,500 –> 00:05:09,420
Use it as a live spec, align on paper size, headers,
134
00:05:09,420 –> 00:05:11,580
footers, and grouping with your stakeholder.
135
00:05:11,580 –> 00:05:14,700
If they ask for charts, parameters, or conditional sections,
136
00:05:14,700 –> 00:05:17,820
you’ve just justified graduating to the desktop tool without arguing.
137
00:05:17,820 –> 00:05:20,100
The trade-off is speed versus sophistication.
138
00:05:20,100 –> 00:05:22,860
This is perfect for validating structure, simple outputs,
139
00:05:22,860 –> 00:05:23,900
and short term needs.
140
00:05:23,900 –> 00:05:27,340
But the minute requirements evolve, charts, multilevel groups,
141
00:05:27,340 –> 00:05:29,780
conditional visibility, advanced expressions,
142
00:05:29,780 –> 00:05:31,420
you’ll pay a migration tax.
143
00:05:31,420 –> 00:05:33,380
That’s fine as long as you plan for it.
144
00:05:33,380 –> 00:05:36,820
If you didn’t, congratulations, you just built a cul-de-sac.
145
00:05:36,820 –> 00:05:39,340
Now, when you hit those layout walls and you
146
00:05:39,340 –> 00:05:42,460
will, you graduate to the real tool for analysts.
147
00:05:42,460 –> 00:05:45,660
The desktop-authoring environment that gives you pixel control,
148
00:05:45,660 –> 00:05:48,820
robust expressions, and parameters without dragging you
149
00:05:48,820 –> 00:05:50,860
into full developer land.
150
00:05:50,860 –> 00:05:55,260
Way to, Power BI, Report Builder, the professional print shop.
151
00:05:55,260 –> 00:05:58,340
Enter the tool that treats paper like a first-class citizen.
152
00:05:58,340 –> 00:06:00,820
Power BI Report Builder exists because business adults
153
00:06:00,820 –> 00:06:02,900
want print control, richer visuals, parameters,
154
00:06:02,900 –> 00:06:04,220
and expressions that don’t feel like they
155
00:06:04,220 –> 00:06:05,900
were added as an afterthought.
156
00:06:05,900 –> 00:06:09,180
You get charts, gauges, and maps, you get groups, nested regions,
157
00:06:09,180 –> 00:06:10,900
and page breaks that actually obey you.
158
00:06:10,900 –> 00:06:12,900
It’s the difference between doodling in a browser
159
00:06:12,900 –> 00:06:15,900
and walking into a proper print shop with rulers, templates,
160
00:06:15,900 –> 00:06:18,980
and a foreman who says, no, that won’t fit, fix it.
161
00:06:18,980 –> 00:06:19,820
Why this matters?
162
00:06:19,820 –> 00:06:22,220
When you’re producing board packs, financial statements,
163
00:06:22,220 –> 00:06:24,180
regulatory filings, or operational lists
164
00:06:24,180 –> 00:06:26,180
with strict headers, you can’t wing it.
165
00:06:26,180 –> 00:06:29,740
Executives expect the cover page to look like a cover page,
166
00:06:29,740 –> 00:06:31,980
the subtotal to land at the bottom of the group,
167
00:06:31,980 –> 00:06:33,700
and the page numbers to behave.
168
00:06:33,700 –> 00:06:35,980
Report Builder gives you the pixel-level control
169
00:06:35,980 –> 00:06:38,100
and the expression engine to make that happen
170
00:06:38,100 –> 00:06:41,380
without dragging your entire team into full developer workflows.
171
00:06:41,380 –> 00:06:44,540
What it actually does, it’s a full RDL authoring environment.
172
00:06:44,540 –> 00:06:47,620
You define page size, margins, and orientation upfront.
173
00:06:47,620 –> 00:06:50,780
You design data sets against your Power BI semantic model,
174
00:06:50,780 –> 00:06:53,140
using the same measures and row-level security
175
00:06:53,140 –> 00:06:54,180
your dashboards use.
176
00:06:54,180 –> 00:06:56,260
You build tables, matrices, and charts,
177
00:06:56,260 –> 00:06:59,740
and you wire up parameters so a CFO can switch months
178
00:06:59,740 –> 00:07:01,340
or regions without calling you.
179
00:07:01,340 –> 00:07:03,340
Then you set page breaks and visibility rules
180
00:07:03,340 –> 00:07:04,460
to keep sections clean.
181
00:07:04,460 –> 00:07:07,060
The engine renders exactly what you told it to render,
182
00:07:07,060 –> 00:07:08,660
no responsive surprise.
183
00:07:08,660 –> 00:07:11,540
Let me show you exactly how to implement it, step by step.
184
00:07:11,540 –> 00:07:13,500
Install report builder, open it,
185
00:07:13,500 –> 00:07:15,340
connect to your Power BI semantic model,
186
00:07:15,340 –> 00:07:16,580
wire the built-in connector,
187
00:07:16,580 –> 00:07:18,460
so you’re querying the same data model.
188
00:07:18,460 –> 00:07:21,380
In the query designer, select fields and measures.
189
00:07:21,380 –> 00:07:25,140
Behind the scenes, it builds a DAX query over XMLA.
190
00:07:25,140 –> 00:07:27,060
Click OK, you now have a data set,
191
00:07:27,060 –> 00:07:28,860
drop a table, drag fields into detail,
192
00:07:28,860 –> 00:07:31,260
add a row group on something logical like country,
193
00:07:31,260 –> 00:07:34,100
and a parent group on region if you need hierarchy.
194
00:07:34,100 –> 00:07:36,700
Now before you get excited, go to page setup
195
00:07:36,700 –> 00:07:39,780
and define paper size, margins, and orientation.
196
00:07:39,780 –> 00:07:41,580
This clicked for me when I realized,
197
00:07:41,580 –> 00:07:43,660
if you designed before setting paper,
198
00:07:43,660 –> 00:07:45,540
you will chase with problems for hours.
199
00:07:45,540 –> 00:07:47,020
Don’t.
200
00:07:47,020 –> 00:07:48,940
Once your canvas is honest about its size,
201
00:07:48,940 –> 00:07:51,020
add a header with your title, parameter echoes,
202
00:07:51,020 –> 00:07:51,860
and the run date.
203
00:07:51,860 –> 00:07:53,940
Add a footer with page X of Y.
204
00:07:53,940 –> 00:07:55,180
Use consistent fonts.
205
00:07:55,180 –> 00:07:57,220
Now configure page breaks, set a page break
206
00:07:57,220 –> 00:07:59,260
between each region group and a separate break
207
00:07:59,260 –> 00:08:01,380
at the end of each country group if needed.
208
00:08:01,380 –> 00:08:04,260
Preview, if you see often group headers or subtotals
209
00:08:04,260 –> 00:08:06,140
wandering onto new pages alone,
210
00:08:06,140 –> 00:08:08,780
adjust, keep together, and repeat header rows
211
00:08:08,780 –> 00:08:10,700
on each page in the tablix properties.
212
00:08:10,700 –> 00:08:14,300
The truth, the thing most people miss is printable width.
213
00:08:14,300 –> 00:08:18,260
Your page width minus margins defines a hard limit, exceeded,
214
00:08:18,260 –> 00:08:20,420
and you’ll get phantom blank pages.
215
00:08:20,420 –> 00:08:21,820
Respect the math.
216
00:08:21,820 –> 00:08:24,260
Strengths you actually feel pixel control is precise.
217
00:08:24,260 –> 00:08:25,580
Expressions are powerful.
218
00:08:25,580 –> 00:08:27,900
Build dynamic titles like sales by region for at month,
219
00:08:27,900 –> 00:08:29,660
hide sections when totals are zero,
220
00:08:29,660 –> 00:08:32,020
color exceptions when thresholds are breached.
221
00:08:32,020 –> 00:08:35,140
Parameters are native so you can build a clean prompt experience.
222
00:08:35,140 –> 00:08:38,220
You can nest data regions at conditional visibility
223
00:08:38,220 –> 00:08:41,340
and create repeatable templates so every report looks like
224
00:08:41,340 –> 00:08:44,700
it belongs to the same company rather than a ransom load.
225
00:08:44,700 –> 00:08:47,340
Advanced tricks that separate beginners from pros.
226
00:08:47,340 –> 00:08:50,020
Use grouping and subtotals with explicit page breaks
227
00:08:50,020 –> 00:08:51,620
to produce clean book sections.
228
00:08:51,620 –> 00:08:54,660
Leverage, lookup and lookup set when you need to enrich rows
229
00:08:54,660 –> 00:08:57,300
from another data set without exploding cardinality.
230
00:08:57,300 –> 00:08:59,980
Use conditional formatting to highlight variances.
231
00:08:59,980 –> 00:09:01,940
Create shared data sets for common lists
232
00:09:01,940 –> 00:09:03,660
like date ranges or entities
233
00:09:03,660 –> 00:09:06,020
so you don’t duplicate logic across reports.
234
00:09:06,020 –> 00:09:08,620
And yes, maps and gauges exist for when leadership
235
00:09:08,620 –> 00:09:10,340
insists on shapes and needles.
236
00:09:10,340 –> 00:09:11,300
Common mistakes.
237
00:09:11,300 –> 00:09:12,860
Don’t do what the average user does.
238
00:09:12,860 –> 00:09:14,300
They don’t test pagination early.
239
00:09:14,300 –> 00:09:16,060
They design on a sprawling canvas.
240
00:09:16,060 –> 00:09:18,740
Then discover page two is a blank artifact created
241
00:09:18,740 –> 00:09:21,340
by a 1-inch overflow they ignore printable width.
242
00:09:21,340 –> 00:09:24,220
They overnest tablixes until performance collapses.
243
00:09:24,220 –> 00:09:26,100
They forget that row by row expressions
244
00:09:26,100 –> 00:09:27,580
are evaluated for every row.
245
00:09:27,580 –> 00:09:30,140
So acute string manipulation becomes a performance tax
246
00:09:30,140 –> 00:09:31,540
on 200,000 rows.
247
00:09:31,540 –> 00:09:33,420
And the classic hammering Excel exports
248
00:09:33,420 –> 00:09:35,900
and wondering why the layout mutates because Excel is cell
249
00:09:35,900 –> 00:09:37,940
first, not print first, performance notes
250
00:09:37,940 –> 00:09:41,100
because you like your reports to finish before quarter end.
251
00:09:41,100 –> 00:09:43,500
Push aggregation into the semantic model.
252
00:09:43,500 –> 00:09:47,220
Measures and summarized queries return fewer rows.
253
00:09:47,220 –> 00:09:49,540
Control data set granularity.
254
00:09:49,540 –> 00:09:51,140
Don’t bring a million detail rows
255
00:09:51,140 –> 00:09:53,180
if the output is grouped by month.
256
00:09:53,180 –> 00:09:54,860
Avoid row by row custom code.
257
00:09:54,860 –> 00:09:56,940
If you must do heavy logic, do it once
258
00:09:56,940 –> 00:10:00,140
at the group level or as a calculated column upstream.
259
00:10:00,140 –> 00:10:03,140
Export nuances PDF preserves layout faithfully.
260
00:10:03,140 –> 00:10:06,660
Word preserves structure but can reflow if editors poke at it.
261
00:10:06,660 –> 00:10:08,260
Still fine for distribution.
262
00:10:08,260 –> 00:10:10,820
Excel is for data work, not pixel worship.
263
00:10:10,820 –> 00:10:12,980
It will translate regions into cells,
264
00:10:12,980 –> 00:10:16,260
which is great for analysis, less great for perfect spacing.
265
00:10:16,260 –> 00:10:18,780
Choose the export based on the recipient’s behavior.
266
00:10:18,780 –> 00:10:20,580
Not your wishful thinking.
267
00:10:20,580 –> 00:10:21,700
Publishing is straightforward.
268
00:10:21,700 –> 00:10:23,740
Save the RDL, publish to the service,
269
00:10:23,740 –> 00:10:25,580
bind parameters to default values
270
00:10:25,580 –> 00:10:27,060
and test with real security.
271
00:10:27,060 –> 00:10:28,580
Manage credentials where needed,
272
00:10:28,580 –> 00:10:30,820
then lock the template, standardized header,
273
00:10:30,820 –> 00:10:32,620
footer, fonts and colors.
274
00:10:32,620 –> 00:10:34,260
Most business needs land here.
275
00:10:34,260 –> 00:10:36,980
Enough power to deliver professional print outputs
276
00:10:36,980 –> 00:10:39,380
without the overhead of a full developer solution.
277
00:10:39,380 –> 00:10:41,620
Once you nail this, everything else clicks.
278
00:10:41,620 –> 00:10:44,900
Way three, visual studio plus SSRS projects,
279
00:10:44,900 –> 00:10:46,300
enterprise control room.
280
00:10:46,300 –> 00:10:48,500
If report builder is a professional print shop,
281
00:10:48,500 –> 00:10:50,740
visual studio with reporting services projects
282
00:10:50,740 –> 00:10:52,300
is the entire print factory,
283
00:10:52,300 –> 00:10:53,900
loading docs, conveyor belts,
284
00:10:53,900 –> 00:10:56,020
and a form and who tracks everything in a clipboard
285
00:10:56,020 –> 00:10:57,100
and version control.
286
00:10:58,100 –> 00:11:00,620
This exists for one reason, solution level management,
287
00:11:00,620 –> 00:11:05,380
multiple RDLs, shared data sources, source control, CI/CD.
288
00:11:05,380 –> 00:11:08,020
In other words, the environment grown-up enterprises need
289
00:11:08,020 –> 00:11:10,420
when a report quietly turns into a portfolio
290
00:11:10,420 –> 00:11:12,100
of reports with governance.
291
00:11:12,100 –> 00:11:13,980
What it actually does is give you a project
292
00:11:13,980 –> 00:11:16,060
and solution structure instead of single files
293
00:11:16,060 –> 00:11:18,020
floating around like unsupervised toddlers.
294
00:11:18,020 –> 00:11:19,900
You create a reporting services project.
295
00:11:19,900 –> 00:11:22,900
Inside it, you define shared data sources and shared data sets
296
00:11:22,900 –> 00:11:25,020
then add as many RDLs as you like.
297
00:11:25,020 –> 00:11:27,340
Sub-reports native, drill through navigation
298
00:11:27,340 –> 00:11:29,500
across a suite, easy, complex expressions
299
00:11:29,500 –> 00:11:31,820
with centralized parameters, routine.
300
00:11:31,820 –> 00:11:33,060
And because it’s visual studio,
301
00:11:33,060 –> 00:11:36,580
you get integration with Git or Azure DevOps
302
00:11:36,580 –> 00:11:38,980
for versioning, branching, and deployments
303
00:11:38,980 –> 00:11:40,740
that don’t depend on someone remembering
304
00:11:40,740 –> 00:11:44,100
which desktop had the final, final, latest,
305
00:11:44,100 –> 00:11:46,180
or implementation, clean and simple,
306
00:11:46,180 –> 00:11:48,540
install visual studio, community is fine.
307
00:11:48,540 –> 00:11:50,660
Add the reporting services project extension,
308
00:11:50,660 –> 00:11:52,740
create a new reporting services project.
309
00:11:52,740 –> 00:11:54,700
First, add shared data sources
310
00:11:54,700 –> 00:11:57,340
that point to your power BI semantic model endpoints
311
00:11:57,340 –> 00:11:58,980
or other govern stores.
312
00:11:58,980 –> 00:12:01,180
Then design shared data sets for common lists,
313
00:12:01,180 –> 00:12:02,980
calendar, entities, parameters,
314
00:12:02,980 –> 00:12:05,340
so every report pulls from the same definitions.
315
00:12:05,340 –> 00:12:08,500
Add a new report, set page setup for your corporate standard,
316
00:12:08,500 –> 00:12:11,860
letter or A4, margins, portrait or landscape.
317
00:12:11,860 –> 00:12:13,820
Insert your company’s base report elements,
318
00:12:13,820 –> 00:12:17,220
header with logo, footer with page X of Y, and brand fonts.
319
00:12:17,220 –> 00:12:19,620
Now you’re ready to build RDLs that look related
320
00:12:19,620 –> 00:12:22,260
because the assets they use are in fact shared.
321
00:12:22,260 –> 00:12:25,100
Strengths you feel on day one, team workflows and reuse.
322
00:12:25,100 –> 00:12:28,620
Multiple developers can work on different RDLs in parallel,
323
00:12:28,620 –> 00:12:32,500
review each other’s changes, and avoid override roulette.
324
00:12:32,500 –> 00:12:34,420
Shared assets eliminate drift.
325
00:12:34,420 –> 00:12:37,020
Your date parameter behaves the same in 12 reports
326
00:12:37,020 –> 00:12:38,220
because it’s defined once.
327
00:12:38,220 –> 00:12:40,020
You also get advanced property control.
328
00:12:40,020 –> 00:12:42,060
Need a configurable deployment target?
329
00:12:42,060 –> 00:12:43,740
Create multiple configurations,
330
00:12:43,740 –> 00:12:46,380
dev, test, prod, with different server URLs
331
00:12:46,380 –> 00:12:50,100
and data source bindings, press build, deploy, no sneakernet.
332
00:12:51,100 –> 00:12:52,900
Enterprise patterns that shine here.
333
00:12:52,900 –> 00:12:55,300
Master detail with sub-reports to split big books
334
00:12:55,300 –> 00:12:56,780
into maintainable parts.
335
00:12:56,780 –> 00:12:58,900
Parameterized drill through navigation
336
00:12:58,900 –> 00:13:02,860
from summary to detail across reports, passing context cleanly.
337
00:13:02,860 –> 00:13:05,300
Shared styles via report parts or templates
338
00:13:05,300 –> 00:13:07,820
to enforce consistent typography and spacing,
339
00:13:07,820 –> 00:13:10,260
deployment profiles that map folders and permissions,
340
00:13:10,260 –> 00:13:12,580
so your finance pack lands in finance reports
341
00:13:12,580 –> 00:13:15,140
with the right role assignments every time.
342
00:13:15,140 –> 00:13:17,300
This is the difference between we email the file
343
00:13:17,300 –> 00:13:18,580
and we ship a product.
344
00:13:18,580 –> 00:13:19,420
Use cases.
345
00:13:19,420 –> 00:13:21,940
Enterprise packs that ship monthly departmental suites
346
00:13:21,940 –> 00:13:24,260
covering the same dimensions with different filters,
347
00:13:24,260 –> 00:13:27,380
governed financials where auditability and consistency matter,
348
00:13:27,380 –> 00:13:29,500
and multi-region rollouts where the same report
349
00:13:29,500 –> 00:13:32,340
deploys to 10 work spaces with environment-specific data
350
00:13:32,340 –> 00:13:33,260
sources.
351
00:13:33,260 –> 00:13:35,660
If you’re thinking in portfolios rather than one offs,
352
00:13:35,660 –> 00:13:37,020
you’re in the right room.
353
00:13:37,020 –> 00:13:39,860
Common mistakes when people wander in from report builder,
354
00:13:39,860 –> 00:13:42,820
treating the project like a folder of independent RDLs
355
00:13:42,820 –> 00:13:44,940
instead of engineering a modular solution.
356
00:13:44,940 –> 00:13:47,460
Not modularizing data sets, so every report
357
00:13:47,460 –> 00:13:49,980
rebuilds the same calendar list 15 times.
358
00:13:49,980 –> 00:13:53,340
No naming conventions which leads to report one final two chaos,
359
00:13:53,340 –> 00:13:55,180
skipping source control and losing history
360
00:13:55,180 –> 00:13:57,060
when someone fixes the template.
361
00:13:57,060 –> 00:14:00,180
And my favorite, hard-coding server parts or credentials,
362
00:14:00,180 –> 00:14:02,020
then wondering why deployments break the moment
363
00:14:02,020 –> 00:14:03,420
you change environments.
364
00:14:03,420 –> 00:14:05,340
Quick win, you can implement immediately.
365
00:14:05,340 –> 00:14:07,380
Create a base report template, RDL
366
00:14:07,380 –> 00:14:10,780
with your header, footer, margins, fonts, and common expressions,
367
00:14:10,780 –> 00:14:12,860
then clone it for every new report.
368
00:14:12,860 –> 00:14:15,220
Centralize a shared data source to your semantic model
369
00:14:15,220 –> 00:14:17,260
and share data sets for parameters.
370
00:14:17,260 –> 00:14:20,620
In one hour you eliminate 80% of drift and 100% of the,
371
00:14:20,620 –> 00:14:22,020
why does this one look different?
372
00:14:22,020 –> 00:14:23,660
Conversations.
373
00:14:23,660 –> 00:14:25,900
Compatibility caveats you need to respect.
374
00:14:25,900 –> 00:14:28,700
Some legacy SSRS visuals and custom fonts
375
00:14:28,700 –> 00:14:31,180
won’t render identically in the Power BI service.
376
00:14:31,180 –> 00:14:32,260
Test early.
377
00:14:32,260 –> 00:14:34,460
If your design depends on a niche chart or font,
378
00:14:34,460 –> 00:14:36,060
confirm it in the target environment
379
00:14:36,060 –> 00:14:38,460
before you build an entire suite around it.
380
00:14:38,460 –> 00:14:41,980
And yes, PDF will be faithful, Excel will do Excel things
381
00:14:41,980 –> 00:14:44,900
because cells are not pages, manage expectations.
382
00:14:44,900 –> 00:14:45,900
Governance matters here.
383
00:14:45,900 –> 00:14:48,260
Design a folder structure that mirrors your organization
384
00:14:48,260 –> 00:14:49,660
by domain, not by author.
385
00:14:49,660 –> 00:14:51,580
Apply role-based access consistently.
386
00:14:51,580 –> 00:14:55,460
Map environments, dev, test, prod, via deployment profiles,
387
00:14:55,460 –> 00:14:58,460
so promoting a release is a button, not a scavenger hunt.
388
00:14:58,460 –> 00:15:01,140
Document naming conventions for reports, data sets,
389
00:15:01,140 –> 00:15:02,340
and parameters.
390
00:15:02,340 –> 00:15:05,620
The result is boring in the best way, predictable, traceable,
391
00:15:05,620 –> 00:15:06,420
and safe.
392
00:15:06,420 –> 00:15:07,260
The trade-off is obvious.
393
00:15:07,260 –> 00:15:09,580
Maximum control for maximal complexity.
394
00:15:09,580 –> 00:15:13,020
You get reusable assets, team workflows, and CI/CD,
395
00:15:13,020 –> 00:15:15,180
but you also inherit the ceremony.
396
00:15:15,180 –> 00:15:18,020
Branches, reviews, build pipelines, training.
397
00:15:18,020 –> 00:15:19,700
For a single invoice, it’s overkill.
398
00:15:19,700 –> 00:15:22,020
For a governed suite that affects finance or operations,
399
00:15:22,020 –> 00:15:23,460
it’s the only adult option.
400
00:15:23,460 –> 00:15:24,580
The truth.
401
00:15:24,580 –> 00:15:26,420
If your reporting footprint is growing,
402
00:15:26,420 –> 00:15:28,500
Visual Studio stops being developer theater
403
00:15:28,500 –> 00:15:29,820
and becomes the control room.
404
00:15:29,820 –> 00:15:31,020
You don’t just make reports.
405
00:15:31,020 –> 00:15:33,220
You ship a reporting product with standards, tests,
406
00:15:33,220 –> 00:15:34,060
and releases.
407
00:15:34,060 –> 00:15:35,420
And yes, the average user will complain.
408
00:15:35,420 –> 00:15:36,900
It feels heavy, correct.
409
00:15:36,900 –> 00:15:38,660
So is a seatbelt.
410
00:15:38,660 –> 00:15:41,380
Decision matrix, pick the right door in 30 seconds.
411
00:15:41,380 –> 00:15:42,740
You want fast, not fuzzy.
412
00:15:42,740 –> 00:15:44,580
Here’s the decision in plain English.
413
00:15:44,580 –> 00:15:46,860
If you need a simple tabular printout today,
414
00:15:46,860 –> 00:15:50,380
rows, a logo, page numbers, use the service builder.
415
00:15:50,380 –> 00:15:51,580
It’s minutes, not meetings.
416
00:15:51,580 –> 00:15:54,340
If you need real page control, charts, and parameters,
417
00:15:54,340 –> 00:15:55,500
use report builder.
418
00:15:55,500 –> 00:15:56,700
It’s days, not drama.
419
00:15:56,700 –> 00:15:59,340
If you need suites with sub-reports, shared assets,
420
00:15:59,340 –> 00:16:01,180
and governance, use Visual Studio.
421
00:16:01,180 –> 00:16:02,620
It’s weeks, but it scales.
422
00:16:02,620 –> 00:16:05,100
Budget and time-lens, service equals minutes,
423
00:16:05,100 –> 00:16:07,140
report builder equals a few focused days
424
00:16:07,140 –> 00:16:09,540
to nail layout parameters and exports.
425
00:16:09,540 –> 00:16:12,220
Visual Studio equals weeks to set up shared data sets,
426
00:16:12,220 –> 00:16:14,100
templates, and deployment profiles.
427
00:16:14,100 –> 00:16:16,020
Then it pays you back on every release.
428
00:16:16,020 –> 00:16:16,820
Skill Lens.
429
00:16:16,820 –> 00:16:18,540
An analyst can survive in the service
430
00:16:18,540 –> 00:16:19,940
with basic expressions.
431
00:16:19,940 –> 00:16:22,700
A power user thrives in report builder, comfortable
432
00:16:22,700 –> 00:16:25,740
with groups, page breaks, and DAX-backed data sets.
433
00:16:25,740 –> 00:16:28,100
A dev team, or at least a disciplined analyst,
434
00:16:28,100 –> 00:16:30,180
dev hybrid, should handle Visual Studio
435
00:16:30,180 –> 00:16:32,900
because source control, profiles, and solution structure
436
00:16:32,900 –> 00:16:34,100
aren’t optional there.
437
00:16:34,100 –> 00:16:34,980
Risk Lens.
438
00:16:34,980 –> 00:16:37,260
Evolving requirements punish the service.
439
00:16:37,260 –> 00:16:39,580
It’s a trap if stakeholders just want a list
440
00:16:39,580 –> 00:16:41,580
until they inevitably ask for charts,
441
00:16:41,580 –> 00:16:43,580
conditional sections, and parameters.
442
00:16:43,580 –> 00:16:46,140
Enterprise Risk punishes ad hoc report builder,
443
00:16:46,140 –> 00:16:48,780
one of RDL sprawl, styles drift, and deployment
444
00:16:48,780 –> 00:16:49,820
becomes folklore.
445
00:16:49,820 –> 00:16:52,900
If compliance, audit readiness, or broad reuse matters,
446
00:16:52,900 –> 00:16:55,620
you want Visual Studio’s shared assets and versioning.
447
00:16:55,620 –> 00:16:58,340
Migration path that doesn’t hurt prototype
448
00:16:58,340 –> 00:17:02,500
in the service to lock paper size, header, footer, and grouping.
449
00:17:02,500 –> 00:17:05,020
Move to report builder when you need page control,
450
00:17:05,020 –> 00:17:06,620
expressions, and parameters.
451
00:17:06,620 –> 00:17:09,300
Productize in Visual Studio when you need multiple reports,
452
00:17:09,300 –> 00:17:11,420
shared data sets, and consistent deployment
453
00:17:11,420 –> 00:17:12,700
across environments.
454
00:17:12,700 –> 00:17:13,820
This is not rework.
455
00:17:13,820 –> 00:17:15,220
It’s staged investment.
456
00:17:15,220 –> 00:17:17,420
Checklist before you publish anything.
457
00:17:17,420 –> 00:17:20,700
Paper size and margin set, printable with respected,
458
00:17:20,700 –> 00:17:23,580
headers and footers repeating, parameters tested
459
00:17:23,580 –> 00:17:26,940
with ugly edge cases, and export formats verified,
460
00:17:26,940 –> 00:17:30,220
PDF for fidelity, word for editable distribution,
461
00:17:30,220 –> 00:17:33,220
Excel only when analysis is the point.
462
00:17:33,220 –> 00:17:35,900
If any box is unchecked, you are shipping a support ticket,
463
00:17:35,900 –> 00:17:38,820
shortcut most people ignore, analyze in Excel.
464
00:17:38,820 –> 00:17:41,140
For purely tabular, page-friendly outputs
465
00:17:41,140 –> 00:17:44,100
with light governance, connect Excel to the semantic model
466
00:17:44,100 –> 00:17:46,780
and print from a tool everyone already understands.
467
00:17:46,780 –> 00:17:48,260
It’s not a replacement for RDL,
468
00:17:48,260 –> 00:17:50,580
but it’s a pragmatic fast lane for lists.
469
00:17:50,580 –> 00:17:51,460
Don’t do this.
470
00:17:51,460 –> 00:17:53,780
Don’t jam a dashboard into a printer.
471
00:17:53,780 –> 00:17:56,420
Don’t skip page tests until the night before a board meeting.
472
00:17:56,420 –> 00:17:58,420
Don’t ignore data set scope and then complain
473
00:17:58,420 –> 00:17:59,500
when exports crawl.
474
00:17:59,500 –> 00:18:02,580
Choose the door that matches the ask, not your mood.
475
00:18:02,580 –> 00:18:03,700
Technique upgrades.
476
00:18:03,700 –> 00:18:05,860
Make any paginated report look pro.
477
00:18:05,860 –> 00:18:07,580
Start with the layout model.
478
00:18:07,580 –> 00:18:09,900
Define paper first, A4, or letter, portrait,
479
00:18:09,900 –> 00:18:11,460
or landscape then design.
480
00:18:11,460 –> 00:18:12,740
Refuse to place a single control
481
00:18:12,740 –> 00:18:14,500
until the canvas matches the printer.
482
00:18:14,500 –> 00:18:17,420
Your width equals paper width minus margins.
483
00:18:17,420 –> 00:18:19,660
That number is non-negotiable.
484
00:18:19,660 –> 00:18:22,740
Typography next, two fonts max, one for headings, one for body.
485
00:18:22,740 –> 00:18:25,700
Set consistent sizes, don’t improvise, align numerics write,
486
00:18:25,700 –> 00:18:28,180
apply 1000 separators and fix decimal precision
487
00:18:28,180 –> 00:18:29,460
by measure type.
488
00:18:29,460 –> 00:18:31,460
Title sentence case labels concise.
489
00:18:31,460 –> 00:18:34,620
If you remember nothing else, consistency equals credibility.
490
00:18:34,620 –> 00:18:35,540
Structure matters.
491
00:18:35,540 –> 00:18:39,260
Use groups for logical breaks, region, then country, then store.
492
00:18:39,260 –> 00:18:41,460
Add explicit page breaks between major sections
493
00:18:41,460 –> 00:18:43,940
so cover pages don’t blend into detail.
494
00:18:43,940 –> 00:18:46,260
Turn on repeat header rows on each page
495
00:18:46,260 –> 00:18:48,260
and keep together thoughtfully to prevent
496
00:18:48,260 –> 00:18:49,900
often headers and stray sub-totals.
497
00:18:49,900 –> 00:18:51,860
Expressions elevate everything.
498
00:18:51,860 –> 00:18:54,180
Dynamic titles with parameter echoes.
499
00:18:54,180 –> 00:18:56,220
Sales by region for at-month.
500
00:18:56,220 –> 00:18:57,740
Conditional visibility.
501
00:18:57,740 –> 00:18:59,180
Hide empty sections.
502
00:18:59,180 –> 00:19:01,860
Show warnings when thresholds fail.
503
00:19:01,860 –> 00:19:04,740
Page tanks of Y and run date in the footer standard.
504
00:19:04,740 –> 00:19:07,140
Use IEFs bearingly and prefer clean expressions
505
00:19:07,140 –> 00:19:09,660
at the group level rather than row by row gymnastics.
506
00:19:09,660 –> 00:19:11,140
Performance is a design choice.
507
00:19:11,140 –> 00:19:14,380
Aggregate in the semantic model so you query fewer rows.
508
00:19:14,380 –> 00:19:17,540
Reduce data set granularity to what the layout actually prints.
509
00:19:17,540 –> 00:19:19,140
Avoid per row custom code.
510
00:19:19,140 –> 00:19:21,740
If you must compute, do it once per group or upstream.
511
00:19:21,740 –> 00:19:24,060
Preview with realistic parameter selections.
512
00:19:24,060 –> 00:19:25,620
Not tiny samples that lie.
513
00:19:25,620 –> 00:19:27,060
Reusability is sanity.
514
00:19:27,060 –> 00:19:29,140
Build header, footer and style templates.
515
00:19:29,140 –> 00:19:32,700
In report builder, save a starter RDL with fonts, margins,
516
00:19:32,700 –> 00:19:35,020
header, footer and placeholder text.
517
00:19:35,020 –> 00:19:37,940
In visual studio, promote shared data sets and a base template.
518
00:19:37,940 –> 00:19:40,940
Use naming conventions, Arpti, Finance, but MTD,
519
00:19:40,940 –> 00:19:43,420
SummaryDestate.calendar, paramd region
520
00:19:43,420 –> 00:19:45,180
to stop the final final chaos.
521
00:19:45,180 –> 00:19:47,860
Testing discipline separates pros from hopefuls.
522
00:19:47,860 –> 00:19:50,620
Preview with multiple parameters including extremes.
523
00:19:50,620 –> 00:19:53,580
The most verbose region name, the densest month.
524
00:19:53,580 –> 00:19:56,660
Export to PDF and Word and check for layout drift.
525
00:19:56,660 –> 00:19:59,260
Scan for off-hand rows on page starts.
526
00:19:59,260 –> 00:20:02,260
Validate that conditional sections truly hide when empty
527
00:20:02,260 –> 00:20:04,140
and that totals don’t float.
528
00:20:04,140 –> 00:20:05,820
Compliance isn’t decoration.
529
00:20:05,820 –> 00:20:08,580
Lock decimals to the policy include legal disclaimers
530
00:20:08,580 –> 00:20:12,340
in the footer and fix branding, logo size, padding and colors.
531
00:20:12,340 –> 00:20:14,020
So marketing doesn’t chase you.
532
00:20:14,020 –> 00:20:16,020
If signatures or approval blocks are required,
533
00:20:16,020 –> 00:20:17,460
design space for them.
534
00:20:17,460 –> 00:20:21,180
And yes, test the exact printer if the output goes to a physical device
535
00:20:21,180 –> 00:20:22,580
that trims aggressively.
536
00:20:22,580 –> 00:20:23,180
Quick win.
537
00:20:23,180 –> 00:20:25,460
Build a one-page cover with KPIs, big numbers,
538
00:20:25,460 –> 00:20:28,660
sparkline or small chart, then drive detail pages via parameters
539
00:20:28,660 –> 00:20:29,540
or drill through.
540
00:20:29,540 –> 00:20:32,780
Stakeholders get instant signal, auditors get detail,
541
00:20:32,780 –> 00:20:35,940
and nobody scrolls through 10 pages to find the point.
542
00:20:35,940 –> 00:20:39,580
Dashboards are for screens, paginated reports are for paper.
543
00:20:39,580 –> 00:20:41,100
Choose the tool that matches the job
544
00:20:41,100 –> 00:20:42,620
and you stop fighting physics.
545
00:20:42,620 –> 00:20:44,900
Use the matrix, prototype in service,
546
00:20:44,900 –> 00:20:48,300
produce in report builder, productize in visual studio
547
00:20:48,300 –> 00:20:49,580
when governance demands it.
548
00:20:49,580 –> 00:20:53,260
Today, pick your door, build a one-page prototype, test
549
00:20:53,260 –> 00:20:57,140
exports and escalate only if requirements truly expand.
550
00:20:57,140 –> 00:21:00,660
If this saved you hours, repay the time, subscribe.
551
00:21:00,660 –> 00:21:03,700
Listen the next podcast for live report builder expressions,
552
00:21:03,700 –> 00:21:05,500
a visual studio enterprise template,
553
00:21:05,500 –> 00:21:07,300
and a downloadable checklist.
554
00:21:07,300 –> 00:21:09,020
Lock in your upgrade path, tap follow
555
00:21:09,020 –> 00:21:11,780
and let the next lesson deploy automatically.