Forum Discussion
RTL Matrix Expansion Issue in SSRS
Hi Ayman_Hezam,
You should watch one important thing :
Since your column groups are dynamic (EntityTypeOrder and EntityDisplayName), the number of columns at runtime is unpredictable. This means even with perfect positioning, if enough columns are generated, the matrix will still eventually overflow to the left and go off-page.
To protect yourself, keep this formula in mind for every report:
Safe Tablix Left = Body Width − Initial Tablix WidthMaximum Safe Columns = Body Width ÷ Average Column Width
In your case, with an average column width of roughly 0.72cm, you can safely fit around 35 dynamic columns before hitting the left margin.
Regarding duplicate +30 reports and before applying to each report, verify these four values every time:
| <PageWidth> | Is it consistent? (29.7cm for A4 landscape) |
| <LeftMargin> + <RightMargin> | Same margins across all reports? |
| <Body><Width> | Must equal PageWidth − both margins |
| <Tablix Left> | Must equal Body Width − Tablix Width |
Finally, you are safe to replicate this pattern across your other reports.
Hi Oussama,
Thank you for your detailed response and the formulas. Unfortunately, the issue still persists; the matrix is still expanding to the left and completely breaking the page boundaries (overflowing).
Please note that if we can find a working solution for this specific report, I will gladly accept it as the solution and replicate this pattern across all my other 30+ budget reports.
Regarding your checklist about page setups and margins, I actually have extensive, long-standing experience with Report Builder. I am well aware of how standard page overflows work (e.g., if the body width exceeds the page width by even an inch, it spills over to the next page). My page size, margins, and body widths are already perfectly calculated and aligned.
The core issue here is not the static design; it's the dynamic column group expansion itself. In SSRS 2016 with RTL, this matrix expansion completely ignores page constraints and breaks the layout.
However, I have a technical idea and want to get your expert opinion on it: What if we position the Tablix at the far left (Left = 0) during design time to give it the maximum room to expand, and then dynamically shift or move the Tablix to the right during runtime using a custom expression, padding manipulation, or VB.NET code based on the generated columns? Is there a known workaround or expression in SSRS that allows us to dynamically adjust the positioning or alignment of a Tablix at runtime?
Looking forward to your thoughts.
Best regards,