Não consigo filtrar Relatorio - Rave Report
Estou usando a seguinte sintaxe para filtrar distribuições em determinado período no banco:
RM.cdsPromotores.Close; RM.cdsPromotores.Filtered := True; RM.cdsPromotores.Filter := 'IDPROMOTOR = ' + QuotedStr(DBLookupComboBox1.KeyValue); RM.cdsVW_DISTRIBUICAO.Filtered := True; RM.cdsVW_DISTRIBUICAO.Filter := 'DTDISTRIBUICAO >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ' AND DTDISTRIBUICAO <= ' + QuotedStr(DateToStr(DateTimePicker1.Date)); RM.cdsPromotores.Open;
RM.RvProject.SetParam('paramTitulo', FrmTituloDoRelatorio.sEdit1.Text); RM.RvProject.ExecuteReport('distribuicoes');
O cdsPromotores é o Mestre, enquanto que o VW_DISTRIBUICAO é odetalhe, então eu filtro o mestre de acordo com o id passado e o vw_distribuicao de acordo com o periodo passado.
mais não está filtrando nada.
RM.cdsPromotores.Close; RM.cdsPromotores.Filtered := True; RM.cdsPromotores.Filter := 'IDPROMOTOR = ' + QuotedStr(DBLookupComboBox1.KeyValue); RM.cdsVW_DISTRIBUICAO.Filtered := True; RM.cdsVW_DISTRIBUICAO.Filter := 'DTDISTRIBUICAO >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ' AND DTDISTRIBUICAO <= ' + QuotedStr(DateToStr(DateTimePicker1.Date)); RM.cdsPromotores.Open;
RM.RvProject.SetParam('paramTitulo', FrmTituloDoRelatorio.sEdit1.Text); RM.RvProject.ExecuteReport('distribuicoes');
O cdsPromotores é o Mestre, enquanto que o VW_DISTRIBUICAO é odetalhe, então eu filtro o mestre de acordo com o id passado e o vw_distribuicao de acordo com o periodo passado.
mais não está filtrando nada.
Ronaldo Lanhellas
Curtidas 0
Respostas
Marcelo Letteri
30/04/2011
RM.cdsPromotores.Close; RM.cdsPromotores.Filtered := True; RM.cdsPromotores.Filter := 'IDPROMOTOR = ' + QuotedStr(DBLookupComboBox1.KeyValue); RM.cdsVW_DISTRIBUICAO.Filtered := True; RM.cdsVW_DISTRIBUICAO.Filter := 'DTDISTRIBUICAO >= ' + QuotedStr(DateToStr(DateTimePicker1.Date)) + ' AND DTDISTRIBUICAO <= ' + QuotedStr(DateToStr(DateTimePicker1.Date));
Cara duas coisas...
1 - Vc esta colocando o Filtred ligado e depois liga de novo... tenta: RM.cdsPromotores.Filtered := FALSE; RM.cdsPromotores.Filter := 'IDPROMOTOR = ' + QuotedStr(DBLookupComboBox1.KeyValue); RM.cdsVW_DISTRIBUICAO.Filtered := True;
2 - Tira o QuotedStr.
Espero ter ajudado.
Abraço
Cara duas coisas...
1 - Vc esta colocando o Filtred ligado e depois liga de novo... tenta: RM.cdsPromotores.Filtered := FALSE; RM.cdsPromotores.Filter := 'IDPROMOTOR = ' + QuotedStr(DBLookupComboBox1.KeyValue); RM.cdsVW_DISTRIBUICAO.Filtered := True;
2 - Tira o QuotedStr.
Espero ter ajudado.
Abraço
GOSTEI 0
Ronaldo Lanhellas
30/04/2011
só uma coisa: não posso tirar o QuotedStr se não da erro de conversão.
Porém consegui fazer funcionar, setando false no dataset antes de setar true.
Porém consegui fazer funcionar, setando false no dataset antes de setar true.
GOSTEI 0