Fórum Problemas com Relatórios #224958

09/04/2004

0

Estou tentando fazer um dados de relatório para que o usuário escolha em que período de data ele ira puxar os dados. O código ficou assim:
var
dtinicio,dtfim:string;

        dtinicio:= ´#´+ formatdatetime(´mm/dd/yy´,strtodate(edit_inicio.text)) + ´´;
        dtfim:= ´´+ formatdatetime(´mm/dd/yy´,strtodate(edit_fim.text)) + ´´;
          qck_rel_os.IBQuery1.Close;
      //  with qck_rel_os.IBQuery1.SQL do
      //  begin
        if cmb_tipo.Text=´Todas´ then
        begin
                ssql:=´select S.BAIXADO, S.CIDADE, S.CLIENTE, S.CODIGO, S.CONDSUPR, S.CONTATO, S.CPFCNPJ,  S.DIAGNOSTICO, S.ENDERECO, S.ESTADO, S.FABRICANTE, S.GARANTIA, S.ID_OS, S.MODELO, S.RECOMENDACOES, S.TELEFONE,S.TIPOEQUIP, S.VALOR FROM OS S where S.DATACAD between´ + dtinicio + ´ and ´ + dtfim +´ ORDER BY S.NOME ´;
        end ;
        If cmb_tipo.Text=´Baixadas´ then
        begin
                ssql:=´select cidade, cliente, codigo, condsupr, contato,cpfcnpj,datacad, diagnostico, endereco, estado, fabricante, garantia, id_os, modelo,recomendacoes, telefone ,baixado="sim"´;
        end;
        If  cmb_tipo.Text=´Nao Baixadas´ then
        begin
                ssql:=´select cidade, cliente, codigo, condsupr, contato,cpfcnpj,datacad, diagnostico, endereco, estado, fabricante, garantia, id_os, modelo,recomendacoes, telefone, baixado="nao"´;
        end;
       // end;
        qck_rel_os.IBQuery1.SQL.Text:=ssql;
        qck_rel_os.IBQuery1.Open;
        qck_rel_os.lbl_periodo.Caption:=´Período: De ´+edit_inicio.text+´ até ´+edit_fim.text+´´;
        qck_rel_os.Preview;

Mas ocorre o seguinte erro:
Token unknow -line1, char 249 #´,....
Porque isso? Ja fiz de tudo mas nao da certo.


Poderoso

Poderoso

Responder

Posts

09/04/2004

Djjunior

coloque o comando
qck_rel_os.IBQuery1.SQL.CLEAR;
Antes de atribuir o novo valor


Responder

Gostei + 0

09/04/2004

Adilsond

Voce está utilizando o interbase? Pelo que sei, utiliza-se o # entre a data apenas para access.


Responder

Gostei + 0

10/04/2004

Poderoso

Estou usando interbase. Mas se eu tiro a # aparece a mensagem de erro com a data.


Responder

Gostei + 0

11/04/2004

Chico Gois

Ja tentou...
dtinicio:= #39 +  formatdatetime(´mm/dd/yy´,strtodate(edit_inicio.text)) + 39; 
dtfim:= 39+ formatdatetime(´mm/dd/yy´,strtodate(edit_fim.text)) + 39; 




Responder

Gostei + 0

11/04/2004

Poderoso

ja fiz o q vcs mandaram fazer. Ja coloquei o #39, mas nao adianta.Ja coloquei o clear tb.
Se puderem me dar outra ideia. Lembrando q eu estou usando o interbase.


Responder

Gostei + 0

11/04/2004

Bon Jovi

dtinicio := QuotedStr(´´) + formatdatetime(´yyyy-mm-dd´, strtodate(edit_inicio.text)) + QuotedStr(´´);
dtfim := QuotedStr(´´) + formatdatetime(´yyyy-mm-dd´, strtodate(edit_fim.text)) + QuotedStr(´´);

Nao tenho Interbase nem Firebird pra testar agora, mas acho q já fiz algo assim, usando por exemplo: CAMPO_DATA = ´2003-12-31´

No SQLServer com certeza funciona...


Responder

Gostei + 0

13/04/2004

Poderoso

Este código acima infelizmente nao funcionou. Deu o mesmo erro.


Responder

Gostei + 0

13/04/2004

Adilsond

var
  dtinicio,
  dtfim: String;
begin
  with qck_rel_os.IBQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add(´SELECT S.BAIXADO,´);
      SQL.Add(´       S.CIDADE,´);
      SQL.Add(´       S.CLIENTE,´);
      SQL.Add(´       S.CODIGO,´);
      SQL.Add(´       S.CONDSUPR,´);
      SQL.Add(´       S.CONTATO,´);
      SQL.Add(´       S.CPFCNPJ,´);
      SQL.Add(´       S.DIAGNOSTICO,´);
      SQL.Add(´       S.ENDERECO,´);
      SQL.Add(´       S.ESTADO,´);
      SQL.Add(´       S.FABRICANTE,´);
      SQL.Add(´       S.GARANTIA,´);
      SQL.Add(´       S.ID_OS,´);
      SQL.Add(´       S.MODELO,´);
      SQL.Add(´       S.RECOMENDACOES,´);
      SQL.Add(´       S.TELEFONE,´);
      SQL.Add(´       S.TIPOEQUIP,´);
      SQL.Add(´       S.VALOR´);
      SQL.Add(´FROM OS S´);
      SQL.Add(´WHERE S.DATACAD BETWEEN :DtInicio AND :DtFim´;
      if cmb_tipo.Text = ´Baixadas´ then
         SQL.Add(´  AND S.BAIXADO = ´ + QuotedStr(´sim´))
      else
         if cmb_tipo.Text = ´Não Baixadas´ then
            SQL.Add(´  AND S.BAIXADO = ´ + QuotedStr(´nao´));
      SQL.Add(´ORDER BY S.NOME´);
      ParamByName(´DtInicio´).AsDate := StrToDate(edit_inicio.text);
      ParamByName(´DtFim´).AsDate := StrToDate(edit_fim.text);
      Open;
    end;
    qck_rel_os.lbl_periodo.Caption := ´Período: De ´ + edit_inicio.text +
      ´ até ´ + edit_fim.text;
    qck_rel_os.Preview;
end;



Responder

Gostei + 0

15/04/2004

Poderoso

Esse último codigo deu certo. Agora funcionou. Valeu galera pela atenção!!!!
Abraços.


Responder

Gostei + 0

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

Aceitar