Jump to content
Fórum Script Brasil
  • 0

Filtrar Data No Relátorio


robinhocne
 Share

Question

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 to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...