How to hide a duplicate row in SSRS - reporting-services

I am new to using SSRS. I have looked around Stack Overflow for answers to this question but haven't found it.
I am producing a simple report but wish it to be filtered to not display the result if it is a duplicate set of results.
Basic report
A lot of forum posts mentioned using code similar to the following to be set in the visibility of the Table Properties.
=IIf(Previous(Fields!Country.Value) = Fields!Country.Value, True, False)
However this didn't work. I then tried going to the properties box of the country to hide duplicates and this kind of worked. It removed duplicates if they were only in the next row and unfortunately it just made the cell blank.
Attempt at hiding the duplicate rows
What I wanted is to just display the list of unique values where the reference and the country are never repeated. This way I will get a list of countries for my reference.
Many thanks in advance to anyone who is able to help a new learner like myself.
I am adding in the edit suggested by Alejandro below,
It sort of works, the suggestion did remove the blank rows (which became blank when I applied the HideDuplicates from the properties of the country. The trouble is the report is only hiding duplicates if they come from the previous line. I tried grouping etc but it did not work.

Try selecting and setting the hidden property to the whole row.
UPDATE:
Using the expression works only if the Country column is sorted, so repeated countries will be in contiguous rows.
Go to tablix property and add a sort by Country property. Don't use HideDuplicates property but use =IIf(Fields!Country.Value = Previous(Fields!Country.Value), True, False) expression in the whole row.
It should work.
Let me know if you need further help.

It sounds like you just need to group the dataset, no?
If you open the row group properties, set it to group on Reference and Country.
Here are two tables... the first has no grouping and so there are repeats. The second is grouping by Reference and Country.

Related

SSRS - Child group position / subreport?

I've got a report with parent and child groups as you can see below, which work fine.
Results look like this and as you can see column from Initiative Name to Reasons for Overall status are the same, therefore I would like to group these as well, but I can't figure it out. When I add a new child group (Milestone Name), it adds column right after the Initiative name column, which I don't want to.
The ideal results should look like this:
Could you advise me how can I achieve that, please? I've also tried to use subreport, but I wasn't able to make it work either.
Many thanks!
You should be able to add the columns to the grouping in your outer group (MissionCritical).
Once this is done you will probably (this is from memory) need to insert a row under the top row (Right-click, insert row, inside-group, below).
This will give you two rows for the outer group.
Then copy / paste the contents of each column affected (the light blue ones I guess) and paste them into the new row. You can then remove them from the details row.
This should give you what you want. If not, let me know and I'll setup a sample to demonstrate.

Combining Cells in Locally Rendered Microsoft Report

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.

Access UI chart text legend sorted as number

I have searched for a solution but I can't find one suitable on this problem.
I have a chart in access where the Y-axis is text but starts with a number, so up along the y-axis i get this:
I know why, but I don't know how to fix it.
They all have an ID which is fine. I can chose to put the ID on the Y-axis, but then the kW range can't be visualized.
How is this changed?
Changing the text to number is not possible as it needs to be like "a-b kW".
Thanks in advance.
For those who might get this problem, I found out why.
When selecting the data, it chose to use the "Total" function, and "Avg" because that is what the values are. (The picture below says "Group By" but it was automaticly set to "Avg". I just forgot to change it when i snipped for stack.
That results in:
But if i remove the "Total" function i get this:
So, removing the "Total" function works here...
In your query, can you sort by ID, but not display it (e.g., in the query designer, sort 'descending/ascending' on the ID field, but clear the 'display' check box)?
As an aside, I've always had a tough time with Access charts... on my last project, the customer wanted a rather complex bar chart, and I ended-up drawing and resizing rectangle objects to get the look that the customer wanted.

Multiple tables/tablix depending on query

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? :-)

How to get group headers to span a Tablix column

I am using Microsoft Reporting Services (rdlc, that comes with Visual Studio 2010)
Suppose I want to create a report that has a Group Header, detail rows, and a group footer.
(I'm using Tablix, but if there is a different way, I'm open to it).
Now, there are several columns, but I want for the group header to span the columns. Is that possible?
Another question:
Suppose I want to conditionally span columns in my detail row, is that possible? (and how?)
Say you have teams/reps and you want to send them their leads/appointments to work on for the day.
A lot of tutorials for grouping in a RDLC Tablix look like this:
But you want it to look like this:
Step by step, here’s how I’ve figured out
Add your table (Tablix) and ensure the DataSetName property is set
Highlight the details row and right click. Add a parent group to the row
Set the group by to e.g. TeamDescription, and check Add group header
The Row Groups panel should look like this. The indent for the Details is needed.
OK, at this point you’ve got what you don’t really want. ANDY and BELINDA are going to appear in a column to the left of your info.
But that’s fixable. In the spare cell above e.g. ApptStart enter e.g. [TeamDescription] and right click on it and choose to merge the cell across the other three columns. Set its alignment to center. Maybe bold too.
Then delete the first column as that’s now redundant.
Here’s how it should look by now:
You can get a field to span columns by selecting a few of the header fields and selecting the "Merge Cells" option.
As for conditionally spanning, you can't do that directly but I can think of a workaround. It really depends on the data you have so for a better answer you need to provide more information.
You could have two detail rows and conditionally hide one or the other. In one row the cells could be merged and not in the other. The only thing you couldn't necessarily control with this technique is the order of the rows, but it might work.