SSRS 2008 R2 Проблема возврата каретки - PullRequest
5 голосов
/ 20 июня 2011

У меня есть отчет с простым текстовым полем, которое содержит поля Name, Address и ZipCode.Поля работают хорошо при предварительном просмотре, но когда я помещаю их в формат блока, например:

Name
Address
Zipcode

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

Name
Address

ZipCode

Etc.

Я уверен, что это тривиальная проблема, которую опытный пользователь может решить за секунду.К сожалению, я не опытный.Итак, у кого-нибудь есть решение для этого?

Ответы [ 3 ]

13 голосов
/ 21 июня 2011

Я использую этот набор данных:

select 'Mr2Bool' as Name,
'1 TrueStreet' as Address1,
 NULL as Address2,
'NewTrueshire' as Address3,
'1010101' as ZipCode

и поместите в текстовое поле со следующим выражением:

= First(Fields!Name.Value, "DataSet1") & VBCRLF &
First(Fields!Address1.Value, "DataSet1") & VBCRLF &
IIF(First(Fields!Address2.Value, "DataSet1") Is Nothing, "", First(Fields!Address2.Value, "DataSet1")  & VBCRLF) &
IIF(First(Fields!Address3.Value, "DataSet1") Is Nothing, "", First(Fields!Address3.Value, "DataSet1")  & VBCRLF) &
First(Fields!ZipCode.Value, "DataSet1")

, который дает следующий вывод:

Preview of Address rendered in Visual Studio

VBCRLF расшифровывается как «Перевод строки возврата Visual Basic» и задает новую строку. Если поле пустое, новая строка не добавляется, поэтому вы не получаете разрывов в адресе.

Вам придется решить, какие поля могут быть пустыми. Я предположил, что Name, Address1 и ZipCode не могут быть нулевыми, но, возможно, вы настроили все по-другому.

1 голос
/ 24 октября 2014

Вот небольшое дополнение:

Вы можете сделать это в SQL вашего отчета:

SELECT Postalcode + ' ' + City + ', ' + Country as pccString FROM ....

и в текстовом поле в отчете

=First(Fields!pccString.Value).Replace(",", VbCrLf)
1 голос
/ 27 марта 2012

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

=IIf(IsNothing(Fields!WholeName.Value), "", Fields!WholeName.Value) & vbCRLF & 
IIf(IsNothing(Fields!Address1.Value), "", Fields!Address1.Value) & vbCRLF & 
IIf(IsNothing(Fields!Address2.Value), "", Fields!Address2.Value) & vbCRLF & 
IIf(IsNothing(Fields!City.Value), "", Fields!City.Value) & ", " & 
IIf(IsNothing(Fields!State.Value), "", Fields!State.Value) & " " & 
IIf(IsNothing(Fields!Zip.Value), "", Fields!Zip.Value)
...