Fórum Problema com Agregado e Ordenação #290669
03/08/2005
0
Tem um grid, onde a propriedade TitleClick está configurada com:
ClientDataSet.indexFieldNames := Column.FieldName
O ClientDataSet tem um campo agregado que soma os valores de um campo e exibe em um dbedit laaaaa embaixo.
Tudo funciona normalmente, até o momento que tenho q alterar o conteudo do commandtext do clientdataSet (sem alterar as colunas!) só adiciono mais algumas cláusulas no Where para selecionar o que eu quiser na query
Acontece que a partir desse momento o campo agregado começa a funcionar de forma incorreta quando é feita a ordenação das colunas do grid, ele fica acumulando todos os valores, cada vez que é ordenado.
Se alguém tiver alguma solução para esse problema eu agradeço desde já!
Luistuba
Curtir tópico
+ 0Posts
03/08/2005
Ivanh
fiz um componente para substituir os aggregates...
Gostei + 0
21/03/2006
Eselvati
Ederson Selvati
Gostei + 0
14/04/2015
Mário Filho
No término de sua indexação apenas coloque: nomedoseudataset.refresh. Veja no meu exemplo abaixo:
procedure DbGridTitleClick(Column: TColumn);
var
wnome: string;
begin
if assigned(oldcolumn2) then
oldcolumn2.title.color := dbgridPontos2.FixedColor;
wnome:=CdsPontos2.IndexName;
CdsPontos2.IndexDefs.Clear;
if copy(wnome,1,3)='des' then
begin
CdsPontos2.IndexDefs.add('asc_'+column.FieldName,column.FieldName,[]);
CdsPontos2.IndexName:='asc_'+column.FieldName;
column.Title.Color:= clCream;
end
else if (copy(wnome,1,3)='asc') or (copy(wnome,1,3)='') then
begin
CdsPontos2.IndexDefs.add('desc_'+column.FieldName,column.FieldName,[ixdescending]);
CdsPontos2.IndexName:='desc_'+column.FieldName;
column.Title.Color:= clGradientInactiveCaption;
end;
oldcolumn2:= column;
CdsPontos2.Refresh; // ESSA É ALINHA QUE TE INTERESSA !
end;
Boa sorte
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)