Tecnologia, programação e muito Visual FoxPro.

segunda-feira, 21 de setembro de 2009

RE: [usuarios_fox] Consulta

 

A lo mejor esto te puede servir

****************

* Comentarios : conversion de numeros a letras

* Fecha : 9:30:31 9/13/1989

* Modificado : Martin Ibarra Romero

*

* Entrada

* x_numero = cantidad a convertir

* tipo = "N" para pesos y en otro caso dolares

* salida

* leyenda

* ejemplo:

* mensaje=num_let(numero)

*

FUNCTION num_let

PARAMETERS x_numero

PRIVATE leyenda, alfa, N, x, l

* asignacion de leyendas

ciento9 = "NOVECIENTOS "

ciento8 = "OCHOCIENTOS "

ciento7 = "SETECIENTOS "

ciento6 = "SEISCIENTOS "

ciento5 = "QUINIENTOS "

ciento4 = "CUATROCIENTOS "

ciento3 = "TRESCIENTOS "

ciento2 = "DOSCIENTOS "

ciento1 = "CIENTO "

cien = "CIEN "

ciento0 = ''

*

decenta9 = "NOVENTA "

decenta8 = "OCHENTA "

decenta7 = "SETENTA "

decenta6 = "SESENTA "

decenta5 = "CINCUENTA "

decenta4 = "CUARENTA "

decenta3 = "TREINTA "

decenta0 = ''

* RAROS

quince = "QUINCE "

catorce = "CATORCE "

trece = "TRECE "

doce = "DOCE "

once = "ONCE "

*

unidad9 = "NUEVE "

unidad8 = "OCHO "

unidad7 = "SIETE "

unidad6 = "SEIS "

unidad5 = "CINCO "

unidad4 = "CUATRO "

unidad3 = "TRES "

unidad2 = "DOS "

unidad1 = "UN "

unidad0 = ''

unidad00 = ''

unidad09 = "NUEVE "

unidad08 = "OCHO "

unidad07 = "SIETE "

unidad06 = "SEIS "

unidad05 = "CINCO "

unidad04 = "CUATRO "

unidad03 = "TRES "

unidad02 = "DOS "

unidad01 = "UN "

unidad10 = "DIEZ "

unidad11 = "ONCE "

unidad12 = "DOCE "

unidad13 = "TRECE "

unidad14 = "CATORCE "

unidad15 = "QUINCE "

unidad16 = "DIECISEIS "

unidad17 = "DIECISIETE "

unidad18 = "DIECIOCHO "

unidad19 = "DIECINUEVE "

unidad20 = "VEINTE "

unidad21 = "VEINTIUN "

unidad22 = "VEINTIDOS "

unidad23 = "VEINTITRES "

unidad24 = "VEINTICUATRO "

unidad25 = "VEINTICINCO "

unidad26 = "VEINTISEIS "

unidad27 = "VEINTISIETE "

unidad28 = "VEINTIOCHO "

unidad29 = "VEINTINUEVE "

IF x_numero<=0

leyenda="(CERO PESOS 00/100 M.N.)"

ELSE

xcentavos=(x_numero-INT(x_numero))*100

* xcentavos=SUBSTR(ALLTRIM(STR(xcentavos*100,3)),1,2)

xcentavos=strzero(xcentavos,2)

x_numero =INT(x_numero)

leyenda = "("

alfa = ALLTRIM(STR(x_numero,19,9))

l = LEN(alfa)

DO WHILE .T.

DO CASE

CASE l = 19

x = SUBSTR(alfa,1,1)

IF x="1" .AND. SUBSTR(alfa,2,2) = "00"

leyenda = leyenda + cien + "MILLONES "

N = 3

ELSE

IF SUBSTR(alfa,2,2) = "00"

leyenda = leyenda + ciento&x + "MILLONES "

N = 3

ELSE

leyenda = leyenda + ciento&x

N = 1

ENDIF

ENDIF

*

CASE l = 18

x = SUBSTR(alfa,1,2)

IF x > "00" .AND. x < "30"

leyenda = leyenda + unidad&x + "MILLONES "

ELSE

x = SUBSTR(alfa,1,1)

leyenda = leyenda + decenta&x

IF SUBSTR(alfa,2,1) <> "0"

leyenda = leyenda + "Y "

x = SUBSTR(alfa,2,1)

leyenda = leyenda + unidad&x + "MILLONES "

ELSE

leyenda = leyenda + "MILLONES "

ENDIF

ENDIF

N = 2

*

CASE l = 17

x = SUBSTR(alfa,1,1)

IF leyenda = "(" .AND. x="1"

leyenda = leyenda + unidad&x + "MILLON "

ELSE

leyenda = leyenda + unidad&x + "MILLONES "

ENDIF

N = 1

*

CASE l = 16

x = SUBSTR(alfa,1,1)

IF x = "1" .AND. SUBSTR(alfa,2,2) = "00"

leyenda = leyenda + cien + "MIL "

N = 3

ELSE

IF x <> "0" .AND. SUBSTR(alfa,2,2) = "00"

leyenda = leyenda + ciento&x + "MIL "

N = 3

ELSE

leyenda = leyenda + ciento&x

N = 1

ENDIF

ENDIF

*

CASE l = 15

x = SUBSTR(alfa,1,2)

IF x > "00" .AND. x < "30"

leyenda = leyenda + unidad&x + "MIL "

ELSE

x = SUBSTR(alfa,1,1)

leyenda = leyenda + decenta&x

IF SUBSTR(alfa,2,1) <> "0"

leyenda = leyenda + "Y "

x = SUBSTR(alfa,2,1)

leyenda = leyenda + unidad&x

ENDIF

IF SUBSTR(alfa,1,2) <> "00"

leyenda = leyenda + "MIL "

ENDIF

ENDIF

N = 2

*

CASE l = 14

x = SUBSTR(alfa,1,1)

leyenda = leyenda + unidad&x + "MIL "

N = 1

*

CASE l = 13

x = SUBSTR(alfa,1,1)

IF x = "1" .AND. SUBSTR(alfa,2,2) = "00"

leyenda = leyenda + cien

N = 3

ELSE

leyenda = leyenda + ciento&x

N = 1

ENDIF

*

CASE l = 12

x = SUBSTR(alfa,1,2)

IF x > "00" .AND. x < "30"

leyenda = leyenda + unidad&x

ELSE

x = SUBSTR(alfa,1,1)

leyenda = leyenda + decenta&x

IF SUBSTR(alfa,2,1) <> "0"

leyenda = leyenda + "Y "

x = SUBSTR(alfa,2,1)

leyenda = leyenda + unidad&x

ENDIF

ENDIF

N = 3

CASE l = 11

x = SUBSTR(alfa,1,1)

leyenda = leyenda + unidad&x

N = 1

*

ENDCASE

alfa = SUBSTR(alfa,N+1,(LEN(alfa) - N))

l = LEN(alfa)

IF LEN(alfa)==0

EXIT

ENDIF

ENDDO

leyenda = leyenda + " PESOS " + xcentavos + "/100 M.N.)"

ENDIF

RETURN (leyenda)

De: usuarios_fox@yahoogrupos.com.mx [mailto:usuarios_fox@yahoogrupos.com.mx]
En nombre de Arturo Zamudio
Enviado el: lunes, 21 de septiembre de 2009 11:46 a.m.
Para: zorrosmexicanos@googlegroups.com; usuarios_fox@yahoogrupos.com.mx
Asunto: [usuarios_fox] Consulta

Antes que nada, que tengan un estupendo inicio de semana tod@s.

Soy autodidacta en el visual fox, y checando en la pagina de portalfox.com,
encontre una función para convertir numeros a letras, pero no se como
utilizarla. Alguien podria orientarme en ese tema??

Muchas gracias por la atención prestada

Arturo Zamudio
Morelia, Mich
Mexico

[Se han eliminado los trozos de este mensaje que no contenían texto]

[Se han eliminado los trozos de este mensaje que no contenían texto]

__._,_.___
Comentarios, observaciones o si deseas darte de baja avísame a: jamorquecho@hotmail.com

Actividad reciente
Visita tu grupo
Y! Respuestas

Pregunta

Gente real te

responde

Yahoo! Messenger

Mensajero perfecto

Llama de PC a PC

sin costo alguno

Barra Yahoo!

Todo a un clic

Acceso rápido a

servicios Yahoo!

.

__,_._,___

Nenhum comentário:

Arquivo do blog