Conditional formatting doesn’t work if report is processed by SSRS 2008 (SP1 or SP2) in backward compatibility mode.

Pretty long  title, isn’t it? But the story is short.

I was authoring an OpsMgr report containing custom control designed for SSRS 2005 (EnterpriseManagementChartControl – shipped by Microsoft with OpsMgr and is used by MS Generic report library) and some conditionally formatted table cells (background color, text color and font weight). Guess what I’ve got when I deployed it to SSRS 2008? It wasn’t working. Literally that. It was not. Instead of calculating properties for each particular row, SSRS was calculating that for the first row only and reusing calculated values for all subsequent rows. So, all rows were formatted in the same manner! Is there a workaround? No, except these ones (I don’t  like them all):
  • Disable conditional formatting, let user read all numbers and text boxes (really, they wanted to get the information, they have it :));
  • Get rid of custom controls that force SSRS to process report in backward compatibility mode;
  • Find another layout that will not require conditional formatting to present information in clear manner;
  • Replace custom controls with ones that can be used in native mode (you may need to support two versions of your reports).
Make your choice.
BTW, this is the second bug I have found for SSRS 2008 compatibility mode. First one is here.

Leave a Comment