Fórum Algumas melhorias no DBGrid #349965
02/12/2007
0
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
Curtir tópico
+ 0Posts
02/12/2007
Devmedia
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
03/12/2007
Edilcimar
Gostei + 0
03/12/2007
Devmedia
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
03/12/2007
Silviogs
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
03/12/2007
Devmedia
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
03/12/2007
Devmedia
Cara eu ainda não tenho muito conhecimento em Delphi.
Aonde eu declaro este código?
Agradeço ajuda.
Att.
Gostei + 0
03/12/2007
Devmedia
De vez atribuir a propriedade em SQLQuery.
Declarei em ClientDataSet, e deu certo.
Gostei + 0
03/12/2007
Devmedia
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?
Pessoal sabe como posso fazer?
Agradeço aos dois que me ajudarao a enxergar meus erros ... hehehe.
Muito obrigado.
Att.
Gostei + 0
04/12/2007
Brasidata
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
Clique aqui para fazer login e interagir na Comunidade :)