Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Geovane Velmer

[Resolvido] Como testar se a tabela esta no ultimo registro

Recommended Posts

Ae galera.. seguinte, preciso saber quando uma tabela esta em seu ultimo registro

para poder desativar um botao quando ela chegar ao fim, ou então quando estiver no primeiro.

 

Tipo, são dois botões de navegação, Anterior e Próximo

 

Alguem ajuda eu ae?

 

^_^

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, suponto que você utilize query, você pode fazer:

if query.First then
ou
if query.Last then
... ou seja, verifica se está no primeiro ou se está no último... ou você pode apenas jogar pro ultimo ou pro primeiro ou pro proximo ou pro anterior, tirando o if.. then, deixando só query.Last, First, Previos, Next....

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, suponto que você utilize query, você pode fazer:

if query.First then
ou
if query.Last then
... ou seja, verifica se está no primeiro ou se está no último... ou você pode apenas jogar pro ultimo ou pro primeiro ou pro proximo ou pro anterior, tirando o if.. then, deixando só query.Last, First, Previos, Next....

Flavio, no meu caso eu to usando IBDataSet

e fiz da seguinte maneira:

 

if IBDataSetCidade.Last then // Deu erro no IBDataSetCidade.Last 
begin
btproximo.enabled:=False;
end;

eu uso o delphi 2009 e quando tem algo errado ele marca o local, e disse que o erro ta no IBDataSetCidade.Last

sera que com o DataSet tem que ser diferente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, até onde eu sei nao deveria dar problema nao, mas, como você quer fazer é um botão avançar, voltar etc... você pode tentar fazer assim, nao teste o código, mas, as vezes é uma alternativa:

while not query1.eof do
  query1.next
bbtnavancar.enable:= true;
ou seja, enquanto o query1 NÃO estiver no fim, ele move o registro pro próximo, deixando o bbtnavancar habilitado... quando chegar no fim, ele fica desabilitado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bem, até onde eu sei nao deveria dar problema nao, mas, como você quer fazer é um botão avançar, voltar etc... você pode tentar fazer assim, nao teste o código, mas, as vezes é uma alternativa:

while not query1.eof do
  query1.next
bbtnavancar.enable:= true;
ou seja, enquanto o query1 NÃO estiver no fim, ele move o registro pro próximo, deixando o bbtnavancar habilitado... quando chegar no fim, ele fica desabilitado...

É Flavio , mas assim pelo que eu acho , o registro vai ficar passando até chegar ao fim, e o que eu quero e que ele passe para o proximo registro quando clicado no botao avancar, e desative o botao quando chegar ao ultimo registro;

 

Entedeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, entao, é só trocar o while do por if..then.... você da o .next pra ir passando pro próximo... if chegar no final entao desativa o botão

query1.next;
if query1.eof then
  bbtnbotao.enable:= false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, entao, é só trocar o while do por if..then.... você da o .next pra ir passando pro próximo... if chegar no final entao desativa o botão

query1.next;
if query1.eof then
  bbtnbotao.enable:= false;

Funciono em partes Flavio, tipo

o botão Proximo fiko assim:

IBDataSetCidade.next;
btanterior.enabled=true;

if IBDataSetCidade.Eof then
begin
btproximo.enabled:=false;
end;

E o botao anterior fiko assim:

 

IBDataSetCidade.prior;
btproximo.enabled=true;

if IBDataSetCidade.Eof then
begin
btanterior.enabled:=false;
end;

 

Só que funciona só para o botao proximo, quando chega ao ultimo registro ele desativa o batao, mas o botao "anterior" nao funcionou, quando chega ao primeiro registro ele nao dasativa

 

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso porque quando você volta você não vai estar no fim da query (eof), e sim no começo dela (first). Mude o teste do anterior de .eof para .first que deve funcionar.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso porque quando você volta você não vai estar no fim da query (eof), e sim no começo dela (first). Mude o teste do anterior de .eof para .first que deve funcionar.

 

[]'s

Já tentei , quando eu coloco .first da erro de sitaxe

OBS: Uso delphi 2009

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o erro:

 

[DCC Error] UfrmCidade.pas(81): E2012 Type of expression must be BOOLEAN
[DCC Fatal Error] AUTOMACAO.dpr(8): F2063 Could not compile used unit 'UfrmCidade.pas'

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse erro 'must be BOOLEAN' - DEVE SER TRUE OU FALSE...

experimenta colocar if query.Bof then... bof é o oposto de eof... eof é fim da tabela, bof é inicio

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse erro 'must be BOOLEAN' - DEVE SER TRUE OU FALSE...

experimenta colocar if query.Bof then... bof é o oposto de eof... eof é fim da tabela, bof é inicio

Aeee funcionou Flavio..

Vlw cara

 

ficou assim o botão anterior

 

IBDataSetCidade.prior;
btproximo.enabled=true;

if IBDataSetCidade.Bof then
begin
btanterior.enabled:=false;
end;

te+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.