FoxPro/Visual FoxPro - CONVERTIR NUMEROS A LETRAS

 
Vista:

CONVERTIR NUMEROS A LETRAS

Publicado por ADA (26 intervenciones) el 09/03/2007 23:50:03
AMIGOS BUENAS TARDES...

POR FAVOR AYUDENME CON LOS SGTE.. NECESITO CONVERTIR NUMEROS A LETRAS EN UN INFORME. POR EJEMPLO 1234 "MIL DOSCIENTOS TREINTA Y CUATRO" ESTO ES PARA UN FACTURA QUE ESTOY HACIENDO...

BAJÉ UN PRG QUE LO HACE, PERO NO SE COMO APLICARLO A MI INFORME.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Amado Garcia Lara (63 intervenciones) el 10/03/2007 00:43:43
yo tengo un pequeño ejemplo que lo uso para expedir recibos de multa ahi te va.
en un form un textbox llamado: "nmulta" con procedimiento valid lo siguiente:

1
2
3
4
5
if nmulta<>0
     pvalor=nmulta
     Thisform.Letra()
Endif
Thisform.Refresh

en el mismo form un txtbox llamado "nump" que es una variable de salida de datos que puedes manipular al reporte..

en el mismo form abres un NewMetoth llamado "letra" al que vas a llamar desde nmulta, si...

dentro de Thisform.Letra introduce el siguiente codigo...

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
******************** PROCEDIMIENTO MONTO ************************
*Este parametro Recibe un Valor Númerico
*Asi lo Valida
* si lo vas utilizar desde dentro de un Form enviale como parametro el numero * a conventri en letras. en este ejemplo le coloco directamente el valor a   * convertir.
 
*public pvalor
 
*pvalor = 3500
**Lparameters pvalor
public nump
IF pvalor <= 0
    MessageBox("El Valor dado es incorrecto, vuelva a intentarlo..")
	Return
Endif
* Le devuelvo la parte enetra del Valor a la variable EnteroV
ENTEROV=INT(pvalor)
N = ""
N1 = "Un"
N2 = "Dos"
N3 = "Tres"
N4 = "Cuatro"
N5 = "Cinco"
N6 = "Seis"
N7 = "Siete"
N8 = "Ocho"
N9 = "Nueve"
N10 = "Diez"
N11 = "Once"
N12 = "Doce"
N13 = "Trece"
N14 = "Catorce"
N15 = "Quince"
N16 = "Dieciseis"
N17 = "Diecisiete"
N18 = "Dieciocho"
N19 = "Diecinueve"
N20 = "Veinte"
N30 = "Treinta"
N40 = "Cuarenta"
N50 = "Cincuenta"
N60 = "Sesenta"
N70 = "Setenta"
N80 = "Ochenta"
N90 = "Noventa"
IF ENTEROV <> 100
	N100 = "Ciento"
ENDIF
IF ENTEROV = 100
	N100="Cien"
ENDIF
N200 = "Doscientos"
N300 = "Trescientos"
N400 = "Cuatrocientos"
N500 = "Quinientos"
N600 = "Seiscientos"
N700 = "Setecientos"
N800 = "Ochocientos"
N900 = "Novecientos"
CONTADOR = 1
INICIO = 1
CADENA = STR(ENTEROV,9)
NUMP = " "
DO WHILE CONTADOR < 4
	SUBCADENA = SUBSTR(CADENA,INICIO, 3)
	CENTENA = SUBSTR(SUBCADENA,1,1)+"00"
	DECENA = SUBSTR(SUBCADENA,2,2)
	UNIDAD = SUBSTR(SUBCADENA,3,1)
	IF VAL(SUBCADENA) > 99
		NUMP = NUMP + N&CENTENA + " "
	ENDIF (SUBCADENA > 99)
	T = VAL(DECENA)
	IF T > 0
	            DO CASE
		CASE (INT(T/10.0) = T/10.0) .OR. (T > 9 .AND. T < 20)
			NUMP = NUMP + N&DECENA
	                      CASE  T > 9 .AND. (INT(T/10.0) # T/10.0)  
			DECENA = SUBSTR(DECENA,1,1) + "0"
		          IF DECENA # "20"
		              NUMP = NUMP + N&DECENA + " Y " + N&UNIDAD
		         ELSE
		            NUMP = NUMP + "Venti" + N&UNIDAD
	                               ENDIF
		CASE T < 10
	                               NUMP = NUMP + N&UNIDAD
	                 ENDCASE
	ENDIF (T > 0)
                               IF ENTEROV > 999999 .AND. CONTADOR = 1
		NUMP = NUMP + " Millones "
                              ENDIF
	IF NUMP = " Uno Millones "
		NUMP = " Un Millon"
	ENDIF
	IF NUMP = " Ciento  Mil"
		NUMP = " Cien Mil "
	ENDIF
 
                    IF ENTEROV > 999 .AND. CONTADOR = 2 .AND. VAL(SUBCADENA) > 0
		NUMP = NUMP + " Mil "
	ENDIF
	IF NUMP = " Uno Mil "
		NUMP = " Mil "
	ENDIF
	INICIO = CONTADOR * 3 + 1
	CONTADOR = CONTADOR + 1
ENDDO
	CENTAV = pvalor-INT(pvalor)
*	CENTAV = THISFORM.VABO.VALUE - INT(THISFORM.VABO.VALUE)
	CENTAV = ROUND((CENTAV*100),0)
	CENTAV = INT(Centav)
	CENTAV = STR(Centav,2)
	CENTAV = STRTRAN(Centav," ","0")
	NUMP="**("+ NUMP + " Pesos "+ Centav + "/100 M. N.)**"
thisform.refresh
* Al Final en Nump Esta el Valor en Letras
*? nump
*return
**************************** FIN DEL PROCESO...*********************
ESPERO TE SIRVA AMIGO....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

GRACIAS.. PERO TENGO UN PROBLEMA

Publicado por ADA (26 intervenciones) el 13/03/2007 22:09:42
AMADO MUCHAS GRACIAS AMIGO... ME FUNCIONA PERFECTO SIN UTILIZAR PARAMETROS... PERO OCURRE QUE QUIERO USAR UN METODO.. ME VOY A LA OPCION NUEVO METHODO PERO NO SE EN QUE PARTE SE ESCRIBE EL CODIGO... AYUDAME CON ESA PARTESITA TE LO AGRADECERIA POR FAVOR..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por [email protected] (1 intervención) el 18/03/2007 18:50:33
ESTA EXCELENTE..EL CODIGO..

SOLO PARA COMPLEMENTAR: LOS SIGNOS DEPENDEN DEL PAIS

PERU ES:
NUMP="Son : **("+ NUMP + " "+ centav+"/100 Nuevos Soles )**"

SALUDOS AMIGOS

MARCO AMBROSIO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por erick zelaya (1 intervención) el 08/04/2018 19:10:37
esta funcional...me sirve..gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:CONVERTIR NUMEROS A LETRAS

Publicado por Jeremy Narváez (1 intervención) el 28/02/2020 23:52:21
MUCHAS GRACIAS AMIGO... FUNCIONA PERFECTO... TENGO VARIOS AÑOS DE TENER UNA APLICACION DE CONTABILIDAD DE COSTOS INDUSTRIALES QUE ME HA PERMITIDO HACER TODA UNA VIDA, EXISTEN PROGRAMAS EN EL MERCADO SUPER MEJORES EN CUANTO A PRESENTACION Y MANEJO EN LA NET, PERO EL TALON DE AQUILES DE MIS CLIENTES SON LOS COSTOS DE PRODUCCION Y HAN ENCONTRADO EN MIS APLICACIONES LA SOLUCION A SU PROBLEMA, A LOS PROGRAMAS QUE TENGO SOLO LE HACIA FALTA ESTA PARTE DEL PROGRAMA... CONVERTIR NUMEROS A LETRAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar