Я использую этот набор данных:
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](https://i.stack.imgur.com/8vNjs.png)
VBCRLF расшифровывается как «Перевод строки возврата Visual Basic» и задает новую строку. Если поле пустое, новая строка не добавляется, поэтому вы не получаете разрывов в адресе.
Вам придется решить, какие поля могут быть пустыми. Я предположил, что Name, Address1 и ZipCode не могут быть нулевыми, но, возможно, вы настроили все по-другому.