DBGrid com TADOTable: formatação de colunas
Pessoal, bom dia. Fiz a pesquisa e não encontrei responta, pronta, para os meus problema. Vejam:
DELPHI 6
No DataModule...
TADOTable -> frequencia
TableName: tab_Freq
MasterSource: DS_Func
MarterFields: id_func
IndexFieldNames: id_func
TDataSource: DS_freq
PROBLEMA -> na DBGrid:
a)ordenar os registros pelo campo/coluna: “data_freq”; e
b)formatar o campo/coluna “valor” para duas casas decimais.
BANCO DE DADOS: Access
Tab_Frequencia (estrutura)
Campo: vr_peso: Numérico/Duplo/3 casas decimais
como resolver?
obrigado
DELPHI 6
No DataModule...
TADOTable -> frequencia
TableName: tab_Freq
MasterSource: DS_Func
MarterFields: id_func
IndexFieldNames: id_func
TDataSource: DS_freq
PROBLEMA -> na DBGrid:
a)ordenar os registros pelo campo/coluna: “data_freq”; e
b)formatar o campo/coluna “valor” para duas casas decimais.
BANCO DE DADOS: Access
Tab_Frequencia (estrutura)
Campo: vr_peso: Numérico/Duplo/3 casas decimais
como resolver?
obrigado
Ananias Duarte
Curtidas 0
Respostas
Bruno Belchior
20/10/2004
na instrução select que retorna o resultado coloque a cláususa order by por exemplo
e para formatar vá até a Query que contém os campos abra o editor de fields (de um duplo clique no componente), clique com o botão direito do mouse na parte branca e clique no menu que aparecer em Add All (adicionar todos) vá até o campo que vc quer que apareca a formatação de duas casas decimais e selecione-o, então vá no object inspector e coloque sua propriedade currency (monetário) como true... espero ter ajudado
Select * From TabEmpresas Order By DataContratacao
e para formatar vá até a Query que contém os campos abra o editor de fields (de um duplo clique no componente), clique com o botão direito do mouse na parte branca e clique no menu que aparecer em Add All (adicionar todos) vá até o campo que vc quer que apareca a formatação de duas casas decimais e selecione-o, então vá no object inspector e coloque sua propriedade currency (monetário) como true... espero ter ajudado
GOSTEI 0
Ananias Duarte
20/10/2004
Valeu Bruno, porém..
1) Não estou usando TADOQuery, isto é: estou usando a própria tabela e mais.. não quero usar query, nesse caso.
2) já fiz a segunda parte da sua resposta, porém não encontrei a propriedade currency.
e agora...
abraços
1) Não estou usando TADOQuery, isto é: estou usando a própria tabela e mais.. não quero usar query, nesse caso.
2) já fiz a segunda parte da sua resposta, porém não encontrei a propriedade currency.
e agora...
abraços
GOSTEI 0
José Henrique
20/10/2004
Fala Ananias,
Nos encontramos aqui. Também decidi portar um aplicativo Access para Delphi e com a ajuda deste fórum e de alguns livros (além da revista Clube Delphi) tô indo.
Quanto a sua solicitação de ordenar o grid, a dica abaixo ordena pela coluna clicada pelo usuário, coloque esta rotina no eveto OnTitleClick do DBGrid:
Caso o usuário clique novamente na mesma coluna ele inverte a ordenação.
Mas se você quiser que o grid já abra e permaneça com apenas uma de ordenação coloque no OnCreate do form:
DM.ADODataSet1.IndexFieldNames := ´data_freq´;
Henrique.
Nos encontramos aqui. Também decidi portar um aplicativo Access para Delphi e com a ajuda deste fórum e de alguns livros (além da revista Clube Delphi) tô indo.
Quanto a sua solicitação de ordenar o grid, a dica abaixo ordena pela coluna clicada pelo usuário, coloque esta rotina no eveto OnTitleClick do DBGrid:
procedure TForm1.DBGrid1TitleClick(Column: TColumn); var strColuna : string; begin strColuna := Column.Field.FieldName; if DM.ADODataSet1.IndexFieldNames = strColuna then DM.ADODataSet1.IndexFieldNames := strColuna + ´ DESC´ else DM.ADODataSet1.IndexFieldNames := strColuna; end;
Caso o usuário clique novamente na mesma coluna ele inverte a ordenação.
Mas se você quiser que o grid já abra e permaneça com apenas uma de ordenação coloque no OnCreate do form:
DM.ADODataSet1.IndexFieldNames := ´data_freq´;
Henrique.
GOSTEI 0