ordenar por campo aggregate

Delphi

20/04/2005

é possível ordenar os registros pelo campo aggregate do ClientDataset?


Raserafim

Raserafim

Curtidas 0

Respostas

Edilcimar

Edilcimar

20/04/2005

apesar de nunca ter tentado eu não vejo nada que possa impedir


GOSTEI 0
Antoniologica

Antoniologica

20/04/2005

ClienteDataSet1.IndexFieldName:= ´CampoAgregate´;


GOSTEI 0
Arc@njo

Arc@njo

20/04/2005

So tem um problema, como vai ser ordenado? Campos agregados são valores constantes para todos os registros apresentados.


GOSTEI 0
Raserafim

Raserafim

20/04/2005

pessoal, tentei ordenar por ele da forma como disse antoniologica e acontece o seguinte erro:
´Field index out of range´

e Arcanjo acho que o aggregate não tem um valor constante não...


GOSTEI 0
Arc@njo

Arc@njo

20/04/2005

Desculpe, me expressei mal.

Não é um valor constante, campos agregados são como campos calculados, porém eles representam um calculo referente a todos os registros apresentados. Por exemplo: é como se fizesse um select em um arquivo apresentando o codigo, o nome, o salario individual e o salario total de todos os funcionarios, o campo salario total é o campo agregado, ficaria mais ou menos assim a representação;

CODIGO NOME SALARIO SALARIOTOTAL
0000001 XXXXXXXXXXXXXXX 260,00 1040,00
0000002 XXXXXXXXXXXXXXX 360,00 1040,00
0000003 XXXXXXXXXXXXXXX 420,00 1040,00

Campos do tipo agregados são para que se façam o somatorio (ou qualquer outra operação, COUNT, MEDIA, etc.) de valores sem a necessidade de se ficar alterando os mesmos, eles apresentam um valor que se refere ao conjunto de dados apresentados e não referente aos registros, por isto provavelmente não são aceitos como indice pois o valor é o mesmo para todos os registros, além do que não sei se é possivel indexar uma tabela por campos virtuais (campos agregados, calculados, Lookups e InternalCalc são campos virtuais, não existem no banco de dados). Se for possivel, peço desculpas, até então eu não sabia. Mas voltando aos campos agregados, inclusive eles são mostrados em um local aparte na lista de Fields do ClientDataSet, devido ao fato de se referirem ao conjunto de registros como um todo e não pra cada registro como é com os campos calculados. Inclusive acho que este é o motivo do mesmo também

Peço desculpas se falei algo incoerente :oops: , isto é o que sei, mas a gente sempre tem que aprender mais não é. :lol:


GOSTEI 0
Arc@njo

Arc@njo

20/04/2005

não ser disponibilizado nos DBGrids sendo somente listado nos campos DBEdit.
GOSTEI 0
Raserafim

Raserafim

20/04/2005

Arcanjo, na realidade esta é a primeira vez que estou usando o ClientDataset, e não sei exatamente o que faz o aggregate, não sabia que funcionava da forma como vc falou.
Sempre vi muitos elogios a respeito deste componente (comentários do tipo ´este é o melhor componente que a Borland já vez, etc...´) e acho que me empolguei um pouco achando que ele iria ter todas as funcionalidades do meu problema.
acho então que a solução do meu problema está mais para um campo lookup do que para o aggregate.


GOSTEI 0
POSTAR