Problemas com Relatórios
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:
Mas ocorre o seguinte erro:
Token unknow -line1, char 249 #´,....
Porque isso? Ja fiz de tudo mas nao da certo.
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
Curtidas 0
Respostas
Djjunior
09/04/2004
coloque o comando
qck_rel_os.IBQuery1.SQL.CLEAR;
Antes de atribuir o novo valor
qck_rel_os.IBQuery1.SQL.CLEAR;
Antes de atribuir o novo valor
GOSTEI 0
Adilsond
09/04/2004
Voce está utilizando o interbase? Pelo que sei, utiliza-se o # entre a data apenas para access.
GOSTEI 0
Poderoso
09/04/2004
Estou usando interbase. Mas se eu tiro a # aparece a mensagem de erro com a data.
GOSTEI 0
Chico Gois
09/04/2004
Ja tentou...
dtinicio:= #39 + formatdatetime(´mm/dd/yy´,strtodate(edit_inicio.text)) + 39; dtfim:= 39+ formatdatetime(´mm/dd/yy´,strtodate(edit_fim.text)) + 39;
GOSTEI 0
Poderoso
09/04/2004
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.
Se puderem me dar outra ideia. Lembrando q eu estou usando o interbase.
GOSTEI 0
Bon Jovi
09/04/2004
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...
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...
GOSTEI 0
Poderoso
09/04/2004
Este código acima infelizmente nao funcionou. Deu o mesmo erro.
GOSTEI 0
Adilsond
09/04/2004
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;
GOSTEI 0
Poderoso
09/04/2004
Esse último codigo deu certo. Agora funcionou. Valeu galera pela atenção!!!!
Abraços.
Abraços.
GOSTEI 0