是否可以使用SQL Server Reporting Services报告中的HSL值设置文本框字体颜色?是否可以使用将HSL值转换为SSRS支持的HTML颜色代码的表达式? For example hsl(77, 19%, 76%) equals #c7cdb6
答案 0 :(得分:1)
转到“报告属性”>编码并添加以下自定义代码:
Public Function hsl2htmlColor(ByVal h as Double, ByVal s as Double, ByVal l as Double) as string
dim r as Double
dim g as Double
dim b as Double
If s = 0 Then
r = g = b = l
Else
dim q as Double
If l < 0.5 Then
q = l * (1 + s)
Else
q = l + s - l * s
End If
dim p as Double = 2 * l - q
r = hue2rgb(p, q, h + 1/3)
g = hue2rgb(p, q, h)
b = hue2rgb(p, q, h - 1/3)
End If
return "#" & right("00" & Hex(r * 255) , 2) & right("00" & Hex(g * 255) , 2) & right("00" & Hex(b * 255) , 2)
End Function
Public Function hue2rgb(ByVal p as Double, ByVal q as Double, ByVal t as Double) as Double
If t < 0 Then t += 1
If t > 1 Then t -= 1
If t < 1/6 Then return p + (q - p) * 6 * t
If t < 1/2 Then return q
If t < 2/3 Then return p + (q - p) * (2/3 - t) * 6
return p
End Function
(示例)转到文本框属性并将以下表达式添加到Font&gt;颜色。每个参数的比例从0到1。
=Code.hsl2htmlColor(0.268 , 0.389 , 0.476)
答案 1 :(得分:0)
使用HSL坐标无法在SSRS中指定颜色,但您可以创建自定义函数来获取RGB值并使用SSRS RGB函数来获取颜色。
在this链接中,有一种JavaScript算法可将HSL转换为RGG。我将该代码转换为VB函数,该函数返回包含RGB值的数组[R,G,B]对象,然后只需将HSL值作为args调用该函数。
=RGB(Code.HSL2RGB(h,s,l)[0],Code.HSL2RGB(h,s,l)[1],Code.HSL2RGB(h,s,l)[2])
如果您不知道如何创建自定义功能,请选中this
如果有帮助,请告诉我。
答案 2 :(得分:0)