Autor |
Tema Buscar Opciones del Tema
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Tema: Redimensionar rectangulo con cajas de texto Enviado: 16/Diciembre/2019 a las 12:58 |
Buenas!
Tengo un rectangulo que incluye en su interior dos cuadros de textos. Estos campos son autoextensibles y autocomprimibles.
En el caso de que no haya texto en los cuadros, los dos cuadros de texto y el rectangulo que los contiene no aparecen en el informe final, no obstante, en el caso de que los cuadros de texto dispongan de mucho texto en su interior, se incrementa su tamaño pero no consigo aumentar el tamaño del rectangulo en las mismas condiciones y se queda en el tamaño original en el que lo había definido.
¿Sabríais que se puede hacer para que el rectangulo se adapte al tamaño de los cuadros de texto al extenderse?
Un saludo.
|
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Enviado: 16/Diciembre/2019 a las 13:03 |
De momento lo que tengo en el editor de VBA es lo siguiente, y el problema que no me aumenta el tamaño del texto es la parte en rojo:
Private Sub Detalle_Format(Cancel As Integer, FormatCount As Integer)
If IsNull(Me.Texto110.Value) Or Me.Texto110.Value = "" Then Me.Etiqueta53.Visible = False Me.Etiqueta111.Visible = False Me.Etiqueta112.Visible = False Me.Cuadro113.Visible = False Else Me.Etiqueta53.Visible = True Me.Etiqueta111.Visible = True Me.Etiqueta112.Visible = True Me.Cuadro113.Visible = True Me.Cuadro113.Height = Me.Texto52.Height + Me.Texto110.Height + Me.Etiqueta111.Height End If
End Sub
|
|
prga
Moderador
Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
|
Enviado: 16/Diciembre/2019 a las 19:26 |
Hola. Bienvenid@ al foro. Una solución pasa por en el evento "detalle print" ( sólo sirve para la vista previa o impresa del informe). Habrá que sustituir la línea en rojo por algo parecido a:
Dim altura As Long Dim anchura As Long Dim distcuadroaetiqueta As Long Dim micolor As Long micolor = Me.Cuadro113.BorderColor distcuadroaetiqueta = Me.Etiqueta111.Top - Me.Cuadro113.Top anchura = Me.Cuadro113.Left + Me.Cuadro113.Width altura = Me.Cuadro113.Top + Me.texto52.Height + Me.texto110.Height + Me.Etiqueta111.Height + distcuadroaetiqueta Me.Cuadro113.Visible = False Me.Line (Me.Cuadro113.Left, Me.Cuadro113.Top)-(anchura, altura), micolor, B
Seguro que no es la solución mas sencilla, pero..... Ya comentas. Un saludo a todos
|
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Enviado: 17/Diciembre/2019 a las 08:12 |
Perfecto, lo pruebo en cuanto pueda y te digo si me funciona.
Gracias!
|
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Enviado: 17/Diciembre/2019 a las 08:18 |
prga escribió:
Hola.Bienvenid@ al foro. Una solución pasa por en el evento "detalle print" ( sólo sirve para la vista previa o impresa del informe). Habrá que sustituir la línea en rojo por algo parecido a:
Dim altura As Long Dim anchura As Long Dim distcuadroaetiqueta As Long Dim micolor As Long micolor = Me.Cuadro113.BorderColor distcuadroaetiqueta = Me.Etiqueta111.Top - Me.Cuadro113.Top anchura = Me.Cuadro113.Left + Me.Cuadro113.Width altura = Me.Cuadro113.Top + Me.texto52.Height + Me.texto110.Height + Me.Etiqueta111.Height + distcuadroaetiqueta Me.Cuadro113.Visible = False Me.Line (Me.Cuadro113.Left, Me.Cuadro113.Top)-(anchura, altura), micolor, B
Seguro que no es la solución mas sencilla, pero..... Ya comentas. Un saludo a todos
|
Me dibuja el cuadro perfectamente con las dimensiones que tienen los elementos del interior, el único problema es que en el momento de impresión, el elemento Texto110 tiene la propiedad de autoextensible, y si el texto es largo, el rectangulo no llega a adaptarse en proporcionalidad a este y el texto sobresale por debajo.
|
|
prga
Moderador
Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
|
Enviado: 17/Diciembre/2019 a las 10:03 |
Hola Una pregunta, ¿el código lo has puesto en el evento detalle_print?, ya que en el evento detalle_format la altura de los cuadros autoextensibles continua siendo el "original". Ya comentas. Un saludo a todos
|
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Enviado: 18/Diciembre/2019 a las 12:49 |
Muchísimas gracias, era por eso. Lo tenia puesto en detalle_format, por eso no me aparecía.
¿Hay algún modo de hacer que el borde del cuadro sea de 2 puntos?
Muchas gracias de nuevo!
Un saludo.
|
|
prga
Moderador
Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
|
Enviado: 18/Diciembre/2019 a las 15:27 |
Hola Prueba con: Me.DrawWidth = 20 antes del Me.line
Busca en la ayuda o por ahí los términos, drawwidth, drawmode y drawstyle, casi seguro que ayudan a resolver la duda. Ya comentas. Un saludo a todos
|
|
12345qwerty
Nuevo
Unido: 16/Diciembre/2019
Localización: Casa
Estado: Sin conexión
Puntos: 14
|
Enviado: 19/Diciembre/2019 a las 08:02 |
Sí, me ha funcionado a la perfección, muchas gracias por tu ayuda!
Saludos!
|
|