Brian Dunning's FileMaker Custom Functions

ImportoInLettereRicorsiva ( parteIntera ; scala )

Re-writes amounts in words in Italian language (2/3)

  Average rating: 4.4 (29 votes) Log in to vote

Federico Severin   Federico Severin
Sevesoftware Engineering
http://www.sevesoftware.it

Share on Facebook Share on Twitter

  Sample input:
ImportoInLettereRicorsiva ( 1234 , 0 )
  Sample output:
milleduecentotrentaquattro

  Function definition: (Copy & paste into FileMaker's Edit Custom Function window)

// IMPORTANT: you need also the custom function NumeroATesto

// This is a recursive function that process a number translating the 3 rightmost ciphers and recursively calls herself to analyze the remaining part of the number, proceeding from right to left
// E.g.: if parteIntera = 123.546.789, the actual call will translate 789 in letters, appending to it's left the result of the recursive call on 123.456 and incrementing scala so that we shift of 3 positions the value of digits

// The first time ImportoInLettereRicorsiva is called, scala must be set to 0.

Dichiara (


// parteSinistra is the left part of the number
// left because we proceed from right to left, and than what is left to read is at the left :-)
parteSinistra = Tronca ( parteIntera / 1000 ; 0 );


// If there are no more ciphers at the left, just translate this last number
// else, call recursively the function on the left part of the number, specifying with scala that we are shifting of 3 digits, and append result to the translation of the last 3 digits in this position
If ( parteSinistra = 0 ;
NumeroATesto ( parteIntera ; scala ) ;
ImportoInLettereRicorsiva ( parteSinistra ; scala + 3 ) & NumeroATesto ( parteIntera - parteSinistra * 1000 ; scala )
)

)

 

Comments

Log in to post comments.

 

Note: these functions are not guaranteed or supported by BrianDunning.com. Please contact the individual developer with any questions or problems.

Under construction. Email me your wish list for improvements.