Trasformare i numeri in lettere tipo Euro negli assegni

Utilizzo dei portali in un database FileMaker

Moderatore: Moderatori

Rispondi
Lolly
Messaggi: 1
Iscritto il: sabato 13 dicembre 2014, 10:13

Trasformare i numeri in lettere tipo Euro negli assegni

Messaggio da Lolly » sabato 13 dicembre 2014, 10:32

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

Avatar utente
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

Messaggio da fabio.beri » venerdì 30 gennaio 2015, 12:28

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

Avatar utente
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

Messaggio da PIG-NAH » sabato 31 gennaio 2015, 17:50

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" ) ) ) )
FM8 ADV XP SP3

MardiGrass
Messaggi: 3
Iscritto il: domenica 13 gennaio 2013, 12:37

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Messaggio da MardiGrass » martedì 10 febbraio 2015, 10:47

FileMaker vers. Pro 11 Advanced

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

Grazie

Avatar utente
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

Messaggio da PIG-NAH » martedì 10 febbraio 2015, 11:05

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.
FM8 ADV XP SP3

MardiGrass
Messaggi: 3
Iscritto il: domenica 13 gennaio 2013, 12:37

Re: Trasformare i numeri in lettere tipo Euro negli assegni

Messaggio da MardiGrass » martedì 10 febbraio 2015, 15:50

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?

Rispondi