SSRS sub report? - reporting-services

I have a weekly report that is pretty basic.
Engineer, Account number, Name, Date etc.
The twist that I am not sure how to accomplish is that the user needs to see a list of attachments based on the above criteria. I have a query which creates a single row for each attachment.
The layout I am looking is per the attached image. What I need to do is take the Attachment Name and create a row for each attachment under the existing tablix based on all of the other columns. Basically what is happening is that for each SIOA name, multiple attachments are being created. I just need to see them listed below for each occurrence. I hope this makes some sense.
Since I cannot post the image, I have a basic tablix with 11 columns. One of the columns is Attachment. I need the attachments grouped as separate rows below the other 10 columns. This way the user will see only one row for each project and multiple rows of the attachments.

If I'm understanding correctly, I think the simplest solution is to make a new row group based on the Account# (or whatever unique ID you may have for each record). Then put all your fields except the attachment field at the group level, and leave only the attachment field at the details level. That way you will get one row per group, with all the attachment rows listed beneath that group. More information on creating row groups here. You could also get fancy with a drilldown action if you wanted to.

Related

Can you link multiple tablixes on a key field in a single SSRS report?

I am creating a report in SSRS to show evaluation scores. It has three sections, and I need to link them all together on the PreceptorID field (2108 in this case). The top two sections are from the same query. I am filtering the results in each one to separate the counts because they have different column names. The third section is a subreport showing comments from evaluators. It also has the PreceptorID field in the data but is not displaying it. It has two parameters that should be populated by the main report query, but that does not appear to be happening. The report is returning all comments instead of only the ones with the matching PreceptorID.
This first image is from Crystal Reports showing how the finished product should look.
This is what I am getting from SSRS. It is showing counts for multiple people at the top. The counts in the middle are actually correct. They are all for the one person. The next person's counts are on the next page. The comments at the bottom are also not filtering on the one PreceptorID.
This image showing the subreport parameter that should be linking it back to the main query.
How can I tell all three sections to only return data for the same person on one page, and another person on the next page?
I would redesign the report structure slightly. This is only my personal preference, there are several ways to achieve this but I find this way easier to manage and maintain.
You'll need two subreports and a master report.
You already have the 2nd subreport so no extra work required there.
I would take you current report, strip out the link to the current subreport and change it so it only processes a single person (just like your existing sub report).
So SubReport1 will have the two tables from your current main report only. It will only accept a single person as a parameter (or pair of parameters in your case)
SubReport2 will be your current subreport. Again it only accepts a single person.
Next create a new report. This will be the master report.
Add a dataset that contains just enough info for list of people you want to report over. So the dataset query might be as simple as
SELECT PreceptorID, ClerkshipID FROM myTable ORDER BY PreceptorID
Add a table to this report and set it's dataset property to the dataset you just created.
Change the default (details) row group to group and order by whatever makes each record unique (maybe both the two columns listed above, may only one will be required, only you will know this).
Right-Click on the row header to the left of your table and do "Insert Row => Inside Group Below".
Remove all but one column
You should now have a table with 2 rows per group.
Right click the top cell in the group and do "Insert => Subreport", go to the subreport properties and point this to SubReport1 (or whatever you called it) and set the parameters has you have done previously.
Repeat this for second row, this time pointing to your second subreport.
In the row group properties, set page breaks to "Between each instance"
That should be it. This was done from memory so might not be 100% but based on the info in your question you should be able to work it out from here.
Things to check if this is not working
Open each subreport and test it by passing in parameters manually. Each subreport should only be returning data for a single person.
The master report should have a dataset that returns each person once i.e. if there are 10 people in total this dataset should only contain 10 rows.
The table in the master report should contain only two rows
Both rows must be EITHER within the same row group, or, if you have no other row groups, they will both be in the detail row group.
The report design should look something like this if you have a row group by person
or like this if you only have detail rows.
Finally, make sure the parameters you pass to your subreports are the Field values from your master report's dataset, NOT your master reports parameters.

SSRS column group displays data on unique rows

I have a data set where i'm using a table to display Name, Radio #, and Unit # information in SSRS tablix. As some of the groups have 60+ members, i thought it would be better to expand the tables into 4 columns repeating those detail fields instead of displaying a 3 page long skinny table. In the SQL i used a row count%4 function to assign a "position" number 0-3 for each name. If i create a table with the detail members above and then add a parent column group on position, i get the tables repeated as i want but each name/radio/unit appears on a unique row. I've tried several different ways of grouping rows/columns but always seem to get this staggered table (with only name/radio to make it easier to digest): sample_pic
Sorry if this is a duplicate. I've really searched quite a bit before putting this in but it's probably the case that if i knew what to search, i wouldn't be putting this question in. So if you'd rather tell me what to search i can do that too. :)
SSRS will display a row in the table for each row returned from the dataset, this is normal behaviour for data to display.
One way to get what you want is to create a query which has all the information form your column headings in one row, probably with a pivot or similar.
Or you could just display your columns in separate tables.

2 Page Report per record

I am having issues recreating an old report with SSRS. The original report would pull about 5-6 records from SQL, and then have a corresponding 2 page report for each record. This would be easy if I could just create an individual report for each record, which is possible, but is not what is being asked of me.
I need to be able to have 2 pages for each record I return. For example:
Page 1 will have a different table than page 2 for the same record and will be view-able as:
record 1:
page 1,2
record 2:
page 3,4
record 3:
page 5,6
No grouping is necessary for records. They just need multiple pages to repeat.
Someone I work with suggested a sub-report, but I'm not sure how that would work.
I use the report builder to create reports.
Thanks for any help. I will gladly clarify if necessary.
The nature of SSRS is that it grows based on whatever data is available when it is run. In order to force it to take up two pages per record, you'll need to set a placeholder. One way to do that is to have a table that spans two pages. Make sure the "CanShrink" property is set to False for the cells in at least one of the columns. You can remove the borders to make the column invisible if the length of the report varies.
Next, you can add columns as needed for your other report data. It doesn't really matter if you want to use a subreport or not, either way will work.

SSRS Subreport or other solution

I am working on a report that will show scheduling data. This report will need to show data for any job that has a promised date between a specified date range.
The issue I am running into is how to best display this data, I have a dataset built that has header info (Job #, Description, Due Date etc.) which returns a single line row for each job.
There are then several detail records for each job (Line item descriptions / details, Work center descriptions and details). Each of these could return several rows.
My question is how to group this detail data with each header record. Hoping to have something like this with one record block per job:
-- Header Dataset Job Number , Job Desc, Date Ship By ... etc.
--Line item description dataset
--Work Center dataset
Next record.....
Thanks in advance for any help.
Brian
If each of the records in your dataset have a field that they can be grouped by then this is actually pretty easy. You need to use the grouping feature of the table in SSRS. It's easiest to create a view that contains all the rows (both headers and details) logically and pass it to SSRS as one dataset.
Here is a recent walkthrough from Microsoft. You can change the version number to match your specific version since you didn't specify in the question. Group header fields can be formatted distintly to make them standout etc.
http://technet.microsoft.com/en-us/library/dd255263.aspx
If a field that you can group by isn't contained in the dataset in the report, i.e. it's a foreign relationship or something and you can't put them into a single view then you'll need to look into sub-reports. Based on the information provided however a simple row or column group should work just fine.

SSRS How to move a row group?

I am using SSRS 2008 and I created a tablix with several groupings. However, I see now that my latest grouping is below the details. This was a mistake because I should have all groupings in my tablix preceding my details group. All of my groups are adjacent to each other. How to reposition this group so that it precedes details group instead?
Separate note: is there a way to merge cells for a range of rows? I only know how to merge cell one row at a time! And is there a way to copy n rows? Or do I have to copy one row at a time?
Yes, the row group is actually below the Details group. See attached images.
[Essentially deleting previous post on this. It was based on a bad assumption.]
I would insert a new group where appropriate, then delete cells and columns as appropriate to get the rows for the two groups to match in number: then you can copy and paste the cells (many at once) from the old group to the new.
Make sure that your grouping formulas or fields match and then delete the old group.
(You probably already discovered this, but a clean easy way to create groups is by dragging fields from "Report Data" to the "Row Groups" subwindow: this method will refuse to create a group below details.)
I think the only alternative is to edit the XML and that is dangerous: be careful and keep old versions to revert if needed.