FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour PICTUREs personalizados
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
PICTUREs personalizados
Posted: Mon Nov 19, 2007 05:52 PM

Como se hacercan los reyes, yo también voy a hacer la carta.

Es España (y creo que en otros paises sucede algo parecido), en la banca se usa el CCC (Código Cuenta Cliente). Éste es un número de 20 cifras con 4 grupos de cifras:

4 para entidad
4 para oficina
2 para dígitos de control
10 para número de cuenta

y el formato sería: 1234.5678.90.1234567890

Es posible hacer un PICTURE para introducir datos de este tipo?

Se puede complicar aún más. También existe el IBAN que es el CCC precedido de 2 caracteres que identifican el pais.

En fin sólo era un deseo para estas Navidades.

Saludos
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
PICTUREs personalizados
Posted: Mon Nov 19, 2007 06:32 PM

Hola Carlos,

No te sirve el picture '@R 9999-9999-99-9999999999' ?
Digamos que estaría bien si conaras que tienes editar, que quieres obtener, el formato en que esta la variable, etc.

Saludos

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
PICTUREs personalizados
Posted: Mon Nov 19, 2007 08:32 PM
Hola Carlos,
como dice Carlos Mora el PICTURE "@R 9999-9999-99-9999999999" va perfecto.
Ya puestos, te pego también un par de funciones para validarlo, por si te son de utilidad.
Un saludo,
Manuel

REDEFINE GET oGet[18] VAR  cCuenta  WHEN nPago=2 VALID ValidaCuenta(cCuenta,nPago) ID 428 OF oFolder:aDialogs[2] PICTURE "@R 9999-9999-99-9999999999" FONT oFont2

*******************************************
FUNCTION VALIDACUENTA(cCuenta,nPago)
*******************************************
Local lValor:=.T.
Local cDigito
//
IF EMPTY(cCuenta) .AND. nPago = 2
   MsgSTOP(OemToAnsi("El n£mero de cuenta bancaria debe tener 20 d¡gitos"),OemToAnsi("­­­ Atenci¢n !!!"))
   lValor=.F.
ENDIF
//
IF !EMPTY(cCuenta)
   //
   IF LEN(ALLTRIM(cCuenta)) < 20
      MsgSTOP(OemToAnsi("El n£mero de cuenta bancaria debe tener 20 d¡gitos"),OemToAnsi("­­­ Atenci¢n !!!"))
      lValor=.F.
   ELSE
   //
   cDigito=DigBanco(SUBSTR(cCuenta,1,8),SUBSTR(cCuenta,11,10))
   //
      IF cDigito <> SUBSTR(cCuenta,9,2)
         MsgSTOP(OemToAnsi("El n£mero de cuenta bancaria es incorrecto"),OemToAnsi("­­­ Atenci¢n !!!"))
         lValor=.F.
      ENDIF
      //
   ENDIF
   //
ENDIF
//
RETURN lValor

*************************************************************************
FUNCTION Digbanco(cRefer1,cRefer2)
*************************************************************************
LOCAL nDigitos := 10
LOCAL aDigito  := ARRAY( nDigitos )
LOCAL aPeso    := { 1, 2, 4, 8, 5, 10, 9, 7, 3, 6 }
LOCAL nSuma    := 0
LOCAL nCont
LOCAL nModulo
LOCAL nResto
LOCAL cDigito1
LOCAL cDigito2

cRefer1 := STRTRAN(cRefer1,'-')
cRefer1 := STRTRAN(cRefer1,'.')
cRefer1 := STRTRAN(cRefer1,'/')
cRefer1 := STRTRAN(cRefer1,' ')
cRefer1 := RIGHT(cRefer1,nDigitos)
cRefer1 := PADL(cRefer1,nDigitos,'0')

cRefer2 := STRTRAN(cRefer2,'-')
cRefer2 := STRTRAN(cRefer2,'.')
cRefer2 := STRTRAN(cRefer2,'/')
cRefer2 := STRTRAN(cRefer2,' ')
cRefer2 := RIGHT(cRefer2,nDigitos)
cRefer2 := PADL(cRefer2,nDigitos,'0')

FOR nCont := 1 to nDigitos
   aDigito[ nCont ] := VAL( SUBSTR( cRefer1, nCont, 1 ) )
   nSuma += ( aDigito[ nCont ] * aPeso[ nCont ] )
NEXT
nModulo  := 11 - INT( nSuma % 11 )
nResto   := IF( nModulo == 10, 1, IF( nModulo == 11, 0, nModulo ) )
cDigito1 := LTRIM(STR(nResto))

nSuma := 0
FOR nCont := 1 to nDigitos
   aDigito[ nCont ] := VAL( SUBSTR( cRefer2, nCont, 1 ) )
   nSuma += ( aDigito[ nCont ] * aPeso[ nCont ] )
NEXT
nModulo  := 11 - INT( nSuma % 11 )
nResto   := IF( nModulo == 10, 1, IF( nModulo == 11, 0, nModulo ) )
cDigito2 := LTRIM(STR(nResto))

RETURN(cDigito1+cDigito2)
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
PICTUREs personalizados
Posted: Mon Nov 19, 2007 09:28 PM

Ya mismo hago un cut & paste y guardo en la libreria de recortes. No lo necesito YA, pero seguro que en breve me va a hacer falta.

¡Gracias por la perla!

Carlos Mora

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1445
Joined: Mon Oct 10, 2005 02:38 PM
PICTUREs personalizados
Posted: Mon Nov 19, 2007 11:04 PM

Gracias a ambos,

de momento haré lo mismo que dice Carlos.

Lo guardo y a ver cuando lo implanto.

Gracias de nuevo.
Carlos G.

Un Saludo

Carlos G.



FiveWin 25.12 + Harbour 3.2.0dev (r2502110321), BCC 7.7 Windows 11 Home

Continue the discussion