I am using SSRS to report numbers and percentages and display them in a matrix using a column grouping (so new "rows" of data populate new columns rather than rows).
In order to make a "nice" header for each row that spans several rows I have created two tablixes, one for the headers and one containing the data. These two tablixes have both been dropped into a list in order to keep them aligned (being contained in a list is also essential if I want to use them within a multi-page report). The heights of each cell have been defined carefully to ensure that the two tables align and appear as one table.
When I view the report in SSRS everything appears more or less as I would expect. However, when I view the same report via IE the rows become misaligned.
Is there an easy explanation as to why this happens?
My best guess is that the heights I've specified in mm and cm are being converted into another unit and the inconsistency is being introduced via a rounding error.
i.e. the headers are 15mm height, numbers are 7mm height and percentages are 8mm high. Normally 8+7=15 but perhaps conversion(8)+conversion(7)=/=conversion(15)
If this is the case then it would be useful to know the native or "correct" units to use in SSRS if I want to avoid this kind of conversion error.
Related
I have an rdlc report in my application. The report looks good when seen on the web page, but when I choose the option of exporting to Excel, I get some columns merged in more than one cells. I don't want columns to be merged. How can I prevent this. I already saw this post, but the link provided in this post is not working.
Any help with this issue will be appreciated.
As the post you shared suggested, this is usually down to cells/textboxes not aligning in your report design.
SSRS will attempt to replicate the layout that you see in the report preview (or webpage in your case). To do this it will add additional columns to provide the correct spacing and then will merge cells that cross those boundaries.
Make sure that all your textboxes align with no horizontal gap etc. For example, if your report contains a table/matrix and a textbox with a title. Make sure that the title textbox starts and finishes exactly in line with a cell in the table/matrix.
Note that cells will still be merged if they cross the boundaries of columns (e.g. the title in this example, might be merged across several columns depending on it's width).
Sticking with our title scenario, if you need to stop it from merging under any circumstances then you could try this (untested).
Create two textboxes, one wide enough to fit the title in and another that is the same width as other data that shoudl be in the same column in the final excel output. For example, if you have a table with 6 columns, the first textbox will be the same size as those 6 columns but the smaller version will be aligned with the first table column only.
Set the location of both these textboxes to the same location (so they overlap).
Then in the hidden property set one to be hidden when Globals!RenderFormat = "EXCELOPENXML" and the other when this expression is not true. This way the short textbox will only get rendered when exporting to excel, and the logn one will only get rendered to screen.
Depending on version SSRS etc you will have to decide which render format(s) to check for.
See here for documentation on RenderFormat
https://learn.microsoft.com/en-us/sql/reporting-services/report-design/built-in-collections-built-in-globals-and-users-references-report-builder?view=sql-server-ver15
I have created a report , which do what it is supposed to do (or almost)
One thing that still bugs me is the following
On some pages , I have 4 boxes (see below)
On other pages, I have 5 boxes (see below).
The number of boxes can change depending on unknown variables/factors.
I would like to have 5 boxes in every page. I'm not sure how to do that. I checked on google and all that came up was some trick to have a fixed number of rows, which is not what I'm looking for
http://www.sqlchick.com/entries/2010/9/11/displaying-fixed-number-of-rows-per-ssrs-report-page.html
Thanks for any insights you will be able to provide me , with.
The fixed number of rows solution that you linked to in your question is actually partially what you want. Your "boxes" are presumably repeating based on rows in a dataset, what you are asking to do is ensure that exactly five rows appear on each page. The linked solution uses an extra parent RowGroup to force a page break after n rows, which will ensure there are not more than n rows per page.
However the issue you are seeing is that sometimes there are four rows per page and this will be because the combined content of the rows ("boxes") is larger than a single page and therefore when the report is rendered the rendering engine is forced to split it onto a new page. The only way to avoid this is to either ensure that five rows of content is never larger than a page (e.g. by shrinking fonts or changing layout and/or setting the CanGrow property to False on relevant report items), or by mandating a lower number of rows per page (e.g. 4 or 3) when setting up the parent row group that forces the page breaks.
I have created a Matrix report. In the matrix report I have limited the report columns per page.
For example, I have limited the number of columns per page to 6. I therefore have 12 columns over 2 pages. I need to insert one more column after 12th column (13, Cost), and to only display this on the second page of the report, not as a last column of every page.
Note: I need to add the "Cost" as last column on last page for the column group.
From the image the columns 1,2,3,4 want to display on last page only.
My report design
Example:
Click here to view the report details
Can anyone please help me with this. Thanks in advance.
I don't really get what you're trying to achieve exactly because usually tables grow vertically, as in rows get added, which could cause your report to grow in pages. Making it extremely difficult to determine what is the last page of your report.
To solve your problem you could simply create a second Tablix which contains only the columns that you wish to display on the last page. And remove those columns from the first Tablix. This will also make it a lot more easier to determine when to add a page-break.
Using expressions (combined with rectangles for example) you could do a lot more grouping and manipulating of the layout. Unfortunately I don't possess enough information and details to give you more accurate advise but you're always welcome to update your question if you need any more assistance.
Update:
What you're trying to do in point [2.] of your comment is simply not possible with the reporter. There is no way to determine on which page you are leave alone the exact position on that page.
The only way I know how to calculate this accurately is by keeping track of the exact row's nummer you're at aswell as the amount of rows that fit on a page. Needless to say that this is an extremely tedious and troublesome, especially if the columns aren't fixed either.
Using the column grouping as you say in point [3.] might be possible but have to share the expressions you used for divide the table and the column grouping to be certain. And even then it'll be a complex expression to force this kind of behavior.
However, I believe you could use my first suggestion and change it slightly based on your new description. Instead of creating a new Tablix below, you could place him next to your first table. This new tablix then only needs to have 1 column, the extra column you're trying to add.
If there is enough space on the last page to place this column next to the last column group, then it will be placed exactly where you want it. This of course won't work if you don't have enough horizontal space on your page, then it'll simply get printed on an entire new page.
I am having report in SSRS with two cell merged into one cell. While exporting this report to excel,
it shows me two different cells instead of merged one. The first cell is having value while other is blank. Kindly suggest solution to this issue.
Other report elements above or below your merged cell can cause what you are seeing. Make sure that any other tables or text areas on the page have have line up with the start/stop points of your columns on the table with the merged cells.
For example, if you have another table or text title that doesn't line up with one of your columns, Excel forces in an extra blank column. If you temporarily remove anything other than your table with the problem, you may see that it suddenly works.
Another trick is to use points as the unit of measure when specifying widths and heights. When you export to Excel, any measurements in inches are converted to points. Sometimes it ends up with partial points resulting in unexpected behavior. For details about the points measurements see - Microsoft's explanation here.
I have a table and a graph next to each other in a line.
I can choose one or more of 5 columns which can be displayed by using multiple values in parameters. But when I'll choose 4 of 5 I have white area between chart (graph) and tablix (table), what I don't want. I want to expand these columns to initial tablix size. And the same in case less number of columns. Is it possible expand them depending on chosen parameters?
(Edit:) Or how to change width of column depending on expression? If I can do this, my problem will be solved.
Or another idea is to expand chart on whole width - it could be between tablix and the end of page.
Any ideas how to do this?
This is unfortunately not possible in SSRS without the use of a hack. To quote the "accepted" answer from this MSDN thread:
This is a common request and I definitely see the value in it. However, we didn't get to this for SSRS 2008. Please feel free to file a feature request (or add votes to an existing request) on the connect.microsoft.com.
As far as I know this hasn't changed in SSRS 2012, though someone may correct me on this.
The thread mentioned above holds several workardounds, ranging from ugly to UGLY. One other lead (possibly even a duplicate question?) is this SO question where it's suggested to not hide the column but make the text have the same color as the background o.O