Retornar por extenso um valor numérico.
EXT (<exp.N1>, <exp.N2>, <exp.N3>, <exp.N4>)
|
<exp.N1> |
representa um valor numérico ou ponto flutuante para retorno do extenso. |
|
<exp.N2> |
representa um FLAG para determinar a chamada da função, e pode ser, 1 para primeira chamada e 0 para chamadas posteriores. |
|
<exp.N3> |
representa o tamanho para cadeia a ser retornada. |
|
<exp.N4> |
representa um FLAG para determinar o complemento do extenso. 0 representa o extenso apenas no plural, 1 representa o extenso no plural e singular, e 2 representa que nada será adicionado ao extenso. |
Retorna uma cadeia de caracteres representando um valor numérico por extenso.
Para invocar pela primeira vez, <exp.N2> deve ser igual a 1. Para continuar a exibição do extenso deve-se invocar a função com <exp.N2> igual a 0 até que retorne um cadeia vazia.
Esta função ignora o número de casas decimais do valor passado. Caso <exp.N4> seja igual a 1, assume que o número tem duas casas decimais. Utiliza-se <exp.N4> igual a 0, para que assuma que se trata de um valor inteiro. Por default retorna o extenso para REAIS bastando utilizar o comando SET EXT TO para alterar o retorno desta função. Quando <exp.N4> for igual a 2, significa que não serão atribuídas medidas ao valor retornado.
Muito útil na exibição valores numéricos por extenso em programas de folhas de pagamento, controle de pedidos, controle de estoque ,etc...
O exemplo a seguir mostra-nos a utilização desta função. Experimente mudar os argumentos e utilizar o comando SET EXT TO.
val_num = 1234567
var_cad = EXT (val_num,1,30,1)
DO WHILE ! EMPTY (var_cad)
? var_cad
var_cad = EXT (val_num,0,30,1)
ENDDO
* Exibirá: doze mil e trezentos e
* quarenta e cinco reais
* e sessenta e sete centavos
set EXT to "quilo" "quilos" " " " "
? EXT (10,1,30,0) && exibirá dez quilos
$LENTMP, SET DEVICE e SET EXT.