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

(Resolvido) CONSULTA EM 2 CAMPOS DATE URGENTE


felipeecampos

Pergunta

Olá pessoal, Boa noite.


Estou com uma dúvida e bronca que não consigo resolver, sou iniciante em programação, mexo apenas com delphi e pouquíssimos em outras linguagens, enfim, vamos lá.

Meu problema é o seguinte, fiz um programa para uma clínica médica, bem básico, marca consulta, retorno, imprimi prontuário, exames, etc, o programa já está sendo usado, só que estou fazendo uma atualização e estou com problemas para desenvolver, é o seguinte.

Na minha aba relatório, tenho uma função que pega os dados das consultas que estão marcadas e imprimi para o médico ter em mãos as consultas, o recepcionista seleciona pela data desejada (ATUAL) e o sistema busca as consultas normais pela data desejada, enfim, dentro da minha tabela "Marcar_consultas" existe um campo chamado "data" que pelo comando sql faço essa busca, só que nesta mesma tabela "marcar_consultas" existe um campo chamado "data_retorno" que é os pacientes que já vieram de uma consulta, estão em um retorno, então o problema é que eu consiga fazer meu código buscar pelos 2 campos, não só por um. Irei mandar aqui como está meu código.

begin
if CheckBox3.Checked = true then // pesquisa por data
begin// faz a pesquisa pela data solicitada
ADOQuery1_Consultas_Marcadas.Close;
ADOQuery1_Consultas_Marcadas.SQL.Clear;
ADOQuery1_Consultas_Marcadas.SQL.Add(' Select *');
ADOQuery1_Consultas_Marcadas.SQL.Add(' From marcar_consultas where data between :h1 and :h2');
ADOQuery1_Consultas_Marcadas.SQL.Add ('and Nome_Convenio like ' + quotedstr('%' +edit5.Text+'%')); // pesquisa por conv
ADOQuery1_Consultas_Marcadas.SQL.Add ('and Nome like ' + quotedstr('%' +edit4.Text+'%')); // pesquisa por conv
ADOQuery1_Consultas_Marcadas.SQL.Add ('and `Consulta/Retorno` like ' + quotedstr('%' +edit8.Text+'%')); // consulta retorno ou fechada
ADOQuery1_Consultas_Marcadas.SQL.Add ('and `Consulta/Retorno` like ' + quotedstr('%' +edit9.Text+'%')); // consulta retorno ou fechada
ADOQuery1_Consultas_Marcadas.SQL.Add ('ORDER BY hora ASC');
ADOQuery1_Consultas_Marcadas.Parameters[0].Value:=ConverteData(DateTimePicker3.DateTime);
ADOQuery1_Consultas_Marcadas.Parameters[1].Value:=ConverteData(DateTimePicker4.DateTime);

ADOQuery1_Consultas_Marcadas.open;
end;


////////////////////////////////////////////////////////////

begin
if CheckBox10.Checked = true then // pesquisa por data_retorno
begin// faz a pesquisa pela data solicitada
//if (Edit1.Text<>'') and(Edit4.Text<>'')then
ADOQuery1_Consultas_Marcadas.Close;
ADOQuery1_Consultas_Marcadas.SQL.Clear;
ADOQuery1_Consultas_Marcadas.SQL.Add(' Select *');
ADOQuery1_Consultas_Marcadas.SQL.Add(' From marcar_consultas where data_retorno between :h1 and :h2');
ADOQuery1_Consultas_Marcadas.SQL.Add ('and Nome_Convenio like ' + quotedstr('%' +edit5.Text+'%')); // pesquisa por conv
ADOQuery1_Consultas_Marcadas.SQL.Add ('and Nome like ' + quotedstr('%' +edit4.Text+'%')); // pesquisa por conv
ADOQuery1_Consultas_Marcadas.SQL.Add ('and `Consulta/Retorno` like ' + quotedstr('%' +edit8.Text+'%')); // consulta retorno ou fechada
ADOQuery1_Consultas_Marcadas.SQL.Add ('and `Consulta/Retorno` like ' + quotedstr('%' +edit9.Text+'%')); // consulta retorno ou fechada
ADOQuery1_Consultas_Marcadas.SQL.Add ('ORDER BY hora_retorno ASC');
ADOQuery1_Consultas_Marcadas.Parameters[0].Value:=ConverteData(DateTimePicker3.DateTime);
ADOQuery1_Consultas_Marcadas.Parameters[1].Value:=ConverteData(DateTimePicker4.DateTime);
ADOQuery1_Consultas_Marcadas.open;
end;


Será que alguém pode me ajudar? queria que ao invés de ter dois checkbox pra ele escolher uma por vez, ter data e data_retorno na mesma pesquisa por data.

OBS: Este código está funcionando perfeitamente, só precisando destes ajustes rs!

Obrigado desde já.


Felipe Campos,
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

veja: substitua o codigo em um unico checkbox

ADOQuery1_Consultas_Marcadas.SQL.Add(' From marcar_consultas where data between :h1 and :h2' or data_retorno between :h3 and :h4');

ADOQuery1_Consultas_Marcadas.Parameters[0].Value:=ConverteData(DateTimePicker3.DateTime);
ADOQuery1_Consultas_Marcadas.Parameters[1].Value:=ConverteData(DateTimePicker4.DateTime);

ADOQuery1_Consultas_Marcadas.Parameters[2].Value:=ConverteData(DateTimePicker3.DateTime);
ADOQuery1_Consultas_Marcadas.Parameters[3].Value:=ConverteData(DateTimePicker4.DateTime);

OBS: se a data de retorno for maior que a data dos parametros h1 e h2 voce deve incrementar o numero de dias dos parametros h3 e h4 para abranger o escopo da pesquisa

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,5k
×
×
  • Criar Novo...