Wednesday 10 February 2010

Repeating table headers in Reporting Services 2008

You may find it a bit of a challenge to get Reporting Services 2008 to repeat table headers across pages. Unfortunately the tablix properties 'Repeat Row Headers' and 'Repeat Column Headers' appear to do absolutely nothing despite what MSDN says. In fact there is a connect request related to it here. There is a bit of information on the web about this - but not definitive guide and I still found myself scratching my head a bit, so here's my attempt at explaining it:

Step 1:

Select the tablix in question and click the arrow on the left of Column Groups and the bottom of the Design tab, and select 'Advanced Mode':



Step 2:

Under 'Row Groups' you should now see grey bars before and after each tablix grouping marked '(Static)'. These represent the column headers for each group. Click on one of these:



Step 3:

Click the Properties Window (there's no right-click menu on the static groups). On the RepeatOnNewPage property click 'True':




Step 4:


Repeat step 3 for every static group that a repeating header is required. Bear in mind there are the static groups after the tablix - don't set these to repeat.

Then you should be done! Shame this can't simply be done on the tablix property - lets hope MS fix this in a Service Pack at some point.

17 comments:

Tom Huynh said...

This helped alot!

Anonymous said...

Oh my god, I had been searching three days for this solution.

THANK YOU!!!

Mike Sachleben said...

Once I followed your instructions perfectly it worked like a charm.

Note to others: Phil tells you to make the change to items on the left (row groups). Follow his advice to the letter.

Even if you see the same sort of "(Static)" things on the right (column groups) don't change the settings there! Reporting Services will throw an error if you do.

Thanks for the handy tips, Phil!
Mike

Anonymous said...

You have just saved my life.
Thank you.

Unknown said...

Thanks for blogging this!

I've also found that if I want repeating headers then for the header row of the inner-most (detail) row I need to apply the value 'After' to the KeepWithGroup property.

Anonymous said...

You've got to be kidding... THanks for the tip, just lost over an hour trying to do something so simple.

Anonymous said...

Thanks for the post. This was very helpful.

gloriagajdacsi said...

I have found a situation when this - and possibly any other - solution is not working. This is that case when you group your data, then delete the groping column, then try to create your fancy repeating table headers. It will not work unless you create the table again.

Anonymous said...

Thank you! Especially to Gajdacisgloria, who solved my major issue - rebuilding the table solved the issue. Thank you!

Anonymous said...

THANK YOU. This has been plaguing me over multiple reports; why do they make it so hard to do something so useful?

Now my boss will think me a wizard, when it is you, sir, who has the magic.

Anonymous said...

Here is a really interesting post. This guy believes that the XML is different depending on whether you create yoru report using the Wizard or from an empty one. His XML modification worked for me.

http://www.sqlservercentral.com/Forums/Topic593245-1063-1.aspx

raja said...

Still one problem, my group header is merged cells, and have rectangle as a container shows some more details. the described solution is not working in this case. please can you help me out.

same layout is
---------------------------
| header-rectangle |
---------------------------
| A | B | C |
---------------------------

Anonymous said...

Thanks a lot. Save my mind.

Anonymous said...

thank you verry much!

Richard Alger said...

rohancragg said...
"Thanks for blogging this!

I've also found that if I want repeating headers then for the header row of the inner-most (detail) row I need to apply the value 'After' to the KeepWithGroup property."

I had to do the same to make it work. Thanks so much!

Anonymous said...

I almost never post comments but just had to say thanks for this help!

Anonymous said...

Great help - thanks Phil!