01. VISIÓN GENERAL

Devolver valores por escrito.

02. PARÁMETROS

nNumToExt

Valor generado por escrito.

lQuantid

Determina si el texto escrito será en valor o en cantidad (estándar = .F.).

nMoeda

Identifica la descripción de la moneda que se obtendrá del parámetro MV_MOEDAx (con x= 1...5).

cPrefixo

Prefijo alternativo. Si se especifica, determina la devolución por escrito, haciendo que la unidad monetaria no se devuelva (estándar = \" \" ).

cIdioma

Determina en qué idioma debe devolverse  el valor por escrito (1=Port,2=Espa,3=Ingl). El estándar es el idioma del sistema.

lCent

Determina si la función debe traer los centavos. El estándar es .T..

lFrac

Determina si los centavos deben devolverse en modo fraccionado (solamente se ejecuta con cIdioma = 3 (Inglés) ).

lUsaCon

-Especifica si se utilizará «y» o «con»  (Solamente se utiliza en el idioma español).

cPosMoed

cPosMoed    -Especifica la posición de la descripción de la moneda (1=Antes del texto; 2=Entre los valores enteros y los centavos; 3=Al final del texto) 

¡Importante!

Al utilizar la funcionalidad de idioma, el sistema buscará la descripción de la moneda por medio de los parámetros MV_MOEDAx y MV_MOEDAPx, donde x es el número de la moneda deseada e informada en la función Extenso por medio de la variable nMoeda.

Para el texto (en singular) que representa la moneda, se utilizarán los existentes MV_MOEDAx (donde x es de 1 a 5) y deben crearse cinco parámetros más MV_MOEDAPx (donde x es de 1 a 5) para los respectivos plurales.

03. EJEMPLO DE UTILIZACIÓN


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.)= "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. OTRAS INFORMACIONES

Función genérica - Extenso

Extenso() (SIGAFAT)

KCS - Extenso() - Conversión a otros idiomas

KCS - Función Extenso texto en plural

GETMV()