Access - Alto de filas uniforme

 
Vista:

Alto de filas uniforme

Publicado por Ezel (36 intervenciones) el 14/08/2020 20:57:10
Hola a todos! Amigos recurro a ustedes porque necesito diseñar un informe en forma de tabla, con líneas de separación verticales, por lo que a cada campo de la tabla le he configurado bordes sólidos de color negro.
El problema es que el alto de las filas varía hacia abajo de acuerdo a la longitud de uno de sus campos, con formato texto largo en este caso, mientras que en el resto las líneas de división horizontales me salen más arriba, es decir más cortas y eso altera la coherencia de las filas.
¿Como puedo hacer para que el alto de todos los campos de una fila sea el mismo y se ajuste automáticamente al del campo más alto?
Gracias anticipadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Manuel
Val: 360
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Alto de filas uniforme

Publicado por Manuel (159 intervenciones) el 16/08/2020 18:07:15
Lo que quieres hacer es mucho más complicado de lo que parece, salvo que los controles no puedan variar de tamaño, etc. Pero no es tu caso, ya que claramente uno de los controles enlazado a un campo, pues puede variar mucho.

Aún así, si las filas no tienen porque tener tamaño exacto, sino que lo importante es que se dibuje un cuadro con solo 2 líneas horizontales: una arriba de todo y otra abajo y el resto verticales... Pues ahí si hay una solución que se basa en 2 partes:

-los encabezados y pies si sabes cual es el tamaño y donde acabarán (eso no tiene complicación con encabezado y pie de página/informe/etc, y precisamente las líneas horizontales van ahí

-después dibujar las líneas verticales con código VBA sin saber exactamente el tamaño de las filas, sino que tu dibujas de un punto X0Y0 a un punto X1Y1.

Te dejo el enlace a la documentación oficial de Microsoft sobre como pintar líneas:
https://docs.microsoft.com/es-es/office/vba/api/access.report.line

Incluso con eso, pues podrías ir más más allá y hacerlo tal como quieres, calculando todo dinámicamente y tal, pero, no sabes en la que te metes y cuando tengas que hacer algún cambio, tendrías que volver a empezar. Con las indicación que te digo, pues harás algo resultón y sin llegar a niveles de complejidad infernales para hacerlo en Access.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alto de filas uniforme

Publicado por Ezel (36 intervenciones) el 16/08/2020 18:56:07
Te agradezco mucho tu ayuda. Voy a probar y luego te comento. Abrazos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Manuel
Val: 360
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Alto de filas uniforme

Publicado por Manuel (159 intervenciones) el 17/08/2020 09:33:51
De nada, es un verdadero placer poder ayudar, o al menos intentarlo. Todos necesitamos ayuda y para recibir antes hay que dar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alto de filas uniforme

Publicado por Anonimo (1905 intervenciones) el 17/08/2020 13:39:15
Normalmente las líneas de detalle van en la seccion cero de los informes (y de los formularios) es la primera (y unica) seccion que se puede considerar como indispensable.

Los informes se generan sobre la marcha y suelen dar varias vueltas (internamente) con el fin de ajustar controles a la presentacion que diseño el programador.

Si todos los controles están en una única línea, la altura de la sección que los contiene se adaptara al mayor de ellos (si se le activa la expansión dinámica al diseñarlos).

El resto pueden simplemente asumir la altura de la sección detalle como su propia altura y así lograr la presentación deseada, en el evento de la sección detalle algo como:

1
2
3
Me.[control_1].Height = Me.section(0).Height
Me.[control_2].Height = Me.section(0).Height
....

En este punto (y si son muchos) podría ser de utilidad el crear listas o arrays

Puede que se tenga que ajustar algo, pues influye incluso el ancho de la línea que conforma el borde (pero ese puente es mejor dejarlo para cuando se llegue al rio)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alto de filas uniforme

Publicado por Ezel (36 intervenciones) el 17/08/2020 19:23:31
Una vez más te agradezco Anónimo y me disculpo por mis aún limitados conocimientos. Quería preguntarte cuál es exactamente la Sección Cero? Es cuando la propiedad "Superior" del objeto tiene un valor Cero? Una tercera y última pregunta a partir de que no estoy muy ducho en VBA: Es posible hacer este procedimiento con funciones de macro? Cómo? Abrazos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Alto de filas uniforme

Publicado por Anonimo (1905 intervenciones) el 17/08/2020 22:58:28
La sección cero es la sección detalle.

Es como la hoja de papel en blanco, después vienen el resto (cabecera de informe y su pie, de pagina y su pie y si hay agrupaciones pues ... también sus cabeceras y pies) y todas se van numerando (si mal no recuerdo) por su categoría, pudiendo darse el caso de que no sean consecutivas (mas bien si lo son, las que no se utilizan 'no se ven' pero se les respeta el numero)..

Según se crean las diferentes secciones, van restando espacio a la sección detalle disminuyendo el numero de líneas que puede presentar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar