Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Filtro entre 02 Edits e resultado no DBGrid - Delphi 10.3 / InterBase 2020


Wanderson Cardoso Nascimento

Pergunta

Situação:

> Banco de dados(SGBD): InterBase 2020
> Tabela: PRODUTOS(tbProdutos)
> Campos:
    - PRODUTO_ID Integer not null, [PrimaryKey]
    - PROD_DESCR Varchar,
    - PROD_GRUPO Varchar,
    - PROD_UNIDA Varchar,
    - PROD_PRECO Numeric(12,2),

>> Form: Consultar Produtos
>> Componentes:

- 01 ibquery(tbProdutos)
- 01 DataSource(tbProdutos)

- 01 Edit1(Codigo De) PRODUTO_ID Integer
- 01 Edit2(Codigo Ate) PRODUTO_ID Integer
  (usei edit comun aba Standard, e não DBEdit)
- 01 Button1(Filtrar Dados)
- 01 Button2(Cancelar/Fechar)
- 01 DBGrid1(Resultado da consulta)

>>> Dúvida:
como fazer a filtragem da tabela PRODUTOS usando o campo chave(PRODUTO_ID) entre
o Edit1(inicial) e Edit2(final)?

Ao digitar no Edit1 " 10 ", e no edit2 " 21 ", e clicar no Button1(Filtrar dados)
deveria aparecer no meu DBGrid somente os produtos do código 10 ao código 21, como no
exemplo abaixo.


codigo    descrição    grupo        preço
-------------------------------------------------
10    Produto 10    Alimentos    10,00
11    Produto 11    Alimentos    10,00
12    Produto 12    Bebidas        10,00
13    Produto 13    Bebidas        10,00
14    Produto 14    Alimentos    10,00
15    Produto 15    Diversos    10,00

...  até

21    Produto 21    Alimentos    10,00


Exemplo mais detalhado:

> Digitei no Edit1(04).
> Digitei no Edit2(12).
> Clico no Button1(Filtrar)
> Resultado: Todos os produtos do código 04 até o código 12, totalizando 09 registros no DBGrid1.

Qual seria a melhor forma de conseguir o resultado ??

P.S.: USo Delphi 10.3 Rio e InterBase 2020. O Projeto vai ser apenas para aprendizado e pretendo
que ele seja um Pequeno controle de estoque.

Muito obrigado pela oportunidade de aprender.

FiltroPorCodigos.png

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

vlw a ajuda Jhonas.

Para ser mais direto,

eu tendo 02 Variaves(vCodigoIni, vCodigoFim: String), como ficaria o comando SQL para essa filtragem?

Eu poderia usar o exemplo acima e, no lugar dos vaores 10 e 20, o valor das edits correspondentes,

tipo:

 

.. Button1.OnClick;

var

  vCodigoIni, vCodigoFim: String

begin

  Trim(StrToInt(edtCodigoIni));

  Trim(StrToInt(edtCodigoFim));

  MinhaQry.close;

  MinhaQry.SQL.Clear;

  MinhaQry.SQL.ADD.('Select * from produtos');

  MinhaQry.SQL.ADD.( + 'Where Codigo BETWEEN edtCodigoIni and edtCodigoFim' );

  MinhaQry.Open;

end;

Como converto o edit digitado para o valor da variavel correspondente?

 

Se puder me ajudar nessa também agradeço.

 

Link para o comentário
Compartilhar em outros sites

  • 0

ok... exemplo

SELECT * FROM Produtos
WHERE Codigo BETWEEN
vCodigoIni AND vCodigoFim;

nesse caso voce deve passar os valores dos edits para as variaveis

.. Button1.OnClick;

var

  vCodigoIni, vCodigoFim: String

begin

  vCodigoIni := edtCodigoIni.Text;

  vCodigoFim := edtCodigoFim.Text;

  MinhaQry.close;

  MinhaQry.SQL.Clear;

  MinhaQry.SQL.ADD.('Select * from produtos');

  MinhaQry.SQL.ADD.( + 'Where Codigo BETWEEN ' + vCodigoIni  + ' and ' + vCodigoFim );

  MinhaQry.Open;

end;

se quiser usar os proprios edits .. seria isso

begin

  MinhaQry.close;

  MinhaQry.SQL.Clear;

  MinhaQry.SQL.ADD.('Select * from produtos');

  MinhaQry.SQL.ADD.( + 'Where Codigo BETWEEN '+ inttostr(strtoint(trim(edtCodigoIni.Text))) + ' and '  +  inttostr(strtoint(trim(edtCodigoFim.Text)));

  MinhaQry.Open;

end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...