I have a Report with a subreport. The subreport has several conditional formatting fields with several conditional formattings for each field.
On page one the formatting is fine. But on Page two it lost some of the formatting conditions.
The dark red fields are normally unvisible. They are containing the Rownumber. This field is used for formatting the month cols if they are without value.
It seems that this condition would not work on page 2!
( Condition example for odd-rows: [amount_month_2]=0 AND ([RowNum] Mod 2)<>0 )
Any suggestion?
For more detail I set borders to some fields, so you will see that the fields are hiding the background of the row.
Related
I have multiple Tablix with multiple datasets.I have created a tabbed report with textboxes(like A,B,C) placed in Header row linking them to different Tablix(1,2,3) through bookmarks. I have used IIF condition for background color of Textbox A based on two column values in Tablix 1. But the textbox is highlighted only when first row of the Tablix is falls into the expression criteria and considering the remaining rows data.
=IIf(First(Fields!BP_Value.Value, "dtsConfiguration") <>First(Fields!AP_Value.Value, "dtsConfiguration"), "Red", "#b5adad")
I would like to highlight a text box when Fields!BP_Value.Value is not equal to Fields!AP_Value.Value
So which expression should I use in order to consider all the rows on Tablix instead of first row. Please suggest. Thanks
You could remove the FIRST from the statement:
=IIF(Fields!BP_Value.Value <>Fields!AP_Value.Value, "Red", "#b5adad")
Have you tried Report Item instead of referencing the fields directly?
You will have your BP_Value and AP_Value in different boxes.. these text boxes either have names or called textbox1.. textbox 2 etc..
For clarity, I will call then bp_textbox and ap_textbox
What you can do is to set the background color expression to this instead:
=iif (Reportitems!bp_textbox.value <> Reportitems!ap_textbox.value, "Red", "#b5adad")
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.
I have a basic Tablix in my report that currently renders as follows:
These are steps in a manufacturing process with the clock number of the person who performed them with date performed in the last two columns. However, sometimes steps are combined and performed together. In the example above, steps 10-20 are performed together, and 30-40 are performed together. So I would really like the report to be rendered like this:
I do have a column in my data called "StepRange" which in the above example would be "10-20" for the first two rows and "30-40" for the third and fourth rows. So when the value of StepRange is alike, I know those rows are performed together and henceforth the last two columns should be combined. My example shows only two rows being combined at a time, but it could be any number.
How can I make my report look like the second example above instead of the first?
Single Tablix Method
Rather than literal conditional merging, you can set the border style of a textbox using an expression to achieve a similar effect. There are a few steps, but none of them are particularly involved.
Create a parent group for StepRange. Do not add a header or footer, and delete the added column without removing the group.
Make sure that your properties panel is visible on the right of your screen. If not, check the "Properties" checkbox under the View ribbon.
Click on your first detail TextBox and expand the "BorderStyle" property. Set the "Top" property to the following expression:
=IIF(RunningValue(Field!Step.Value,CountDistinct,"StepRange")>1, "None", "Solid")
Set the Bottom property to "None".
Set the expression of the detail TextBox itself.
Replace FIELDNAME with the appropriate field:
=IIF(RunningValue(Field!Step.Value,CountDistinct,"StepRange")>1, "", Field!FIELDNAME.Value)
Repeat this process for each detail TextBox.
You may need to create a dummy row at the bottom with a black top border if you do not have a summation row. (optional)
The expression only evaluates to "Solid" for the first Step value within each StepRange group, so subsequent rows do not have a top border and appear undivided.
Nested Tablix Method
Using a nested Tablix is more straightforward. I have had some issues with them, including some rendering hiccups. But in a report this simple that may not be an issue at all.
Set up your main Tablix to group on StepRange.
Either clear or add a column to the left for the individual steps.
Select "Insert Table" from the toolbar and click on the empty cell.
Set the cells to your step and operation fields and delete the extra column.
The result should look roughly like this:
By default the inner Tablix will be detail grouped. If your detail rows are more granular than the "Step" field, go to the properties of the "(Detail)" group and add a Group Expression for Step.
You can also delete the inner header row if you don't want to see it repeated in the report.
This results in the employee fields actually being merged and spacing properly. If you don't use an aggregate function on those fields, their value will be that of the first row returned internally. Which is moot if their values are uniform across steps.
I have an SSRS report that has a cell which I need to show the value of a Dataset item unless a parameter is selected, in which case I need to display a sub-report in that cell.
I tried setting the sub-report's visibility but then it never displays the expression since it takes over the entire cell. It's like it is either one way or the other.
If you put a subreport in a cell then you can't optionally display something else in that cell.
However from your comment you're trying to display values from two different datasets based on a condition, and you should be able to do this with an expression. Assuming there is some field in the table that can be used to relate to either dataset, then you might be able to use the lookup() function to get the relevant value, e.g. a code outline for this:
Iif(some_condition, lookup(value1 in datasetA), lookup(value1 in datasetB))
I have a situation where i have to display four reports based on checkboxes. So user can select different combination from four reports.
My problem is page breaks. I have tried different options (see below) from which two options (option 1 and 2) does not give page breaks at all whether option 3 gives page breaks for each tablix regardless of you do not want to see that report. Report is giving empty page for each tablix no matter there is no data in that tablix to be displayed.
With option 3 if i select all reports to show then everything is perfect.
I have tried these options
Option 1 (page break does not work)
Main Tablix -> each row : all subreports within rectangle within each row of tablix
option 2 (page break does not work)
Main Tablix -> each row -> Another tablix with group by ID within each row of tablix and then subreport inside each tablix. And I applied page break end on each tablix.
option 3 (page break works but gives empty page for non selected reports)
A List group by ID -> within a single row of this list I have places four tablix group by ID for each subreport.
Option 3 works but gives empty page break for those reports which are not selected. For example from Four reports if you select last two reports to display then you will get two empty pages in the beginning of report and third report on third and fourth report on fourth page which is correct. I have tried hiding tablix using table hidden and group properties hidden but still getting page breaks.
Any help will be much appreciated.
I have resolved this issue. For those who are struggling with same kind of situation, here is my work around.
I placed one list box and then four tables in a row and i placed subreports within these tables. i didn't apply any page break here. I am only showing and hiding tables based on report selection here.
Trick is within subreports.
As there were lots of tables and groupings in each report so i placed one table at the end of the each subreport.
This table should only have one cell. I removed header and 2 extra columns which were not required. Select dataset for this table. I did not want to pass dummy empty dataset so I selected my dataset but I created grouping on a parameter which I was passing from parent report and it has value 1. So now this table will only display 1 empty row. Reduce the height of the table. Plus I removed the border of textbox inside the cell. I checked 'Page break at end' option. In the Hidden expression I used following code which checks if there is any report which is visible after this (current) report. If yes then do not hide this table mean you want page break otherwise hide it mean no page break.
=iif(Parameters!AddReport_2.Value,false
,iif(Parameters!AddReport_3.Value,false
,iif(Parameters!AddReport_4.Value,false
,true)))
This solution works for me.
I would love to hear for a better solution.