Como Calcular Ancho en Pixeles de una Variable "FrancicoA"

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

Postby FranciscoA » Sun Jun 14, 2020 3:14 am

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  RUN
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.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

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

Postby remtec » Sun Jun 14, 2020 4:33 am

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.
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

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

Postby FranciscoA » Sun Jun 14, 2020 3:23 pm

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
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

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

Postby remtec » Sun Jun 14, 2020 7:11 pm

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
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

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

Postby FranciscoA » Sun Jun 14, 2020 9:32 pm

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.
Last edited by FranciscoA on Sun Jun 14, 2020 10:30 pm, edited 1 time in total.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

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

Postby remtec » Sun Jun 14, 2020 10:08 pm

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
FWH 22.10 - HARBOUR - PELLES C
remtec
 
Posts: 719
Joined: Fri May 12, 2017 2:50 pm

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

Postby JESUS MARIN » Mon Jun 15, 2020 10:16 am

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() })
Jesús Marín
JESUS MARIN
 
Posts: 176
Joined: Wed Jan 02, 2019 8:36 am

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 56 guests