GARANTIR DESCONTO

Fórum Registros em Ordem Crescente (Navegando entre os Registros) #616143

29/06/2021

0

Olá mestre da programação em Delphi.
Tenho uma tabela no meu banco LF_CONCURSOS_CAB com os seguintes campos:
    ID_CONCURSOS_CAB  INTEGER NOT NULL,
    NUM_CONCURSO      INTEGER,
    DATA_CONCURSO     DATE,
    DATA_CADASTRO     DATE,
    DATA_EXCLUIDO     DATE,
    ATIVO             CHAR(1)


No meu projeto adicionei 4 botões para servir de navegador entre os registros.
Coloquei as linhas de código em cada um deles:

|<
 dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

  if dados.fdq_LF_Cabecalho.Active = False then
  begin
    dados.fdq_LF_Cabecalho.Active := True;
  end;

  dados.fdq_LF_Aux.Close;
  dados.fdq_LF_Aux.SQL.Clear;
  dados.fdq_LF_Aux.SQL.Add('SELECT * ');
  dados.fdq_LF_Aux.SQL.Add('FROM LF_CONCURSOS_CAB ');
  dados.fdq_LF_Aux.SQL.Add('ORDER BY id_concursos_cab ');
  dados.fdq_LF_Aux.Open();

  spb_Pesquisa_Concurso1.Visible := True;
  spb_Pesquisa_Concurso2.Visible := False;

  dados.fdq_LF_Cabecalho.Filtered := False;
  dados.fdq_LF_Cabecalho.First;

  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;
  spb_Pesquisa_Concurso1.Spacing := 4;

  pnl_Gravar.Enabled := False;
  spb_Gravar.Font.Color := clSilver;
  spb_Gravar.Font.Style := [];

  dados.Procedure_Totaliza_LF;


<<
dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

  if dados.fdq_LF_Cabecalho.Active = False then
  begin
    dados.fdq_LF_Cabecalho.Active := True;
  end;

  dados.fdq_LF_Aux.Close;
  dados.fdq_LF_Aux.SQL.Clear;
  dados.fdq_LF_Aux.SQL.Add('SELECT * ');
  dados.fdq_LF_Aux.SQL.Add('FROM LF_CONCURSOS_CAB ');
  dados.fdq_LF_Aux.SQL.Add('ORDER BY id_concursos_cab ');
  dados.fdq_LF_Aux.Open();

  spb_Pesquisa_Concurso1.Visible := True;
  spb_Pesquisa_Concurso2.Visible := False;

  dados.fdq_LF_Cabecalho.Filtered := False;
  dados.fdq_LF_Cabecalho.Prior;

  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;
  spb_Pesquisa_Concurso1.Spacing := 4;

  pnl_Gravar.Enabled := False;
  spb_Gravar.Font.Color := clSilver;
  spb_Gravar.Font.Style := [];

  dados.Procedure_Totaliza_LF;


>>
 dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

  if dados.fdq_LF_Cabecalho.Active = False then
  begin
    dados.fdq_LF_Cabecalho.Active := True;
  end;

  dados.fdq_LF_Aux.Close;
  dados.fdq_LF_Aux.SQL.Clear;
  dados.fdq_LF_Aux.SQL.Add('SELECT * ');
  dados.fdq_LF_Aux.SQL.Add('FROM LF_CONCURSOS_CAB ');
  dados.fdq_LF_Aux.SQL.Add('ORDER BY id_concursos_cab ');
  dados.fdq_LF_Aux.Open();

  spb_Pesquisa_Concurso1.Visible := True;
  spb_Pesquisa_Concurso2.Visible := False;

  dados.fdq_LF_Cabecalho.Filtered := False;
  dados.fdq_LF_Cabecalho.Next;

  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;
  spb_Pesquisa_Concurso1.Spacing := 4;

  pnl_Gravar.Enabled := False;
  spb_Gravar.Font.Color := clSilver;
  spb_Gravar.Font.Style := [];

  dados.Procedure_Totaliza_LF;


>|
dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

  if dados.fdq_LF_Cabecalho.Active = False then
  begin
    dados.fdq_LF_Cabecalho.Active := True;
  end;

  dados.fdq_LF_Aux.Close;
  dados.fdq_LF_Aux.SQL.Clear;
  dados.fdq_LF_Aux.SQL.Add('SELECT * ');
  dados.fdq_LF_Aux.SQL.Add('FROM LF_CONCURSOS_CAB ');
  dados.fdq_LF_Aux.SQL.Add('ORDER BY id_concursos_cab ');
  dados.fdq_LF_Aux.Open();

  spb_Pesquisa_Concurso1.Visible := True;
  spb_Pesquisa_Concurso2.Visible := False;

  dados.fdq_LF_Cabecalho.Filtered := False;
  dados.fdq_LF_Cabecalho.Last;

  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
  pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;
  spb_Pesquisa_Concurso1.Spacing := 4;

  pnl_Gravar.Enabled := False;
  spb_Gravar.Font.Color := clSilver;
  spb_Gravar.Font.Style := [];

  dados.Procedure_Totaliza_LF;



Mais de nada adiantou. La no banco esta na ordem direitinho do código 1 ate 58

E quando eu clico no botão >> ele começa do código 5, sendo que era pra começar do código 1. Abaixo vou colocar a ordem como esta os
código a cada click no botão:
5 > 7 > 11 > 12 > 13 > 14 > 15 > 16 > 17 > 1 > 2 > 3 > 18 > 19 > ...58

Esta começando no 5 e após alguns click ele pega o 1, 2, 3 e volta na sequencia. Coloquei aquele SLQ mais não serviu de nada.

Coloquei um DBNavigator e ate com ele fica na mesma sequencia.

O mesmo SQL coloquei no onShow do Form e nada também.

O que pode ser feito para deixar esse código em ordem crescente ai clicar nos botões >> >| e decrescente ao clicar nos botões |< <<
Rubens Pena

Rubens Pena

Responder

Post mais votado

30/06/2021

abra a tabela em algum lugar fora dos botões (os botões são somente para navegação, certo?)
if not dados.fdq_LF_Cabecalho.Active then
  dados.fdq_LF_Cabecalho.Open;

dados.fdq_LF_Cabecalho.Filtered := False;
dados.fdq_LF_Cabecalho.First;


botões:
<<
dados.fdq_LF_Cabecalho.First;
TrataComponentes;


<
dados.fdq_LF_Cabecalho.Prior;
TrataComponentes;


>
dados.fdq_LF_Cabecalho.Next;
TrataComponentes;


>>
dados.fdq_LF_Cabecalho.Last;
TrataComponentes;


Função TrataComponentes:
spb_Pesquisa_Concurso1.Visible := True;
spb_Pesquisa_Concurso2.Visible := False;

pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;

spb_Pesquisa_Concurso1.Spacing := 4;

pnl_Gravar.Enabled := False;
spb_Gravar.Font.Color := clSilver;
spb_Gravar.Font.Style := [];
 
dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

dados.Procedure_Totaliza_LF;


eu não entendi para que serve o dataset dados.fdq_LF_Aux





Emerson Nascimento

Emerson Nascimento
Responder

Gostei + 1

Mais Posts

01/07/2021

Rubens Pena

abra a tabela em algum lugar fora dos botões (os botões são somente para navegação, certo?)
if not dados.fdq_LF_Cabecalho.Active then
  dados.fdq_LF_Cabecalho.Open;

dados.fdq_LF_Cabecalho.Filtered := False;
dados.fdq_LF_Cabecalho.First;


botões:
<<
dados.fdq_LF_Cabecalho.First;
TrataComponentes;


<
dados.fdq_LF_Cabecalho.Prior;
TrataComponentes;


>
dados.fdq_LF_Cabecalho.Next;
TrataComponentes;


>>
dados.fdq_LF_Cabecalho.Last;
TrataComponentes;


Função TrataComponentes:
spb_Pesquisa_Concurso1.Visible := True;
spb_Pesquisa_Concurso2.Visible := False;

pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Enabled := False;
pnl_Fundo_Botoes_Navegadores_Pesquisa_Concurso.Visible := False;

spb_Pesquisa_Concurso1.Spacing := 4;

pnl_Gravar.Enabled := False;
spb_Gravar.Font.Color := clSilver;
spb_Gravar.Font.Style := [];
 
dtp_Data_Concuso.DateTime := dados.fdq_LF_CabecalhoDATA_CONCURSO.AsDateTime;

dados.Procedure_Totaliza_LF;


eu não entendi para que serve o dataset dados.fdq_LF_Aux






Obrigado mestre.

O Dataset dados.fdq_LF_Aux era eu tentando fazer com que ele colocasse os códigos por ordem crescente. Porque eu fazia o teste lá no banco usando SQL e ele me retornava tudo em ordem crescente como eu pedia no comando, ai pensei que fazendo assim ele me retornava também. Mais mestre eu vou mudar a minha logica nessa tela, vou criar uma telinha de pesquisa e vou remover o navegador, pois vi que ao abri o form quando tiver muitos registros vai pesar, então eu abro o form com a tabela fechada e o concurso que eu quiser ver eu faço a pesquisa e ele me abri o form somente com aquela pesquisa.

mais mesmo assim grato por sua atenção comigo.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar