给出一组输入样本:
=IIF(ReportItems!Onhand_PCT.Value < 1 , "Yellow",
IIF(ReportItems!Onhand_PCT.Value = "Over" , "Red",
"Blue"))
我尝试使用诸如
之类的表达式有条件地设置背景颜色的格式ReportItems!Onhand_PCT.Value
然而,无论我如何尝试解决这个问题,它都只适用于字符串或数字,有时既不适用,也不适用于两者。奇怪的是,我可以(通过在IIF
上使用转换函数使其显式为字符串或数字)使其适用于某些行,而其他行则为白色背景(在{{ 1}}是“白色”?)。
答案 0 :(得分:2)
尝试:
=IIF(
IsNumeric(ReportItems!Onhand_PCT.Value),
IIF(ReportItems!Onhand_PCT.Value < 1,"Yellow",Nothing),
IIF(ReportItems!Onhand_PCT.Value = "Over" , "Red","Blue")
)
UPDATE:当值为导致错误的字符串时,似乎IsNumeric未评估为false。
转到Report
菜单/ Report Properties
/并在Code
标签下粘贴此自定义VB功能。
Public Function GetColor(ByVal value as String) As String
Dim color As String
Dim numberValue As Double
if IsNumeric(value) Then
numberValue = Cdbl(Val(value))
color = iif(numberValue < 1, "Yellow", "Transparent")
else
color = iif(value = "Over","Red","Blue")
End if
return color
End Function
现在在background color属性中,您可以调用此自定义函数,将Onhand_PCT
值的值作为函数的参数传递。
=Code.GetColor(ReportItems!Onhand_PCT.Value)
注意
Onhand_PCT >= 1
将是透明的,您可以自定义它 通过更改自定义函数中的"Transparent"
。
如果有帮助,请告诉我。