Array
(
)

Posicionar no CDS através do RecNo.

Titanius
   - 25 jan 2006

Olá,

Tenho um ClientDataSet, que transferi todo o conteúdo para um Grid normal (não é dbgrid) 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


Marcelo.l
   - 25 jan 2006

Use um comando locate.

#Código

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


Espero ter ajudado.


Marcelo.l
   - 25 jan 2006

Sorry, Man

Minha resposta anterior estava incompleta.

Tente isto...
#Código


var
iNewRow: Integer;
begin
if ClientDataset.Locate(´Nome do campo RECNO´, valor desejado, []) 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.


Emerson
   - 26 jan 2006

no clique da sua grade:

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


Titanius
   - 26 jan 2006


Citação:
Sorry, Man

Minha resposta anterior estava incompleta.

Tente isto...
#Código


var
iNewRow: Integer;
begin
if ClientDataset.Locate(´Nome do campo RECNO´, valor desejado, []) 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


Emerson
   - 26 jan 2006


Citação:
no clique da sua grade:

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


isso não funcionou?


Titanius
   - 26 jan 2006


Citação:
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


Titanius
   - 26 jan 2006


Citação:

Citação:
no clique da sua grade:

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


isso não funcionou?


Funcionou !!!

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

testei aqui e funcionou perfeitamente..


Obrigado

[]s