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 

[RESOLVIDO]Como acrescentar um texto em uma coluna da grid

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


Registrado: Sexta-Feira, 7 de Fevereiro de 2014
Mensagens: 192

MensagemEnviada: Sex Ago 14, 2015 2:47 pm    Assunto: [RESOLVIDO]Como acrescentar um texto em uma coluna da grid Responder com Citação

Olá Pessoal,

Então o que eu queria fazer é colocar um texto em uma coluna da grid exemplo:
Eu tenho a coluna Preços que está dessa forma:
Preços
1.000,00
2.000,00
3.000,00

Esses valores que aparecem ali são acrescentados automaticamente pelo datasource linkado nas propriedades do Grid.

E eu só queria acrescentar mais o tipo da moeda exemplo:
Preços
R$ 1.000,00
R$ 2.000,00
R$ 3.000,00

Eu sei que o currency faz isso porém se não me engano ele só funciona para R$, então já não serve para mim porque aqui não se trabalha somente com o real.

Alguem poderia me ajudar?

Desde já agradecido!


Editado pela última vez por x7r3m3x em Sex Ago 14, 2015 5:38 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Ago 14, 2015 3:03 pm    Assunto: Responder com Citação

Como vocês diferenciam o valor apresentado, se é real, dólar, euro?

Existe algum campo que cita qual é o tipo de moeda?
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
x7r3m3x
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Fevereiro de 2014
Mensagens: 192

MensagemEnviada: Sex Ago 14, 2015 3:36 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Como vocês diferenciam o valor apresentado, se é real, dólar, euro?

Existe algum campo que cita qual é o tipo de moeda?


Ola natanbh1,

Tem sim tem o campo MOEDA, lá vai estar especificado qual vai ser o tipo da moeda.

Eu só vou fazer um if moeda tal e acrescentar o R$, U$ na coluna.

EX:
Código:

if datasource.dataset.fieldname('MOEDA').AsString = 'REAL' then
begin
 acrescento o R$ + o valor que já está na linha da coluna Preços.
end;


E ai que eu não sei fazer o que eu quero colocar esse R$ antes do valor.

Eu sei colocar uma imagem utilizando este código no DrawColumnCell da grid:
Código:
imgSinalGrid.Draw(dbProduto.Canvas,Rect.Left+2,Rect.Top+1,0);


Mas nesse caso eu não quero uma imagem eu quero um texto.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Ago 14, 2015 4:23 pm    Assunto: Responder com Citação

Para isso uma alternativa é utilizar campos calculados.

Tente assim:

- Crie um campo calculado chamado PrecoFormatado
- Na query, vá no evento OnCalcFields e adicione o código abaixo:

Código:
With DataSet do
  begin
    if FieldByName('MOEDA').AsString = 'REAL' then
      FieldByName('PrecoFormatado').Value := 'R$' + FormatFloat('#,###,##0.00', FieldByName('PRECO').Value);

    if FieldByName('MOEDA').AsString = 'DOLAR' then
      FieldByName('PrecoFormatado').Value := 'U$' + FormatFloat('#,###,##0.00', FieldByName('PRECO').Value);
  end;


No DBGrid utilize o campo calculado PrecoFormatado no lugar do campo Preco.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
x7r3m3x
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Fevereiro de 2014
Mensagens: 192

MensagemEnviada: Sex Ago 14, 2015 5:17 pm    Assunto: Responder com Citação

Está dando um erro, que é devido ao campo em String 'R$', pois como ele está recebendo um value ele não aceita o String.
Citação:
Invalid value for field 'PrecoFormatado'


Eu fiz o seguinte criei o campo o ClientDataSet:
Nome: PrecoFormatado
Type: Float
FieldType: Calculated

Então eu fui na propriedade OnCalcFields e coloquei o seguinte código:
Código:

  With DataSet do
  begin
    if cdsPesq_ConfiguracaoSistemaUVL.FieldByName('ID_MOEDA').AsString = '1' then
    begin
      FieldByName('PrecoFormatado').Value := 'U$' + FormatFloat('#,##0.00', FieldByName('RENDA').Value);
    end
    else
    if cdsPesq_ConfiguracaoSistemaUVL.FieldByName('ID_MOEDA').AsString = '2' then
    begin
      FieldByName('PrecoFormatado').Value := 'R$' + FormatFloat('#,##0.00', FieldByName('RENDA').Value);
    end
    else
    if cdsPesq_ConfiguracaoSistemaUVL.FieldByName('ID_MOEDA').AsString = '3' then
    begin
      FieldByName('PrecoFormatado').Value := 'G$' + FormatFloat('#,##0.', FieldByName('RENDA').Value);
    end;
  end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 3093
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Ago 14, 2015 5:23 pm    Assunto: Responder com Citação

Como este campo calculado é apenas para consulta altere o tipo de campo para String e teste.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
x7r3m3x
Aprendiz
Aprendiz


Registrado: Sexta-Feira, 7 de Fevereiro de 2014
Mensagens: 192

MensagemEnviada: Sex Ago 14, 2015 5:36 pm    Assunto: Responder com Citação

natanbh1 escreveu:
Como este campo calculado é apenas para consulta altere o tipo de campo para String e teste.

Obrigado natanbh1 deu certo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
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