[firebase-br] FORMATAR VALORES R$

marcelo luiz stefaniak - teflamar marcelo em teflamar.com.br
Ter Jul 25 11:20:07 -03 2006


bom dia amigo,
segue a sp para formatar em r$, e ainda arredonda... (o código pode ser 
enxugado ainda, mas não tive tempo).
veja abaixo, como usá-la:
SELECT fatura1.cod,fatura1.data,
(select r_real from sp_real(fatura1.liquido)) valor_liquido,
(select r_real from sp_real(fatura1.total)) valor_bruto,
fatura1.cliente
FROM fatura1

/* marcelo luiz stefaniak - teflamar processamento de dados ltda */
CREATE PROCEDURE SP_REAL (
    L_VALOR FLOAT)
RETURNS (
    R_INTEIRO FLOAT,
    R_DECIMAL FLOAT,
    R_REAL VARCHAR(15))
AS
declare variable wint1 integer;
declare variable wint2 integer;
declare variable wx smallint;
declare variable w3 smallint;
declare variable wy smallint;
declare variable wletra char(1);
declare variable wtexto varchar(20);
declare variable wtexto1 varchar(20);
declare variable wtexto2 varchar(20);
begin
  r_decimal=:L_VALOR - CAST(L_VALOR AS NUMERIC(11,0));
  if (r_decimal < 0 ) then r_decimal=:L_VALOR - CAST(L_VALOR -1 AS INTEGER);
  r_inteiro=L_VALOR - r_decimal;
  r_decimal=r_decimal * 100;
  wint1=cast(r_inteiro as integer);
  wint2=cast(r_decimal as integer);
  wtexto1=CAST(wint1 AS VARCHAR(10))||'.';
  wx=0;
  wy=0;
  wtexto='';
  while (wx<>13) do
  begin
    wletra=substring(wtexto1 from 1 for 1);
    if (wletra<>'.' and wletra<>'') then
    begin
      wtexto=wletra||wtexto;
      wy=wy+1;
    end
    wtexto1=substring(wtexto1 from 2 for 13);
    wx=wx+1;
  end
  /* wy=número de letras */
  wtexto2='';
  wx=0;w3=0;
  while (wx<>:wy) do
  begin
    wx=wx+1;
    wtexto2=substring(wtexto from 1 for 1)||wtexto2;
    wtexto=substring(wtexto from 2 for 13);
    w3=w3+1;
    if (w3=3 and wtexto<>'') then
    begin
      wtexto2='.'||wtexto2;
      w3=0;
    end
  end
  r_inteiro=wint1;
  r_decimal=wint2;
  r_real=substring(wtexto2||','||substring(100 + wint2 from 2 for 2) from 1 
for 15);
  suspend;
end
/* marcelo luiz stefaniak - teflamar processamento de dados ltda */



----- Original Message ----- 
From: "Rubem Nascimento da Rocha" <djpardalrocha em hotmail.com>
To: <lista em firebase.com.br>
Sent: Tuesday, July 25, 2006 10:50 AM
Subject: Re: [firebase-br] FORMATAR VALORES R$



Depois de abrir o dataset, e antes de executar o relatório, defina a máscara
assim:

TNumericField(<SeuDataSet>.FieldByName(<'nome_campo_com_máscara'>)).DisplayFormat
:= '#,##0.00';

Sds.

>From: "Adalberto de Sousa Monteiro" <adalberto.sm em bol.com.br>
>Reply-To: FireBase <lista em firebase.com.br>
>To: "FireBase" <lista em firebase.com.br>
>Subject: Re: [firebase-br] FORMATAR VALORES R$
>Date: Tue, 25 Jul 2006 10:42:40 -0300
>
>Cara não tenho como utilizar esse tipo de rotina pq estou criando a query
>dinamicamente no programa e ja vinculo essa query ao rave ....
>Não tenho como criar o campo e dizer qual o displayformat ....
>
>Vc saberia como faço para parametrizar isso .. dinammicamente ?
>
>Adalberto.
>
>----- Original Message -----
>From: "Paulo Sérgo Feix" <paulinhofeix em gmail.com>
>To: "FireBase" <lista em firebase.com.br>
>Sent: Monday, July 24, 2006 8:07 PM
>Subject: Re: [firebase-br] FORMATAR VALORES R$
>
>
>Bem que eu saiba se Otimiza fora esta formatação
>no Inspector, no DisplayFormat #,##0.00
>
>
>
>
>Em 24/07/06, Adalberto de Sousa Monteiro<adalberto.sm em bol.com.br> escreveu:
> > Boa noite a todo o grupo,
> > Algúém poderia me informar como faço para formatar um valor com o
>seguinte
> > formato 999.999,00 dentro de um comando select ?
> >
> > Valeu
> > Adalberto
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
>
>
>--
>Paulinho...
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
>Para editar sua configuração na lista, use o endereço
>http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa

_________________________________________________________________
MSN Hotmail, o maior webmail do Brasil. http://www.hotmail.com


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista