2014-11-13 3 views
0

Любые советы приветствуются.Сочетание заявления IIF с правильной капитализацией - SSRS 2008R2

Во многих из наших отчетов, некоторый текст проступает в верхнем регистре, например, имя, как:

JOHN SMITH

Или в нижнем регистре - Джон Смит

Есть ли код/выражение, которое мы можем использовать для обеспечения регулярной капитализации, поэтому данные всегда отображаются (в отчете) как:

John Smith?

Однако это осложняется еще и там уже будучи выражением IIF для отображения имени в отчете, например:! «!, Поля title.value &»! = IIF (поля x.value = «» & Поля отчество .Value & "" & fields! Surname.Value, "no name") - любые предложения о том, как объединить это выражение с тем, который возвращает регулярную капитализацию, будут оценены.

ответ

0

Нет функции, которую я знаю, чтобы изменить заголовок. Вы должны сделать следующее:

=UCase(Left(Fields!Forenames.Value, 1)) & LCase(Right(Fields!Forenames.Value, Len(Fields!FieldName.Value)-1))

Это в основном получает первую букву и прописную его, а затем отрабатывает Длина поля, уменьшает его на единицу, и использует эту длину, чтобы получить остальную часть поле, преобразуя его в нижний регистр.

Это будет плотно прилегать к вашему выражению без каких-либо драм

=IIF(fields!x.value="", fields!title.value & " " & UCase(Left(Fields!Forenames.Value, 1)) & LCase(Right(Fields!Forenames.Value, Len(Fields!FieldName.Value)-1)) & " " & UCase(Left(Fields!surname.Value, 1)) & LCase(Right(Fieldsurname.Value, Len(Fields!surname.Value)-1)), "no name")

EDIT (в теории!): К сожалению, извините, я получаю мои языки смешались. В построителе отчетов нет верхних() и нижних(), это вместо UCase() и LCase(). Отредактировал свой ответ, чтобы это отразить.

+0

Это решение отлично работает - большое спасибо. –

+0

Рад помочь! :) –

Смежные вопросы