Linea extensible vertical en reporte

En un reporte tengo 4 campos, uno de ellos es campo memo que tiene mucha información y 3 campos con valores numéricos. Cada campo tiene una linea vertical que los separa, pero cuando en el campo memo hay mucha información la linea vertical no se exteiende junto con el tamaño del campo memo y en el informe se ve horrible, ya que la linea vertical permanece igual de tamaño a la de los otros campos.

1 Respuesta

Respuesta
1
Me parece que podrías hacer una prueba con el comando Line. Lo suyo es dejar casi todos los controles sin bordes y añadir las lineas con ese comando.
Line requiere de coordenadas iniciales y finales. Puedes utilizar las propiedades Left, Top, Height y Width de algún control de la cabecera para saber dónde empezar la línea y las mismas propiedades de algún control del pie para saber dónde termina.
Buenas tardes Xaxi, en primera agradezco la prontitud de tu atención.
Trate de buscar en ayuda de Access todas las palabras que indicas en tu respuesta, pero no encontré nada o mejor dicho no entendí nada, me podrías echar la mano con un poco de ayuda para resolver mi problema.
Atentamente, Raul
Vamos a imaginar que es una factura (el ejemplo más típico de hacer 'cajetines')Imaginemos que tienes un informe con una serie de etiquetas en el encabezado de página.
Tenemos una etiqueta lblCantidad que tiene de anchura 2cm. A su lado una etiqueta lblDescripción de 8cm; lblPrecio de 2cm y lblImporte de 2cm. Las etiquetas no tienen bordes.
Bajo esas etiquetas ponemos una linea que vaya desde el principio de lblCantidad hasta el final de lblImporte. La linea se llama linTop.
En el pié de página hecemos la misma línea empezando y terminando en el mismo sitio. La línea se llama linBottom
Veamos como podemos hacer ahora unas líneas verticales que nos separen los 4 conceptos. Son 5 lineas. Para ello utilizamos el evento Al paginar del informe.
'definimos las variables
Dim PosX1 As Long, PosX2 As Long, PosX3 As Long, PosX4 As Long, PosX5 As Long
Dim PosTop As Long, PosBottom As Long
'asignamos valores a las variables
PosX1 = Me!lblCantidad.Left
PosX2 = Me!lblDescripcion.Left
PosX3 = Me!lblPrecio.Left
PosX4 = Me!lblImporte.Left
PosX5 = Me!lblImporte.Left + Me!lblImporte.Width
PosTop = Me!linTop.Top
PosBottom = Me.ScaleHeight - Me.Section(acPageFooter).Height + Me!linBottom.Top
' y pintamos las lineas
Line (PosX1, PosTop) - (PosX1, PosBottom)
Line (PosX2, PosTop) - (PosX2, PosBottom)
Line (PosX3, PosTop) - (PosX3, PosBottom)
Line (PosX4, PosTop) - (PosX4, PosBottom)
Line (PosX5, PosTop) - (PosX5, PosBottom)
Y ya está. Ahora se trata de que lo pruebes, lo adaptes a tus necesidades y guardes este código como yo lo hice en su momento, así podrás recirrir a él siempre que lo necesites para pintar líneas en un informe.
Por cierto, fíjate bien en los eventos y secciones que te he indicado, porque de otra forma no funciona correctamente.
Xavi, muchísimas gracias, funciono a la perfección, la verdad nunca iba a lograrlo sin tu valiosa ayuda, lastima que estemos tan lejos, para invitarte un par de tequilas, sin afán de molestarte me gustaría mucho enviarte un presente, te lo digo sinceramente, me podrías enviar tu dirección a mi correo: [email protected]
Imaginate un tablero de ajedrez, por el primer cuadro te daría una estrella, por el segundo 2, por el tercero 4, por el cuarto 8, por el quinto 16 y así sucesivamente hasta llegar al cuadro 64, esa es mi calificación por tu respuesta.
Saludos fraternales
Raul

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas