reporting-services - tutorial - sum column ssrs
¿Cómo dibujar una línea después de cada grupo en SQL Server Reporting Services? (6)
- Haga clic en la pestaña
View
en el Generador de informes de Microsoft SQL Server. - Asegúrese de que la casilla de verificación
Properties
esté marcada para que se muestre la ventana Propiedades. - Para el país de
ProductionCountry
seleccione toda la fila del grupo. Las propiedades deben mostrar para la fila. - En las propiedades, desplácese hasta
Border
->BorderStyle
->Top
. El valor estará más que probablemente en blanco. - En el campo
Top
, ingrese la siguiente expresión para el borde superior.
Valor del campo superior:
=IIF(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR Fields!ProductionCountry.Value = First(Fields!ProductionCountry.Value, "mydataset"),"None","Solid")
Cambie el valor de mydataset
anterior para que coincida con el nombre del conjunto de datos de su informe.
Nota:
Si la fila actual pertenece al mismo grupo que la fila anterior O la fila del grupo actual es el primero del conjunto de datos, establezca el borde en ninguno, establezca el borde en sólido.
A continuación se muestra el informe que he creado. Me gustaría dibujar una línea después de cada grupo como se muestra con una línea roja en la imagen.
Intentó entrometerse con las propiedades del cuadro de texto> Expresión de estilo de borde. Pero eso no se quedaría una vez que lo cierre y lo reabra.
Si configuro el borde para todo el grupo, la línea se repetirá para cada fila del grupo que no quiero.
¿Alguna ayuda?
En mi caso, tengo un valor agregado, así que no puedo usar la función anterior, así que codifiqué el primer valor del grupo que sabía que iba a ser el primer valor en ese grupo. Luego, en Estilo de borde, utilicé esta expresión.
Top =iif(Fields!Group_Name.Value="Hard Corded(first value)","Solid","None")
También en color de borde usa esta expresión
=iif(Fields!Group_Name.Value="Hard Corded(first value)",,"Black","LightGrey")
Lo que encontré realmente fácil de hacer es definir el borde superior del grupo. De esta manera, cada nuevo grupo agrega un borde entre la última fila del grupo anterior y el primero del nuevo grupo. También añade un borde después de los encabezados.
Esta solución no dibuja un borde al final de la última fila. Si también necesita ese borde, puede definir el borde inferior para el tablix que contiene los grupos.
Para mejorar la respuesta de @niktrs, sugeriría:
=Iif(Fields!ProductionCountry.Value = Previous(Fields!ProductionCountry.Value) OR IsNothing(Previous(Fields!ProductionCountry.Value)),"None","Solid")
Esto tiene la ventaja de no agregar una línea en la fila del grupo inicial, incluso cuando el primer grupo que se muestra no es el primer grupo en el conjunto de datos, por ejemplo, donde se realiza la clasificación o el filtrado.
Seleccione toda la fila de detalles y agregue esta expresión a la propiedad BorderStyle-Top:
=IIF((Previous(Fields!ProductionCountry.Value) <> Fields!ProductionCountry.Value)
OR (Previous(Fields!IndustryName.Value) <> Fields!IndustryName.Value)
OR (Previous(Fields!ProductGroup.Value) <> Fields!ProductGroup.Value),
"Solid",
"None")
=Iif(Fields!ProductionCountry.Value ="","None","Solid")
también cambie el valor predeterminado del borde ninguno izquierda sólido derecho derecho inferior inferior arriba de la expresión anterior. y a las propiedades del rectángulo cambiar el orden de inicio ..
Intenté esto para el borde superior y estaba funcionando bien ...