** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - [Resuelto] Saber el alto del detalle de un informe
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerrado[Resuelto] Saber el alto del detalle de un informe

 Responder Responder
Autor
Mensaje
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Tema: [Resuelto] Saber el alto del detalle de un informe
    Enviado: 25/Octubre/2020 a las 19:17
Hola.

Necesito saber el alto que toma el detalle de un informe.

He probado esto:

Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
    Debug.Print Me.Detalle.Height
End Sub

pero siempre me da 396 twips, que es el que le tengo puesto en el diseño del informe. Vamos, que no tengo manera de sacarlo. He visto una función:

http://www.mvp-access.es/juanmafan/wizhook/twipsfromfont.htm

sin embargo, no veo cómo hacer funcionar esa función: el procedimiento wzTwipsFromFont hace referencia a la función TwipsFromFont, que, aparte de estar toda comentada, no hace nada. Por lo que no sé cómo obtiene nada.

Gracias.


Editado por zelarra - 26/Octubre/2020 a las 21:59
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14738
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 10:12
Solo para entenderte y que no estés buscando por el lado equivocado, ¿para que necesitas saber la altura del detalle de un informe? Teniendo en cuenta que este puede variar en función del número de registros, no acabo de visualizar el objetivo.  Porque una opción es multiplicar el numero de registros mostrados por la altura...

Un saludo
Xavi, un minyó de Terrassa

Mi web
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 10:31
Hola, Xavi. Muchas gracias por contestar lo primero de todo.

Tengo un informe para generar facturas. Antes, en el pie de página ponía un cuadro de texto para añadir la política de privacidad. Para que no me pidieran cambiar la política de privacidad cada vez que quisieran hacer un cambio, creé una tabla con un campo largo (y acto seguido un formulario) para que pusieran lo que quisieran, y en el informe de la factura lo que hace es un DLookup. Claro, esta campo con la política de privacidad puede tener distintos altos, y, como decía antes, lo tenía en el pie de página, entonces salía cortado. Entonces opté por ponerlo en el pie de informe. Sin embargo, al usuario no le gusta que quede la factura medio vacía cuando solo añada uno o dos conceptos. Para esto, tendría que pasar el campo de la política de privacidad al pie de página.

Sinceramente, llevo varios días dándole vueltas a cómo poder solucionarlo.  El otro día se me ocurrió que quizá podía sacar el alto del detalle, y, en función de él, actuar (poniendo la política tanto en el pie de informe y página, y ocultar según sea), pero es que no puedes saber el alto del detalle del informe en concreto, porque solo te dice el alto que tú le has puesto en el diseño del informe. Esta mañana he estado midiendo las distintas secciones del informe, a ver si podía arreglarlo sin necesidad de código, pero tampoco.

Mira, te paso unas capturas:

https://www.dropbox.com/s/d9ab04z2ipcu5gr/ScreenShot001.jpg?dl=0

https://www.dropbox.com/s/dmzhze0q49hpktm/ScreenShot002.jpg?dl=0

Las medidas del informe son las siguientes:

1,501 --> Margen superior
8,635 --> Encabezado del informe
0,698 --> Detalle
4,778 --> Pie del informe
0,635 --> Margen inferior

Yo no sé cómo plantear esto para darle una solución. No se me ocurren más ideas.

Espero que puedas decirme al respecto.

Un saludo.
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 10:32
Se me ha olvidado comentar que el Concepto también es autoextensible, como la Política de Privacidad. Por tanto, no me vale multiplicar el número de registros por el alto de cada uno, porque puede que algún concepto tenga dos líneas, por ejemplo.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 13:14
Hola.
prueba con algo parecido a:

Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
    Debug.Print Me.Height
End Sub

Espero que ayude a resolver la duda.
Se pueden "Sumar" todos los detalles acumulando el valor en una variable que sea definida  a nivel de módulo
Ya comentas
Un saludo a todos
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 13:54
Hola.

Estoy intentando hacer lo que me has dicho:

Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
    Dim Alto As Long
    Dim Total As Long
    Do While Me.Concepto <> ""
        Alto = Me.Height
        Total = Alto + Total
    Loop
    Debug.Print Total
End Sub

Pero no sé qué condición ponerle en el while.

También he probado a sacar el alto del cuadro de texto de la Política de Privacidad.

Pero, claro, ahora tengo los valores. Pero me da a mí que Detalle_Print se ejecuta después de Detalle_Format, por lo que no me vale de nada tener los valores.
Arriba
prga Ver desplegable
Moderador
Moderador


Unido: 16/Noviembre/2004
Localización: España
Estado: Sin conexión
Puntos: 3523
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 14:21
Hola. 
En un principio la cosa es mas sencilla. Mas o menos así:
Arriba del modulo:
Dim mitotal as long
Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
  mitotal=mitotal +me.height
    Debug.Print mitotal
End Sub

Se supone que en mitotal tendremos el acumulado de alturas del detalle
escrito sin comprobar
Ya comentas.
Un saludo a todos
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 15:11
Vale. Ya tengo el valor:


Y me acabo de dar de bruces con que obtiene ese valor después de los eventos Abrir, Cargar y DarFormato, por lo cual no me sirve para ocultar o mostrar según su valor.

Ahora sí que sí que no sé qué solución darle.


Editado por zelarra - 26/Octubre/2020 a las 15:12
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 15:40
Ni tampoco para darle el alto que me hace falta
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 14025
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 21:49
Aparte de que de vez en cuando hay que decirle al usuario NO, podrías hacer una cosa, tratar la politica de privacidad como un concepto más de la factura. 

Tendrías que obtener las líneas a imprimir como una consulta de unión entre las reales y el literal.

Es un camino a explorar, aunque muy caro me parece el collar para ese perro.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 122
Enlace directo a este mensaje Enviado: 26/Octubre/2020 a las 21:57
Mihura, muchas gracias por la ayuda.

Pero visto lo visto, ya he hecho más de lo que debía.

Cuando le vaya a poner la base de datos, le daré las dos opciones:
  • o dejarlo como está, que no le gusta porque queda el informe medio vacío cuando hay pocos conceptos, pero, a cambio, si el día de mañana tiene que cambiar la política de privacidad pueda hacerlo sin tener que recurrir a mí ni buscar a nadie;
  • o quitarle el formulario, poner una predeterminada en el pie de página, y ancha es Castilla, advirtiéndole que en este caso cualquier cambio me necesito a mí o buscar alguien.
Desde un tiempo a esta parte intento hacer las bases de datos lo más autosuficientes que pueda, como en este caso, que añado un formulario para que pongan la política de privacidad; u otro caso, como poder añadir IVAs y elegir el predeterminado que debe aparecer en los desplegables de la base de datos.

Así es que muchas gracias a todos por participar.

Un saludo.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable