Page 2 of 2

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 3:14 am
by FranciscoA
remtec wrote:Me di cuenta de un error, el primer dato oSay1, en algunas ocaciones se imprime en blanco aun cuando el campo en la DBF tiene datos, me he podido dar cuenta, que esto ocurre, cuando el registro anterior el campo de oSay1 no tiene dato, al mostrar el siguiente produce el error.

El ultimo codigo que posteaste funciona bien aqui.

remtec wrote:Le hare una mdificacion, ya que cuando el campo esta vacio, muestra una linea paralela

Parece que el error te daba al intentar quitar lo que defines como linea paralela, que es el "BORDER" con anchura 0.

He procedido a ocultar el oSay (BORDER) cuando el dato está vacío. Para ello cambia la function RefreshData(), como sigue:
Code: Select all  Expand view
Function RefreshData(aoSay, alBorder)

   AEval(aoSay,{|o,n| o:Refresh(),;
         if( Len(alltrim(o:cCaption)) > 0 ,;
             ( o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],6,0), o:Show() ) ,;
             o:Hide() ) })

Return nil
 

Saludos.

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 4:33 am
by remtec
Hola Francisco

Aun cuando en la DBF el primer campo mostrado tiene una dato, el oSay1, muestra el rectando del largo del campo, pero sin dato.

Mira, cambie la DBF y el problema se produce en el oSay1 cuando el campo anterior no contiene dato, en ese caso, el registro siguiente aun cuando en la dbf tiene dato este campo, en la pantalla lo muestra en blanco, como lo indico en la linea de arriba..

Muchos Saludos
Antonio.

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 3:23 pm
by FranciscoA
Antonio,
He modificado la tabla PLANIL.DBF con la que hago las pruebas de este codigo, agregándole un registro vacío, y me funciona sin ningún problema.
Puedes enviarme tu .DBF del problema a: falegria230349@yahoo.es ?
Saludos.

Editado: Comprimela y renombra fichero a .ZOP

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 7:11 pm
by remtec
Hola Francisco

Muchas gracias por toda tus molestias.

Te lo he enviado a tu correo, claro que va como PRG y DBF, 2 archivos chicos.

Muchos Saludos

Antonio

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 9:32 pm
by FranciscoA
Antonio,
El problema lo tienes en la tabla PROFESIO en el campo RUT_PRO (CHAR) cuyos datos tienen la inconsistencia de que algunos contienen 1 espacio en blanco al inicio.

Usualmente yo utilizo el VFP para examinar las tablas DBF.

Puedes hacer un REPLACE ALL rut_pro WITH LTRIM(rut_pro) y listo.
Es altamente recomendable hacer respaldo antes de ejecutar esta opcion.

Saludos.

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Sun Jun 14, 2020 10:08 pm
by remtec
Amigo

Grande Maestro, tremendo error, además considerando lo importante que es este dato.

Nunca he aplicado este tipo de programas para revisar.

Mil gracias por todas las molestias que te has tomado, te agradezco de corazón.

Muchos Saludos.

Antonio

Re: Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

PostPosted: Mon Jun 15, 2020 10:16 am
by JESUS MARIN
Hola a todos

¿ no sería mejor hacer el refresh después de establecer el nuevo ancho ?

ANTES

AEval(aoSay,{|o,n| o:Refresh() ,o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],6,0) })


AHORA

AEval(aoSay,{|o,n| o:nWidth := GetTextWidth( 0, Alltrim(o:cCaption), o:oFont:hFont ) + if(alBorder[n],6,0), o:Refresh() })