Fórum Relatório_Delphi #601343

21/03/2019

0

Boa Tarde à todos do fórum, estou desenvolvendo um relatório para visualizar os clientes que não tem movimento em um determinado período e não estou conseguindo, o engraçado é que uso o código no SQL Server e dá certo, já no Delphi não estou conseguindo não sei se estou usando algo errado no código, será que alguém poderia me dá uma ajuda agradeço, seque o código abaixo:

Obs: O que muda de um pro outro é só o código da data do período no SQL, no Delphi tenho uma tela para digitar o período.

NO SQL SERVER.

SELECT C.ID_CLI,
C.NOM_CLI
FROM CAD_CLI C
WHERE C.ID_CLI NOT IN (SELECT V.COD_CLLI
FROM CAB_SERV V
WHERE V.DATA_SERV BETWEEN ''''''''''''''''2017/01/04'''''''''''''''' AND ''''''''''''''''2017/07/04'''''''''''''''')
ORDER BY NOM_CLI

NO DELPHI

Try
with dt_studio.query_cliausente do
begin
SQL.Clear;
SQL.Text:=''''''''''''''''SELECT C.ID_CLI, C.NOM_CLI FROM CAD_CLI C''''''''''''''''+
''''''''''''''''WHERE C.ID_CLI NOT IN(SELECT V.COD_CLLI FROM CAB_SERV V)''''''''''''''''+
''''''''''''''''WHERE V.DATA_SERV >= :DTINI AND V.DATA_SERV <= :DTFIM''''''''''''''''+
''''''''''''''''ORDER BY C.NOM_CLI, C.ID_CLI'''''''''''''''';
Parameters.ParamByName(''''''''''''''''dtini'''''''''''''''').Value := StrToDate(DatIni.Text);
Parameters.ParamByName(''''''''''''''''dtfim'''''''''''''''').Value := StrToDate(DatFim.Text);
Open;
if RecordCount > 0 Then
begin
frm_relatorios.rel_cli_semserv.loadfromfile(''''''''''''''''\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\douglas-ti\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\projeto_studio atraente\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\relatorios\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\rel_cli_ausente.fr3'''''''''''''''');
with frm_relatorios.rel_cli_semserv.Variables do
begin
Variables[''''''''''''''''periodo''''''''''''''''] := QuotedStr(Datini.Text + '''''''''''''''' até '''''''''''''''' + DatFim.Text);
frm_relatorios.rel_cli_semserv.showreport(true);
frm_cliausente.close;
end;
end
else
Showmessage(''''''''''''''''Não Existe Movimento nesse Período!'''''''''''''''');
Close;
end;
except
Showmessage(''''''''''''''''Existe(m) Erro(s) no Relatório!!!'''''''''''''''');
Joao Lima

Joao Lima

Responder

Posts

21/03/2019

Hélio Devmedia

Olá João lima, tudo bem?

Pode ser duas coisas!


Pode ser o tipo do parâmetro. Note que no SQL você passa uma data como string no formato yyyymmdd, mas nos componentes de execução de query no Delphi você precisa identificar o tipo do parâmetro:

Se você for passar a data como string, o parâmetro tem que ser ftString e se for passar a data como TDAte, o parametro tem que ser ftDate;


Outra coisa que pode ser é que talvez, você esteja com o formato do tipo ftDate mas o formato de data do Delphi não esteja sendo compatível.

Verifique isto, qualquer coisa pode perguntar novamente.


Um forte abraço e fique com Deus.


Responder

Gostei + 0

22/03/2019

Joao Lima

Olá João lima, tudo bem?

Pode ser duas coisas!


Pode ser o tipo do parâmetro. Note que no SQL você passa uma data como string no formato yyyymmdd, mas nos componentes de execução de query no Delphi você precisa identificar o tipo do parâmetro:

Se você for passar a data como string, o parâmetro tem que ser ftString e se for passar a data como TDAte, o parametro tem que ser ftDate;


Outra coisa que pode ser é que talvez, você esteja com o formato do tipo ftDate mas o formato de data do Delphi não esteja sendo compatível.

Verifique isto, qualquer coisa pode perguntar novamente.


Um forte abraço e fique com Deus.




ok vou verificar, obrigado
Responder

Gostei + 0

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

Aceitar