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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.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
Reporting services SSRS折线图空值-水平线_Reporting Services_Ssrs 2012 - Fatal编程技术网

Reporting services SSRS折线图空值-水平线

Reporting services SSRS折线图空值-水平线,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,我希望有人能帮助我。我已经创建了一份SSRS(2012)报告,绘制了一段时间内的多个系列。图表如上图所示。通过使空点值与线本身的颜色和大小相同,许多未连接的点很容易“连接”。我已经用MC113演示了这一点。这一切都很好,我在网上找到了很多有用的信息来帮助我解决这个问题。我遇到的问题是领先的(有时是落后的)水平线(圆圈)。这就是来自该系列的数据与其余数据的起点或终点不相同的地方(上述示例似乎始于2009年,而其余数据则始于2005年) 数据集是从查询派生的,这些点将作为空值返回。我如何删除这条线?

我希望有人能帮助我。我已经创建了一份SSRS(2012)报告,绘制了一段时间内的多个系列。图表如上图所示。通过使空点值与线本身的颜色和大小相同,许多未连接的点很容易“连接”。我已经用MC113演示了这一点。这一切都很好,我在网上找到了很多有用的信息来帮助我解决这个问题。我遇到的问题是领先的(有时是落后的)水平线(圆圈)。这就是来自该系列的数据与其余数据的起点或终点不相同的地方(上述示例似乎始于2009年,而其余数据则始于2005年)

数据集是从查询派生的,这些点将作为空值返回。我如何删除这条线?这样,在这种情况下,这条线将从2009年开始?我已经尝试过过滤——但这只会截断所有系列(到2009年)而不仅仅是过滤MC113

有人有什么建议吗?也许我需要研究如何从查询中显示数据

目前看来:


任何帮助都将不胜感激

能否将线条的颜色设置为表达式

=iif(isNothing(Fields!SelectedValue.Value),'No Color',"LightBlue")

好吧-这里变得很难看。。。我认为您可能需要在TSQL中执行此操作,以便为每个系列查找值为notnull的最低日期,如果日期在该日期之前,请将线条颜色设置为白色

下面的代码将创建列以确定是否显示数据点

    WITH x AS  (
                  Select SampleDate, MC113,MC114,MC46,MC47,MC48
                  From sometable
)
,MinDates AS (
SELECT MC113MinDate = (SELECT Min(SampleDate) FROM x WHERE MC113 IS NOT NULL)
      ,MC114MinDate = (SELECT Min(SampleDate) FROM x WHERE MC114 IS NOT NULL)
      ,MC46MinDate = (SELECT Min(SampleDate) FROM x WHERE MC46 IS NOT NULL)
      ,MC47MinDate = (SELECT Min(SampleDate) FROM x WHERE MC47 IS NOT NULL)
      ,MC48MinDate = (SELECT Min(SampleDate) FROM x WHERE MC48 IS NOT NULL)
      )
SELECT x.SampleDate
        ,MC113,ShowMC113 = CASE WHEN MC113 IS NULL THEN CASE WHEN MC113MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC114,ShowMC114 = CASE WHEN MC114 IS NULL THEN CASE WHEN MC114MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC46,ShowMC46 = CASE WHEN MC46 IS NULL THEN CASE WHEN MC46MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC47,ShowMC47 = CASE WHEN MC47 IS NULL THEN CASE WHEN MC47MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
        ,MC48,ShowMC48 = CASE WHEN MC48 IS NULL THEN CASE WHEN MC48MinDate >= x.SampleDate THEN 0 ELSE 1 END ELSE 1 END
FROM x CROSS JOIN MinDates
然后根据ShowMC113、ShowMC114等值,设置系列的颜色和空点属性,并按照之前的操作设置颜色


注意:让图例显示您选择的颜色而不是白色是有一些技巧的,但希望这能给您提供一些选择…

谢谢@trubs,不幸的是,这没有达到预期效果。正如您从编辑(新图片)中看到的,水平线保持不变,而IsNothing将颜色从红色更改为蓝色,其中阵列中不存在连续数据。看起来数组开始之前的空值不是以相同的方式处理的,而是被忽略了。。。?使用的公式是=iif(isNothing(Fields!MC113.Value),“Blue”,“Red”)(显示此示例)。你还有别的想法吗?再次感谢!非常非常印象深刻!这很有道理,我不明白为什么它不起作用。所以我试了一下。。。。。我得到同样的东西。这次我上传了一个查询数据的快照(显示您的查询正在做它应该做的事情)和我用于空点color=iif(Fields!ShowMC113.Value=0,“Red”,“Blue”)的表达式,再次使用红色来显示发生了什么。我的颜色表情是一样的。为了清晰起见,我删除了其他系列(并看看它是否有效果…I+1表示方法、伟大的代码和巧妙的方法。非常感谢@trubs的帮助。你还有其他想法吗??