Textos en informes

Mi problema es que al recuperar un dato para mostrarlo en un informe, ¿cómo hacer para que en caso de que dichjo valor exceda el tamaño de la etiqueta haya un salto de line y se muestre en una nueva linea dentro de la etiqueta?.

1 Respuesta

Respuesta
1
Por lo que entiendo en tu pregunta tu problema es que en una etiqueta de un informe muestras una dato que, en ocasiones puede tener tanta longitud que te "parte en dos" el dato repartiendo un trozo de él en cada una de las lineas, es así ¿?
Si es así, no tienes opción directa de corregir esto. La forma que se me ocurre para realizar lo que quieres sería la siguiente:
- En el evento PRINT del DETALLE (suponiendo que es un dato que muestras en el detalle) deberías implementar el código necesario para que, sabiendo el número de caracteres que entran en la etiqueta en cuestión, separe el dato a mostrar de una forma "lógica" (sin partir por la mitad los datos) en varias lienas de una longitud máxima igual a la de la etiqueta; es decir,
Si suponemos que tenemos el siguiente dato a mostrar: "este es el dato a mostrar impreso 123,45", y hemos comprobado que el número máximo de caracteres que entra en la etiqueta en cuestión es de 7, deberemos hacer una función que lo que haga sea poner en la etiqueta lo siguiente:
"este es" + chr(13) + chr(10) + "el dato" + chr(13) + chr(10) + "a" + chr(13) + chr(10) + "mostrar" + + chr(13) + chr(10) + "impreso" + chr(13) + chr(10) + "123,45"
Donde chr(13) + chr(10) produce un salto de linea.
Verás que "a mostrar" lo hemos separado en dos lineas, ya que estas palabras juntas superarían la longitud máxima de la etiqueta.
Como ves, es cuestión de utilizar el código para tratar, separar y formatear el texto a mostrar.
Te aconsejo, para que te valga para otras partes del programa u otros programas que puedas hacer, que no codifiques todo esto en el evento PRINT del Detalle, sino en una función a la que le pases por parámetros la cedana de texto a formatear, la longitud con que quieres formatearla y te devuelva el texto ya formateado con esa longitud. De esta forma la función te sservira para muchos otros casos y en tu caso concreto solo deberás hacer una llamada a esa función desde el evento PRINT.
Espero haberte podido ser de ayuda. Ya sabes donde encontrarme para lo que necesites.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas