2011-06-20 22 views
5

Tôi có một báo cáo với một hộp văn bản đơn giản chứa các trường Tên, Địa chỉ và Mã Zip. Các trường hoạt động tốt khi được xem trước nhưng khi tôi đặt chúng ở định dạng khối như:SSRS 2008 R2 Carriage Return Problem

Name 
Address 
Zipcode 

Tôi nhận được văn bản khoảng cách gấp đôi. Một người bạn chỉ cho tôi một mẹo nhỏ, đặt tất cả các trường trên một dòng và thay vì nhấn trở lại, tôi nhấn Shift + Return. Điều này làm việc nhưng chỉ cho một dòng. Nói cách khác, tôi đã nhận kết quả này:

Name 
Address 

ZipCode 

Etc. 

tôi chắc chắn rằng đây là một vấn đề tầm thường mà một người dùng có kinh nghiệm có thể giải quyết trong một giây. Thật không may, tôi không có kinh nghiệm. Vì vậy, có ai có một sửa chữa cho điều này?

+0

Eureka! Ok, điều này sẽ giúp để có được một câu trả lời. Tôi thực sự có ba dòng địa chỉ. Ví dụ tôi kéo chỉ sử dụng một trong những dòng này để hai dòng kia không được sử dụng và hiển thị một trường trống. Có cách nào để ngăn chặn trường nếu giá trị của trường được nói là null. – 2boolORNOT2bool

Trả lời

13

Tôi đang sử dụng tập dữ liệu này:

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

và đặt trong một Textbox với biểu thức sau đây:

= 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") 

mang đến cho đầu ra sau đây:

Preview of Address rendered in Visual Studio

VBCRLF là viết tắt của "Visual Basic Carriage Return Line Feed", và đưa ra một dòng mới. Nếu một trường là null, thì không có dòng mới nào được thêm vào, vì vậy bạn không nhận được bất kỳ ngắt nào trong địa chỉ.

Bạn sẽ phải quyết định trường nào có thể là rỗng. Tôi giả định rằng Name, Address1 và ZipCode không thể rỗng, nhưng có thể bạn thiết lập mọi thứ khác nhau.

+0

Rất đẹp! Tôi từ từ tìm thấy rằng VB được sử dụng trong SSRS và tôi có NO VB nền. Tôi rất cảm kích sự giúp đỡ! – 2boolORNOT2bool

+0

Tôi cũng học hình ảnh cơ bản khi tôi đi cùng. Trang web sau khá hữu ích: http://msdn.microsoft.com/en-us/library/ms157328.aspx – Fillet

1

Dưới đây là một số mã cho nhãn gửi thư, hy vọng nó sẽ giúp ai đó sau này.

=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) 
1

Dưới đây là một bổ sung nhỏ:

Bạn có thể làm điều này trong SQL báo cáo của bạn:

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

và trong một Textbox trong báo cáo

=First(Fields!pccString.Value).Replace(",", VbCrLf)
Các vấn đề liên quan