Código de FoxPro/Visual FoxPro - Conversor numero a texto

Versión 1
estrellaestrellaestrellaestrellaestrella(12)

Publicado el 29 de Abril del 2003gráfica de visualizaciones de la versión: Versión 1
26.204 visualizaciones desde el 29 de Abril del 2003
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
FUNCTION Monto2Letra
LPARAMETERS tyMonto, tlDolares
LOCAL lyEntero, lyCentavos, lnNumeroBloques, lnPrimerDigito, lnSegundoDigito, lnTercerDigito, ;
	  lcBloque, lnBloqueCero, lcLetra
 
DIMENSION laUnidades(29), laDecenas(9), laCentenas(9)
 
tyMonto = ROUND(tyMonto, 2)
lyEntero = INT(tyMonto)
lcLetra = IIF(lyEntero = 0, "CERO", "")
lyCentavos = (tyMonto - lyEntero) * 100
 
laUnidades(1) = "UN"
laUnidades(2) = "DOS"
laUnidades(3) = "TRES"
laUnidades(4) = "CUATRO"
laUnidades(5) = "CINCO"
laUnidades(6) = "SEIS"
laUnidades(7) = "SIETE"
laUnidades(8) = "OCHO"
laUnidades(9) = "NUEVE"
laUnidades(10) = "DIEZ"
laUnidades(11) = "ONCE"
laUnidades(12) = "DOCE"
laUnidades(13) = "TRECE"
laUnidades(14) = "CATORCE"
laUnidades(15) = "QUINCE"
laUnidades(16) = "DIECISEIS"
laUnidades(17) = "DIECISIETE"
laUnidades(18) = "DIECIOCHO"
laUnidades(19) = "DIECINUEVE"
laUnidades(20) = "VEINTE"
laUnidades(21) = "VENTIUN"
laUnidades(22) = "VEINTIDOS"
laUnidades(23) = "VEINTITRES"
laUnidades(24) = "VEINTICUATRO"
laUnidades(25) = "VEINTICINCO"
laUnidades(26) = "VEINTISEIS"
laUnidades(27) = "VEINTISIETE"
laUnidades(28) = "VEINTIOCHO"
laUnidades(29) = "VEINTINUEVE"
 
laDecenas(1) = "DIEZ"
laDecenas(2) = "VEINTE"
laDecenas(3) = "TREINTA"
laDecenas(4) = "CUARENTA"
laDecenas(5) = "CINCUENTA"
laDecenas(6) = "SESENTA"
laDecenas(7) = "SETENTA"
laDecenas(8) = "OCHENTA"
laDecenas(9) = "NOVENTA"
 
laCentenas(1) = "CIENTO"
laCentenas(2) = "DOSCIENTOS"
laCentenas(3) = "TRESCIENTOS"
laCentenas(4) = "CUATROCIENTOS"
laCentenas(5) = "QUINIENTOS"
laCentenas(6) = "SEISCIENTOS"
laCentenas(7) = "SETECIENTOS"
laCentenas(8) = "OCHOCIENTOS"
laCentenas(9) = "NOVECIENTOS"
 
lnNumeroBloques = 1
 
DO WHILE lyEntero > 0
	lnPrimerDigito = 0
	lnSegundoDigito = 0
	lnTercerDigito = 0
	lcBloque = ""
	lnBloqueCero = 0
	FOR i = 1 TO 3
		lnDigito = MOD(lyEntero, 10)
		IF lnDigito <> 0 THEN
			DO CASE
				CASE i = 1
					lcBloque = " " + laUnidades(lnDigito)
					lnPrimerDigito = lnDigito
				CASE i = 2
					IF lnDigito <= 2 THEN
						lcBloque = " " + laUnidades((lnDigito * 10) + lnPrimerDigito)
					ELSE
						lcBloque = " " + laDecenas(lnDigito) + IIF(lnPrimerDigito <> 0, " Y", "") + lcBloque
					ENDIF
					lnSegundoDigito = lnDigito
				CASE i = 3
					lcBloque = " " + IIF(lnDigito = 1 AND lnPrimerDigito = 0 AND lnSegundoDigito = 0, "CIEN", ;
					laCentenas(lnDigito)) + lcBloque
					lnTercerDigito = lnDigito
				ENDCASE
		ELSE
			lnBloqueCero = lnBloqueCero + 1
		ENDIF
		lyEntero = INT(lyEntero / 10)
		IF lyentero = 0 THEN
			EXIT FOR
		ENDIF
	ENDFOR
	DO CASE
		CASE lnNumeroBloques = 1
			lcLetra = lcBloque
		CASE lnNumeroBloques = 2
			lcLetra = lcBloque + IIF(lnBloqueCero <> 3, " MIL", "") + lcLetra
		CASE lnNumeroBloques = 3
			lcLetra = lcBloque + IIF(lnPrimerDigito = 1 AND lnSegundoDigito = 0 AND lnTercerDigito = 0, ;
			" MILLON", " MILLONES") + lcLetra
		ENDCASE
	lnNumeroBloques = lnNumeroBloques + 1
ENDDO
IF tlDolares THEN
lcLetra = "(" + ALLTRIM(lcLetra) + IIF(INT(tyMonto) = 1, " DÓLAR ", " DOLARES ") + ;
	REPLICATE("0", 2 - LEN(ALLTRIM(STR(lyCentavos)))) + ALLTRIM(STR(lyCentavos)) + "/100 USD)"
ELSE
	lcLetra = "(" + ALLTRIM(lcLetra) + IIF(INT(tyMonto) = 1, " PESO ", " PESOS ") + ;
	REPLICATE("0", 2 - LEN(ALLTRIM(STR(lyCentavos)))) + ALLTRIM(STR(lyCentavos)) + "/100 M.N.)"
ENDIF
 
RETURN lcLetra
ENDFUNC



Comentarios sobre la versión: Versión 1 (12)

28 de Agosto del 2003
estrellaestrellaestrellaestrellaestrella
Programa escencial para facturas / notas, etc , etc, etc.
te ahorrará mucho tiempo y estra programado de una manera muy sólida. excelente!
Responder
29 de Marzo del 2004
estrellaestrellaestrellaestrellaestrella
Súper bueno y sencillo, indispensable para la emisión de Facturas Ncr, Nde, Letras de cambio, emisión de cheques, etc.
Responder
11 de Julio del 2005
estrellaestrellaestrellaestrellaestrella
ESTA BIEN HECHA LA FUNCION FELICIDADES
Responder
10 de Agosto del 2005
estrellaestrellaestrellaestrellaestrella
se puede mejorar, pero en lineas generales esta utilizable.
Responder
16 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
hey donde puedo meter el codigo por que no se donde ponerlo mi caja de texto del valor numerico es la text51 y la caja de texto donde deve aparecer traducido es la text60 como le ago para insertar el codigo
Responder
14 de Septiembre del 2006
estrellaestrellaestrellaestrellaestrella
si funciona muy bien, gracias
Responder
24 de Febrero del 2007
estrellaestrellaestrellaestrellaestrella
Bueno, pero creo que para que sea mas completo podrían pasarse dos parametros mas: La moneda y la pluralización de la moneda, de modo que no solo sean "Pesos". Moneda puede ser "dolar" y la pluralizacion "es" en el caso de "peso" su pluralización sería "s". Si el resultado fuera 1 es muy feo que diga "Un pesos" o "Un dólares"
Responder
11 de Abril del 2007
estrellaestrellaestrellaestrellaestrella
Funciona Correctamente y es muy Practica, el codigo es facil de leer y pqueña.
Responder
Imágen de perfil
26 de Junio del 2008
estrellaestrellaestrellaestrellaestrella
Esta excelente el planteo del programa, sencillo y eficaz.
Felicitaciones Roberto!!!!!
Responder
17 de Noviembre del 2009
estrellaestrellaestrellaestrellaestrella
Muy bueno su trabajo, gracias; ahora prodrias decirme en que parte inserto el codigo o como hago que me lea el valor en la bases de datos

Agradezco toda su colaboración
Responder
20 de Marzo del 2011
estrellaestrellaestrellaestrellaestrella
El código funciona perfecto. Me ahorró tiempo en el desarrollo. Muchisimas Gracias....
Responder
29 de Abril del 2014
estrellaestrellaestrellaestrellaestrella
Código eficaz
( pero... ¿en sus latitudes dicen "un mil" ...? )
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s609