Color specific cells in a Tablix Textbox RDLC Report based on Condition - Vb.net - RDLC

Ashish Emmanuel picture Ashish Emmanuel · Oct 14, 2012 · Viewed 8k times · Source

I have made a RDLC report which generates its tablix from the dataset I provided. I need the content of cell(each Textbox in Tablix) to change its backColor based on its content.

Eg:

Name | Val  
Joe  | 80  
Lee  | 60  
Fred | 30  
Bill | 57  

I have a condition that less than 60 should change its backcolor to red. (so, 30 and 57 will be getting its backcolor as red).

Note: Since it loads from dataset, you cannot set it directly. Is there any way if we pass conditions as parameters to rdlc and work on its own??

Answer

Preet Sangha picture Preet Sangha · Oct 14, 2012

Use an expression in the background property. You can get the current value of some field that you've read in using: Fields.Name_Of_Field.Value, it will automatically move to the correct one on each row.

if you have single test you can use this

=IIF(Fields.Val.Value < 60, "Red", "Blue")

if you have multiple test you can use this

=SWITCH(
 Fields.Val.Value < 60, "Red",
 Fields.Val.Value < 80 && Fields.Val.Value >= 60, "Blue",
         .
         . add other tests here
         .
 "Black") ' default is black in case all the tests fail

One of the great things about RDL is the number places you can use expressions. Try this for a starter