I have a very simple report with only 4 fields. The first field is the Customer group, the parent (and only) group.
The trouble is, a lot of the Customers have many entries, so it's not easy to thumb through the report --there are a lot of pages.
The field headers are arranged in the following order:
Customer | CreatedDate | Object | Value
I wanted to make the Customer field/group collapsible/expandable. I would like the initial setting to have all Customer group rows collapsed at the start so the user can expand the Customer they choose.
I've tried about 4 different tutorials I found on Google and nothing's working.
Related
Is it possible to dynamically create SSRS tablix? I have a pretty complex requirement.
I have created tables in which I fill "metadata" for reports, i.e.:
column names
row names
row/column levels (parent/child)
font colours
font sizes
valid from/valid to attributes
translations
Then, I generate queries from this metadata, and join them on fact tables. So each query returns data as it should.
I generate data in levels, so you always know, in which level you're currently. So, you get data in the following form (I can change it, if that would ease creating of reports):
Row Text | Level 1 Text | Level 2 Text | Level 3 Text | Level 4 Text | Level 5 Text | Value
Basically, SSRS doesn't have to sum anything, it just shows the data. But here's where I get into trouble. I don't know, how to achieve a normal-looking report.
I have made 5 column groups (5 is the highest number of levels in any report), and every one is a child to previous one. Row groups get hidden based on the max level of current query, so if the query only has data on level 1, only 1 row is shown.
But here comes the tricky part. I have a report, that has data like this:
If some data is on level 5, and some on level 1 (others everywhere in between), the data on level 1 has 4 empty rows...
So, my report shows a lot of empty cells. Either that, or I show the same text for all 5 levels. Is there a smart way to address this issue? I can even change the whole concept, as I'm still early in development.
EDIT:
Here is one of the exact reports that has to be generated dynamically (it's a public template):
ssrs template
There is a lot of posts that talk about using different sources for this, but I haven't found any that cover my scenario using the same data, while page breaking in between common groupings. I cannot adjust the stored procedure due to some compatibility issues, and am trying to figure out how to do this in the report itself.
Here is what I need to accomplish:
We deliver items to various people in the same job order. Each person will get his own shipment list, so I group by the person delivered to, and page break after his list is finished.
The list of sent items that the person gets should not include pending items. Rather, that should display as a separate table right below the first shipment list of what the person was sent.
The data returned in the stored procedure will include a flag on each detail indicating if the item is pending or not.
Our report should look like this:
---- Report header information ----
---- Deliver to John Joe -----
(Table with all items sent) // These need to belong to just John Joe's group
(Table with all items pending) // These need to belong to just John Joe's group
Page break, then on a different page
---- Report header information ----
---- Deliver to Max Manny --------
(Table with all items sent) // These need to belong to just Max Manny's group
(Table with all items pending) // These need to belong to just Max Manny's group
What I've found so far:
Can't nest tablix controls, since dynamic cant nest inside dynamic
It's almost like I need to be able to apply a grouped bit of data to a data context, such as a rectangle, and have both tables feed off of the same source, but havn't found a way to do this.
If i just do two tablix controls on top of each other, the page breaking doesn't work right, since I need to break after each instance of group. But this happens for both tablix controls if I set this, so the result ordering gets messed up.
Thanks for any comments or suggestions you can provide, it's much appreciated!
The suggestion in the comments by #Martin Soles will work nicely. Another way I've done this in the past is to use nested tables: first add a row group for the recipient, set this group to page break, add some extra rows in the group, and merge cells on the remaining rows:
Next select your empty row and insert a table:
Finally add a filter on each nested table to only show sent or pending items. This can also be useful when you want a different number of columns on each inner table.
Ok, I'm going nuts here. I'm trying to create an order packing slip but having trouble grouping it all properly. A few details:
There can be multiple items on each packing slip(InventoryDescription & InventoryItemCount in my query below)
Packing slip needs to page break on each order id.
I need to also include in the footer, a message saying to contact customer service (see 2nd image below). This needs to be on the footer of each invoice.
Here's a sample of my data. The first 2 rows (John Smith. OrderID 40184) are multiple items within the same orderID, so they should be on the same packing slip. The other 2 rows (Amy Andrews & Paul Johnson) should each be on their own separate packing slip.
Here's an image of my work so far. I inserted a tablix, tried inserting everything into the data rows, then grouping on OrderID & ShipTo. The orderId group has a page break "Between each instance of a group" checked.
I've also provided a link to my current (mess of a) report, if you'd like to review.
PackingSlip.zip
What you want is a List. Insert a list, and group it on orderId. Set the Group to page break between each instance of the group as you had done. What you will find is that the contents of the List (which is actually just a rectangle) will be repeated for each Order Id the report encounters. You can pretty much just put everything on your current report within that List and it should work fine, including the table to group your InventoryDescription, InventoryItemCount etc. Only the ones that are against the OrderId in question will be shown on each slip
I'm having an issue with a report containing a subreport in Access 2007. Let me preface this by saying that I didn't create this database, it was already in place and I've just kinda been put in the position of taking it over, and I don't know too much about access.
Basically I need my report to pull my customer history and payment history, group them based on the phone number, display all history below, and finally being sorted by received date.
What is happening though is I'm getting duplicates of all payment info.
Here's currently what is being output:
555-1212
john smith
123 whatever dr
hometown, usa 90210
sold date received date amount agentname
1/1/2013 1/4/2013 50 jack
6/1/2012 6/6/2012 25 jim
sold date received date amount agentname
1/1/2013 1/4/2013 50 jack
6/1/2012 6/6/2012 25 jim
So as you can see, it is grouping the sales correctly on the phone number, as shown by the phone number, name, and address only being displayed once. However for each instance that the subreport pulls, it shows all the info again. I need only one set of sale information to display per customer.
I have two tables, two queries, and two reports doing all of this.
One table contains customer information, the other contains sale information.
The queries simply pull the needed info.
My main report has the phone number, name, and address inside the header section. This is set to group on phone number, and to keep the group together on one page.
My subreport contains all the sale info inside the detail section. This is set to sort by received date.
I've tried a ton of combinations of grouping, sorting, and moving the subreport in and out of the header and detail sections but to no avail. One way or another there's always duplicates and I can't figure out how to sort the whole shebang by received date when all is said and done. Any help would be greatly appreciated!
Create a phone number group section and move the top line with phone number, name, and address AND the sales information subreport inside this new group header. Then, minimize the detail section.
From your example, John Smith has two sales info records. Therefore, the sub report placed in the detail section will repeat twice for its two appearances in the main report. Recall any item in detail section will repeat for the number in the recordsource. Yet positioning items in a distinct group section will remove the duplication.
Maybe the question title is a little confusing, so I'll try to clarify things
In a report I receive a dataset with a datatable which contain records to be shown. I cannot change that (it's not under my control).
The records have a field, RetirementDate, which can be filled or null. Based on this, the records must be shown on two distinct tables on the same report.
Both reports have the same grouping (two groups, on Department an Category, and Category is included inside department).
So reports should looks like this
Table 1 - Non retired (RetirementDate is null)
Department 1
Categ 1
Details ....
....
Categ n
Details ....
Department 2
Categ 1
Details ....
....
Categ n
Details ....
Table 2 - Retired (RetirementDate is not null)
Department 1
Categ 1
Details ....
....
Categ n
Details ....
Department 2
Categ 1
Details ....
....
Categ n
Details ....
What I was tried was to set Filter for table 1 Trim(RetiredDate&"")="" and for table 2 Trim(RetiredDate&"")!=""
But that didn't worked. Table 1 wasn't even shown (even if 90% of records have RetiredDate=null), it just show grand total band, and most records were shown in table 2.
Obvious I missunderstand how Filter on table works
I managed to temporary sort of workaround by setting condition above on Hidden prop on details band of each table, and it kinda worked (except it shows me Department Header / categ header for all dept / categs combinations, no matter they have or no details records - which, obvious, is not good).
Can anyone tell how can I accomplish what I needed? I thought Filter on table should work, but obvious it didn't the way I thought of.
I'm using SSRS 2005, and actually the report is used in offline mode, where the dataset is "pushed" in report before opening by client app and report is loaded in web-based viewer. That's why I cannot change what data I get.
Thank you
You have the right approach. Try using the IsNothing function. In 2008, you can apply a filter to a table. I think there is similar functionality in 2005. If it is like 2008, where you can set multiple formulas (versus the one formula in visibility) then I usually set both formulas to return a string and compare those. So the first formula would be
=IIF(IsNothing(Fields!RetiredDate.value), "Show", "Hide")
Then the second would be ="Show" and I would require that they match.
To debug something like this, you can add the formulas (temporarily) as fields in your table. This will let you see if things are evaluating as you'd expect.
Actually I made it finally by creating a new group, outermost, on IsNothing(RetirementDate), and gathered all data on the same, single table