Help with Paginated Report – Adding Additional Tables per Grouped Page

Crozier, Joseph 20 Reputation points
2025-04-15T15:17:06.67+00:00

(This is technically Power Bi Report Builder but I'm under the impression its the same as SQL Server Reporting Services)

I have a paginated report grouped by Protocol No that looks like this, and it’s working well — each protocol gets its own page, which is exactly what I want. So far so good.

CDN media

What I’m Trying to Do:

Now, I want to add more tables to each protocol’s page. The idea is:

  • Page 1: multiple small tables showing different info about Protocol A

Page 2: same structure, but for Protocol B

And so on...

So each page would show multiple 1-row tables, all tied to the same Protocol. It is grouped by PROTOCOL_NO above, but that's synonymous with PROTOCOL_ID, which is in the tables and queries. It'll give different views of that protocol.

The Challenge:

These additional tables I want to include come from different underlying tables in the semantic model. They each have a many-to-many relationship with the original table I’m already querying in Report Builder. All of them do include the PROTOCOL_ID field, so conceptually the join makes sense.

CDN media

In Power BI Desktop, I’ve already built this dashboard that combines all this info — now I’m trying to replicate that experience in a paginated report that can be emailed as a PDF.

Where I’m Stuck:

I already have my main dataset (query) in place and bound to the first table on the report. What’s unclear to me is:

How do I bind new queries to display a single row of data per protocol (on the correct page with other tables of the same protocol id)?

How do I ensure each extra table shows only the data for the current protocol on that page?

If anyone has done something similar — combining multiple tables per grouped page in paginated reports — I’d really appreciate some guidance!

Thanks in advance!

SQL Server Reporting Services
SQL Server Reporting Services
A SQL Server technology that supports the creation, management, and delivery of both traditional, paper-oriented reports and interactive, web-based reports.
3,042 questions
0 comments No comments
{count} votes

Accepted answer
  1. Michael Taylor 58,696 Reputation points
    2025-04-15T15:23:38.37+00:00

    I'm not quite sure I follow your entire flow but ultimately it sounds to me like you want to run a subquery for each table that is currently in your report. The results of that subquery would be inside the existing table. In that case I think you should use a subreport. That is probably the easiest approach.

    Create a subreport that runs the query you need and have it accept as parameter(s) any data need to filter the query results (sounds like your protocol information). Once the subreport shows the data you want then add the subreport as a new row in your main table. When you insert the subreport it'll allow you to map the existing table's dataset (rows generally) to the parameters of the subreport. Hence your main report will run and for each subreport it'll trigger a separate query to get the results and inject them into the main table.

    If you only need 1 table per main table then you could insert the subreport as part of the footer row of the main table. If you need the subreport for each "row" of your main table then add it as a second row for each row in the main table's query.


0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.