我希望有人可以帮助我。我创建了一份SSRS(2012)报告,随着时间的推移绘制了多个系列。该图表如上所示。许多非连接点很容易被连接起来'通过使空点值与线本身具有相同的颜色和大小。我用MC113证明了这一点。这一切都很好 - 我在网上找到了大量有用的信息来帮助我解决这个问题。我遇到的问题是前导(有时是滞后)水平线(带圆圈)。这是该系列中的数据不会与其余数据在同一点开始或结束的地方(上面的示例似乎是从2009年开始的,其中数据的其余部分始于2005年)。
数据集派生自查询,这些点将作为NULL值返回。如何删除此行 - 以便在这种情况下 - 该行将从2009年开始?我尝试过滤 - 但这只会截断所有系列(到2009年),而不仅仅是过滤MC113。
有没有人有任何建议?也许我需要研究我的查询中的当前数据?
目前看起来像:
任何帮助都将非常感谢!
答案 0 :(得分:1)
您可以将线条的颜色设置为表达式吗?
=iif(isNothing(Fields!SelectedValue.Value),'No Color',"LightBlue")
答案 1 :(得分:1)
好的 - 这里变得丑陋......我认为您可能需要在TSQL中执行此操作以找到每个系列的值 not null 的最低日期,如果日期在此之前,将线条颜色设置为白色
下面的代码将创建列以确定是否显示数据点
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等值
注意:让传说显示您选择的颜色而不是白色有一些诡计,但希望这会让您有所作为......