Page Break on Change of Column Value - reporting-services

I have a simple customer history report that has the following elements:
Header that contains the customer name and customer ID pulled from 1 of 2 datasets
Rectangle that contains a list which provides some details order items like date ordered date shipped invoice number and such.
Sub report placed within the list area that contains table with order details.
This report functions fine if I call one customer at a time. I need to print multiple customers at a time so I have multiple values for my parameter. When I try to call more then one customer I get the following results:
The header prints with the first customer data and shows it on all pages. The list renders as designed but pulls all customers data so it appears there is just one customer.
What I need is a page break for each customer. When I new page starts I need the customer name to be shown on all of the pages that group will print. Placing the name at the top of the first page only does not work for my situation. I have tried placing pages breaks after the list. I have placed page breaks after the containing rectangle and I have created another rectangle and nested the original rectangle within this new parent with a page break on the new parent but none of these will work. I have also tried placing the customer info in the header but all I get is the information from the first record in the dataset.
This seems like a simple report but I just cannot seem to get the page break to fire when the customer ID changes.

In the properties of your List object, go to PageBreak, and set BreakLocation to "End".
Make sure Disabled is set to "False".

I was able to solve my problem by using the information at these 2 sites
Solved the problem of getting the page to break after the list
This allowed me to have a page break for each customer. It placed another row in the tablix that contained the group on field, which in my case was the name. I had to make a modification to hide this new row so I changed it's width to a very small space and set it property to hidden. I then placed a text box above my list to show the name there.
Solved name at top of every page in the group

Related

Hiding a row if text box is hidden

I have a report that lists parts required for a job, and then within each part it has rows that show locations and quantities of parts on-hand. The main list has a header (part number, description, quantity) which is only shown once at the top because it is not within the grouping. However, the second header (on-hand quantity, location) is within the grouping so it repeats. I would like it to only show once.
I have tried using the hide duplicates property for the header text boxes, but this still leaves blank rows. I have also tried setting the row visibility using a comparison between ReportItem!lblOnHand.Value and Previous(ReportItem!lblOnHand.Value) but this gives me an aggregate error.
This is what the report is displaying now:
You need to set the row visibility rather than the individual text boxes. Right-click the row header to access the setting..
You should (untested) be able to use the same logic as you have now. If this does not work then you will need to test if the group is the first group and use that in the expression, something like...
=Fields!Partnumber.Value <> FIRST(Fields!Partnumber.Value, "myGroupOrDatasetNameHere")
The above would hide thew row if the part number in the current context is not the same as the first part number in the group or dataset name specified.

How to get name and logo to repeat for every page of a table (tablix)

I'm trying to recreate a report created from Crystal Reports to SSRS.
The report has the company name and logo on top, a chart below and a table that can span multiple pages. If the table for a company takes more than one page to display, the comapny name and logo is displayed for every page.
I was somehow able to do this, except for the repeating name and logo.
I need it to look like this:
Add you company and logo information in the top line but INSIDE the group (assuming company is the grouping here). Then click on the little down arrow to the right of the "Column Groups" window (bottom right) and select Advanced Mode
It should show up some Static elements under the Row Groups windows.
Select one at a time and then click on the properties window.. then select RepeatonNewPage = True
Do this for all the static group above the detailed group. You many need to set the KeepwithGroup property as well..
Now if the group goes over a page.. it should repeat the top section of your report for that company
I just worked around my issue. Added a row, placed the company name on that row and hid the entire row. In my header I added a textbox and used the expression ReportItems!CompanyName.Value.

trying to generate a report that would group by a header in SSRS

I am trying to create a unique report and I'm really struggling how I could do it. Here's an image to give an idea:
The report is has a parameter that I pass with a Client ID. I am able to pass multiple Client ID and I am hoping that this generate will display the correct data in a format that I hope to achieve.
let's say I enter ClientID 17,19:
on the first page of Client 17, I want to be able to see content in the red border, below it i will have a tablix and some more stuff. The tablix will have a lot of data and will go to the 2nd page. On the 2nd page, I only want to see the content in the green border.
For next client ID (19), I would again hope to see the content in the red border, and again, if the rest of the report goes to 2nd page, I would want to only see the content in green border.
Anyone have an idea?
I am able to create a report like this for just a single client, as I can make the PAGE HEADER not repeat on each page, and include the Organization: ABC COmpany and ClientName in the Tablix with the rest of the data.
But when it comes to doing multiple clients, I am struggling to make this work.
Put a table in your report that is grouped on your ClientID field. This will initially give you one table row per ClientID.
You can then insert a new row inside the group. This will give you two rows per ClientID.
In the top row, add everything in the red section from your question. You can do this either by adding a sub-table into the textbox that has rows and columns formatted to display the Client's address details, or you can add in a Rectangle to allow free form placement of other report items like text boxes.
In the row below this one, do the same again. Add in everything you would need to display your data as per your green section.

SSRS Report Page Break Logic for Groups in a single report

I have created an SSRS table element where we have multiple grouped items like below generated in a Portrait mode.
Problem:
Whenever there are many items in a single group, some items in the group get spilled over to the next page. That is, a page break is applied.
Example,
If there are 3 groups in a table, and 2nd group contains 50 items, 30 are displayed on the first page, page breaks and then the remaining 20 are displayed on the second page and so on until all the remaining groups are displayed. This is a normal scenario which happens by default.
Expected Solution:
What is expected is, if the data region of any of the group spills over to the next page, then the whole group along with the group header needs to be shifted to the next page. The idea is to have the whole data region of the group stay together.
This is like a smart table (group split).
This is dynamic in nature in the sense, where if for a group with less rows, it fits and stays together on a single page, then page break doesn't happen.
I tried multiple options like below but none of them worked.
- Change the Keep Together flag of the Grouped rows and the Data Region to True.
- Add a page break after each row group using the Group properties.
Can someone please let me know if there is at all a way to achieve the smart page break like the one expected above?
You can't do that but there are two ways that you can do.
You can remove paging of SSRS report. to remove Paging by opening property window of report and set InteractiveSize's Height value to 0. it will remove paging of the report
You can repeat your Group header if there to another page as well so that user have idea about this data belongs to which group.

Group on a Hyperlink Column in Cognos PDF report

I am using Cognos 10 report studio. I need to group a report on a Hyperlink column... or add a hyperlink to the Grouped column without redundantly displaying any data.
I have a Grouped Column, TicketNo. Each TicketNo has multiple lines. I only want the TicketNo (and my Hyperlink) to appear once per Ticket.
Edit: With ElectricLlama's help, I solved the issue. Here is the steps I went through.
Initial Attempt:
I originally used an HTML Text Item so that I could add a custom link which did the 'Open in New Page' automatically. I Unlocked the Report, then I put a 1 column x 2 row table inside the TicketNo column to arrange the two items together in the same Report Column. This works great in HTML reports:
The HTML Item does not show up in PDF output versions of the report:
I need a version of this which works in PDF. For that I tried the 'Hyperlink' Column instead of HTML Item:
The result creates a Hyperlink that works in PDF:
There are multiple redundant links per Ticket. I only want One link per ticket, like we had with the Hyperlink Column. I tried removing the TicketNo column and then Grouping on the Hyperlink column, but Hyperlink columns cannot be grouped on.
I unlocked the report again (so I could move items around inside the table cells) and moved the Hyperlink into the TicketNo Column. (make sure you select the inner box in the hyperlink when dragging):
And achieved a usable result in PDF:
The final issue was, I only want to see the Hyperlink. Seeing the TicketNo and the TicketNo named hyperlink together seemed redundant. I clicked inside the TicketNo item's Table Cell and selected 'Box Type' -> 'None'.
This hid the TicketNo field, but its Grouping is still in effect:
The result in PDF was exactly what I was looking for:
The Hyperlink appears to be grouped on!