BIRT - Top n executa de forma incorreta

Olá amigos.

Estou com um problema a dias e nada de conseguir resolver … e é o seguinte:

Tenho um data set que liga em uma tabela do banco …
E nele possui 4 filters, sedo 3 deles string e outro um integer, todos eles recebem algum parâmetro(parameters) como valor padrão.

O filter de integer é usado com Top n de “id - parâmetro recebido”. E ele faz a validação de número max. de linhas para o relatório.

O problema surge nesse momento, quando eu executo ele no “Eclipse BIRT” roda normalmente, mas quando chamo ele pelo java é onde quase tudo da errado.

O que pude perceber é que ele executa o Top n primeiro, ou seja executa um LIMIT 0,parametro, e executa os outros filters apos ter feito o Top n.
Ex:

string nome = rodrigo
max_result = 5;

Ele executa o sql,
select * from pessoas limit 0,5;
Somente apos executar isso ele faz o filtro por nome e o resultado é nulo pq nesses 5 resultados não possui rodrigo.

Oque gostaria é que ele pesquisasse todos os rodrigos e aparecesse somente os 5 primeiros rodrigos encontrados em toda a tabela.

Espero que consigam entender oque e me ajudem.

Desde já agradeço.
Guilherme berghauser

Amigos …

FINALMENTE CONSEGUI RESOLVER!

Como fiz isso?

Descobri que exite 3 formas de se fazer filtro nos dados pesquisados, e eles ocorrem nessa ordem:

1- query pura;
2- data set filters;
3- table filters;

Ou seja, busquei uma query simples (select * from pessoa), adicionei filtros na própria dataset (que simulam a clausula where) e fiz a busca.

A descoberta foi que a tabela vc pode adicionar mais um filtro que faz um where nos dados já filtrados anteriormente, sendo assim adicionei um filtro de Top n, que o primeiro valor é o id e o segundo valor o número de linhas que quero exibir.

Espero que ajude alguém.

Desde já agradeço.
Guilherme Berghauser