If you need pixel-perfect invoices, statements, or operational lists that print cleanly and run on a schedule, you want paginated reports. In the Microsoft stack those are RDL files, designed with Report Builder or Visual Studio and hosted by SQL Server Reporting Services (SSRS), Power BI Report Server (PBIRS), or the Power BI service. This guide walks you from zero to advanced: what they are, why they’re useful, how to set them up, and how to keep them fast and reliable. I’ll call out tips for DBAs, developers, and data warehouse folks along the way.
What is an RDL “paginated” report?
RDL (Report Definition Language) is an XML schema that defines a paginated report: layout, data sources, queries, parameters, and expressions. Paginated reports render first to HTML, then can export to formats like PDF, Excel, Word, and CSV. SSRS has distinct rendering “extensions” for hard page formats (PDF/TIFF) and soft page formats (HTML/Excel/Word). Understanding the renderers helps you design for print vs. screen. Microsoft Learn
Where RDLs run
- SSRS (on-prem, native mode): classic web portal, subscriptions, role-based security, scale-out for load. Microsoft Learn
- Power BI Report Server: on-premises hosting for RDLs alongside Power BI reports. Microsoft Learn
- Power BI Service: publish RDLs built with Power BI Report Builder. You can publish to My Workspace without a license; publishing to other workspaces requires Pro or PPU. Distribution and capacity planning follow Power BI licensing rules. Microsoft Learn+1
Design tools
- Microsoft Report Builder (for SSRS/PBIRS) and Power BI Report Builder (for Power BI). Both create the same .rdl format with tables, matrices, charts, parameters, and expressions. Microsoft Learn+1
Why paginated reports still matter
- Operational consistency: pixel-perfect layout for invoices, pick lists, checks, labels, letters.
- Scheduled delivery: render to PDF/Excel and deliver by email or file share via subscriptions, including data-driven subscriptions in Enterprise. Microsoft Learn+1
- Parameter-driven: one template serves many audiences through parameters, drillthrough, and linked reports. Microsoft Learn
- Governance and security: role-based, item-level permissions and folders. Microsoft Learn+1
Installing and configuring SSRS (on-prem)
- Install SSRS (separate download for SQL Server 2017+). Then run Reporting Services Configuration Manager. Microsoft Learn
- Create the ReportServer databases (ReportServer and ReportServerTempDB). Power BI
- Configure Web Service URL and Web Portal URL, set the service account, and point to your mail server if you plan to email subscriptions. Power BIMicrosoft Learn
- Back up the encryption key right away. You’ll need it for restores, migrations, or service-account changes. Microsoft Learn
Migrate/DR note: When moving SSRS to another server, restore the ReportServer DBs and the encryption key; the key unlocks stored credentials and connection strings. Microsoft Learn+1
Designing your first report (beginner)
A. Create a shared data source
In the portal (or project), define a shared data source to centralize connection strings and credentials. This makes moving between test and prod trivial. Microsoft Learn
B. Create a dataset (use stored procedures)
Using stored procedures gives you control over parameters, security, and plan reuse.
-- Example: dataset proc for a sales list
CREATE OR ALTER PROC dbo.rpt_SalesByDate
@StartDate date,
@EndDate date,
@Region nvarchar(50) = NULL
AS
BEGIN
SET NOCOUNT ON;
SELECT s.OrderID, s.OrderDate, s.CustomerName, s.Region, s.TotalAmount
FROM dbo.Sales AS s
WHERE s.OrderDate >= @StartDate
AND s.OrderDate < DATEADD(day, 1, @EndDate)
AND (@Region IS NULL OR s.Region = @Region)
ORDER BY s.OrderDate DESC, s.OrderID DESC;
END
Attach the dataset to a Table (Tablix), add parameters (StartDate, EndDate, Region), and preview. Design tips: avoid SELECT *, return only needed columns, and index filters. Microsoft Learn
C. Layout basics
Use page header/footer for branding and page numbers. Set page size for your target output (e.g., Letter portrait for PDF). For Excel exports, keep column widths clean and avoid merged cells. Microsoft Learn
Intermediate features you’ll use often
- Drillthrough and drilldown: link a summary report to a detail report or toggle groups open/closed. Microsoft Learn
- Parameters: cascade parameters (e.g., Country → Region → City) and use default values for “last month” or “my team.” Microsoft Learn
- Subreports and nested tablix: build reuse into your layouts, but watch performance on large data. Microsoft Learn
- Rendering choices: pick the right export format. PDF/TIFF are hard-page, HTML/Excel/Word are soft-page. CSV/XML strip layout and keep data only. Microsoft Learn
Advanced performance and reliability
Execution choices
For heavy or peak-hour reports, avoid “always on-demand” and use one of these:
- Caching: first user pays the cost; others get the cached copy until it expires. Great for hourly dashboards. Microsoft Learn
- Report snapshots: render on a schedule and serve a persisted version. Ideal for end-of-day packages. Microsoft Learn+1
- Shared dataset cache refresh plans to “pre-warm” the cache. Microsoft Learn
Scale-out and scheduling
If the whole farm is slow, consider scale-out and load balancing; if a single report is slow, tune the dataset or move it to snapshot/caching. Microsoft Learn
Design for speed
- Push filtering/aggregation to SQL (stored procs), not report filters.
- Pre-aggregate in the warehouse.
- Keep visual elements simple; fewer nested regions render faster.
- Paginate intentionally; large single-page tables crush memory. Microsoft Learn+1
Capacity in Power BI Service
If you host RDLs in Power BI, performance and concurrency depend on workspace licensing (Pro vs. Premium/PPU) and capacity planning. Microsoft Learn
Subscriptions and automation
Standard subscriptions deliver the same parameter set to a list of recipients via email or to a file share. Great for scheduled PDFs. Microsoft Learn
Data-driven subscriptions (Enterprise) deliver different parameter sets, destinations, or formats to each recipient by querying a subscriber list. This is the workhorse for “one report, thousands of customized outputs.” Microsoft Learn+1
Configure delivery in the SSRS Configuration Manager (SMTP, file share account) and manage in the portal (My Subscriptions). Microsoft Learn+1
DevOps & scripting
Automate deploys and admin with:
- RS.exe (VB-based scripts) for publish/move/copy. Microsoft Learn+1
- ReportingServicesTools PowerShell module for upload/download RDLs, set data sources, and manage subscriptions. GitHub
Example: bulk publish all RDL/RDS from a folder with PowerShell (conceptual)
Import-Module ReportingServicesTools
$serverUrl = "http://ssrs-server/reportserver"
$localFolder = "C:\Reports\Release_2025Q3"
$targetPath = "/Finance/Operational"
Write-RsFolderContent `
-ReportServerUri $serverUrl `
-Path $localFolder `
-Destination $targetPath `
-Overwrite
Security and governance that scales
SSRS uses role-based security. Assign users/groups to roles on folders and items; inheritance keeps it sane.
- Common roles: System Administrator/System User (site-wide), and item-level roles like Content Manager, Publisher, Browser, Report Builder. Microsoft Learn+1
- Manage via the web portal or SSMS; use AD groups where possible. Microsoft Learn
Admin checklist
- Back up the encryption key after install and any time you change the service account. Test restores annually. Microsoft Learn
- Document schedules, data sources, and subscriptions.
- Back up the ReportServer DBs and config files; include report source files in version control. Microsoft Learn
Viewing and embedding options
- SSRS Web Portal: browser viewing, parameters, export, print. Microsoft Learn
- Power BI Service: host and share RDLs built with Power BI Report Builder; publishing rules vary by workspace/licensing. Microsoft Learn
- Power BI Report Server: on-prem viewing with Power BI + RDL together. Microsoft Learn
- URL Access: construct a URL that renders a report directly to a format, handy for apps and links (e.g.,
&rs:Format=PDF). Microsoft Learn - ReportViewer controls: embed server reports in legacy ASP.NET WebForms/WinForms apps (ServerReport mode). Microsoft Learn+1
When to choose which option (real-world examples)
DBA
- End-of-day operational packet as a snapshot at 5:30 PM, emailed to plant managers as PDF. Use a shared schedule, snapshot, and standard subscription. Microsoft Learn+1
- Capacity spike at month-end? Pre-warm caches with dataset cache refresh plans and consider scale-out. Microsoft Learn+1
Application developer
- Inside a line-of-business app, show a “Print Invoice” button that opens a specific invoice via URL access to PDF, or embed a ReportViewer page for interactive parameters. Microsoft Learn+1
Data warehouse/BI team
- Deliver pixel-perfect financial statements monthly as PDF, and detailed ledgers to Excel with specific column widths. Use hard-page for PDFs and design with Excel in mind for exports. Microsoft Learn
- Move RDLs to the Power BI service to centralize distribution. Start with Pro/PPU in a dev workspace; evaluate Premium capacity for wider scale. Microsoft Learn+1
Troubleshooting quick hits
- Slow rendering: push filters to SQL, reduce nested tablix, use snapshots/caching. Microsoft Learn+1
- Email failing: verify SMTP in Configuration Manager and test a standard subscription. Microsoft Learn
- After migration, reports prompt for credentials: restore the encryption key that protects stored credentials. Microsoft Learn
Summary
Paginated RDL reports are the right tool for operational, printable reporting. Build them in Report Builder or Visual Studio, host them on SSRS, PBIRS, or the Power BI service, and deliver them on reliable schedules. For performance, design with renderers in mind, pre-compute when you can, and use caching or snapshots for load. For reliability, secure with roles, script your deployments, and always back up that encryption key.
Final thoughts
Interactive dashboards are great for exploration, but operations still run on pixel-perfect documents. If your users need repeatable, governed outputs that look the same every time, lean into RDL. Start small: one shared data source, one well-tuned stored procedure, one table. Add parameters. Then scale with subscriptions, cache refresh plans, and (if needed) a scale-out SSRS farm or a Premium capacity in Power BI. Spend time on the first mile (data shape) and the last mile (rendering rules). That’s where great paginated reports are made.
References
- Page layout, renderers, and pagination: Microsoft Learn, “Page layout and rendering in paginated reports.” Microsoft Learn
- SSRS native mode overview & management: Microsoft Learn, “Reporting Services report server (native mode).” Microsoft Learn
- Report Builder & Power BI Report Builder: Microsoft Learn, “Create paginated reports in Report Builder,” “What is Power BI Report Builder?” Microsoft Learn+1
- Power BI paginated reports FAQ & licensing: Microsoft Learn, “Paginated reports in Power BI: FAQ”; “Premium Per User – FAQ.” Microsoft Learn+1
- Performance, caching, snapshots: Microsoft Learn, “Performance, snapshots, caching,” “Process large reports,” “Preload the cache.” Microsoft Learn+2Microsoft Learn+2
- Subscriptions: Microsoft Learn, “Create and manage subscriptions,” “Data-driven subscriptions,” “Create a data-driven subscription (tutorial).” Microsoft Learn+2Microsoft Learn+2
- Security and roles: Microsoft Learn, “Grant user access to a report server,” “Role definitions,” “Roles and permissions.” Microsoft Learn+2Microsoft Learn+2
- Install/configure & encryption keys: Microsoft Learn, “Install and configure SSRS,” “Back up and restore encryption keys.” Power BIMicrosoft Learn
- Automation: Microsoft Learn, “RS.exe utility,” “Script with the rs.exe utility…,” ReportingServicesTools (GitHub). Microsoft Learn+1GitHub
- URL access & embedding: Microsoft Q&A thread summarizing URL render options; ReportViewer docs. Microsoft Learn+1
Discover more from SQLyard
Subscribe to get the latest posts sent to your email.


