ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Formatar Dinheiro no DBEdit

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jul 18, 2011 11:47 am    Assunto: Formatar Dinheiro no DBEdit Responder com Citação

Olá eu quero fazer com que o meu dbedit fique em formato de moeda ao dar um exit dele, eu ja tenho um codigo meio pronto, mais ele nao esta funcionando, no lugar do showmessage(resultado); eu quero que o resultado mostre no dbedit, ou se alguem tiver um outro geito de fazer este codigo pode ajudar tambem Muito Obrigado
O código é este :

Código:
var
  resultado: string;
begin
  resultado := FormatFloat('R$ ###,###,##0.0000', DBEdit14.Text);
  ShowMessage(resultado);
end;



Acontece o seguinte erro

Citação:
[DCC Error] UObras.pas(266): E2250 There is no overloaded version of 'FormatFloat' that can be called with these arguments


_____________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jul 18, 2011 11:55 am    Assunto: Responder com Citação

Galera eu tambem tenho este código

Código:
DBEdit14.Text := FormatFloat('##,#00.0', 200);


só que no lugar do 200 quero colocar o dbedit, eu ja tentei só que o programa diz que falta argumentos algo parecido podem ajudar ?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jul 18, 2011 11:55 am    Assunto: Re: Formatar Dinheiro no DBEdit Responder com Citação

Jonatan500 escreveu:
Olá eu quero fazer com que o meu dbedit fique em formato de moeda ao dar um exit dele, eu ja tenho um codigo meio pronto, mais ele nao esta funcionando, no lugar do showmessage(resultado); eu quero que o resultado mostre no dbedit, ou se alguem tiver um outro geito de fazer este codigo pode ajudar tambem Muito Obrigado
O código é este :

Código:
var
  resultado: string;
begin
  resultado := FormatFloat('R$ ###,###,##0.0000', DBEdit14.Text);
  ShowMessage(resultado);
end;



Acontece o seguinte erro

Citação:
[DCC Error] UObras.pas(266): E2250 There is no overloaded version of 'FormatFloat' that can be called with these arguments


_____________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein
Utilize o display format do TFields do campo da tabela que vc quer modificar e não o dbedit em sí.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Seg Jul 18, 2011 11:57 am    Assunto: Responder com Citação

Exemplo

Código:
cds.fieldbyname('campovalor').displyformat := '#,0.00';

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano366
Novato
Novato


Registrado: Segunda-Feira, 28 de Março de 2011
Mensagens: 7

MensagemEnviada: Seg Jul 18, 2011 12:01 pm    Assunto: Responder com Citação

Siga o Exemplo.
Código:

procedure TForm1.Button1Click(Sender: TObject);
var
  Resultado: Real;
begin
  Resultado:= StrToFloat(Edit1.Text);
  Edit2.Text:= FormatFloat('R$ ##.##0',Resultado);
end;


No seu caso e so troca o edit2.text pelo showmessage.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jul 18, 2011 12:12 pm    Assunto: Responder com Citação

Ola consigui dos dois geitos rsrs Obrigado a todos

Mais eu quero saber se tem como somar agora com estes pontos Obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Thales_fr
Aprendiz
Aprendiz


Registrado: Sábado, 28 de Agosto de 2004
Mensagens: 204

MensagemEnviada: Seg Jul 18, 2011 1:54 pm    Assunto: Responder com Citação

Jonatan500 escreveu:
Ola consigui dos dois geitos rsrs Obrigado a todos

Mais eu quero saber se tem como somar agora com estes pontos Obrigado


Por que você não marca a propriedade Currency do campo (Campos do tipo numérico), pois o dbedit irá formatar como moeda? Ou caso queira diferente, utilize a propriedade DisplayFormat (também dos campos numéricos), colocando a máscara desejada.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Seg Jul 18, 2011 5:54 pm    Assunto: Responder com Citação

ola amigo, mais nao foi isto que eu quis dizer, eu tenho estes dinheiros e tenho uma soma deles ai quando eu vou somar ele impede de somar com os pontos virgulas etc.. o que eu faço para ele somar normal com os pontos e virgulas. Se puder ajudar agradeço

_______________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Thales_fr
Aprendiz
Aprendiz


Registrado: Sábado, 28 de Agosto de 2004
Mensagens: 204

MensagemEnviada: Seg Jul 18, 2011 7:37 pm    Assunto: Responder com Citação

Jonatan500 escreveu:
ola amigo, mais nao foi isto que eu quis dizer, eu tenho estes dinheiros e tenho uma soma deles ai quando eu vou somar ele impede de somar com os pontos virgulas etc.. o que eu faço para ele somar normal com os pontos e virgulas. Se puder ajudar agradeço

_______________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein



Se são dbedits, estão ligados a um datasource que por sua vez está em um dataset, então você deveria somar cada registro através do field e não do componente visual. O field terá o valor como fração, assim como você determinou ao criar o dataset.

Para somar todos registros, faça um while not eof no dataset somando numa variável.

falow
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10653
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Seg Jul 18, 2011 7:41 pm    Assunto: Responder com Citação

Quando vc formata o valor somente é afetado o texto que é exibido e nao no banco de dados. Eu geralmente nao gosto de gravar mascaras no banco e inclusive de cnpj, cpf e etc.
Portanto nao afeta vc mudar a formatação, exceto se o seu campo é um campo de string.


bye
_________________
P.O.W.E.R B.Y D.E.L.P.H.I
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
mantech
Novato
Novato


Registrado: Quinta-Feira, 12 de Agosto de 2010
Mensagens: 19

MensagemEnviada: Seg Jul 18, 2011 7:53 pm    Assunto: Somar campos Responder com Citação

Olá .. boa noite.
- qual o tipo de dados que você está usando no banco de dados para este campo?

- nos exemplos acima, você está apenas formatando a saída do dado para ser visualizado com formato moeda. Na hora da gravação no banco, com o campo formatado, dá algum erro? Se sim, poste o erro, por favor.

- como o colega mais acima citou, você também pode selecionar a opção CURRENCY para TRUE, que você encontra acessando o DATA MODULE, depois sua TABELA e depois o campo em questão.

- não sei qual o banco de dados que você está utilizando, mas se for sql, para somar dois campos, pode utillizar assim no seu select:
SELECT SUM(VALORCAMPO1 + VALOECAMPO2) AS TOTAL

- e pode usar a função REPLACE também, assim:
SELECT SUM(REPLACE(VALORCAMPO1, ',' , '.') + REPLACE(VALORCAMPO2, ',' , '.')

Não sei é isso que você precisa. E como não sei qual o banco de dados que utiliza e nem o tipo de dados que usa para o campo em questão, estou apenas colocando alternativas.

Espero ter ajudado um pouco mais. Até mais.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Jul 19, 2011 9:35 am    Assunto: Responder com Citação

Ola amigo muito obrigado, mais a opção currency eu ja tentei e ainda continua com o erro, o meu banco de dados é o acess e o codigo que eu estou usando para subtrair é este

Código:

var
A : Real;
B : Real;
begin
  A:=StrToFloat(DBEdit27.Text);
  B:=StrToFloat(DBEdit14.Text);
  DBEdit22.Text := FloatToStr(A-B);
  DBEdit15.Text:=DateToStr(Date);
end;


e agora eu consigui fazer formatar o campo moeda no DisplayFormat
deste geito #,###0.00

e quando eu vou tentar somar ele da um erro ai aparece o numero que eu digitei e nao subtrai eu nao sei o por que mais se puder ajudar agradeço

_____________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein[/i]
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Thales_fr
Aprendiz
Aprendiz


Registrado: Sábado, 28 de Agosto de 2004
Mensagens: 204

MensagemEnviada: Ter Jul 19, 2011 9:39 am    Assunto: Responder com Citação

Jonatan500 escreveu:
Ola amigo muito obrigado, mais a opção currency eu ja tentei e ainda continua com o erro, o meu banco de dados é o acess e o codigo que eu estou usando para subtrair é este

Código:

var
A : Real;
B : Real;
begin
  A:=StrToFloat(DBEdit27.Text);
  B:=StrToFloat(DBEdit14.Text);
  DBEdit22.Text := FloatToStr(A-B);
  DBEdit15.Text:=DateToStr(Date);
end;


e agora eu consigui fazer formatar o campo moeda no DisplayFormat
deste geito #,###0.00

e quando eu vou tentar somar ele da um erro ai aparece o numero que eu digitei e nao subtrai eu nao sei o por que mais se puder ajudar agradeço

_____________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein[/i]



Cara como você está ligando os dbedits? você sabe como funcionando um controle dataware? O valor é atribuído somente no exit do componente.

Eu sugiro nunca, eu disse nunca trabalhar com os controle dataware diretamente (acessando propriedades text ou checked) e sim pelos datasets. Digo por experiência própria.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Jonatan500
Colaborador
Colaborador


Registrado: Sábado, 8 de Janeiro de 2011
Mensagens: 1064
Localização: Palmas/TO

MensagemEnviada: Ter Jul 19, 2011 9:43 am    Assunto: Responder com Citação

para a conexão estou usando AdoConnection,AdoQuery e DataAcess eu não sei bem o que é dataware pois ainda sou um pouco novo em delphi, mais se puder ajudar agradeço

_______________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Thales_fr
Aprendiz
Aprendiz


Registrado: Sábado, 28 de Agosto de 2004
Mensagens: 204

MensagemEnviada: Ter Jul 19, 2011 9:59 am    Assunto: Responder com Citação

Jonatan500 escreveu:
para a conexão estou usando AdoConnection,AdoQuery e DataAcess eu não sei bem o que é dataware pois ainda sou um pouco novo em delphi, mais se puder ajudar agradeço

_______________________________________________________________
O unico que esta ausente dos erros é aquele que não arrisca acertar
Albert Einstein



O delphi fornece uma API completa para trabalhar com banco de dados. Essa API é baseado na principal classe que é a TDataSet. Essa classe tem as funcionalidades mínimas para controlar os registros (first, next, prior, last, insert, append, delete, post, cancel, etc).
Cada classe de conexão (ADO, IBX, ZeusLib, DBX) implementam uma nova classe que descende da classe base TDataSet.
Os DataSet tem uma propriedade principal que é a Fields. Os Fields são objetos que representam cada campo que irá retornar do SQL / Tabela. O próprio Delphi tenta descobrir o tipo de campo que está vindo e determina do tipo de field que será utilizado (TStringField, TIntegerField, TFloatField, TCurrencyField, TBooleanField, etc).
Quando você escreve um SQL, em geral, é adicionado a um componente do tipo Query.
Para exibir os dados provenientes de um DataSet, utilizamos um componente chamado TDataSource. Esse componente tem a função de unir um componente DataWare (Dbedit, DBCheckbox, dbComboBox, etc) a um componente Dataset.
Os componentes DataWare além de exibir os dados, tem a função de captar a entrada de dados do usuário. Quando o usuário tenta sair do controle, o mesmo tenta colocar o dataset em edição / Inserção e atribui o valor ao campo.
Utilizando esse padrão, os componentes dataware não devem ter suas propriedades como text, checked, acessadas diretamente, pois se você observar a hierarquia dos componentes dataware, eles descendem de componentes básicos do delphi como edit, checkbox.
Ao interferir nas propriedades dos componentes dataware, você impede do mesmo trabalhar corretamente.

Espero ter ajudado. Sugiro ler algum livro de Delphi.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Yahoo Messenger MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB