RxMemory

Delphi

28/12/2006

Olá...
Alguém sabe como ordenar os registros em uma tabela temporária??
Por exemplo tenho os seguintes campos:
cFabric
Fantasia
cConstrucao
cRefer
dRefer
dModelista
dtCorte
dtReuniaoTecnica
ParTecIni

quero ordenar na sequência: cFabric, Fantasia, cConstrucao


Daia

Daia

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

28/12/2006

RxMemory.SortOnFields(´CAMPO´,True,False);



GOSTEI 0
Daia

Daia

28/12/2006

Obrigada...
Mas como faço para ordenar mais de uma campo... por exemplo:
FPrincipal.temp.SortOnFields(´dRefer´,´Fantasia´,´dFabric´,False,True);
Tem como?


GOSTEI 0
Steve_narancic

Steve_narancic

28/12/2006

tenta
 FPrincipal.temp.SortOnFields(´dRefer,Fantasia,dFabric´,False,True);

ou
FPrincipal.temp.SortOnFields(´dRefer;Fantasia;dFabric´,False,True);


GOSTEI 0
Daia

Daia

28/12/2006

até aceitou o código do jeito q vc colocou, mas não está organizando...
Coloquei o código no BeforePrint da banda...


GOSTEI 0
Daia

Daia

28/12/2006

alguém?


GOSTEI 0
Daia

Daia

28/12/2006

na verdade ele está ordenando na ordem decresente... e gostaria que fosse ascendente... alguém pode me ajudar?


GOSTEI 0
Ronaldo Pimenta

Ronaldo Pimenta

28/12/2006

Olha eu estou meio que sem tempo para te explicar mas dá uma
olhada pra ver se vc tira algum proveito


procedure TF_ListPADRAO.ClassificaoCrescente1Click(Sender: TObject);
begin
dmOrdem:= True;
OrdenarDbGrid;
end;

procedure TF_ListPADRAO.Classificacaodecrescente1Click(Sender: TObject);
begin
dmOrdem:= False;
OrdenarDbGrid;
end;

procedure TF_ListPADRAO.OrdenarDbGrid;
begin
// Coluna é uma váriavel string que recebe o campo que vai ser ordenado
if Coluna = ´´ then Exit;

// Caso já exista um indice para este campo então ele deleta
if (Indice <> ´´)and(Indice = Query.IndexName) then Query.DeleteIndex(Indice);

case dmOrdem of // ordem é uma private boolean
False: Query.AddIndex(Coluna, Coluna, [ixDescending],´´,´´,0); // ordena desc
True: Query.AddIndex(Coluna, Coluna, [],´´,´´,0); // ordena asc
end;

Query.IndexName:= Coluna;
Query.First;
Indice:= Coluna; // indice é uma ´private string´ que guarda o indice criado
end;


Té +


GOSTEI 0
Daia

Daia

28/12/2006

tentei, mas não funcionou...
meu código está assim, e está funcionando, só que está ordenando decrescente e eu queria diferente...
Eu imagino que falta algum parâmetro no código, mas não estou conseguindo encaixar...
FPrincipal.temp.SortOnFields(´Fantasia;dFabric;cConstrucao;dRefer´, False, True);


GOSTEI 0
Ronaldo Pimenta

Ronaldo Pimenta

28/12/2006

Olha, o componente RxMemory não responde a todos os metodos de um dataset como é o caso do comando Filter que não funciona, não tenho tempo agora pra testar este teu comando, sem mais. Tchau!


GOSTEI 0
Daia

Daia

28/12/2006

ok.. tudo bem... vou continuar pesquisando..deve haver alguma forma de fazer isso...


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

28/12/2006

Colega,

Não seria o caso de utilizar um ClientDataSet?


GOSTEI 0
POSTAR