I have a SSRS report which displays hundred of rows. I was wondering if there is anyway i can highlight the rows so that i can easily know on which row i am while accessing the report.
Any thoughts?
It cannot be done in SSRS 2005. You cannot make any dynamic actions after report is generated.
According to this thread on how to highlight rows (background) with different color for mouse over property, it seems like this is not a feature that is supported by the software. Which means that you would need to create or find a custom report item to fit your needs.
However, another approach would be to alternate background colors in Reporting Services:
Go to the row Fill Property and choose Expression
Add in something like =IIF(RowNumber(Nothing) Mod 2, "Silver", "White")
Related
Just want to know if this is even possible, before I drive myself insane in google-searches.
I know how to drillthrough to another rapport when the user clicks on a cell. But what if the cell has multiple values, e.g. Server-names (comma-seperated), and I only want to pass the servername that the user clicked?
As I see you can only pass the values of the whole cell or what?
Using reporting services 2012 R2 with report builder 3.0.
Thanks
I don't think you can do that directly but...
You could create a subreport that accepts the comma separated list of servers as it's parameter.
The subreport would then split these into separate cells and have an action on the cell that then take you to the drill through report. I done something similar in the past and it's work quite nicely. You just need to make the subreport nice and small so it'll fit in you existing cell.
It you wanted to keep them on a single line then subreport would have to be a matrix with a column group grouped by servername. It won't be as compact as a comma separated list as the columns will all have to be wide enough to fit the longest name but it works.
If you need any more help I'll provide more more detailed solution but this hopefully will get you going.
Is it possible to have SSRS look at the value of a text box after calculating it, and then apply an expression to determine the color of the text?
More specifically, I have a lot of different text boxes that contain custom formulas to calculate percentages. Normally, I would create an IIF statement in the text color expression builder like this:
IIF([complex formula]<0,"RED","GREEN").
This works fine, but when you have a ton of these textboxes, each with different formulas, it would be much more efficient to just copy one standard color expression into them like this:
IIF(This.Value>0,"RED","GREEN")
Are expressions like this possible in SSRS?
The answer is yes, if you are using a very recent version of SSRS:
=IIF(Me.Value < 0,"Red","Green")
Link to original article here
Hope that helps.
It's not as clean, but if you need to refer to a different already calculated cell (or self reference for that matter) you can use
=IIF(ReportItems!CellName.Value < 0,"Red","Green")
EDIT: This is actually listed in the link #Randall Mathews posted, which I didn't click until I answered.
I have a semi-dynamically created window ( and use PowerBuilder 10.5 ). Now there are a couple of columns which can have different colours and I want to see those colours when selecting a row. However I don't know how to deselect these columns and have the first couple of columns remain selected.
The highlight function in our application just does a dw.selectrow( x, true ).
Regards,
Marinus
I don't think you'll get what you want using selectrow. If you don't need multiple selections you could change the background of the current row with an expression in the datawindow. If you want some columns to stay normal you could do that with a rectangle behind the ones you want to highlight instead of changing the row color. If you need multiple rows highlighted you will have to simulate multi-select by adding a dummy column and using that to control the background, and of course you need to handle the selecting and deselecting in the clicked event. If you've got code that deals with selected rows you'll have to change them to use the new scheme, for example by checking the value in your dummy column.
If you want to use SelectRow(), maybe use of SetRowFocusIndicator() would help. IIRC (it's been pretty close to decade*s* since I've used it), it disables the row colouring in favour of the new method.
The other way that comes to mind is setting an expression for background colour that uses GetRow() and CurrentRow(). This wouldn't be my first choice, as it doesn't let users with vision impairment choose their colours through standard Windows colour selection to something they can deal with, but if you're dead set on colour indications on selective columns, this would be the way to go.
Good luck,
Terry.
I want to build a report that is completely static in size and shape. I'm attempting to mimic a hand-entered report that someone in my organization has been building from a word doc for years.
The critical piece appears to be fixing the number of rows that are produced in the various Table grids that fill the page. I would like them to always contain a set number of rows, whether data is present or not. It would seem that if I can just fix the size my tables, then all the other elements will not be forced to move because of stretching repeater sections.
All my grids are backed by stored procedures, so I'm open to SQL tricks as well.
Sorry i did miss-read the question.
If you know how many rows you need to return (say 20) maybe you could pad some bogus info into your records returned from the stored procedure. You might be able to count the records your query has returned before you send them back, and if you have less than 20 add some bogus ones to the record set, put something like 'NonDisp' or something in them.
Then in the report put an iif statement into the cells that checks for this bogus info, if it is found change the cell to display nothing, otherwise show the valid values
Not a direct answer, but perhaps a workaround you might consider: perhaps you can insert a page break after the table grids that have dynamic sizes, so that all elements that follow it have a fixed position (relative to the top of the page).
Add a parent group to tablix with =Ceiling((RowNumber(Nothing)) / 10000) expression. (10000 or whatever is required no. of rows)
In page break properties of group, check box for insert break between groups, leave the bottom boxes un-checked.
Optionally, we may chose to set hidden property true for text boxes added because of new parent group.
In tablix properties, check box for "Keep together on one page".
Based on several report parameters in SQL Server 2005 reporting services, I would like to automatically generate one or several chart(s) for each row in the return result and paginate or space them out. How do I go about that?
If the number of charts will vary for each row, but the variations are known (e.g. it's either just chart 1, or chart 1 and 3, or charts 1 2 and 3) then it's simple enough using a table.
In the default detail row add any normal fields you need. Now insert a new detail row for each chart you might need. Lastly set the visibility of each chart row based on your rules, noting that the rule will hide the row if your expression evaluates to true. Make sure you select the row using the area to the left of the left-most cell, if you got it right you'll see that it's a row in the properties grid.
To get the layout you want you can merge cells for the charts to go in, or use a single cell and put a Rectangle in it, then in the Rectangle lay out your other controls.
Any rows that are hidden will be collapsed, so you wont get big empty sections like you can if you simply toggle the visibility of the charts themselves.
What you can do is place a List control on the page, set List grouping by record unique key (ID, or several fields if composite), and place a charts on the List. Next, set items visibility expressions to control it with report parameters.