Fórum index da coluna dbgrid default #363869
13/09/2008
0
Digaopachesen
Curtir tópico
+ 0Posts
14/09/2008
Marco Salles
isto ja é default .. Nãp precisa de nenhuma codificação extra
Pode criar.. Mas acho que fechar e Abri o DataSet ja Resolve
Gostei + 0
14/09/2008
Digaopachesen
Gostei + 0
15/09/2008
Marco Salles
humm .. Sei . Deve ser pq voce tem os Tfields definidos , criados em Designed
Porém voce pode tentar a função abaixo , que pode ser adicionada ao
evento Onclick do Grid . <Este evento não existe mas pode ser Adicionado>
var i:integer; begin for i:=0 To SeuDataSet.FieldCount-1 do SeuDataSet.Fields[i].Index:=SeuDataSet.Fields[i].FieldNo-1;
Gostei + 0
15/09/2008
Diegotiemann
meuClientDataSet.IndexName:=´DEFAUL_ORDER´;
Mas pelo que me parece não é bem o que você prescisa.
Gostei + 0
16/09/2008
Digaopachesen
ja a função a baixo
meuClientDataSet.IndexName:=´DEFAUL_ORDER´;
não utilizei pq nao estou utilizando clientDataSet, mas valeu pela dica...
Gostei + 0
16/09/2008
Fernando
segue a função
eu uso o TwwDBGrid do infopower
mas pode usar com qualquer um grid
var
IndexDef : TIndexDef;
IntIndex : integer;
strName : String;
blnDescending : boolean;
begin
blnDescending := False;
strName := ´TEMP´+AFieldName;
intIndex := ClientDataSet.IndexDefs.IndexOf(strName);
If ClientDataSet.IndexName = strName then
begin
// ativa indice
IndexDef := ClientDataSet.IndexDefs.Find(strName);
blnDescending := indexDef.DescFields = ´´;
end;
If IntIndex >= 0 then
begin
//deleta indice
ClientDataSet.DeleteIndex(strName);
ClientDataSet.IndexDefs.Delete(intIndex);
end;
IndexDef := ClientDataSet.IndexDefs.AddIndexDef;
IndexDef.Name := strName;
IndexDef.Fields := AFieldName;
If blnDescending then
IndexDef.DescFields := AFieldName;
ClientDataSet.IndexName := strName;
Gostei + 0
16/09/2008
Marco Salles
Tb não entendo... :?: :?:
Pq ao Mudar as colunas de Lugar independentemente
da quantidade de vezes o Valor da Propriedade FieldNo fica inalterado.
O que altera é o valor de Index
Mas poste mais resultados de usa experiência..
Gostei + 0
17/09/2008
Digaopachesen
var i, f:integer; begin inherited; for i:=0 To DBGrid1.FieldCount-1 do begin f:= i; while f <= DBGrid1.FieldCount-1 do begin if i = DBGrid1.Fields[f].FieldNo-1 then DBGrid1.Fields[f].Index:=DBGrid1.Fields[f].FieldNo-1; f:= f + 1; end; end;
um exemplo é o seguinte, vc tem um grid com 10 colunas, ai vc cola a coluna 1 na posição 5 a 3 na posicao 9 e a 4 na posicao 1. eu queria reordenalas como elas estavam da coluna 1 a 10, com a tua retoni ela nao os ordenava como default, agora sim, caso eu tenha feito algo de errado ou alguma bobage porfavor me corriga...vlw pela dica T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)