This function returns values in full.
nNumToExt | Value generated in full. |
lQuantid | It determines whether it will be full value or full quantity (default = .F.). |
nMoeda | It identifies the description of the currency that will be taken from the MV_MOEDAx parameter (x= 1...5). |
cPrefixo | Alternative prefix. If specified, prefixes the return and prevents the monetary unit from being returned (default = \" \" ). |
cIdioma | It specifies the language in which to return the function value (1=Port,2=Spa,3=Eng). The default is the System language. |
lCent | It specifies whether the function must return the cents. The default is .T.. |
lFrac | It specifies whether the cents return in fractioned mode (only run if cIdioma = 3 (English)). |
lUsaCon | It specifies whether "y" or "con" is used (only if the language is Spanish). |
cPosMoed | cPosMoed -It specifies the position of the currency description (1=Before the text; 2=Between full values and cents; 3=At the end of the text) |
Important!
When using the language functionality, the system fetches the currency description using the MV_MOEDAx and MV_MOEDAPx parameters, where x represents the number of the desired currency sent to the Extenso function using the nMoeda variable.
For the text (singular) that represents the currency, the existing MV_MOEDAx parameters are used (where x can be 1 to 5), and 5 more MV_MOEDAPx parameters (where x can be 1 to 5) must be created for the respective plurals.
#Include "Protheus.ch" #Include "rwmake.ch" user function Exte() Local nValor as numeric Local lQuantid as logical Local nMoeda as numeric Local cPrefixo as character Local cIdioma as character Local lCent as logical Local lFrac as logical Local lUsaCon as logical Local cPosMoed as character nValor:= 3456.72 lQuantid := .F. nMoeda := 1 cPrefixo:= "" cIdioma := "1" lCent := .T. lFrac := .F. lUsaCon := .T. //Somente espanhol cPosMoed := "2" cTexto := Extenso(nValor, lQuantid, nMoeda, cPrefixo,cIdioma,lCent,lFrac,lUsaCon, cPosMoed ) CONOUT("******************") CONOUT(cTexto)//TRES MIL, QUATROCENTOS E CINQUENTA E SEIS REAIS E SETENTA E DOIS CENTAVOS CONOUT("******************") Return //Exemplos e retornos: /* Extenso(500.00)= "QUINHENTOS REAIS" Extenso(500.00,.f.,2,,1)= "QUINHENTOS DOLARES" Extenso(1999.78 ,.T.,2) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE" Extenso(1999.78 ,.F.,1) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE DOLLARS AND SEVENTY-EIGHT CENTS" Extenso(1999.78 ,.F.,1,,,.F.) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE DOLLARS" Extenso(1999.78 ,.F.,1,,"3",.T.,.T.) = "ONE THOUNSAND NINE HUNDRED AND NINETY-NINE AND 78/100 DOLLARS" Extenso(1999.78 ,.F.,1,,"2",.T.,.F.)= "UM MIL, NOVECIENTOS NOVENTA Y NUEVE DOLARES Y SETENTA Y OCHO CENTAVOS" Extenso(1999.78 ,.F.,1,,"1",.T.,.F.)= "UM MIL, NOVECENTOS E NOVENTA E NOVE DOLARES E SETENTA E OITO CENTAVOS" Extenso(0.85,.F.,1,,"3",.T.,.T.)= "85/100 DOLLARS" Extenso(0.85,.F.,1,,"3",.T.,.F.)= "EIGHTY-FIVE CENTS" Extenso(2001,.F.,1,,"2",.T.,.F.)= "DOS MIL Y UM DOLARES" Extenso(500.05,.F.,1,,"3",.T.,.F.)= "FIVE HUNDRED DOLLARS AND FIVE CENTS" Extenso(500.05,.F.,1,,"3",.T.,.T.)= "FIVE HUNDRED AND 5/100 DOLLARS" Extenso(500.05,.F.,2,,"1",.T.,.T.)= "QUINHENTOS REAIS E CINCO CENTAVOS" */
Generic Function - Extenso
Extenso() (SIGAFAT)
KCS - Extenso() - Conversion to other languages
KCS - Extenso function text in plural
GETMV()