Árvore de páginas


01. VISÃO GERAL

Retornar valores em extenso.


02. PARÂMETROS

nNumToExt

Valor gerado por extenso.

lQuantid

Determina se o extenso será em valor ou quantidade (default = .F.).

nMoeda

Identifica a descrição da moeda que será obtida do parâmetro MV_MOEDAx (com x= 1...5).

cPrefixo

Prefixo alternativo. Caso especificado, prefixa o retorno do extenso, fazendo com que a unidade monetária não seja retornada (default = \" \" ).

cIdioma

Especifica em que idioma deve retornar o valor do extenso (1=Port,2=Espa,3=Ingl). O padrão é o idioma do Sistema.

lCent

Especifica se a função deve retornar os centavos. O padrão é .T..

lFrac

Especifica se os centavos retornam em modo fracionado (somente é executado com cIdioma = 3 (Inglês) ).

lUsaCon

-Especifica se será utilizado "y" ou "con"  (Somente utilizado no idioma espanhol).

cPosMoed

cPosMoed    -Especifica a posicao da descrição da moeda (1=Antes do Texto; 2=Entre os valores inteiros e os centavos; 3=No final do texto) 

Importante!

Ao utilizar a funcionalidade de idioma, o sistema buscará a descrição da moeda através dos parâmetro MV_MOEDAx e MV_MOEDAPx, onde x é o número da moeda desejada e passada para a função Extenso através da variável nMoeda.

Para o texto (em singular) que representa a moeda serão usados os já existentes MV_MOEDAx (onde x de 1 a 5) e deverão ser criados mais cinco parâmetros MV_MOEDAPx (onde x de 1 a 5) para os respectivos plurais.

03. EXEMPLO DE UTILIZAÇÃO


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"
*/


04. OUTRAS INFORMAÇÕES

Função genérica - Extenso

Extenso() (SIGAFAT)

KCS - Extenso() - Conversão em outras línguas

KCS - Função Extenso texto no plural

GETMV()