flatten results onto one line in report builder - reporting-services

report example
i have a report that displays client contact details, but annoyingly for each different contact type it displays the results on a separate line! Can anyone advise if it possible to show the results on one line using an expression or some sort of filter, not using SQL.
as you can see from the image Miss S has both a mobile (MBL) and telephone (TEL) number but they show on different rows, if in my program i were to add an email address then it would add a third line, is it possible to flatten the results down to one row?
regards

You'll need to remove the Contact Type column from the tablix as this won't be valid once you put all the contact details on the same row.
Once this is removed, you will then need to edit the row group (under the main design window) and group by the first 5 columns only. There may already be grouping set, if so check that contact type is not in the group by list, if it is remove it.
Alternative
After saying all this, I can't help but think this report would be a whole lot easier, assuming the data was structured correctly (it may already be), to use a matrix control. That way all this and the answer to your previous question (asked recently) would be automatic. I won't go into detail but if you are interested, create a new question and show the output from your dataset query, the query code itself and the desired output. optionally, accept this answer ! :)

Related

Most Efficient Way to Display Multiple SQL Rows as a Single Row with Sub-Rows in SSRS Report?

The goal is to take the data shown in the "SQL rows returned" portion of the image and display it in the "How report should look" portion of the image. It's currently being done using a sub-report that takes titleID, languageID, beginDate, and endDate as a parameters from the main report. However, it's really slow to run when a significant number or records are returned. My question is "Is there a more efficient way to accomplish the same thing in the main report w/o using a subreport?" If more information is needed to properly assess this problem, I'll be glad to add it tomorrow. Thank you!
Purely looking at the image.. all you need to do is put a tablix on your main report add a parent group of title_id..
Then delete the column that is created to the left (but NOT the group)
Right click on the detailed group -> insert row outside group. This will create a row inside the Title_id group but Outside the detail group.
In this line.. add the title ID, name etc.
The detail lines will show the details.. obviously.. You need to play around a bit to figure out the rest of it..
It looks to be a fairly straight forward report.. not sure why you need to use a subreport for this

SSRS Group Header repeat only at Top of page

I have been tasked with cleaning up some outstanding issues with my company's invoices. It is a very complicated report (four separate invoice formats are combined and determined conditionally because the application that calls them only allows 1 invoice format). I am going to try to keep this limited to just the current issue, but will provide as much info as necessary to solve the issue.
There are tons of existing questions about repeating group headers, like this one and they have helped me solve most of my problems, but I have not seen the problem I am still having addressed. I am sorry if I missed it!
The issue: The last tablix on my report is finally repeating the headers on all pages, but I now have the issue where when there is enough room, the header will display in the middle of the page below the second to last tablix.
Unfortunately, adding a page break breaks the page numbers even with reset page number set to false. (I have explicitly added the xml tag and it still resets)
What is the best way to only show the group headers at the top of the page when there is extreme variability in the size of many elements in the report (note fields that vary between one short line and epic novel length and images that vary in physical size and quantity).
Thank you for taking the time to read and help with my issue, I will continue searching through the similar questions that writing this prompted.
I will wait to accept this as THE answer, in the hopes that someone out there has a brilliant solution that has escaped me.
Based on comments here https://www.mssqltips.com/sqlservertip/3482/sql-server-reporting-services-ssrs-controlling-report-page-breaks/#comments
It appears my options are:
1. Accept that some pages will have two headers
2. Accept multi-page reports displaying page 1 of 1 on every page
3. Rework the report to not use a subreport
Thank you to everyone who has taken the time to consider my problem!!
#WhatEva sorry about the slow reply; am in and out of work this week and next. Capsule response: imagine the final, correctly formatted report, and imagine that you have all the text (non-header, non-footer) data in a single table. Add group columns as necessary to allow you to trigger the relevant headers and footers. You're likely to need a sequence id column to govern the order of printing of the rows. The report you're trying to write would have generated the text body fields; rewrite the report data sets as SP procedures to insert those text rows into the table, and ensure the group columns are filled out suitably to generate the right headers etc. Then write an SSRS report to pull that data and use the usual mechanisms to manage the headers and footers. It's hard to be more specific without knowing details, and there are certainly limitations on this approach, but it can solve some problems.

Create an expression based off grouped rows ssrs

I want to create a single rectangle on a report that displays red if there are more then 2 distinct projects being worked on within that week (see image below):
http://imgur.com/dPHW1TT
I'd need to write some kind of expression like IIF(CountDistinct(Fields!Project_Name.Value)> 1, "Red","White") but the issue is that I need the projects to be aggregated per user.
As you can see in the above report I have it grouped on User >> Project, and thats what I'd need to captcher in this single expression.
Is there any way to specify a group in an expression?
I've actually managed to do what I wanted via filtering on the tables group, and then hiding all the cells bar one in the table.
http://imgur.com/G8IKMbS
Although if anyone knows a way to group within an expression I would still be interested in knowing.
Thanks

Matrix report - Page breaks for each column group

I'm using VS2005 to create my reports.
I have a matrix report that works beatifully. I have country going down on the left hand side (row group called "matrix1_country_name") and data going across for 2 column groups, product_node and month (column groups "matrix1_Node" and "matrix1_calendar_month_name" respectively)
The only thing I want to improve is that this report will always show 5 year/60 months of data, and with multiple nodes I'd rather have each node be on its own page (Ideally I'd love to have it on the same page but in the rows just below to first node, but I'm not sure that's even possible).
I've seen numerous responses on these boards about putting in page breaks on column groups, but I can't seem to find how to do that in VS2005. The examples I've read that can do that seem to have a different interface so I'm guessing they aren't in VS2005.
Does VS2005 allow you to add page breaks after each group item and I'm just missing it? Or is there a trick I can do to get that to happen? I've also read about nestin matrix reports in list reports but that seems more complicated than doing the page break on the column group, so I'd rather do the easiest solution if I can.
Ah, I see pagebreaks are ignored on column_groups. Well I guess I'll try one of these workarounds.
http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/ea9d795b-8d17-41d2-a1d7-a4069ebb4539

Building a rdl report for CRM

I'm creating my first report for CRM 2011 using SQL Server Business Intelligence Development Studio and i've managed to do a decent amount but as I move into the more complex parts i'm becoming stuck, and I was wondering if someone would be able to help me with a few questions I have:
I'm using fetchXml to get the data from CRM for some accounts that the report is for, I need to include some data from a child entity but can't include them in the same way that I can for a parent entity to accounts. So for this I'm assuming I need to use a separate fetch query, but how do I pass the ID of the account the report is looking at into the second fetch query as a parameter?
Once I've got the names of all the child items with the fetchXml, whats the easiest way to display them all in a numbered list?
EDIT: For 1 and 2 I found that I can use a subreport with the child data in it. Using a list item I can show all in a bulleted list and I can pass the parameter through from the main report to the subreport
I'm listing the account's address on the report but since they might or might not have the lines 2 and 3 fields completed i'm unsure of how to display it without either missing off some of the address or leaving big gaps. I've tried creating different text boxes with the different combinations of line 1, 2 and 3 and then make only one visible with the use of expressions but the iif statement always returns false. Is there an easier way to do this?
EDIT: I've found out how to do this using a number of different text boxes containing the different combinations and hiding them using the visibility rule. What was initially confusing though is that the rule is for if the box should be hidden, rather than if it should be shown
When I add a field onto the report it always has a "First()" statement on it. Is this required or will it limit my report in any way?
EDIT: This doesn't seem to have an effect on the report as the record to run it against is always selected beforehand, so the First() statement doesn't restrict any data
If anyone could help me with any of these questions at all then that would be greatly appreciated.
Thanks
I've found the answers to my questions, i've put them in the original post.