La versión 9.0 de VFP trajo muchas mejoras para el trabajo con informes. Pero Cesar Chalom va más allá y soluciona el problema de la rotación de textos aun para versiones anteriores de VFP. Como siempre, gracias Cesar por compartirlo.
Cómo rotar textos en sus informes para versiones anteriores de VFP
Artículo original: Rotate texts in your reports for old VFP versions.
http://weblogs.foxite.com/cesarchalom/archive/2007/10/31/5264.aspx
Autor: Cesar Chalom (http://weblogs.foxite.com/cesarchalom
Traducido por: Ana María Bisbé York (amby@telefonica.net)
Para: PortalFox (http://www.portalfox.com)
Este escrito es para aquellos que no se han actualizado a VFP9
Como Ken Murphy dijo en uno de los últimos posts en el foro Foxite: "... solamente por las posibilidades del generador de informe VFP 9, merece la pena y el precio de actualizarse. Todo lo demás es extra."

Cuando trabajé con VFP7, creé una función que utiliza la clase GPIMAGE2 GDI+, que puede descargar de este enlace.
De un vistazo al archivo "Teste.frx" en la carpeta "Examples" de la clase. Debajo hay una imagen de pantalla con posibles resultados utilizando el diseñador de informes.

Cómo utilizarlo:
Después de descargar el archivo, ejecute TESTE.FRX, que utiliza la clase que he creado y se llama GDIPSTRING, que es muy fácil de utilizar. Si abre GDIPSTRING.PRG, verá la nota inicial para los parámetros utilizados.
Básicamente, necesita:
- añadir un objeto imagen
- dar a la imagen el tamaño deseado para la cadena que usted necesita
- hacer doble clic al objeto imagen y seleccionar: "From File" ("Desde archivo")

- llamar a la función GDIPSTRING, como se muestra:
(gdipstring( ; lcDimensionType, ; lnWidth, ; lnHeight, ; lcString, ; lcFontName, ; lnFontSize, ; lcFontStyle, ; lcTextAlignment, ; lnRotation))
Parámetros:
tcDimensionType = carácter, "P" o "I" - tamaño en píxeles o pulgadas
tnWidth = numérico, Ancho
tnHeight = numérico, Alto
tcString = carácter, Cadena de texto
tcFontName = carácter, Nombre de la fuente
tnFontSize = numérico, Tamaño de la fuente
tcFontStyle = carácter, Estilo de la fuente
B - Negrita I - Itálica U - Subrayada S -
tcTextAlignment = carácter, Alineación
C - centrado L - izquierda R - derecha
tnRotation = numérico, Dirección
0 - normal (no recomendado)
1 - Vertical - Rota 90º
2 - Horizontal - Rota 180º (boca abajo)
3 - Vertical - Total 270º
Por ejemplo, si escribe en FROM FILE : (gdipstring("P",190,31,"Foxbrasil","Arial",20,"UB","C",2))
Obtendrá: Cadena "Foxbrasil", Arial, tamaño 20, subrayada negrita, centrado, boca abajo dibujado dentro de un rectángulo virtual de tamaño 190,31 en píxeles.
MUY IMPORTANTE:
No olviden colocar las expresiones entre paréntesis() !!
Después de ejecutar el informe, necesita eliminar manualmente los archivos temporales utilizados para crear los gradientes, justo para una línea de código:
DELETE FILE (ADDBS(GETENV("TEMP")) + "tmp*.jpg")
No se desarrollará más en GpImage2 ni en GdipString. Esto lo digo, porque hay alguna gente que aun no ha actualizado a VFP9 que necesitan emplear GDI+. Hoy, cuando reabrí el código fuente de GdipString, encontré muchas cosas que pueden ser mejoradas. Si está interesado en mejorarlas, sea libre de hacerlo y por favor, envíe sus actualizaciones para que otros también se beneficien.
SOBRE GPIMAGE2:
La clase GPIMAGE2 ofrece un envoltorio a gdiplus.dll que permite utilizar la mayoría de las funciones GDI+. Visite el enlace que tenemos a continuación, descargue el código y ejecute los ejemplos disponibles en la carpeta "EXAMPLES". Aquí encontrará una clase sencilla que permite crear algunos gráficos interesantes, dibujos, informes con etiquetas verticales, etc.
http://cchalom.sites.uol.com.br/GPIMAGE/index.htm
Si no está utilizando Windows XP o VFP8, necesita descargar la versión que se puede distribuir. Hay una buena explicación en el sitio Web GPIMAGE's.
Aquí puede encontrar otros ejemplos, en la página "FAQS"
http://cchalom.sites.uol.com.br/GPIMAGE/faqs.htm
Más información sobre GPIMAGE:
|