2011-06-20 17 views
5

Mam raport z prostym polem tekstowym zawierającym pola Nazwa, Adres i Kod Zip. Pola działa dobrze, gdy stronę, ale kiedy umieścić je w formacie bloku jak:Problem zwrotu powozu SSRS 2008 R2

Name 
Address 
Zipcode 

dostaję podwójnie rozmieszczone tekst. Znajomy pokazał mi małą sztuczkę, umieszczając wszystkie pola w jednej linii i zamiast uderzać w zwrot, uderzyłem Shift + Return. To zadziałało, ale tylko dla jednej linii. Innymi słowy, otrzymałem ten wynik:

Name 
Address 

ZipCode 

Etc. 

Jestem pewien, że jest to banalny problem, który doświadczony użytkownik może rozwiązać w ciągu sekundy. Niestety, nie mam doświadczenia. Czy ktoś ma na to poprawkę?

+0

Eureka! Ok, powinno to pomóc uzyskać odpowiedź. W rzeczywistości mam trzy linie adresu. Przykład, który przeciągam, używa tylko jednej z tych linii, więc pozostałe dwie nie są używane i wyświetlają puste pole. Czy istnieje sposób, aby ukryć pole, jeśli wartość tego pola jest zerowa. – 2boolORNOT2bool

Odpowiedz

13

Używam tego zestawu danych:

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

i umieścić w polu tekstowym za pomocą następującego wyrażenia:

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

co daje następujący wynik:

Preview of Address rendered in Visual Studio

VBCRLF oznacza "Kanał powrotu kanału zwrotnego Visual Basic Carriage", i daje nową linię. Jeśli pole ma wartość NULL, to nie dodaje się nowej linii, więc nie otrzymujesz żadnych przerw w adresie.

Musisz zdecydować, które pola mogą być puste. Zakładam, że Nazwa, Adres1 i Kod Zip nie mogą mieć wartości NULL, ale może skonfigurujesz coś inaczej.

+0

Bardzo ładne! Powoli stwierdzam, że VB jest używany w SSRS i nie mam tła VB. Doceniam pomoc! – 2boolORNOT2bool

+0

Uczyłem się także podstaw wizualnych, jak idę. Następująca witryna jest bardzo przydatna: http://msdn.microsoft.com/en-us/library/ms157328.aspx – Fillet

1

Oto kod dla etykiety wysyłkowej, mam nadzieję, że pomoże komuś później.

=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

Oto niewielki dodatek:

Można to zrobić w SQL raportu:

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

i w polu tekstowym w raporcie

=First(Fields!pccString.Value).Replace(",", VbCrLf)
Powiązane problemy