Fórum Ordenar registro em um dbGrid sem mexer no sql #171212
24/07/2003
0
explicando melhor
O problema que estou tendo é o seguinte:
Tem um grid no form e dois botões ao seu lado, quando o usuário clicar em um dos botões o registro selecionado irá mudar de posição no grid(para cima ou para baixo)
Obs: os registros do grid são carregados no show do form
Obrigado pela atenção e até mais
Fpaschoalini
Curtir tópico
+ 0Posts
24/07/2003
Claudioabs2000
Gostei + 0
27/07/2003
Carlosrm
Você quer ordenar ou quer navegar ?
Para navegar, indo para o registro anterior (linha de cima do dbgrid) ou para o registro posterior (linha de baixo do dbgrid), se o dbgrid estiver com o foco, bastará pressionar a tecla de seta-para-cima (linha de cima do dbgrid), ou a seta-para baixo (linha de baixo do dbgrid).
Se quiser usar botões específicos para isso, por exemplo , bitAnterior e bitPosterior, use os métodos Prior e Next do dataset vinculado ao dbgrid.
Por exemplo, no evento OnClick do bitAnterior escreve:
TabelaVinculadaAoDbgrid.Prior;
Há também o método MoveBy(), que permite que o ponteiro do registro corrente seja deslocada para a frente ou para trás, o número de linhas especificado (passado como parâmetro) para MoveBy.
Por exemplo,
TabelaVinculadaAoDbgrid.MoveBy(5); // avança 5 registros (Next 5 vezes)
TabelaVinculadaAoDbgrid.MoveBy(-5); // volta 5 registros (Prior 5 vezes).
Se não ajudou, espero não ter atrapalhado. carlosrm.
Gostei + 0
28/07/2003
Regisjj
Olha o que vc esta tentando fazer é possível.
Saber usar um TClientDataSet da arquitetura Midas?
Não úm bicho de sete cabeças.
Vou montar um exemplo e te mando, me mande o seu e-mail para: reginaldo.jesus@mbr.com.br, será mais fácil, mas a lógica é a seguinte:
O ClientDataSet te permite criar indices de campos dentro dele pelo o qual ele ordena os registros independente de como eles venham da Query, e o mesmo tembém te permite criar campos que não fazerm parte da Query. Então ligaremos a o ClientDataSet a uma Query, criaremos um campo ´Virtual´ ao qual, após o ClientDataSet ter sido aberto, preencheremos de 0 até o número de registros que ele conter.
Criaremos um indice que ordenara por este campo virtual e toda vez que trocarmos os números entre dois registros eles trocarão as suas posições no DBGrid.
Falow.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)