FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Llenar de ceros a la izquierda un numero (GET) SOLUCIONADO
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Llenar de ceros a la izquierda un numero (GET) SOLUCIONADO
Posted: Mon Feb 14, 2011 07: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

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: 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 (fw): Select all Collapse
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
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 01: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 (fw): Select all Collapse
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 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 02: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
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 02:33 AM

o:Refresh() arroja error

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 02: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 (fw): Select all Collapse
@ 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
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 02: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
Posts: 1276
Joined: Tue Dec 28, 2010 01:29 PM
Re: Llenar de ceros a la izquierda un numero (GET)
Posted: Tue Feb 15, 2011 02:45 AM

Gracias Daniel y Williams

Funciona perfecto.

Saludos!

FWH 25.12

Harbour/Hbmk2

Microsoft Visual C++

MySql 8.0

Antigravity

Continue the discussion