JUSTIFICACION DE TEXTO

1,324 views
Skip to first unread message

PATRICK PALMA

unread,
Apr 30, 2009, 7:06:05 PM4/30/09
to mundovis...@googlegroups.com
Estuve buscando alguna funcion o clase que me permitiera justicar en
un reporte la información contenida en un campo memo, pero no hallé
mucho.

Si ustedes pudieran darme una manito con esto...

Encontre un codigo para justificar texto pero me da error, el cual es
el siguiente a ver si detectan el error...


FUNCTION Justifica(xTexto,xLargo)

* Programa: Justifica
* Parámetros: xTexto, xLargo
* xTexto= Línea a justificar
* xLargo= Largo de la línea
* Escrito: Eduardo Ureña
* País: Costa Rica
* Nota: Si no se desea justificar una línea, deberá terminarla con un punto.

xTex=RTRIM(xTexto) && Sólo elimino los espacios a la derecha
IF EMPTY(xTex) .OR. RIGHT(xTex,1)="."
Cad=xTex
ELSE
J=0
Pal=""
FOR xI=1 TO LEN(xTex)
Let=SUBSTR(xTex,xI,1)
IF Let=" " .OR. xI=LEN(xTex) &&espacio o final de palabra
J=J+1
DIME xVector(J)
IF xI=LEN(xTex)
Pal=Pal+Let
ENDIF
xVector(J)=Pal
Pal=""
ELSE
Pal=Pal+Let
ENDIF
NEXT xI
* Calculando el largo de la cadena sin tomar en cuenta espacios
Lar=0
FOR xI=1 TO Alen(xVector,1) &&Cantidad de filas
Lar=Lar+LEN(xVector(xI))
NEXT xI
Conteo=xLargo-Lar &&Cantidad de espacios a intercalar
Esp=ALEN(xVector,1)-1 &&Espacios entre palabras viables
xEsp=Conteo/Esp &&Número aproximado de espacios a intercalar entre palabras
xxEsp=INT(xEsp)
EspFal=(xEsp-xxEsp)*Esp
Cad=""

IF xI<=EspFal
Vac=SPACE(xxEsp)+SPACE(1)
ELSE
Vac=SPACE(xxEsp)
ENDIF
Cad=Cad+xVector(xI)+Vac

NEXT xI
Cad=Cad+xVector(ALEN(xVector,1))
ENDIF
RETURN Cad


Gracias

Armando Rodríguez

unread,
Apr 30, 2009, 7:24:16 PM4/30/09
to mundovis...@googlegroups.com
Tengo algunos reportes con campos memo, podrías ser mas explícito en tu
problema ?

PATRICK PALMA

unread,
Apr 30, 2009, 7:45:14 PM4/30/09
to mundovis...@googlegroups.com
Quiero que el texto de un campo memo salga justificado, como por ejemplo:

el campo memo tiene el siguiente contenido: "Durante el mes de enero
no hubo reposición del fondo para pagos en efectivo en razón que los
gastos no alcanzaron el 70% de los proyectado."

entonces quiero que en el reporte salga justificado (tipo alineacion
justificada de word) de la siguiente manera:


Durante el mes de enero no hubo reposición
del fondo para pagos en efectivo en razón
que los gastos no alcanzaron el 70% de los
proyectado.

Con la finalidad de tener una mejor presentacion...

Espero haberme explicado mejor

Gracias




2009/4/30 Armando Rodríguez <armandor...@hotmail.com>:

Daniel Manuel López

unread,
Apr 30, 2009, 10:10:21 PM4/30/09
to Zorros verdaeros
Mi estimado Zorrito PATRICK, espero haberte entendido
 
No necesitas ningún programa y ninguna rutina para hacer lo que
deseas, sólo haz lo siguiente:
 
En las propiedades de tu campo text de impresión que recibe tus datos,
Alltrim(tucampomemo)
activa la opción Strech with overflow
y en la opción Object position debe tener activada la opción 2 que es
fix relative to top band
 
prueba eso, espero te pueda servir
saludos..
 

 
> Date: Thu, 30 Apr 2009 18:06:05 -0500

> Subject: [Mundo Visual FoxPro] JUSTIFICACION DE TEXTO

El Malosito Malosito

unread,
Apr 30, 2009, 10:27:24 PM4/30/09
to mundovis...@googlegroups.com
Mi estimado hermano le comento que esa funcion no le va aservir porque hay muchos factores que no has tomado en cuenta
como por ejemplo al ancho de cada letra, cada fuente que windows te brinda tiene una ancho y alto distinto, que tu no puedes pasar por alto.
 
Mi correo es jafj...@hotmail.com, me llamo jose antonio.
 
Tengo la solucion a tu problema y con gusto puedo darte la funcion que tu necesitas y asi poder resolver tu problema.
 
Te comento que la funcion que tengo, te sirve para trabajar dentro de un texbox y justificarlo ó justificar una cadena de texto que sera enviada a un reporte.
 
Atentamente José Antonio desde venezuela.


Connect to the next generation of MSN Messenger  Get it now!

PATRICK PALMA

unread,
May 4, 2009, 10:39:40 AM5/4/09
to mundovis...@googlegroups.com
Amigo Danuel, estoy mas desconcertado... :(

abri el reporte y uno de los campos es Strech, pero no ubico las
propiedades que mencionas y no logro entender tu sugerencia, si no
fuera mucha molestia me podrias dar un ejemplo...

Gracias..



El día 30 de abril de 2009 21:10, Daniel Manuel López
<dman...@hotmail.com> escribió:

Daniel Manuel López

unread,
May 5, 2009, 12:24:39 AM5/5/09
to Zorros verdaeros
Estimado Patrick, disculpa que responda tarde, pero es la hora en que llego a casa.
La información que te doy es el tratamiento de campos memo o textos grandes,
utilizo el Vfp9-sp2, no recuerdo si el Vfp6 ya lo tenga.
 
Te adjunto un archivo en word con tu nombre tratando de explicarte lo que pides, abrelo y luego me
comentas.
 
Espero te sea de ayuda
gracias

 
> Date: Mon, 4 May 2009 09:39:40 -0500
> Subject: [Mundo Visual FoxPro] Re: JUSTIFICACION DE TEXTO
PATRICK.doc

PATRICK PALMA

unread,
May 5, 2009, 12:16:51 PM5/5/09
to mundovis...@googlegroups.com
Estimado Manuel:

Vi el archivo que me enviaste, dejame comentarte que uso el VFP9 pero
la version inciial en español, y que no tiene la presentacion acorde
con las imagenes q me envias.

Pero igualmente tiene las caracterisitcas en español "ajustar
contenido al texto" equivale a "stretch with overflow".

En fin tienes razon en cuanto a la necesidad de utilizar los escritos
justificados, sin embargo esteticamente los reportes que contienen
texto se ven mejor justificados.

Estuve indagando algunas opciones y si existen... pero no cumplen al
100% la exigencia... asi que habrá que seguir intentando o si hay algo
mas de tiempo crear mi propia libreria que sataisfaga la necesidad.

Te agradezco infinitamente el tiempo brindado.

Patrick




El día 4 de mayo de 2009 23:24, Daniel Manuel López
Reply all
Reply to author
Forward
0 new messages