【问题标题】:SSRS How to generate random color for chart elementsSSRS 如何为图表元素生成随机颜色
【发布时间】:2019-06-26 05:18:53
【问题描述】:

我使用的是 SSRS SQL Server 2017,在网上找不到任何关于如何在图表上实现随机颜色的指示。

我知道曾经在 SSRS 2008R2 上使用自定义代码来实现这一点,因为我们的一些报告曾经有随机颜色的图表。

不幸的是,当我们迁移到 SSRS 2017 时,图表中的颜色代码已被删除,因为它会引发错误。现在用户希望它回来。

我们将不胜感激在寻找解决方案方面的任何帮助。

【问题讨论】:

  • 查看已删除的代码会很有用,这样更容易理解您要实现的目标。
  • 您确定要随机种颜色吗?
  • 艾伦,我希望我可以发布代码并对其进行逆向工程。不幸的是,它被第三方剥夺了,不再和我们在一起(换了工作,没有死)。我们有列数可变的动态条形图,因此需要随机颜色,但是,我明白你的意思; “随机”和“动态”不是一回事。我的意思是动态的。道歉。

标签: reporting-services


【解决方案1】:

好的,为其他希望为图表等动态添加多种颜色的人破解了它。

首先引用 .NET 程序集“System.Drawing”。这使我们能够读取颜色并将其从 RGB 转换为 HTML。

右键单击您的 SSRS 报告。

转到属性>参考。

添加新引用(通过使用 [...] 浏览)

共有三个选项卡,使用 .NET 的一个。在那里你会找到'System.Drawing'。选择它并点击[OK]。

接下来我们添加一些自定义代码(一个函数)。该函数基本上创建了一个随机的 RGB 颜色参考,然后我们将其转换为 SSRS 友好格式:

通过再次右键单击您的 SSRS 报告来执行此操作。

转到属性 > 代码。

添加这个:

Public Shared Function GenerateRandomColor(ByVal seed As Integer) As String 
Dim randNum As New Random(seed) 
Return System.Drawing.ColorTranslator.ToHtml( _ 
System.Drawing.Color.FromArgb( _ 
randNum.Next(0, 255), _ 
randNum.Next(0, 255), _ 
randNum.Next(0, 255))) 
End Function

完成后点击 [OK]。

接下来我们需要调用函数来填充图表。 右键单击图表并选择“系列属性”

转到“填充”并点击 [fx] 按钮以添加表达式。

粘贴以下代码:

=Code.GenerateRandomColor(RunningValue(Fields!Description.Value,Count,Nothing))

你已经完成了!无论您的数据生成多少列,您的图表现在都将看起来像一条名副其实的彩虹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 1970-01-01
    • 2010-12-07
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多