neha427 Ответов: 1

Формат даты в отчетах .RDLC


Привет,

Я работаю над отчетами .rdlc.У меня есть столбец даты в отчете .
Я форматирование столбца "дата", используя выражение
=Формат(Поля!Дата.Значение,"гггг/ММ/ДД" & "" & "ч:мм:СС ТТ").
Он прекрасно работает в одном отчете.Он правильно отображает пример datetime:
2011/01/18 9:53:17 AM
.
Но это не работает в другом отчете.Он отображает значение в столбце как гггг/ММ/ДД ч:мм:СС ТТ

Заранее спасибо

Mario Majčica

Не могли бы вы уточнить? Что именно вас беспокоит?

1 Ответов

Рейтинг:
1

Mario Majčica

Наверное, с ним что-то не так. Fields!Date.Value.

Попробуйте что-нибудь подобное:

DateTime dateValue;

if (DateTime.TryParse(Fields!Date.Value, out dateValue))
    return dateValue.ToString("yyyy/MM/dd h:mm:ss tt")
else
    return "n/a";


Дайте нам знать!

Овации


РЕДАКТИРОВАТЬ:

Я только что попробовал следующий код:
string printableString;
DateTime dateValue;

if (DateTime.TryParse("22-08-2010 14:57:33", out dateValue))
    printableString = dateValue.ToString("yyyy/MM/dd h:mm:ss tt");
else
    printableString = "n/a";


И вот результат 2010-08-22 2:57:33 как и ожидалось.

Если я попытаюсь ввести неправильный ввод, как DateTime.TryParse("25-25-2010 14:57:33", out dateValue)
Я получаю n/a в итоге.

Если вы покажете мне еще немного кода, возможно, мы сможем найти правильное решение.

Пока


neha427

Привет Марио,
Я пытаюсь использовать твое выражение.
Но я получаю ошибку, что "TryParse" - это непризнанный идентификатор.
Спасибо

Mario Majčica

Проверьте правку.

neha427

Привет Марио,
Мой отчет состоит из 4 столбцов : тип записи,описание,Номер счета,Дата.
Я создал набор данных и извлек из него поля для отчета.
Теперь я пытаюсь отформатировать столбец даты до 2010-08-22 2:57:33.
Я просто пытаюсь написать выражение для форматирования даты в поле значения.
Я сделал это, и это прекрасно сработало в одном из моих предыдущих отчетов.
Теперь я пытаюсь отформатировать то же поле даты в другом отчете.Но это не работает.Он воспроизводится как гггг/ММ/ДД ч:мм:СС ТТ

Mario Majčica

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

neha427

Недопустимой даты и времени не существует.
Все выглядит прекрасно.

Mario Majčica

Как бы то ни было, вместо =Format(Fields!Date.Значение,"гггг/ММ/ДД" & "" & "ч:мм:СС ТТ")

попробуйте выполнить следующий код:

публичная строка CustomDateFormat(объект dateTime)
{
если (датавремя == нуль || тип данных datetime Датавремя == ложь)
возврат "н/д";

DateTime dateValue;

если (дата-время.TryParse(дата и время.ToString(), out dateValue))
верните значение даты.ToString("yyyy/MM/dd h:mm:ss tt");
еще
возврат "н/д";
}

а затем измените свой код следующим образом:

..= CustomDateFormat(Поля!Дата.Ценность);

Каков же тогда выход?