Выражение SSRS для заполнения основного цвета на основе даты perticuler - PullRequest
0 голосов
/ 17 мая 2019

У меня есть этот запрос, который будет возвращать дату из SQL Server

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, он возвращает формат даты и времени. Как решить эту проблему?

Во-вторых, я хотел бы заполнить фоновый цвет столбцов / строк таблицы на основе этой возвращенной даты (то есть предыдущих дней и включая возвращенную дату).

То есть в зависимости от случая, если дата, возвращающаяся 16-го числа любого месяца, должна быть заполненным цветом, начиная с 16-го и до предыдущих дней.

Также, скажем, если возвращаемая дата является 27-го числа любого месяца, тогда цвет должен быть заполнен, начиная с 27-го числа назад до предыдущих записей (записи предыдущих дат) Как я могу сделать это, используя выражение SSRS?

Используя запрос, из всех дат я могу вернуть все даты, предшествующие [ReturnRequiredDate]. Есть ли способы закрасить только эти возвращенные даты? В той же таблице SSRS (где есть все мои записи). Я не хочу отдельную таблицу в SSRS для цветовой заливки.

Надеюсь, я четко объяснил правило, если нет, пожалуйста, дайте мне знать, чтобы изменить вопрос. Спасибо.

1 Ответ

0 голосов
/ 17 мая 2019

Первый вопрос

В чем проблема с датой, возвращаемой как datetime? Если вам нужно сделать вычисления против него, 2019-05-17 функционально эквивалентно 2019-05-17 00:00:00.0000000. Если вам нужно отобразить ее как просто дату, используйте форматирование в своем отчете, либо в свойствах текстового поля, либо в своем выражении, например: =format(Fields!ReturnRequiredDate.Value,"yyyy-MM-dd")

Второй вопрос

Опять же, вам просто нужно применить управляемое данными выражение к свойству цвета фона текстового поля, содержащему данные, которые проверяют, меньше ли значение, чем дата параметра:

=iif(Fields!YourDate.Value <= first(Fields!ReturnRequiredDate.Value,"YourDataset"),"Red","Black")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...