У меня есть отчет SSRS, который принимает 2 дополнительные параметры текста, как показано ниже:Форматирование Параметры в SSRS Report
- StartDate, Text, позволяют Null, формат ГГГГММДД
- EndDate, текст, позволяют Null. Формат YYYYMMDD
Я пытаюсь форматировать текстовое поле заголовка, который будет отображаться в поле ниже:
Если параметры Null, то я хотел бы получить по умолчанию название месяца и год (как отчет будет получить данные по умолчанию к предыдущему месяцу)
Если параметры установлены, то я хочу, чтобы отформатировать их как дд MMMM YYYY (так 20141103
будет отформатирован как 03 November 2014
Вот код, который я пытаюсь использовать для Выражение в текстовом поле:
= IIF(IsNothing(Parameters!StartDate.Value),
" for " & MonthName(Month(DateAdd("m",-1,Today))) & " " & Year(DateAdd("m",-1,Today)),
"From " &
RIGHT(Parameters!StartDate.Value,2) + " " +
MonthName(Month(
LEFT(Parameters!EndDate.Value,4) + "-" +
MID(Parameters!EndDate.Value,5,2) + "-" +
RIGHT(Parameters!EndDate.Value,2)
)) + " "
+ LEFT(Parameters!StartDate.Value,4) +
" to " +
RIGHT(Parameters!EndDate.Value,2) + " "
+ MonthName(Month(
LEFT(Parameters!EndDate.Value,4) + "-" +
MID(Parameters!EndDate.Value,5,2) + "-" +
RIGHT(Parameters!EndDate.Value,2)
)) + " " +
LEFT(Parameters!EndDate.Value,4))
так, как вы можете видеть, если параметр является Null (с учетом отчета по умолчанию для запуска данных последних месяцев, когда по расписанию), то функция должна просто показать что-то вроде December 2014
, но если они введены в YYYMMDD то мне нужно отформатировать их.
Я получаю ошибку ниже (в SSRS в Visual Studio 2013):
[rsRuntimeErrorInExpression] The Value expression
for the textrun ‘Textbox15.Paragraphs[0].TextRuns[0]’
contains an error: Conversion from string "--" to type 'Date' is not valid.
Я также попытался с помощью CDate вокруг
LEFT(Parameters!EndDate.Value,4) + "-" +
MID(Parameters!EndDate.Value,5,2) + "-" +
RIGHT(Parameters!EndDate.Value,2)
(они должны выйти, как 2014-11-01
, например) но опять же, не повезло
Итак, где я здесь не так, и как я могу отформатировать эти даты, если они введены?
Можете ли вы сказать мне, 'IsNothing' правильный способ проверить для Null параметра? –
Да, я бы проверял то же самое, если параметр равен null; однако, я уже упоминал об этом, я постараюсь использовать всю свою логику в SQL и использовать SSRS только для отображения. –
хорошо это только для текстового поля в отчете, и это действительно убивает меня. –