2011-06-20 13 views
5

Tengo un informe con un simple cuadro de texto que contiene los campos Nombre, Dirección y Código postal. Los campos funcionan bien cuando previamente pero cuando me los puse en un formato de bloque como:SSRS 2008 R2 Retorno de carro Problema

Name 
Address 
Zipcode 

me sale a doble espacio de texto. Un amigo me mostró un pequeño truco, colocando todos los campos en una línea y en lugar de presionar return presioné Shift + Return. Esto funcionó pero solo para una línea. En otras palabras, me dieron este resultado:

Name 
Address 

ZipCode 

Etc. 

Estoy seguro de que este es un problema trivial que un usuario experimentado podría resolver en un segundo. Lamentablemente, no tengo experiencia. Entonces, ¿Alguien tiene una solución para esto?

+0

Eureka! Ok, esto debería ayudar a obtener una respuesta. De hecho, tengo tres líneas de dirección. El ejemplo que estoy tirando solo usa una de estas líneas, por lo que las otras dos no se usan y muestra un campo vacío. ¿Hay alguna manera de suprimir el campo si el valor de dicho campo es nulo? – 2boolORNOT2bool

Respuesta

13

estoy usando este conjunto de datos:

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

y poner en un cuadro de texto con la siguiente expresión:

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

que da el siguiente resultado:

Preview of Address rendered in Visual Studio

VBCRLF significa "Visual Basic Carriage Return Line Feed", y da una nueva línea. Si un campo es nulo, no se agrega ninguna línea nueva, por lo que no se produce ningún corte en la dirección.

Deberá decidir qué campos pueden ser nulos. Supuse que Name, Address1 y ZipCode no pueden ser nulos, pero tal vez configures las cosas de manera diferente.

+0

¡Muy bonito! Poco a poco estoy descubriendo que VB se usa en SSRS y no tengo antecedentes de VB. Aprecio la ayuda! – 2boolORNOT2bool

+0

También estoy aprendiendo básico visual a medida que avanzo. El siguiente sitio web es bastante útil: http://msdn.microsoft.com/en-us/library/ms157328.aspx – Fillet

1

Aquí hay un código para una etiqueta de envío, espero que ayude a alguien más tarde.

=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

He aquí una pequeña adición:

Usted puede hacer esto en el SQL de su informe:

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

y en un cuadro de texto en el informe

=First(Fields!pccString.Value).Replace(",", VbCrLf)
Cuestiones relacionadas