SSRS:自定义区域条形图(甘特图)——根据表情不同颜色
SSRS: customize area bar chart (gantt chart) — different colors based on expression
我有一个如图所示的数据集,但行数更多
Table
我的项目中有员工姓名和他们的资格,假期和假期 ID 的开始日期和结束日期。
然后我根据这个数据集做了一个面积条形图(甘特图)。行按 vacation_id 分组,行首是假期开始日期,行尾是假期结束日期。纵轴显示工人姓名,横轴显示当月日期。
现在所有的线都是蓝色的。但是,如果那些在我的项目中具有相同资格的员工的假期按日期重叠,我需要将线条颜色切换为红色。
可以这样做吗?
无法识别图表中的重叠日期 - 您需要添加一个字段来指示 SQL 中的重叠。
如果您将当前数据放在临时 table 中,那么您可以检查重叠:
SELECT 'A' EMP, '2019-11-08' START_VACA, '2019-11-13' END_VACA, 'QA' ROLE
INTO #VACA
UNION
SELECT 'B' EMP, '2019-11-08' START_VACA, '2019-11-25' END_VACA, 'PM' ROLE
UNION
SELECT 'C' EMP, '2019-11-13' START_VACA, '2019-11-28' END_VACA, 'PM' ROLE
UNION
SELECT 'D' EMP, '2019-11-02' START_VACA, '2019-11-20' END_VACA, 'FD' ROLE
UNION
SELECT 'E' EMP, '2019-11-10' START_VACA, '2019-11-13' END_VACA, 'QA' ROLE
SELECT V.*, CASE WHEN V1.EMP IS NOT NULL THEN 1 ELSE 0 END AS OVERLAP
FROM #VACA V
LEFT JOIN #VACA V1 ON V1.ROLE = V.ROLE AND V1.EMP <> V.EMP
AND (
V1.START_VACA BETWEEN V.START_VACA AND V.END_VACA
OR
V1.END_VACA BETWEEN V.START_VACA AND V.END_VACA
OR
V.START_VACA BETWEEN V1.START_VACA AND V1.END_VACA
OR
V.END_VACA BETWEEN V1.START_VACA AND V1.END_VACA
)
有了重叠记录的指示器后,就可以为图表系列的颜色创建表达式。
=IIF(Fields!.OVERLAP.Value = 1, "RED", "BLUE")
我有一个如图所示的数据集,但行数更多
Table
我的项目中有员工姓名和他们的资格,假期和假期 ID 的开始日期和结束日期。
然后我根据这个数据集做了一个面积条形图(甘特图)。行按 vacation_id 分组,行首是假期开始日期,行尾是假期结束日期。纵轴显示工人姓名,横轴显示当月日期。 现在所有的线都是蓝色的。但是,如果那些在我的项目中具有相同资格的员工的假期按日期重叠,我需要将线条颜色切换为红色。 可以这样做吗?
无法识别图表中的重叠日期 - 您需要添加一个字段来指示 SQL 中的重叠。
如果您将当前数据放在临时 table 中,那么您可以检查重叠:
SELECT 'A' EMP, '2019-11-08' START_VACA, '2019-11-13' END_VACA, 'QA' ROLE
INTO #VACA
UNION
SELECT 'B' EMP, '2019-11-08' START_VACA, '2019-11-25' END_VACA, 'PM' ROLE
UNION
SELECT 'C' EMP, '2019-11-13' START_VACA, '2019-11-28' END_VACA, 'PM' ROLE
UNION
SELECT 'D' EMP, '2019-11-02' START_VACA, '2019-11-20' END_VACA, 'FD' ROLE
UNION
SELECT 'E' EMP, '2019-11-10' START_VACA, '2019-11-13' END_VACA, 'QA' ROLE
SELECT V.*, CASE WHEN V1.EMP IS NOT NULL THEN 1 ELSE 0 END AS OVERLAP
FROM #VACA V
LEFT JOIN #VACA V1 ON V1.ROLE = V.ROLE AND V1.EMP <> V.EMP
AND (
V1.START_VACA BETWEEN V.START_VACA AND V.END_VACA
OR
V1.END_VACA BETWEEN V.START_VACA AND V.END_VACA
OR
V.START_VACA BETWEEN V1.START_VACA AND V1.END_VACA
OR
V.END_VACA BETWEEN V1.START_VACA AND V1.END_VACA
)
有了重叠记录的指示器后,就可以为图表系列的颜色创建表达式。
=IIF(Fields!.OVERLAP.Value = 1, "RED", "BLUE")