Do you ever come across a requirement where you need to use user defined colors instead of default colors in a chart (for example Pie Chart).
In this article, I'll explain how to create a Custom Palette and how to use that palette in a Pie Chart.
In the above screen-shot, I am using color Blue, Red, Teal and Gold for the first four values of the Period column and same colors are used in Pie Chart as well.
Here are the steps to achieve this task:
STEP1:
Create your custome color palette in the report using Custom Code in your report. To do so, click Report => Report Properties => Code and copy below code:
Private colorPalette As String() = { "Blue", "Red", "Teal", "Gold", "Green","#A59D93", "#B8341B", "#352F26", "#F1E7D6", "#E16C56", "#CFBA9B"}
Private count As Integer = 0
Private mapping As New System.Collections.Hashtable()
Public Function GetColor(ByVal groupingValue As String) As String
If mapping.ContainsKey(groupingValue) Then
Return mapping(groupingValue)
End If
Dim c As String = colorPalette(count Mod colorPalette.Length)
count = count + 1
mapping.Add(groupingValue, c)
Return c
End Function
You can define your own colors in the above function.
STEP2:
In the Pie Chart, select Series Properties and select the Fill option from left side as shown below:
Now write following expression in the Color expression:
=code.GetColor(Fields!Year.Value)
Here Fields!Year.Value is a field of dataset which is used as Chart Category fields.
STEP3:
In the left most column of the tabular report, insert character █ and in the color property of the textbox write following expression:
=code.GetColor(Fields!Year.Value)
Here I am considing that tabular report is grouped on Fields!Year.Value field.
Thats it. Click on the preview and enjoy your custom colors in charting.
Cheers!!!
In this article, I'll explain how to create a Custom Palette and how to use that palette in a Pie Chart.
In the above screen-shot, I am using color Blue, Red, Teal and Gold for the first four values of the Period column and same colors are used in Pie Chart as well.
Here are the steps to achieve this task:
STEP1:
Create your custome color palette in the report using Custom Code in your report. To do so, click Report => Report Properties => Code and copy below code:
Private colorPalette As String() = { "Blue", "Red", "Teal", "Gold", "Green","#A59D93", "#B8341B", "#352F26", "#F1E7D6", "#E16C56", "#CFBA9B"}
Private count As Integer = 0
Private mapping As New System.Collections.Hashtable()
Public Function GetColor(ByVal groupingValue As String) As String
If mapping.ContainsKey(groupingValue) Then
Return mapping(groupingValue)
End If
Dim c As String = colorPalette(count Mod colorPalette.Length)
count = count + 1
mapping.Add(groupingValue, c)
Return c
End Function
You can define your own colors in the above function.
STEP2:
In the Pie Chart, select Series Properties and select the Fill option from left side as shown below:
Now write following expression in the Color expression:
=code.GetColor(Fields!Year.Value)
Here Fields!Year.Value is a field of dataset which is used as Chart Category fields.
STEP3:
In the left most column of the tabular report, insert character █ and in the color property of the textbox write following expression:
=code.GetColor(Fields!Year.Value)
Here I am considing that tabular report is grouped on Fields!Year.Value field.
Thats it. Click on the preview and enjoy your custom colors in charting.
Cheers!!!
Thank you so much for the helpful post, I really enjoy being able to snaz up my reports and it really makes it easier to distinguish the data on it. I was also able to draw help form this video on creating custom reports, this is just in case other like the visual help like I do.
ReplyDelete