FileMaker - importes en letra

 
Vista:

importes en letra

Publicado por toni (17 intervenciones) el 26/01/2006 12:33:45
Me gustaria saber si es posible convertir un importe en letra.
Es extraño que no tenga una función para estos casos, o bien yo no la he encontrado.
Si alguien conoce el método, agradecería que me lo indicara.

Ejemplo: Recibo de cobro

Importe: 10, 25
Por este recibo pagará la cantidad de .............. diez Euros con veinticinco céntimos

Saludos,
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
sin imagen de perfil

RE:importes en letra

Publicado por Nicolasio (10 intervenciones) el 27/01/2006 15:53:42
Hay que crear una función que te lo haga...

Aquí te envío una tipo.... a ver si te sirve...

Let ( [ Montante = R1 a Total € ] ;

Case(
Truncate(Mod(Montante;1000000);-3) = 100000;"CIEN ";
Truncate(Mod(Montante;1000000);-5) = 100000;"CIENTO ";
Truncate(Mod(Montante;1000000);-5) = 200000;"DOSCIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 300000;"TRESCIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 400000;"CUATROCIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 500000;"QUINIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 600000;"SEISCIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 700000;"SETECIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 800000;"OCHOCIENTOS ";
Truncate(Mod(Montante;1000000);-5) = 900000;"NOVECIENTOS ")
&

Case(
Truncate(Mod(Montante;100000);-3) = 10000;"DIEZ ";
Truncate(Mod(Montante;100000);-3) = 11000;"ONCE ";
Truncate(Mod(Montante;100000);-3) = 12000;"DOCE ";
Truncate(Mod(Montante;100000);-3) = 13000;"TRECE ";
Truncate(Mod(Montante;100000);-3) = 14000;"CATORCE ";
Truncate(Mod(Montante;100000);-3) = 15000;"QUINCE ";
(Truncate(Mod(Montante;100000);-3) > 15000) and
(Truncate(Mod(Montante;100000);-3) < 20000);"DIEZ Y ";
Truncate(Mod(Montante;100000);-3) = 20000;"VEINTE ";
(Truncate(Mod(Montante;100000);-3) > 20000) and
(Truncate(Mod(Montante;100000);-3) < 30000);"VEINTI";
Truncate(Mod(Montante;100000);-3) = 30000;"TREINTA ";
Truncate(Mod(Montante;100000);-4) = 30000;"TREINTA Y ";
Truncate(Mod(Montante;100000);-3) = 40000;"CUARENTA ";
Truncate(Mod(Montante;100000);-4) = 40000;"CUARENTA Y ";
Truncate(Mod(Montante;100000);-3) = 50000;"CINCUENTA ";
Truncate(Mod(Montante;100000);-4) = 50000;"CINCUENTA Y ";
Truncate(Mod(Montante;100000);-3) = 60000;"SESENTA ";
Truncate(Mod(Montante;100000);-4) = 60000;"SESENTA Y ";
Truncate(Mod(Montante;100000);-3) = 70000;"SETENTA ";
Truncate(Mod(Montante;100000);-4) = 70000;"SETENTA Y ";
Truncate(Mod(Montante;100000);-3) = 80000;"OCHENTA ";
Truncate(Mod(Montante;100000);-4) = 80000;"OCHENTA Y ";
Truncate(Mod(Montante;100000);-3) = 90000;"NOVENTA ";
Truncate(Mod(Montante;100000);-4) = 90000;"NOVENTA Y ")
&

Case(
(Truncate(Mod(Montante;1000000);-3) = 1000) or
((Truncate(Mod(Montante;100000);-3) ≥ 10000) and
(Truncate(Mod(Montante;100000);-3) ≤ 15000));"";
Truncate(Mod(Montante;10000);-3) = 1000;"UN ";
Truncate(Mod(Montante;10000);-3) = 2000;"DOS ";
Truncate(Mod(Montante;10000);-3) = 3000;"TRES ";
Truncate(Mod(Montante;10000);-3) = 4000;"CUATRO ";
Truncate(Mod(Montante;10000);-3) = 5000;"CINCO ";
Truncate(Mod(Montante;10000);-3) = 6000;"SEIS ";
Truncate(Mod(Montante;10000);-3) = 7000;"SIETE ";
Truncate(Mod(Montante;10000);-3) = 8000;"OCHO ";
Truncate(Mod(Montante;10000);-3) = 9000;"NUEVE ")
&

If(Int(Montante/1000) ≥ 1; "MIL "; "")
&

Case(
Truncate(Mod(Montante;1000);0) = 100;"CIEN ";
Truncate(Mod(Montante;1000);-2) = 100;"CIENTO ";
Truncate(Mod(Montante;1000);-2) = 200;"DOSCIENTOS ";
Truncate(Mod(Montante;1000);-2) = 300;"TRESCIENTOS ";
Truncate(Mod(Montante;1000);-2) = 400;"CUATROCIENTOS ";
Truncate(Mod(Montante;1000);-2) = 500;"QUINIENTOS ";
Truncate(Mod(Montante;1000);-2) = 600;"SEISCIENTOS ";
Truncate(Mod(Montante;1000);-2) = 700;"SETECIENTOS ";
Truncate(Mod(Montante;1000);-2) = 800;"OCHOCIENTOS ";
Truncate(Mod(Montante;1000);-2) = 900;"NOVECIENTOS ")
&

Case(
Truncate(Mod(Montante;100);0) = 10;"DIEZ ";
Truncate(Mod(Montante;100);0) = 11;"ONCE ";
Truncate(Mod(Montante;100);0) = 12;"DOCE ";
Truncate(Mod(Montante;100);0) = 13;"TRECE ";
Truncate(Mod(Montante;100);0) = 14;"CATORCE ";
Truncate(Mod(Montante;100);0) = 15;"QUINCE ";
(Truncate(Mod(Montante;100);0) > 15) and
(Truncate(Mod(Montante;100);0) < 20);"DIEZ Y ";
Truncate(Mod(Montante;100);0) = 20;"VEINTE ";
(Truncate(Mod(Montante;100);0) > 20) and
(Truncate(Mod(Montante;100);0) < 30);"VEINTI";
Truncate(Mod(Montante;100);0) = 30;"TREINTA ";
Truncate(Mod(Montante;100);-1) = 30;"TREINTA Y ";
Truncate(Mod(Montante;100);0) = 40;"CUARENTA ";
Truncate(Mod(Montante;100);-1) = 40;"CUARENTA Y ";
Truncate(Mod(Montante;100);0) = 50;"CINCUENTA ";
Truncate(Mod(Montante;100);-1) = 50;"CINCUENTA Y ";
Truncate(Mod(Montante;100);0) = 60;"SESENTA ";
Truncate(Mod(Montante;100);-1) = 60;"SESENTA Y ";
Truncate(Mod(Montante;100);0) = 70;"SETENTA ";
Truncate(Mod(Montante;100);-1) = 70;"SETENTA Y ";
Truncate(Mod(Montante;100);0) = 80;"OCHENTA ";
Truncate(Mod(Montante;100);-1) = 80;"OCHENTA Y ";
Truncate(Mod(Montante;100);0) = 90;"NOVENTA ";
Truncate(Mod(Montante;100);-1) = 90;"NOVENTA Y ")
&

Case(
(Truncate(Mod(Montante;100);0) ≥ 10) and
(Truncate(Mod(Montante;100);0) ≤ 15);"";
Truncate(Mod(Montante;1000000);0) = 0;"CERO ";
Truncate(Mod(Montante;10);0) = 1;"UN ";
Truncate(Mod(Montante;10);0) = 2;"DOS ";
Truncate(Mod(Montante;10);0) = 3;"TRES ";
Truncate(Mod(Montante;10);0) = 4;"CUATRO ";
Truncate(Mod(Montante;10);0) = 5;"CINCO ";
Truncate(Mod(Montante;10);0) = 6;"SEIS ";
Truncate(Mod(Montante;10);0) = 7;"SIETE ";
Truncate(Mod(Montante;10);0) = 8;"OCHO ";
Truncate(Mod(Montante;10);0) = 9;"NUEVE ")
&

If(Truncate(Montante;0) = 1;"Euro con "; "Euros con ")
&

Case(
Round(Mod(Montante;1);2) = ,1;"DIEZ ";
Round(Mod(Montante;1);2) = ,11;"ONCE ";
Round(Mod(Montante;1);2) = ,12;"DOCE ";
Round(Mod(Montante;1);2) = ,13;"TRECE ";
Round(Mod(Montante;1);2) = ,14;"CATORCE ";
Round(Mod(Montante;1);2) = ,15;"QUINCE ";
(Round(Mod(Montante;1);2) > ,15) and
(Round(Mod(Montante;1);2) < ,2);"DIEZ Y ";
Round(Mod(Montante;1);2) = ,2;"VEINTE ";
(Round(Mod(Montante;1);2) > ,2) and
(Round(Mod(Montante;1);2) < ,3);"VEINTI";
Round(Mod(Montante;1);2) = ,3;"TREINTA ";
Truncate(Mod(Montante;1);1) = ,3;"TREINTA Y ";
Round(Mod(Montante;1);2) = ,4;"CUARENTA ";
Truncate(Mod(Montante;1);1) = ,4;"CUARENTA Y ";
Round(Mod(Montante;1);2) = ,5;"CINCUENTA ";
Truncate(Mod(Montante;1);1) = ,5;"CINCUENTA Y ";
Round(Mod(Montante;1);2) = ,6;"SESENTA ";
Truncate(Mod(Montante;1);1) = ,6;"SESENTA Y ";
Round(Mod(Montante;1);2) = ,7;"SETENTA ";
Truncate(Mod(Montante;1);1) = ,7;"SETENTA Y ";
Round(Mod(Montante;1);2) = ,8;"OCHENTA ";
Truncate(Mod(Montante;1);1) = ,8;"OCHENTA Y ";
Round(Mod(Montante;1);2) = ,9;"NOVENTA ";
Truncate(Mod(Montante;1);1) = ,9;"NOVENTA Y ")
&

Case(
(Round(Mod(Montante;1);2) ≥ ,1) and
(Round(Mod(Montante;1);2) ≤ ,15);"";
Round(Mod(Montante;1);2) = 0;"CERO ";
Round(Mod(Montante;,1);2) = ,01;"UN ";
Round(Mod(Montante;,1);2) = ,02;"DOS ";
Round(Mod(Montante;,1);2) = ,03;"TRES ";
Round(Mod(Montante;,1);2) = ,04;"CUATRO ";
Round(Mod(Montante;,1);2) = ,05;"CINCO ";
Round(Mod(Montante;,1);2) = ,06;"SEIS ";
Round(Mod(Montante;,1);2) = ,07;"SIETE ";
Round(Mod(Montante;,1);2) = ,08;"OCHO ";
Round(Mod(Montante;,1);2) = ,09;"NUEVE ")
&

If(Truncate(Mod(Montante;0);2) = ,01;"Céntimo.";"Céntimos.") )
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:importes en letra

Publicado por lupita (15 intervenciones) el 16/02/2006 21:42:11
Está muy útil, a mí me sirvió mucho y ya la implementé.

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