SSRS Expressions Not Executed When Rows Are Hidden - reporting-services

I'm new to SSRS and have been tasked with converting our Crystal Reports to it. The problem I'm running into is when trying to hide the detail rows which contain the data for the group calculations, the expressions no longer get calculated. How can I hide the detail data, but still execute the expressions in those rows so that the group summaries are accurate?
Values before setting row visibility to hide -
Values after setting row visibility to hide -

It's a hack, but you could set the font color of the detail rows to white and make the rows as small as possible instead of hiding them... If someone else has a better suggestion, I'm interested as well!

Related

cells merge when exporting to excel in rdlc

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

In SSRS Matrix report I need to display one more column as last and need to display only on last page,not as a last column of every page

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.

Get current value from grouped tablix

so, I grouped my tablix by an ID and make page breaks for every different ID.
How can I know which value the ID on the current site have and how can I use it in expressions (I don't want to use the value in the same tablix where I grouped, I want to use the it for a textbox and a diagram.
I can't find any solution in the internet, maybe you have some ideas.
How would you manage to put an image and/or textbox on each page, when your tablix is page breaking on an instance of your grouping? You must remember that the full tablix output, along with all instances, will first show before any other image or textbox is displayed after.
You would need to have the image/textbox in the table and within the grouping. This would actually solve your problem.
While i dont think this is what you are looking for, I believe its the only way to get around this. Or as Tab Allerman suggested you could use sub reports.

How to implement Underlay Following Sections in SSRS?

I am trying implement underlay following sections in SSRS. Is there any way to achieve this?
In crystal reports there is underlay following section check box through which we can achieve this. I want to use this feature because in my details section there is one column (unit area) which repeats its data in each row due to which the totals at group footer comes wrong (due to duplicate unit area)
Workaround to get correct totals will also work for me if underlay is not possible. I googled for underlay feature and the only solution I could find was of using Matrix as per below msdn post. Let me know if there are any other possible workarounds or solutions.
http://social.msdn.microsoft.com/Forums/en-US/1284e27c-de34-4670-a214-67fbe18470b3/underlay-following-section-like-crystal-reports?forum=sqlreportingservices
This issue has been very frustrating to figure out, but I finally figured out how to mimic Crystal's Underlay Following Sections behavior in SSRS!!! I stumbled across the solution and after finding it I have searched on the method I used and found many articles referencing it, but never equating it to the solution for mimicking Crystal's Underlay property. Here's how I did it.
I had three groups - call them Company, Business, Employee - and details. Traditionally, these groups would be laid out on separate rows like this:
Company
...............Business
..............................Employee
...............................................Details
Using a table, I put the columns all on the same row - the details row - instead of multiple rows.
Company...Business...Employee...Details
Now, this should result in duplicate values for each of the groups for every detail set in my dataset. And if you have this set up and run it, you will see that's exactly what you get. Let's fix it.
Click anywhere on the table to bring up the tablix control region.
Click on the control for the details row; this should highlight the row.
Open up Properties and scroll down to the section called Other and look for a property called HideDuplicates. There should be a drop down list with all your groups.
Select the group that represents the parent group, in my case it was Company.
This property basically hides all of the group duplicates providing you with the Underlay look you are looking for. All you have to do is save and preview!
I used this method on other reports that I wanted one of the groups, say the Company group, to be on a line all by itself. No problem, just remember that as far as the details row is concerned, the Business group is now the parent.
Hope this helps

SSRS automatic extension columns depending on the parameters - tablix

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