Page 1 of 1

Llenar de ceros a la izquierda un numero (GET) SOLUCIONADO

PostPosted: Mon Feb 14, 2011 7:22 pm
by Compuin
Buenas tardes estimados,

Estoy tratando de hacer lo siguiente:

Al colocar un numero en un GET este debe llenarse de 000 a la izquierda, es decir, si coloco 10, debe mostrar 0000000010.

Aca el codigo que estoy tratando de usar:

cCODANT := BANCO->BCO_CODIGO
NUMERO := BANCO->BCO_CODIGO

@ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
VALID CHKBANCO(CODBCO, cCODant)

NUMERO := STRZERO(VAL(NUMERO),12)

Agradeciendo de antemano sus valiosos comentarios

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Mon Feb 14, 2011 11:10 pm
by wmormar
asi hazlo

Estoy tratando de hacer lo siguiente:

Al colocar un numero en un GET este debe llenarse de 000 a la izquierda, es decir, si coloco 10, debe mostrar 0000000010.

Aca el codigo que estoy tratando de usar:

Code: Select all  Expand view
cCODANT := BANCO->BCO_CODIGO
NUMERO := BANCO->BCO_CODIGO

        @ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
        VALID CHKBANCO(CODBCO, cCODant)

function chkbanco( o, c )
        c := STRZERO(VAL(c),12)
        o:refresh()
return .t.
 

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 1:48 am
by Compuin
wmormar wrote:asi hazlo

Estoy tratando de hacer lo siguiente:

Al colocar un numero en un GET este debe llenarse de 000 a la izquierda, es decir, si coloco 10, debe mostrar 0000000010.

Aca el codigo que estoy tratando de usar:

Code: Select all  Expand view
cCODANT := BANCO->BCO_CODIGO
NUMERO := BANCO->BCO_CODIGO

        @ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
        VALID CHKBANCO(CODBCO, cCODant)

function chkbanco( o, c )
        c := STRZERO(VAL(c),12)
        o:refresh()
return .t.
 


Gracias William,

El campo es caracter, de que forma debo transformarlo para que esta funcion trabaje??

Atento a tus comentarios

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 2:28 am
by wmormar
No es necesaria hacer la transformación, ahi considera el valor de tipo caracter, asi que debe funcionar tal cual.

Algun error?

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 2:33 am
by Compuin
o:Refresh() arroja error

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 2:34 am
by Daniel Garcia-Gil
Saludos

Compuin wrote:Buenas tardes estimados,

Estoy tratando de hacer lo siguiente:

Al colocar un numero en un GET este debe llenarse de 000 a la izquierda, es decir, si coloco 10, debe mostrar 0000000010.

Aca el codigo que estoy tratando de usar:

cCODANT := BANCO->BCO_CODIGO
NUMERO := BANCO->BCO_CODIGO

@ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
VALID CHKBANCO(CODBCO, cCODant)

NUMERO := STRZERO(VAL(NUMERO),12)


El codigo que pones de ejemplo es algo confuso...
usas una funcion CHKBANCO que recibe 2 parametros ( CODBCO, cCODant )
CODBCO que es la variable que se llena en el GET y cCODant que es el valor del campo antes del GET
como tratas esos 2 parametros en la funcion CHKBANCO??

asumiendo que quieres llenar el contenido del GET al formato que planteas, pues usa la variable que tienes en el GET (CODBCO), le aplicas el formato (como lo estas haciendo) y actualizas el GET
algo asi

Code: Select all  Expand view
@ 1,1 GET oCodigo VAR CODBCO OF oDlg SIZE 40, 10 ;
VALID ( CODBCO := StrZero( Val( CODBCO), 12 ), oCodigo:Refresh(), .T. )


te expongo el codigo asi, por que no se como interviene cCODANT en tu aplicacion ni que significado tenga o si llevas algun tipo de control sobre este. Son simples conjeturas en base a lo que solicitas y al ejemplo que expusiste

espero ser de utilidad

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 2:37 am
by Daniel Garcia-Gil
Saludos

Compuin wrote:o:Refresh() arroja error


arroja error porque se esta pasando un dato tipo caracter (CODBCO) y estas intentando usar un refresh sobre este el cual no es posible

Re: Llenar de ceros a la izquierda un numero (GET)

PostPosted: Tue Feb 15, 2011 2:45 am
by Compuin
Gracias Daniel y Williams

Funciona perfecto.

Saludos!