Fórum Filtros, não funciona #551798
19/04/2016
0
Tenho um pequeno sistema de controle de contas a pagar particular - Delphi7 - firebird
Criei um relatório com o Fortes report, em ordem.
A consulta em SQL, funciona pelo IB Expert.
Porem, quando passo pros fontes, o sistema não filtra, é como se eu estivesse carregando o relatório original, sem filtros, até traz os dados, mas todos eles.
Abaixo, o código do filtro:
procedure TFormChamaRelContasAbertas.SpeedButtonVisualizarClick(
Sender: TObject);
begin
FormRelContasPagar := TFormRelContasPagar.Create(Application);
with FormRelContasPagar do
begin
DataModule1.SQLDataSetRelContasPagar.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
DataModule1.SQLDataSetRelContasPagar.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
DataModule1.ClientDataSetRelContasPagar.Close;
DataModule1.ClientDataSetRelContasPagar.Open;
FormRelContasPagar.RLReport1.PreviewModal;
end;
end;
Se alguem puder me ajudar, fico grato.
Fausto Alencar
Curtir tópico
+ 0Post mais votado
19/04/2016
DataModule1.ClientDataSetRelContasPagar.Close;
DataModule1.SQLDataSetRelContasPagar.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
DataModule1.SQLDataSetRelContasPagar.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
DataModule1.ClientDataSetRelContasPagar.Open;
Raylan Zibel
Gostei + 3
Mais Posts
20/04/2016
Fausto Alencar
Mesmo com o seu codigo, não filtra.
Gostei + 0
20/04/2016
Natanael Ferreira
Teste assim:
With DataModule1.SQLDataSetRelContasPagar do
begin
Close;
Params.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
Params.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
Open;
end;Ou assim:
With DataModule1.ClientDataSetRelContasPagar do
begin
Close;
Params.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
Params.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
Open;
end;Gostei + 1
20/04/2016
Fausto Alencar
Testei com os seus códigos e mesmo assim, ele não filtra
Gostei + 0
20/04/2016
Fausto Alencar
Grato
Gostei + 0
20/04/2016
Natanael Ferreira
Te aconselho a atribuir o SQL e os parâmetros direto no código. Exemplo:
With DataModule1.ClientDataSetRelContasPagar do
begin
Close;
CommandText:= 'Select * from Tabela where campodata >= :data1 and campodata <= :data2';
Params.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
Params.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
Open;
end;No commandText coloque o nome correto da tabela e nome correto do campo de data.
Gostei + 0
20/04/2016
Fausto Alencar
procedure TFormChamaRelContasAbertas.SpeedButtonVisualizarClick(
Sender: TObject);
begin
FormRelContasPagar := TFormRelContasPagar.Create(Application);
With DataModule1.ClientDataSetRelContasPagar do
begin
Close;
CommandText:= 'Select * from contasapagar where contasapagar.vcto >= :data1 and contasapagar.vcto <= :data2';
Params.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
Params.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
Open;
end;
End;
Porem retorna erro na execução.
"
---------------------------
Debugger Exception Notification
---------------------------
Project PrjPrincipalContasPagar.exe raised exception class EDatabaseError with message 'CommandText changes are not allowed'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
"
Gostei + 0
20/04/2016
Natanael Ferreira
Gostei + 0
22/04/2016
Fausto Alencar
Eu posso te mandar meu codigo? Voce teria tempo de dar uma olhada rapida nele?
É pequeno.
Tenho um outro sisteminha, bem maior e, no grande consigo uma filtragem a contento, to copiando o codigo da filtragem na integra e fazendo as devidas alterações, mas ainda não filtra.
Se vc puder me ajudar, da um toque que te envio os fontes.
De qualquer forma, te agradeço pelo apoio.
Gostei + 0
22/04/2016
Natanael Ferreira
natanaelcosta1@gmail.com
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)