我有一个SSRS折线图,它绘制了X轴上的平方英尺和Y轴上的价格的供应点。现在我真的不在乎让它变得恰到好处。我正在通过Subdivision / Builder绘制点和分组。
所以例如Subdivision A有构建器Y和Z.我想为Subdivision A builder Y和Subdivision A Builder Z显示不同的颜色和线。
问题是当另一个细分构建器组合的一个点分解该行时,这些行没有连接。
由于黄点位于灰点之间,灰线和下方的点并非全部连通,因此灰线未连接到所有灰点。
如何通过线连接相同颜色的点(相同的细分/构建器)?
答案 0 :(得分:1)
正如我最近发现的那样,这个问题通常是由SSRS未正确处理的数据中的null
值引起的。没有看到你的数据,我无法确定是什么原因,但是null
是我遇到同样行为的罪魁祸首。
解决方案通常涉及为系列上的EmptyPoint
属性的颜色指定值,有时与设置EmptyPointValue
以指定null
处理相结合。我在网上发现了很多关于这个问题的引用,但是我只会发布最好的两个链接,这两个链接都在StackExchange上:
IIf
对每行的颜色表达式进行硬编码,但有时这不是一个选项,特别是如果您要分组的字段具有动态,不可预测的值,作为我的数据集没有。 在那里张贴的图片描绘了相同类型的换行符的清晰示例。名为trubs的用户发布了一个代码示例,该示例演示了如何设置EmptyPoint,以防Iif工作:
=iif(isNothing(Fields!SelectedValue.Value),'No Color',"LightBlue")
EmptyPoint
值& null
是根本原因,简单的硬编码IIf
将无法解决问题。虽然我还没有按照我喜欢的方式使我的线条颜色与点标记相匹配,但我可以验证这个解决方案至少可以为您提供线条,并允许您为它们指定各种颜色。它非常简单,仅涉及粘贴一些VB代码以获得一些颜色属性。 我在评论部分被要求提供解决方案的详细信息,但不想剽窃,所以我只是直接引用JohnBob的答案:
首先,为了让线路加入,你需要设置 系列的EmptyPoint颜色。
在图表中选择您的系列在属性选项卡中(不是 对话框)向下钻取到EmptyPoint属性并将颜色设置为 是黑色
这会让他们加入 - 耶!但部分线条是颜色 而另一部分是黑色的,对吗?这有点傻,特别是 考虑是否在EmptyPoint上将颜色保留为Automatic 这将是透明的。
那么,我们需要获得系列和EmptyPoint的颜色 同步。使用此处的代码。我在代码中添加了一些代码 报告。
1)。右键单击报表上的空白区域,然后选择“报表” 属性“2)。在代码选项卡中,粘贴以下内容:
Private colorPalette As String() = {"#418CF0", "#FCB441", "#E0400A", "#05642E", "#1A3B69", "#BFBFBF", "#E0400A", "#FCB441", "DarkBlue", "Tomato", "Orange", "CornflowerBlue", "Gold", "Red", "Green", "LightBlue", "Lime", "Maroon", "LightSteelBlue", "Tan", "Silver"}
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
然后我们需要在设置系列的颜色时调用此代码 以及EmptyPoint。
Select your series In the properties tab paste something the following (replace WhateverTheGroupIsForYourSeries with your series group name):
=Code.GetColor(Fields!*WhateverTheGroupIsForYourSeries*.Value)
深入查看EmptyPoint Series属性的color元素 粘贴与第2点相同的文本[例如=Code.GetColor(Fields!*WhateverTheGroupIsForYourSeries*.Value)]
瞧!你完成了!我无法相信有多么困难 这是:D
我希望这会有所帮助。
答案 1 :(得分:0)
只需将您的字段!(YourSeriesGroup).Series组中的值放在的上方 字段(YourCategoryGroup)。类别组中的值,您的系列组应同时在系列组和类别组中(应在初始类别组的上方)。
然后右键单击水平轴,然后选择“水平轴属性”。将“轴类型”设置为“标量”,然后单击“确定”。