& is concatenation. It "glues" two text strings together. And is a logical operator.
Seems like you need a case function here instead of nested IF functions.
But I also don't see any expression to calculate any currency conversions. I see the same math in each section of your calculation so I don't quite see what you are trying to accomplish. But if you are trying to use currency exchange factors to convert currency, this calculation should be done first and then you use a calculation to format the value. Note that your expression are ach the same except for the currency symbol.
thanks Phil, there aren't actually any currency conversions. The way I have set up my DB is a bit more simple as keeping curerncy conversions up to date is difficult. The user inputs the retail amount and then asigns a currency symbol to each artwork record with the field "Currency". When making an invoice they can change it in the artwork portal and then press a button to change all the invoice amounts such as Net and Tax etc to a $ or € etc. The actual amount stays the same. Examples attached.
What I need the above calculation to do is simply put the amounts in to the correct currency setting - £1,000.00. For example.
This is where the results are displayed. you can see some calculations are working, some not.
For your current approach, you need a case function:
But I would do it simpler. Why not make clicking the fields that change currency symbols simply perform a script that sets a text field to the specified currency symbol? OR even format a text field with a custom value list of currency characters?
Then your calculation simplifies to be just:
Let ( [Rint = Int ( ARTWORK::Invoice Total ) ;
Rdec = ARTWORK::Invoice Total - Rint
Artwork::CurrencySymbol & NumToJText ( Rint ; 1 ; 0 ) & "." & Right ( "0" & Rdec * 100 ; 2 )
thank you Phil!