根据特定日期填充背景颜色的 SSRS 表达式

SSRS expression to fill back ground color based on perticuler date

我有这个查询,它将 return 来自 SQL 服务器

的日期
SELECT TOP 1 
    CASE
       WHEN (SELECT TOP 1 CONVERT(DATE, [Duedate]) AS [Duedate] 
             FROM [dbo].[Table1] 
             WHERE CONVERT(DATE, [Duedate]) = CONVERT(DATE, GETDATE())) = CONVERT(DATE, GETDATE()) 
          THEN CONVERT(DATE, GETDATE())
          ELSE (SELECT TOP 1 CONVERT(DATE, [Duedate])
                FROM [dbo].[Table1] 
                WHERE CONVERT(DATE, [Duedate]) > CONVERT(DATE, GETDATE())
                ORDER BY CONVERT(DATE, [Duedate]) ASC)
    END AS [ReturnRequiredDate]
FROM
    [dbo].[Table1] 

但是,当我尝试将其添加到 SSRS 报告中的数据集时,它是 returning 日期和时间格式。如何解决?

其次,我想根据这个 returned 日期(即前几天和包括 returned 日期)填充 table columns/rows 的背景颜色。

也就是说,根据大小写,如果日期是return任何一个月的16号,那么填充颜色应该是,从第16号开始到前几天。

此外,假设,如果日期 returned 是任何一个月的 27 号,那么颜色应该从 27 号开始填充到以前的记录(以前的日期记录) 如何使用 SSRS 表达式执行此操作?

使用查询,在所有日期中,我能够 return [ReturnRequiredDate] 之前的所有日期。有没有什么方法可以只为那些 returned 日期填充颜色?在同一个 SSRS table 中(我所有的记录都在那里)。我不想在 SSRS 中使用单独的 table 来填充颜色。

希望我把规则解释清楚了,如果没有请告诉我修改问题。谢谢

第一题

日期返回为 datetime 有什么问题?如果您需要对其进行计算,2019-05-17 在功能上等同于 2019-05-17 00:00:00.0000000。如果您只需要将其显示为日期,请在报告中使用 formatting,在文本框属性或表达式中使用,例如:=format(Fields!ReturnRequiredDate.Value,"yyyy-MM-dd")

第二个问题

同样,您只需要将数据驱动的表达式应用于文本框背景颜色 属性,其中包含检查值是否小于参数日期的数据:

=iif(Fields!YourDate.Value <= first(Fields!ReturnRequiredDate.Value,"YourDataset"),"Red","Black")