 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Sex Ago 14, 2015 2:47 pm Assunto: [RESOLVIDO]Como acrescentar um texto em uma coluna da grid |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Ago 14, 2015 3:03 pm Assunto: |
|
|
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 |
|
 |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Sex Ago 14, 2015 3:36 pm Assunto: |
|
|
| 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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Ago 14, 2015 4:23 pm Assunto: |
|
|
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 |
|
 |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Sex Ago 14, 2015 5:17 pm Assunto: |
|
|
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 |
|
 |
natanbh1 Colaborador

Registrado: Terça-Feira, 15 de Março de 2011 Mensagens: 3093 Localização: Belo Horizonte - MG
|
Enviada: Sex Ago 14, 2015 5:23 pm Assunto: |
|
|
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 |
|
 |
x7r3m3x Aprendiz

Registrado: Sexta-Feira, 7 de Fevereiro de 2014 Mensagens: 192
|
Enviada: Sex Ago 14, 2015 5:36 pm Assunto: |
|
|
| 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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|