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) |
¡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.
#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