Deixar o Último Registro Inserido com o Foco
Olá pessoal, tudo bem? Espero que sim.. gostaria de uma pequena ajuda..
Eu tenho uam tela de visualização de revistas.. elas sao listadas depois que eu seleciono um grupo e um subgrupo específico.. faço uma pesquisa sql pra me listar somente as revistas daquele grupo e subgrupo selecionado.. essa pesquisa pra listar eu tb boto no evento onShow pra, quando eu inserir uma revista, ele me atualize o grupo/subgrupo e liste certinho.. mas sempre q ele faz isso, ele me seta na grid o 1º registro da lista.. e eu gostaria q ele me setasse o último cadastrado.. independente da posiçao q ele tiver, já q vai ser listado em ordem alfabética...
estou usando delphi 7 + firebird 1.5 + dbexpress..
grato pela atençao..
Allan Elias Ramos :roll:
Eu tenho uam tela de visualização de revistas.. elas sao listadas depois que eu seleciono um grupo e um subgrupo específico.. faço uma pesquisa sql pra me listar somente as revistas daquele grupo e subgrupo selecionado.. essa pesquisa pra listar eu tb boto no evento onShow pra, quando eu inserir uma revista, ele me atualize o grupo/subgrupo e liste certinho.. mas sempre q ele faz isso, ele me seta na grid o 1º registro da lista.. e eu gostaria q ele me setasse o último cadastrado.. independente da posiçao q ele tiver, já q vai ser listado em ordem alfabética...
estou usando delphi 7 + firebird 1.5 + dbexpress..
grato pela atençao..
Allan Elias Ramos :roll:
Aersoftware
Curtidas 0
Melhor post
Aersoftware
12/12/2004
Hmm.. e isso poderia ser feito com um if? tipo
If DataModule.ClientDataSet.Eof then
begin
DbGrid.SetFocus;
end;
???
Allan Elias Ramos :roll:
If DataModule.ClientDataSet.Eof then
begin
DbGrid.SetFocus;
end;
???
Allan Elias Ramos :roll:
GOSTEI 1
Mais Respostas
Gandalf.nho
11/12/2004
Geralmente, o último cadastrado é o que tem o valor mais alto no campo cgave primária. Você teria que localizar qual o registro com o valor mais alto e posicionar o foco lá.
GOSTEI 0
Ariovaldo
11/12/2004
Eu resolvi este caso assim:
Crie uma variável publica:
Ex.: RegistroNac : TbookMark;
No comando de inserir vc coloca a seguinte linha:
RegistroNac := DmPrincipal.qry_clienteNac.GetBookmark;
if DmPrincipal.qry_clienteNac.state dsInsert then
RegistroNac := DmPrincipal.qry_clienteNac.GetBookmark;
if DmPrincipal.qry_clienteNac.BookmarkValid(RegistroNac) Then
Begin
DmPrincipal.qry_clienteNac.GotoBookmark(RegistroNac);
DmPrincipal.qry_clienteNac.FreeBookmark(RegistroNac);
End;
Espero ajudar
Crie uma variável publica:
Ex.: RegistroNac : TbookMark;
No comando de inserir vc coloca a seguinte linha:
RegistroNac := DmPrincipal.qry_clienteNac.GetBookmark;
if DmPrincipal.qry_clienteNac.state dsInsert then
RegistroNac := DmPrincipal.qry_clienteNac.GetBookmark;
if DmPrincipal.qry_clienteNac.BookmarkValid(RegistroNac) Then
Begin
DmPrincipal.qry_clienteNac.GotoBookmark(RegistroNac);
DmPrincipal.qry_clienteNac.FreeBookmark(RegistroNac);
End;
Espero ajudar
GOSTEI 0
Luiz_aquino
11/12/2004
não sei se entendi direito mas rola vc fazer a SQL mostrar do ultimo para o primeiro digamos se o seu registro for de codigo aleatorio vc faria
select * from tabela order by codigo MAX
select * from tabela order by codigo MAX
GOSTEI 0