25/01/2006

Posicionar no CDS através do RecNo.

Olá,

Tenho um ClientDataSet, que transferi todo o conteúdo para um Grid normal ([b:5e1fa6ee66]não é dbgrid[/b:5e1fa6ee66]) e neste grid a primeira coluna eh o RECNO do ClientDataSet, como faço para posicionar no determinado RECNO do CDS?


Desde já agradeço.

[]s


Titanius

Respostas

25/01/2006

Marcelo.l

Use um comando locate.

Nome_do _ClientDataset.Locate(´Nome do campo RECNO´, valor desejado, [&93;);


Espero ter ajudado.


Responder Citar

25/01/2006

Marcelo.l

Sorry, Man

Minha resposta anterior estava incompleta.

Tente isto...
var
   iNewRow: Integer;
begin
   if ClientDataset.Locate(´Nome do campo RECNO´, valor desejado, [&93;) then
   begin
      iNewRow := ClientDataset.ActiveRecord + 1; //<- some mais um se vc estiver exibindo o titulo da Grid

      Grid.Row := iNewRow;
   end;
end;


É claro que, para isto funcionar, os dados do Dataset tem que estar ordenados como os da grid.

Espero que seja o que vc precisa.


Responder Citar

26/01/2006

Emerson

no clique da sua grade:

cds.recno := strtoint(grade.columns[0]/grade.cells[row,0]);


Responder Citar

26/01/2006

Titanius

Sorry, Man Minha resposta anterior estava incompleta. Tente isto...
var
   iNewRow: Integer;
begin
   if ClientDataset.Locate(´Nome do campo RECNO´, valor desejado, [&93;) then
   begin
      iNewRow := ClientDataset.ActiveRecord + 1; //<- some mais um se vc estiver exibindo o titulo da Grid

      Grid.Row := iNewRow;
   end;
end;
É claro que, para isto funcionar, os dados do Dataset tem que estar ordenados como os da grid. Espero que seja o que vc precisa.


Olá marcelo,

Pelo que eu entendi não é isso que eu preciso :oops: ... veja bem...

no ClientDataSet, existe a propriedade RecNo

ClientDataSet1.RecNo

Pois bem, eu coloquei esta propriedade numa colunja de um Grid, e gostaria de posicionar no registro referente à um RECNO...

ou seja, quero o registro do recno numero 10, ele vai e posicionar no registro 10 da tabela...

Ou seja, RECNO não é uma coluna de uma tabela, e sim propriedade do ClientDataSet...



Desde já agradeço


Responder Citar

26/01/2006

Emerson

no clique da sua grade: cds.recno := strtoint(grade.columns[0]/grade.cells[row,0]);


isso não funcionou?


Responder Citar

26/01/2006

Titanius

no clique da sua grade: cds.recno := strtoint(grade.columns[0]/grade.cells[row,0]);


Olá Emerson, no caso se eu passar

cds.recno := 100;

ele posiciona no 100 registro?


[]s


Responder Citar

26/01/2006

Titanius

[quote:0e83a170b2=´emerson.en´]no clique da sua grade: cds.recno := strtoint(grade.columns[0]/grade.cells[row,0]);


isso não funcionou?[/quote:0e83a170b2]

Funcionou !!!

Valeu emerson, é que na hora que eu estava escrevendo não tinha aparecido a sua resposta...

testei aqui e funcionou perfeitamente..


Obrigado

[]s


Responder Citar