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

Filtrar Data No Relátorio


robinhocne

Pergunta

Bom,

Quero fazer buscas em um determinado relátorio cujo tem que ser feito por buscas, no Onclick do Botão Ok tenho esses codigos mas não consiguo visualizar nada aki tá dando erro nas datas:

No caso acho que é essa minha instrução Sql.

procedure TFrmRExames.spbexiClick(Sender: TObject);
begin
   With DtmIza.qryIza do
      Begin
         Close;
         Sql.Clear;
         Sql.Add('Select Data From Exame ,' + FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatIn.Text) )+ ',' + FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatfin.Text)) + ')' );
         Open;
      End;
   With TFrmRelExames.Create(Application) do
         Try
            QuickRep1.Preview;
         Finally
            Free;
         End;
end;

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Opa

No caso você quer fazer uma busca entre datas?

Se for o correto...

procedure TFrmRExames.spbexiClick(Sender: TObject);
begin
  With DtmIza.qryIza do
  Begin
    Close;
    Sql.Clear;
    Sql.Add('Select Data From Exame');
    Sql.Add('where (Data >= :d1) and (Data <= :d2)');
    ParambyName('d1').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatIn.Text));
    ParambyName('d2').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatfin.Text));
    Open;
  End;
  With TFrmRelExames.Create(Application) do
  Try
    QuickRep1.Preview;
  Finally
    Free;
  End;
end;

O campo data é que tipo, Date? DateTime? Varchar?...

Acredito que seja Varchar né já que o FormatDateTime retorna String...

Digo porque se for do tipo Date voce pode trocar o .Value por .asDate e se for

VarChar trocar para .asString...

Veja se é isto...

abraçox

Link para o comentário
Compartilhar em outros sites

  • 0
Opa

No caso você quer fazer uma busca entre datas?

Se for o correto...

procedure TFrmRExames.spbexiClick(Sender: TObject);
begin
  With DtmIza.qryIza do
  Begin
    Close;
    Sql.Clear;
    Sql.Add('Select Data From Exame');
    Sql.Add('where (Data >= :d1) and (Data <= :d2)');
    ParambyName('d1').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatIn.Text));
    ParambyName('d2').Value := FormatDateTime ('mm/dd/yyyy' , StrToDate (TxtDatfin.Text));
    Open;
  End;
  With TFrmRelExames.Create(Application) do
  Try
    QuickRep1.Preview;
  Finally
    Free;
  End;
end;

O campo data é que tipo, Date? DateTime? Varchar?...

Acredito que seja Varchar né já que o FormatDateTime retorna String...

Digo porque se for do tipo Date voce pode trocar o .Value por .asDate e se for

VarChar trocar para .asString...

Veja se é isto...

abraçox

Deu esse erro:

Project sistemacfc.exe raised exception class EIBInterBaseError with message "Dynamic SQL Error SQL error code = -206

Column unknown

DATA'.Process stopped. Use Step or Run to continue.

Link para o comentário
Compartilhar em outros sites

  • 0
Deu esse erro:

Project sistemacfc.exe raised exception class EIBInterBaseError with message "Dynamic SQL Error SQL error code = -206

Column unknown

DATA'.Process stopped. Use Step or Run to continue.

Significa que a coluna DATA não existe na sua tabela EXAME. Tem certeza que o nome do campo é este mesmo? Verifique!

Link para o comentário
Compartilhar em outros sites

  • 0
Deu esse erro:

Project sistemacfc.exe raised exception class EIBInterBaseError with message "Dynamic SQL Error SQL error code = -206

Column unknown

DATA'.Process stopped. Use Step or Run to continue.

Significa que a coluna DATA não existe na sua tabela EXAME. Tem certeza que o nome do campo é este mesmo? Verifique!

Ok, Micheus você estava, esqueci que tinha mudado algumas coisas do meu banco de dados, mas outra questão é, Ok fiz a busca por data mas os dados que é para ser fornecido no relátorio não aparece digo que só aparece as datas, aqui mando os meus dados:

A ConsultaRegistro é uma função:

procedure TFrmRExames.spbexiClick(Sender: TObject);
begin
    ConsultaRegistros ('Exame', 'Aluno, Dat_Exa, Hor_Exa, Tip_Exa, Cat_Exa, Instrutor, Res_Exa',
   'Aluno>=' + TxtDatIn.Text + ' AND Aluno <=' + TxtDatFin.Text);
  With DtmIza.qryIza do
     Begin
       Close;
       Sql.Clear;
       Sql.Add('Select Dat_Exa From Exame');
       Sql.Add('where (Dat_Exa >= :d1) and (Dat_Exa <= :d2)');
       ParambyName('d1').value  := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtDatIn.Text));
       ParambyName('d2').value  := FormatDateTime ('dd/mm/yyyy' , StrToDate (TxtDatfin.Text));
       Open;
     End;
  With TFrmRelExames.Create(Application) do
     Try
       QuickRep1.Preview;
     Finally
       Free;
  End;
end;

Link para o comentário
Compartilhar em outros sites

  • 0

Opa

Então, os outros dados não aparece porque no SELECT você somente seleciona o campo

Dat_Exa

No caso ou você começa o select com

SELECT * FROM Exame ...
onde * representa a seleção de todos os campos desta tabela... ou
SELECT Dat_Exa, Nome, Idade FROM Exame ...

os outros campos foram somente uma suposição, coloque os campos que deseja que apareça

no registro separados por vírgula...

abraçxxx

Link para o comentário
Compartilhar em outros sites

  • 0

Ok, Resolvido até aqui,

Outra questão nesse assunto, nessa tabela eu tenho os seguintes dados, codigo, data, horario, instrutor, categoria e resultado:

E no relátorio aparece esses dados, como eu faço para aparecer os o nome do aluno, quer dizer fazer busca de outra tabela nesse relátorio?

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