Trasformare i numeri in lettere tipo Euro negli assegni
Moderatore: Moderatori
-
- Messaggi: 1
- Iscritto il: sabato 13 dicembre 2014, 10:13
Trasformare i numeri in lettere tipo Euro negli assegni
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
Poso farlo con un campo calcolato?
Vi ringrazio molto per l'aiuto.
Oliver
- fabio.beri
- Messaggi: 2041
- Iscritto il: sabato 4 ottobre 2014, 16:24
- Versione FileMaker: 2023
- Sistema operativo: Win/Mac
Re: Trasformare i numeri in lettere tipo Euro negli assegni
Usa la ricerca del forum, perché ne è stato già parlato ampiamente.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19
Omnia Studio
-----------------------------------------
http://tinyurl.com/omniagest2024
- PIG-NAH
- Messaggi: 2564
- Iscritto il: martedì 7 agosto 2007, 2:00
- Località: BIG BANG
Re: Trasformare i numeri in lettere tipo Euro negli assegni
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" ) ) ) )
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" ) ) ) )
FM8 ADV XP SP3
-
- Messaggi: 3
- Iscritto il: domenica 13 gennaio 2013, 12:37
Re: Trasformare i numeri in lettere tipo Euro negli assegni
FileMaker vers. Pro 11 Advanced
Ho inserito la formula in un campo calcolato ma si blocca in quanto non riconosce la funzione Consenti
Grazie
Ho inserito la formula in un campo calcolato ma si blocca in quanto non riconosce la funzione Consenti
Grazie
- PIG-NAH
- Messaggi: 2564
- Iscritto il: martedì 7 agosto 2007, 2:00
- Località: BIG BANG
Re: Trasformare i numeri in lettere tipo Euro negli assegni
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.
Hanno cambiato il nome.
Comunque visto che hai la versione adv ti merita la CF ricorsiva di Ray. Arriva fino a 999 miliardi.
FM8 ADV XP SP3
-
- Messaggi: 3
- Iscritto il: domenica 13 gennaio 2013, 12:37
Re: Trasformare i numeri in lettere tipo Euro negli assegni
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?
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?