Pagina 1 di 1

Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: sabato 13 dicembre 2014, 10:32
da Lolly
Ciao a tutti. Ho la necessità di trasformare i numeri in lettere, tipo gli importi in Euro negli assegni, che vengono riscritti anche in lettere.
Poso farlo con un campo calcolato?
Vi ringrazio molto per l'aiuto.
Oliver

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: venerdì 30 gennaio 2015, 12:28
da fabio.beri
Usa la ricerca del forum, perché ne è stato già parlato ampiamente.

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: sabato 31 gennaio 2015, 17:50
da PIG-NAH
Se hai una versione PRO di FM, vai alla sezione del forum Funzioni Personalizzate e ci trovi Da numero a testo.
Diversamente puoi usare questa in un semplice campo calcolato.
Devi sostituire NomeCampo con il nome del tuo campo che contiene il numero. Lo fai facilmente con il blocco note.

Casi ( NomeCampo ≤ 0 ; "" ; Lunghezza ( Intero ( NomeCampo ) ) > 9 ; "Valore troppo alto" ;
Consenti ( [ l1 = Lunghezza ( Intero ( NomeCampo ) ) ; l2 = Lunghezza ( Intero ( NomeCampo ) ) - 3 ;
l3 = Lunghezza ( Intero ( NomeCampo ) ) - 6 ] ; Consenti ( [ g1 = RicavaComeNumero ( Destra ( Intero ( NomeCampo ) ; 3 ) ) ;
g2 = RicavaComeNumero ( Destra ( Tronca ( NomeCampo / 1000 ; 0 ) ; 3 ) ) ;
g3 = RicavaComeNumero ( Destra ( Tronca ( NomeCampo / 1000000 ; 0 ) ; 3 ) ) ;
n1 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 ; 1 ) ) ;
n12 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 1 ; 2 ) ) ;
n2 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 1 ; 1 ) ) ;
n3 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 2 ; 1 ) ) ;
n4 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 3 ; 1 ) ) ;
n41 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 4 ; 2 ) ) ;
n5 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 4 ; 1 ) ) ;
n6 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 5 ; 1 ) ) ;
n7 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 6 ; 1 ) ) ;
n71 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 7 ; 2 ) ) ;
n8 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 7 ; 1 ) ) ;
n9 = RicavaComeNumero ( Mezzo ( Intero ( NomeCampo ) ; l1 - 8 ; 1 ) ) ;
rest = Destra ( "00" & Arrotonda ( Modulo ( NomeCampo ; Intero ( NomeCampo ) ) ; 2 ) * 100 ; 2 ) ;
a1 = If ( l1 = 2 ; If ( n12 < 20 ; n12 ; If ( n1 ≠ 0 ; n1 ; "" ) ) ;
Casi ( n12 > 10 and n12 < 20 ; n12 ; n12 = 10 ; n12 ; If ( n1 ≠ 0 ; n1 ; "" ) ) ) ;
b1 = Casi ( a1 < 1 ; "" ; a1 = 1 and l1 ≥ 2 ; "Uno" ; Scegliere ( a1 ; "Zero" ;
"Uno" ; "Due" ; "Tre" ; "Quattro" ; "Cinque" ; "Sei" ; "Sette" ; "Otto" ;
"Nove" ; "Dieci" ; "Undici" ; "Dodici" ; "Tredici" ; "Quattordici" ;
"Quindici" ; "Sedici" ; "Diciassette" ; "Diciotto" ; "Diciannove" ) ) ;
a2 = If ( n12 > 19 ; If ( l1 > 1 ; Sinistra ( n12 ; 1 ) & "0" ; "" ) ; "" ) ;
b2 = Casi ( a2 = 10 ; "Dieci" ; a2 = 20 ; "Venti" ; a2 = 30 ; "Trenta" ;
a2 = 40 ; "Quaranta" ; a2 = 50 ; "Cinquanta" ; a2 = 60 ; "Sessanta" ;
a2 = 70 ; "Settanta" ; a2 = 80 ; "Ottanta" ; a2 = 90 ; "Novanta" ) ;
a3 = If ( n3 ≠ 0 ; If ( l1 > 2 ; n3 ; "" ) ; "" ) ;
b3 = Casi ( a3 = 1 ; "Cento" ; a3 = 2 ; "Duecento" ; a3 = 3 ; "Trecento" ;
a3 = 4 ; "Quattrocento" ; a3 = 5 ; "Cinquecento" ; a3 = 6 ; "Seicento" ;
a3 = 7 ; "Settecento" ; a3 = 8 ; "Ottocento" ; a3 = 9 ; "Novecento" ) ;
a4 = Casi ( l2 ≥ 2 ; If ( n41 < 20 ; n41 ; If ( n4 ≠ 0 ; n4 ; "" ) ) ;
l2 = 1 ; n4 ) ; b4 = If ( a4 = 1 and l2 ≥ 2 ; "Un" ; Scegliere ( a4 ; "" ;
"Mille" ; "Due" ; "Tre" ; "Quattro" ; "Cinque" ; "Sei" ; "Sette" ;
"Otto" ; "Nove" ; "Dieci" ; "Undici" ; "Dodici" ; "Tredici" ; "Quattordici" ;
"Quindici" ; "Sedici" ; "Diciassette" ; "Diciotto" ; "Diciannove" ) )
& If ( l1 > 3 and not ( l1 = 4 and a4 = 1 ) and g2 ≠ 0 ; "mila" ; "" ) ;
a5 = If ( n41 > 19 ; If ( l2 > 1 ; n5 & "0" ; "" ) ; "" ) ;
b5 = Casi ( a5 = 10 ; "Dieci" ; a5 = 20 ; "Venti" ; a5 = 30 ; "Trenta" ;
a5 = 40 ; "Quaranta" ; a5 = 50 ; "Cinquanta" ; a5 = 60 ; "Sessanta" ;
a5 = 70 ; "Settanta" ; a5 = 80 ; "Ottanta" ; a5 = 90 ; "Novanta" ) ;
a6 = If ( l2 > 2 ; n6 ; "" ) ; b6 = Casi ( a6 = 1 ; "Cento" ;
a6 = 2 ; "Duecento" ; a6 = 3 ; "Trecento" ; a6 = 4 ; "Quattrocento" ;
a6 = 5 ; "Cinquecento" ; a6 = 6 ; "Seicento" ; a6 = 7 ; "Settecento" ;
a6 = 8 ; "Ottocento" ; a6 = 9 ; "Novecento" ) ;
a7 = Casi ( l3 ≥ 2 ; If ( n71 < 20 ; n71 ; If ( n7 ≠ 0 ; n7 ; "" ) ) ;
l3 = 1 ; n7 ) ; b7 = If ( a7 = 1 and l3 ≥ 2 ; "Un" ; Scegliere ( a7 ; "" ;
"Unmilione" ; "Due" ; "Tre" ; "Quattro" ; "Cinque" ; "Sei" ;
"Sette" ; "Otto" ; "Nove" ; "Dieci" ; "Undici" ; "Dodici" ; "Tredici" ;
"Quattordici" ; "Quindici" ; "Sedici" ; "Diciassette" ; "Diciotto" ;
"Diciannove" ) )
& If ( l1 > 6 and not ( l1 = 7 and a7 = 1 ) and g3 ≠ 0 ; "milioni" ; "" ) ;
a8 = If ( n71 > 19 ; If ( l3 > 1 ; n8 & "0" ; "" ) ; "" ) ;
b8 = Casi ( a8 = 10 ; "Dieci" ; a8 = 20 ; "Venti" ; a8 = 30 ; "Trenta" ;
a8 = 40 ; "Quaranta" ; a8 = 50 ; "Cinquanta" ; a8 = 60 ; "Sessanta" ;
a8 = 70 ; "Settanta" ; a8 = 80 ; "Ottanta" ; a8 = 90 ; "Novanta" ; ) ;
a9 = If ( l3 > 2 ; n9 ; "" ) ;
b9 = Casi ( a9 = 1 ; "Cento" ; a9 = 2 ; "Duecento" ; a9 = 3 ; "Trecento" ;
a9 = 4 ; "Quattrocento" ; a9 = 5 ; "Cinquecento" ; a9 = 6 ; "Seicento" ;
a9 = 7 ; "Settecento" ; a9 = 8 ; "Ottocento" ; a9 = 9 ; "Novecento" ) ] ;
Proprio ( Sinistra ( b9 ; Lunghezza ( b9 ) - ( a8 = 80 ) ) &
Sinistra ( b8 ; Lunghezza ( b8 ) - ( a7 = 1 or a7 = 8 ) ) &
Sinistra ( b7 ; Lunghezza ( b7 ) ) &
Sinistra ( b6 ; Lunghezza ( b6 ) - ( a5 = 80 ) ) &
Sinistra ( b5 ; Lunghezza ( b5 ) - ( a4 = 1 or a4 = 8 ) ) &
Sinistra ( b4 ; Lunghezza ( b4 ) ) &
Sinistra ( b3 ; Lunghezza ( b3 ) - ( a2 = 80 ) ) &
Sinistra ( b2 ; Lunghezza ( b2 ) - ( a1 = 1 or a1 = 8 ) ) &
b1 ) & " // " & rest & If ( Lunghezza ( rest ) = 1 ; "0" ) ) ) )

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: martedì 10 febbraio 2015, 10:47
da MardiGrass
FileMaker vers. Pro 11 Advanced

Ho inserito la formula in un campo calcolato ma si blocca in quanto non riconosce la funzione Consenti

Grazie

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: martedì 10 febbraio 2015, 11:05
da PIG-NAH
Nella versione 11 di FM mi pare si chiami Dichiara.
Hanno cambiato il nome.
Comunque visto che hai la versione adv ti merita la CF ricorsiva di Ray. Arriva fino a 999 miliardi.

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Inviato: martedì 10 febbraio 2015, 15:50
da MardiGrass
Perfetto, è Dichiara, grazie.

Arriva fino a 999 milioni. Comunque non guadagno di più…

Una cosa ancora:
così com'è la formula rende la virgola con "spazio//spazio" e poi a seguire i decimali in cifre;
ho corretto la formula nell'ultima riga inserendo una sola "/" senza spazi e mi pare tutto proceda bene: non dovrebbe influenzare nulla vero?