[firebase-br] FORMATAR VALORES R$

Claudio CatSJ claudio.sj em sercon.com.br
Ter Jul 25 11:08:06 -03 2006


Segue uma copia do e-mail, eu guardei na minha caixa de rascunho.. achei
muito boa ..

daniel, não sei se é seu aniversário, mas aí vai um presentão para você...
hehehe
para selecionar, use como na linha abaixo:
SELECT (SELECT R_REAL FROM SP_REAL(MOV.VALOR)) VALOR,MOV.DATA
FROM CADMOV MOV

/*sp para formatar valores numeric, float, e decimal em R$ 123,123,45
aguenta até 13 dígitos.
* * * não otimizei o código da sp, quem tiver tempo pode fazê-lo.
*/
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 proc.dados ltda */

----- Original Message -----
From: "CPD (Borborema-Imperial Transportes Ltda)" <cpd em borborema.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, July 11, 2006 12:14 PM
Subject: Re: [firebase-br] UDF em Win e Linux
Vc tem algum exemplo de data e valor convertido por SP ?
ex:
15667.58 ===> 15.667,58
15667.587 ===> 15.667,59
CURRENT_TIMESTAMP ===> 11/07/2006 12:14
CURRENT_DATE ===> 11/07/2006





----- Original Message -----
From: "Adalberto de Sousa Monteiro" <adalberto.sm em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, July 25, 2006 10:41 AM
Subject: Re: [firebase-br] FORMATAR VALORES R$


Marcelo
Você saberia me dizer qual o titulo do e-mail para que eu possa procura-lo ?
Tentei achar , mas nao obtive mto sucesso.

Valeu
Adalberto
----- Original Message -----
From: "marcelo luiz stefaniak - teflamar" <marcelo em teflamar.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, July 24, 2006 8:26 PM
Subject: Re: [firebase-br] FORMATAR VALORES R$


na semana passada mandei uma sp que faz isso, veja nas mensagens da lista


----- Original Message -----
From: "Adalberto de Sousa Monteiro" <adalberto.sm em bol.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, July 24, 2006 7:33 PM
Subject: [firebase-br] FORMATAR VALORES R$


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


______________________________________________
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







Mais detalhes sobre a lista de discussão lista