Devolver valores por escrito.
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) |
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. |
#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"
*/
|
KCS - Extenso() - Conversión a otros idiomas
KCS - Función Extenso texto en plural