...
Índice |
---|
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.
EXTENSO
#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()