Fórum Descobrir Coluna do DBGrid #370110
29/04/2009
0
Por exemplo, isso aqui funcionaria se o dbgrid mostrasse todos os campos de um dataset, mas por exemplo, o dataSet tem 10 campos, mas no dbgrid quero mostrar somente 6. Aí em determinada situação, preciso saber em qual coluna está determinado campo.
VColuna := DBGrid1.columns[DM.CDSClientes.Fieldbyname(´NOMECAMPO´).Index];
Qualquer dica ajuda.
Obrigado.
Armindo
Curtir tópico
+ 0Posts
29/04/2009
Lehapan
segue uma rotina em anexo...
function Ret_IndiceColuna(dbGrid: TDBGrid; NomeField: string): integer; var x: integer; begin Result := -1; for x := 0 to dbGrid.Columns.Count - 1 do begin if UpperCase(NomeField) = UpperCase(dbGrid.Fields[x].FieldName) then begin Result := x; Break; end ; end; end;
Gostei + 0
30/04/2009
Armindo
Gostei + 0
05/05/2009
Devmedia
Olá Armindo, tudo bom contigo?
Olha eu não entendi essa sua dúvida.
De qual o motivo de voce precisar desta vamos dizer assim ´consulta´.
Porque voce no DBGrid pode predeterminar os FIELD´s que serão visualizados. E assim então estaticamente só vai ser visualizado aquilo. Consecutivamente voce ali mesmo já vai saber qual COLUNA vai está o campo que voce precisa, pois pode colocar na posição que quiser dentro do DBGrid.
Se não foi esta sua dúvida, desculpe pela resposta.
Agora em uma questão de consulta, teria que abordar várias coisas, por exemplo:
-> Nos demais FIELD´s não poderia ter dados duplicados, pois então não seria uma consulta exata.
Questão de código, talvez resolveria com uma busca assim:
DBGrid1.DataSource.DataSet.Locate(´CAMPO´, OQUE QUER CONSULTAR, []);
Caso positivo, ou clique em algum button, não sei como voce fez, ele retornaria a ´Index´ do Field que o ponteiro do DBGrid está consultando. Deu pra entender? Mas acredito que poderia te ajudar.
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)