Algumas melhorias no DBGrid

Delphi

02/12/2007

Olá.

Gostaria da ajuda dos companheiros de fórum para o seguinte.

1ª Dúvida -> Gostaria de formatar uma coluna no meu DBGrid para Currency.
Ou seja, ela é um campo numerico no meu BD MySQL e gostaria de formatar a coluna no DBGrid aond é mostrada para:

R$ 1,50 -> Ou seja. Sómente colocar a indicação monetária.

Já tentei bastante. Já procurei aqui no fórum e demais lugares. Mas não está dando certo.

Ahh. Utilizo Delphi 7, dbExpress, MySQL 5.0


--//--

2ª - Dúvida -> Como posso alterar a propriedade Style do item indicado no DBGrid para Font -> Style := fsBold
Mas somente o que está selecionado pelo indicador do DBGrid.


Agradeço ajuda.
Att.


Devmedia

Devmedia

Curtidas 0

Respostas

Devmedia

Devmedia

02/12/2007

Ahh...

Lembrando que para a primeira duvida. Eu já tentei


procedure TFormProdutos.DBGridDrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin

TFloatField(ClientDataSet1.FieldByName(´VALOR_PRODUTO´)).Currency := True;

end;


E não funcionou.


GOSTEI 0
Edilcimar

Edilcimar

02/12/2007

se vc usa uma query, por exemplo, dê 2 cliques nela, inclua os campos da tabela, selecione o campo requerido e no OI coloque o display format do jeito que quiser


GOSTEI 0
Devmedia

Devmedia

02/12/2007

se vc usa uma query, por exemplo, dê 2 cliques nela, inclua os campos da tabela, selecione o campo requerido e no OI coloque o display format do jeito que quiser



Fui na minha SQLQuery -> adicionei o campo que quero - > mas não aparece Display Format

somente:

Display Label
Display Width

agora no OI ??? Oque significa isso?

Agradeço ajuda.
att.


GOSTEI 0
Silviogs

Silviogs

02/12/2007

Olá

OI deve significar Object Inspector.

tente isso:

const

DISP_FMT_DATA : string = ´dd/mm/yyyy´;
EDIT_FMT_DATA : string = ´#//´;
VALOR_FMT_MONEY : string = ´,,0.00´;
VALOR_FMT_MONEY1 : string = ´R$ ,,0.00´;
VALOR_FMT_PERCT : string = ´¬ 0.00´;
VALOR_FMT_MONEYUS : string = ´US$ ,0.00´;
VALOR_FMT_QUANT : string = ´,0.000´;

DM.Lancamentossaldoatual.DisplayFormat := VALOR_FMT_MONEY;

nose caso use o VALOR_FMT_MONEY1

Silvio Guedes


GOSTEI 0
Devmedia

Devmedia

02/12/2007

Cara descobri meu vacilo, do porque não estava aparecendo o Display Format.
Porque meu campo não estava decimal. E sim VarChar. Vacilo mesmo.
Mas agora.

Fiz como o amigo Edilcimar disse:

Fui na minha SQLQuery -> adicionei o campo que quero - > e em Display Format atribui -> R$

Mas agora quando executo o programa e clico para abrir o Form aonde terá a exibição do valor do produto aparece o seguinte erro:


[color=red:e14ef9d9f4][b:e14ef9d9f4]Project Vendas.exe raised exception class EDatabaseError with message ´SQLQueryProdutos : Field ´PRECO_VENDA´ not found´. Process stopped. Use Step or Run to continue.[/b:e14ef9d9f4][/color:e14ef9d9f4]

Podem me ajudar?
Desde já agradeço atenção.
Att.


GOSTEI 0
Devmedia

Devmedia

02/12/2007

Olá OI deve significar Object Inspector. tente isso: const DISP_FMT_DATA : string = ´dd/mm/yyyy´; EDIT_FMT_DATA : string = ´#//´; VALOR_FMT_MONEY : string = ´,,0.00´; VALOR_FMT_MONEY1 : string = ´R$ ,,0.00´; VALOR_FMT_PERCT : string = ´¬ 0.00´; VALOR_FMT_MONEYUS : string = ´US$ ,0.00´; VALOR_FMT_QUANT : string = ´,0.000´; DM.Lancamentossaldoatual.DisplayFormat := VALOR_FMT_MONEY; nose caso use o VALOR_FMT_MONEY1 Silvio Guedes



Cara eu ainda não tenho muito conhecimento em Delphi.
Aonde eu declaro este código?
Agradeço ajuda.
Att.


GOSTEI 0
Devmedia

Devmedia

02/12/2007

Cara descobri meu vacilo, do porque não estava aparecendo o Display Format. Porque meu campo não estava decimal. E sim VarChar. Vacilo mesmo. Mas agora. Fiz como o amigo Edilcimar disse: Fui na minha SQLQuery -> adicionei o campo que quero - > e em Display Format atribui -> R$ Mas agora quando executo o programa e clico para abrir o Form aonde terá a exibição do valor do produto aparece o seguinte erro: [color=red:f24665d5fa][b:f24665d5fa]Project Vendas.exe raised exception class EDatabaseError with message ´SQLQueryProdutos : Field ´PRECO_VENDA´ not found´. Process stopped. Use Step or Run to continue.[/b:f24665d5fa][/color:f24665d5fa] Podem me ajudar? Desde já agradeço atenção. Att.



De vez atribuir a propriedade em SQLQuery.
Declarei em ClientDataSet, e deu certo.


GOSTEI 0
Devmedia

Devmedia

02/12/2007

AHHHHH...

Agora certim.
De vez colocar a propriedade Display Format. Coloquei a opção Currency como True.

Muito obrigado pela ajuda.
Agora e com a minha segunda dúvida?

2ª - Dúvida -> Como posso alterar a propriedade Style do item indicado no DBGrid para Font -> Style := fsBold Mas somente o que está selecionado pelo indicador do DBGrid.


Pessoal sabe como posso fazer?
Agradeço aos dois que me ajudarao a enxergar meus erros ... hehehe.
Muito obrigado.
Att.


GOSTEI 0
Brasidata

Brasidata

02/12/2007

Olá vizinho de SAMONTE,

Para resolver sua segunda dúvida vc terá que usar um evento do DBGrid ( se não estou enganado é o OnDrawCell ).
Se vc é assinante da Clube Delphi poderá ver uma série de video-aulas do Guinther ´Segredos do DBGrid´ que provavelmente te ajudará bastante.

Seguem duas dessas video-aulas que tratam desse evento:

https://www.devmedia.com.br/articles/viewcomp.asp?comp=6641&;hl=DBGrid

https://www.devmedia.com.br/articles/viewcomp.asp?comp=6413&;hl=DBGrid


GOSTEI 0
POSTAR