I've managed to create a report template and use it inside another report, as a method of replicating a "template"...
The filled template is like this:
As you can see, this is not a wide template, and i can fit 3 of it on a regular page... my problem here is that the best i could achieve so far is vertical replication!!!
What i'm looking for here is a way to say "fill all the 'columns', then, move to the following line"
Anyone ever managed to do this?
Details:
Using SSRS 2008 R2
Using BI tools for VS 2013
There are a few ideas that spring to mind.
Add three columns to the report via the Report.Columns property and have the detail fill top to bottom then left to right. (This may not be ideal as you stated you want a left to right, to bottom flow).
Duplicate any number of mailing labels samples on the internet substituting your sub-report as the detail.
Create 3 Table's with three detail data sources and have the data source return the id's for your sub report ordered in a Take(1) Skip(2) left to right, up to down fashion, basically three partitions of data ordered by some value.
Create a Table with three columns and place a sub report in each column. Have the data return in a A-B-C | D-E-F | G-H-J fashion.
Create a Table with one column and place a column group on a value that will return 1-3 for your detail records, pushing your columns out to desired column width.
Related
I have a report with one input parameter, and based on that input, the report will have 1-3 different categories present. My issue is the report layout consists of the following elements: A header, 3 tables, and a bar chart.
What I am trying to accomplish is to repeat the above layout with ONLY categories available to the input parameter without leaving unnecessary whitespace. I've tried to achieve this by copying and pasting the layout three times and hiding the elements if the category does not exist. This works partially as I'm left with blank pages.
Instead of filling the report with a bunch of tables, try adding rows to the 1st table, adding a rectangle in that row, and adding a sub-report in the rectangle. Set the visibility of the rectangle instead of your 2 tables. This will ensure that there are no unnecessary white spaces.
Adding more than 1 table to a report has almost always ruined the layout of my reports. I've always added sub-reports instead. Even if you don't want to add a rectangle, just add a sub-report in a new row of your ONE table and that makes it a lot easier to deal with.
So, I have a report in SSRS that contains 5 tables nested in each other all with 2 columns. We have working expressions for every table in "show and hide based on an expression" on textbox visibility, but instead of hiding the chosen tables it shows a lot of white space in the supposedly occupied area. We have been trying to reduce the white space but with minimal success. We hide the tables based on parameter values, example below:
Parameters!prmName.Value=false
=IIF(Parameters!prmName.Value= true, IIF(Parameters!prmText.Value=true, False, True), True)
The second one is for the second column which one also can hide if that parameter is chosen to be hidden.
The expressions look almost the same except some parameter names and so on.
There is 1 parameter for every table aka 5 which we use when hiding each of them.
We have tried using this in row visibility IIF(Trim(ReportItems!Name.Value) = "", true, false), but as we said it did not work.
We have also tried visibility on the tables' groups unsuccessfully.
--------------EDIT---------------
So each table is representing a kind of level. Like the first, and most outer table is a letter and the second outer table is an undergroup of the first table and so on:
A
01
011
0111
01110
01111
012
0121
01210
B
05
051
0511
05110
And so on...
In all tables, there is a text explaining the row and a subreport which contains some further information. The most inner table contains 2 subreports.
How the levels should look without the extra information
And this is how it looks when we try to hide the extra information
The blank space only increases when hiding chosen tables.
This is how the main report looks at the moment
The Expressions contain simple text explaining the level. The [ExprX] contains more detailed info about the level and then the subreport contains even further details.
This nesting became necessary because we only wanted to show levels once. Before that, it was repeating.
Hope this makes it clearer
Found a solution for our problem. Instead of trying to remove the white space we decided to never load the tabels data through several case with expressions in the query builder. Also noticed that such a 'difficult' query (with cases and stuff) had to be made in the "edit as text" inside the query builder.
Example below:
SELECT
CASE WHEN #prmLevel1 = 'true' THEN Table.ColumnName
ELSE NULL
END AS ColumnName
FROM Table
But with lots of more cases after each other.
Hope this can be of help to someone!
Have a great day!
I have a purchase order form in SSRS. It's grouped on the Purchase Order number. There are four rows in the group footer for totals.
Is there a way to keep all rows in the footer together? That is, if all of them won't fit on the page, that all of them will be printed on the next page.
You have two ways of attempting to accomplish this. Using the KeepTogether property for the selected rows or the entire group
Or when SSRS inevitably doesn't do what you want it to do, you can do the ole Rectangle and Textbox trick. Insert a row above the subtotal that is also a group footer. Then insert a rectangle. Once you do this, you can insert a bunch of text boxes and move them freely around and structure them in the same way you had them formatted the 4 separate rows. It would look something like the below. With this way SSRS couldn't split the row onto multiple pages because its all in the same row. For insurance purposes check the KeepTogether box for this row as well.
Why is it that a control that appears in the property list in a BIDS project is not represented in the corresponding .rdl file?
Let me step back a bit; I'm having a heck of a time trying to figure out how to add items to an existing report, either via the XML (.rdl viewed as code) or on the design surface. I can click on a rectangle on the design surface and see a column row above it:
And if I click on the "pipe"-separated segements on that column heading row, I see "MatrixColumn4", "MatrixColumn3", "MatrixColumn2", and "MatrixColumn1" in the designer; for example, here's MatrixColumn3:
However, only one of these columns appears at a time in the Property list - if I select MatrixColumn3 on the design surface, MatrixColumn1, MatrixColumn2, and MatrixColumn4 are not there. The same holds true for selecting any of the others - it turns up temporarily in the Properties list but "hides" all the others:
Stranger yet, when I search the .rdl file (viewed as XML) for "MatrixColumn1" (or "2" or "3" or "4") they do not exist there. In fact, the only reference to "MatrixColumn" in the entire file is this:
<Matrix Name="matrix1">
<MatrixColumns>
<MatrixColumn>
<Width>1.67609in</Width>
</MatrixColumn>
</MatrixColumns>
. . .
This seems exceedingly bizarre - shouldn't there be four sets of <MatrixColumn></MatrixColumn> there?
I want to add another column heading, with a Textbox-as-label and a Textbox below that to display dynamic content, but how can I do it without adding another column heading?, or at least making room for this new column?
I can increase the width of the matrix ("matrix1") by dragging it or by increasing its Size.Width value, but its existing contents expand with it, giving me no room to add TextBoxes inside of it.
Maybe I'm approaching SSRS from a completely wrong mental angle, as I don't see much of a connection between what the report generates and what I see on the design surface and in the XML.
To add another column to a matrix right click the column header and Select Insert column. Then choose either inside group (left or right), or outside group (left or right).
A column created inside the group will repeat for every item in the column group
A column created outside the group will only appear the once to the left or right of the grouped columns.
Are you sure you are referring to a matrix (dynamic columns and rows) and not a tablix (dynamic number of rows only)?
The process for tablixes is the same as for matrixes as described above, just without the inside/outside group option.
Either method described above will include a new column with a single text box to label the column with, and another text box underneath to put the detail in.
You can also do this process by dragging a field from your dataset in the Report Data panel to the appropriate location in your existing table.
Please let me know if this helps, or if I've misunderstood your question and you require a different solution.
Is it possible to display dynamic number of tablix(es) in a report?
That is, if we do not know the number of tables/tablixes to be displayed in advance.
The requirement is that all the output tables will have exact same structure (row and column lables, groupings, etc.).
If you are using data from a single data source, you could achieve this result by using a single tablix, having the highest grouping on the item(s) you want to use to break up the tablix and including a page break as part of that grouping.
For now, I found a way to solve it. Created a static row within the top group and set set its RepeatOnNewPaAge=true. Remove the borders, so that it looks like a separate text above the table.
This way, it prints the latest group info at the top (because it is part of the group) and also gets displayed on every page, because it is statc. Cool huh? :-)