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

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

Postby Compuin » Mon Feb 14, 2011 7:22 pm

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
Last edited by Compuin on Tue Feb 15, 2011 2:48 am, edited 1 time in total.
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

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

Postby wmormar » Mon Feb 14, 2011 11:10 pm

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.
 
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

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

Postby Compuin » Tue Feb 15, 2011 1:48 am

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
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

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

Postby wmormar » Tue Feb 15, 2011 2:28 am

No es necesaria hacer la transformación, ahi considera el valor de tipo caracter, asi que debe funcionar tal cual.

Algun error?
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

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

Postby Compuin » Tue Feb 15, 2011 2:33 am

o:Refresh() arroja error
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada

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

Postby Daniel Garcia-Gil » Tue Feb 15, 2011 2:34 am

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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

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

Postby Daniel Garcia-Gil » Tue Feb 15, 2011 2:37 am

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
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

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

Postby Compuin » Tue Feb 15, 2011 2:45 am

Gracias Daniel y Williams

Funciona perfecto.

Saludos!
FWH 20.12
Hbmk2 32/64 Bits (Build 19.29.30133)
Microsoft Visual C 32 Bits
MySql 8.0.24 32/64 Bits
VS Code
Compuin
 
Posts: 1213
Joined: Tue Dec 28, 2010 1:29 pm
Location: Quebec, Canada


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 35 guests