Transformar importes en letras

Post Reply
colthop
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Transformar importes en letras

Post by colthop »

Hola amigos:

Alguien me puede indicar como puedo transformar un importe en letras.

es de cir que una variable con la cantidad 1500,00 me de otra con Mil Quinientos.

Gracias

Un saludo

Carlos
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

usa lo siguiente

Post by Ramon Paredes »

Usa la siguiente funcion :

//====================================
FUNCTION CONVERTIR(WNUMERO,FMONEDA)
//====================================

//Nota: wNumero es la cantidad en Numero a convertir
// fMoneda es el Tipo "Dolares","Euros" etc.
// El valor que devuelve es un texto

IF WNUMERO <= 0
FDESCRIP := 'VALOR 0 (NULO)'
RETURN FDESCRIP
ENDIF

Public vd1[9],vd2[9],vd3[9],vd4[9]

vd1[1] = 'UN'
vd1[2] = 'DOS'
vd1[3] = 'TRES'
vd1[4] = 'CUATRO'
vd1[5] = 'CINCO'
vd1[6] = 'SEIS'
vd1[7] = 'SIETE'
vd1[8] = 'OCHO'
vd1[9] = 'NUEVE'

vd2[1] = 'ONCE'
vd2[2] = 'DOCE'
vd2[3] = 'TRECE'
vd2[4] = 'CATORCE'
vd2[5] = 'QUINCE'
vd2[6] = 'DIECISEIS'
vd2[7] = 'DIECISIETE'
vd2[8] = 'DIECIOCHO'
vd2[9] = 'DIECINUEVE'

vd3[1] = 'DIEZ'
vd3[2] = 'VEINTE'
vd3[3] = 'TREINTA'
vd3[4] = 'CUARENTA'
vd3[5] = 'CINCUENTA'
vd3[6] = 'SESENTA'
vd3[7] = 'SETENTA'
vd3[8] = 'OCHENTA'
vd3[9] = 'NOVENTA'

vd4[1] = 'CIENTO'
vd4[2] = 'DOSCIENTOS'
vd4[3] = 'TRESCIENTOS'
vd4[4] = 'CUATROCIENTOS'
vd4[5] = 'QUINIENTOS'
vd4[6] = 'SEISCIENTOS'
vd4[7] = 'SETECIENTOS'
vd4[8] = 'OCHOCIENTOS'
vd4[9] = 'NOVECIENTOS'

F_CAR = STR(WNUMERO,12,2)
F_CENTAVO= SUBSTR(F_CAR,11,2)
F_CIEN = SUBSTR(F_CAR,7,3)
F_MILES = SUBSTR(F_CAR,4,3)
F_MILLON = SUBSTR(F_CAR,1,3)

fValor = f_millon



d_Millon = dame_des(fvalor)
IF LEN(ALLTRIM(d_Millon)) > 0
IF VAL(FVALOR) = 1
d_Millon = d_millon +' MILLON '
ELSE
d_Millon = d_millon +' MILLONES '
ENDIF

ENDIF

fValor = f_Miles

d_Miles = dame_des(fvalor)
IF LEN(ALLTRIM(d_Miles)) > 0
d_Miles = d_Miles +' MIL '
ENDIF

fValor = f_Cien

d_Cien = dame_des(fvalor)
*IF LEN(ALLTRIM(d_Cien)) > 0

*ENDIF

DCENTAVO = ''
IF VAL(F_Centavo) > 0
DCENTAVO = F_CENTAVO+'/100'
ENDIF


Do Case
** 1 1 1 **
Case Len(AllTrim(d_millon)) > 0 .and. len(alltrim(d_miles)) > 0 .and. len(alltrim(d_cien)) > 0
fDetval = AllTrim(d_millon) +' '+ AllTrim(d_Miles)+' '+AllTrim(d_Cien)+' '+FMONEDA

** 0 1 1 **
Case Len(AllTrim(d_millon)) = 0 .and. len(alltrim(d_miles)) > 0 .and. len(alltrim(d_cien)) > 0
fDetval = AllTrim(d_Miles)+' '+AllTrim(d_Cien)+' '+FMONEDA

** 0 0 1 **
Case Len(AllTrim(d_millon)) = 0 .and. len(alltrim(d_miles)) = 0 .and. len(alltrim(d_cien)) > 0
fDetval = AllTrim(d_Cien)+' '+FMONEDA

** 1 0 1 **
Case Len(AllTrim(d_millon)) > 0 .and. len(alltrim(d_miles)) = 0 .and. len(alltrim(d_cien)) > 0
fDetval = AllTrim(d_millon)+' '+AllTrim(d_Cien)+' '+FMONEDA

** 1 0 0 **
Case Len(AllTrim(d_millon)) > 0 .and. len(alltrim(d_miles)) = 0 .and. len(alltrim(d_cien)) = 0
fDetval = AllTrim(d_millon)+' '+FMONEDA

** 1 1 0 **
Case Len(AllTrim(d_millon)) > 0 .and. len(alltrim(d_miles)) > 0 .and. len(alltrim(d_cien)) = 0
fDetval = AllTrim(d_millon) +' '+ AllTrim(d_Miles)+' '+FMONEDA

** 0 1 0 **
Case Len(AllTrim(d_millon)) = 0 .and. len(alltrim(d_miles)) > 0 .and. len(alltrim(d_cien)) = 0
fDetval = AllTrim(d_Miles)+' '+FMONEDA

EndCase

If Len(AllTrim(dCentavo)) > 0
fDetVal = fDetVal + ' CON ' + dCentavo
Else
fDetVal = fDetVal + ' NETOS'
Endif

*@ 15,1 SAY FDETVAL

Return FDETVAL


FUNCTION DAME_DES
PARAMETER FVALSTR

PRIMER = VAL(SUBSTR(FVALSTR,1,1))
SEG_Y_TER = VAL(SUBSTR(FVALSTR,2,2))
SEGUNDO = VAL(SUBSTR(FVALSTR,2,1))
TERCER = VAL(SUBSTR(FVALSTR,3,1))

FDESCRIP =' '

IF PRIMER > 0
IF SEG_Y_TER = 0 .AND. PRIMER = 1
FDESCRIP = FDESCRIP+'CIEN'
ELSE
FDESCRIP = FDESCRIP+ VD4[PRIMER]
ENDIF

ENDIF

IF SEG_Y_TER > 10 .AND. SEG_Y_TER < 20
FDESCRIP = FDESCRIP+' '+VD2[TERCER]
ELSE
IF SEGUNDO > 0
FDESCRIP = FDESCRIP+' '+VD3[SEGUNDO]
ENDIF
IF TERCER > 0
IF SEGUNDO > 0
FDESCRIP = FDESCRIP+' Y '+VD1[TERCER]
ELSE
FDESCRIP = FDESCRIP+' '+VD1[TERCER]
ENDIF
ENDIF
ENDIF

RETURN FDESCRIP


Ramon Paredes
Managua, Nicaragua
... Desde la Tierra de lagos y Volcanes......
colthop
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Post by colthop »

Gracias Ramon lo introducire en mi programa y a ver si funciona
Post Reply