Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join SSRS折线图未连接数据点_Join_Reporting Services_Graph_Charts_Line - Fatal编程技术网

Join SSRS折线图未连接数据点

Join SSRS折线图未连接数据点,join,reporting-services,graph,charts,line,Join,Reporting Services,Graph,Charts,Line,我到处寻找,似乎找不到一个答案,似乎是一个相当简单的问题(我想) 我有一个折线图,其中在一个系列的几个点上有数据,但只有一组点连接起来 有人知道这是为什么吗?这和我的数据有关吗?如果是的话,我很难在数据中找到任何可以解释这种行为的关系 我的意思是: 正如你所看到的,红色钻石应该是相互连接的——蓝色正方形和深蓝色三角形也是如此。有什么想法吗 如果我的颜色不对,我会道歉-我是色盲。好的,所以我解决了这个问题 首先,为了让行连接起来,需要为序列设置EmptyPoint颜色 在图表中选择您的系列 在“

我到处寻找,似乎找不到一个答案,似乎是一个相当简单的问题(我想)

我有一个折线图,其中在一个系列的几个点上有数据,但只有一组点连接起来

有人知道这是为什么吗?这和我的数据有关吗?如果是的话,我很难在数据中找到任何可以解释这种行为的关系

我的意思是:

正如你所看到的,红色钻石应该是相互连接的——蓝色正方形和深蓝色三角形也是如此。有什么想法吗


如果我的颜色不对,我会道歉-我是色盲。

好的,所以我解决了这个问题

首先,为了让行连接起来,需要为序列设置
EmptyPoint
颜色

  • 在图表中选择您的系列
  • 在“属性”选项卡(而不是对话框)中,向下钻取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
    的颜色时调用此代码

  • 选择您的系列
  • 在“属性”选项卡中,粘贴以下内容(用序列组名称替换WhateVertheGroups for YourSeries):
    =code.GetColor(字段!*WhateVertheGroups for YourSeries*.Value)
  • 向下钻取到
    EmptyPoint
    Series属性的颜色元素
  • 粘贴与第二点相同的文本[例如,
    =code.GetColor(字段!*WhateVertheGroups for YourSeries*.Value)
    ]
  • 瞧!你完了!
    我不敢相信这是多么不必要的困难:我只是有一个问题,它显示的是标记,而不是线条。我最终解决了这个问题,将表达式包装在一个CInt()中,将其转换为整数。

    另一种处理方法是执行递归选择(如果有非常大的数据集,则不执行此操作,会降低性能)。因此,您可以制作数据集:

    SELECT *, ROW_NUMBER() over(partition by Store order by Date desc) as rn
    FROM StorePerformance
    
    现在您可以将您的类别组设置为rn(它应该按rn分组并按rn排序),但要为其标签选择日期。这仍将在x轴上显示日期,但由于您是按rn分组的,因此数据仍将是连续的,所有行都将连接起来。同样,你的传奇仍然会匹配

    我还没有深入研究数据点的移动程度,因为我们是用行号和显示日期绘制的,但是如果您主要关注线条中的可视化趋势,而不是关注它们在给定时间点相对于彼此的位置,那么这将很好地为您服务。否则,我会让图表保持原样,只读取仍然有效的绘图点。

    只要把你的领域!(YourSeriesGroup)。系列组中的值大于 领域!(YourCategoryGroup)。值在类别组中,系列组应同时位于系列组和类别组中(应位于初始类别组的上方)

    然后在“水平轴”上单击鼠标右键,然后选择“水平轴属性”。将“轴类型”设置为“标量”,然后单击“确定”


    在我尝试第2步和第4步之前,一切都很顺利。问题在于访问GetColor函数。似乎定义GetColor函数的报表属性中编写的代码在color元素中不可访问。你知道怎么解决这个问题吗。我使用的是RDLC,而不是reporting services上的RDL。找出了我的错误!我提供的系列名称有输入错误。你的解决方案奏效了。谢谢我现在看到的唯一问题是图例的颜色弄乱了。同一颜色的外观不止一个。我用CountRows()表示我的Y值,这给了我空点的错觉,但实际点的值为零。为了解决这个问题,我将Y值改为=IIF(CountRows()>0,CountRows(),Nothing)。您的答案非常有用,为我指明了正确的方向。然而,我决定用我的数据交付线条颜色,并将字段应用于线条颜色以及空点颜色,因此我有完全的控制权,可以避免代码方法,让我的图例与线条颜色对齐。你能用一个代码示例进一步解释这一点吗?我有兴趣尝试这个解决方案。这个解决方案对我非常有效。选择图表值字段,单击箭头并选择表达式,然后使用CINT([您的表达式])包装其中的内容。谢谢你,史蒂夫卡夫