Passar parâmetro com subrelatório no ireport

3 respostas
T

Olá pessoal, estou com dificuldade para utilizar o ireport usando parâmetros.

O problema é que tenho um relatório principal e preciso chamar nesse relatório um cabeçalho que no caso seria o subrelatorio, porém estou fazendo tudo pelo ireport. No relatório principal e no subrelatorio existem consultas diferentes.
Como faço para chamar cabeçalho no relatório principal?
Outra questão, o relatório principal só pode ser gerado se o resultado do subrelatório(cabeçalho) for igual ao resultado da condição do relatório principal. Por exemplo, queria que se o id do subrelatório fosse igual ao id do relatório principal ele exibiria o resultado. Assim as condições existentes no subrelatório não precisariam ser colocadas no relatório principal. Como faço isso?

Obrigado.

3 Respostas

V

Não é melhor inverter e fazer com que o cabeçalho seja o relatório principal e o resultado seja o subrelatório? Aparentemente fica mais lógico e é mais fácil encaixar visualmente os elementos.

Para passar o parâmetro, vc cria o parâmetro com o mesmo nome nos dois relatórios (principal e sub). No relatório principal vc clica no elemento do subrelatório com o botão direito e seleciona Propriedades > SubRelatório (Outro) > Add Parâmetro, com o nome do parâmetro e colocando o próprio parâmetro do relatório principal na expressão.

T

Olá, desculpe não ter voltado no tópico mas consegui resolver o problema.

Valeu Vinicius pela dica!! Já tinha pensado em inverter fazendo o cabeçalho como principal mas é que no meu caso não vale a pena. O cabeçalho tem formatação idêntica em todos os relatórios e como são muitos resolvi fazer o cabeçalho como subrelatório assim não preciso ficar criando um cabeçalho para cada relatório. Também fica mais fácil dar manutenção caso eu precise modificar o cabeçalho não precisarei percorrer todos os relatórios e sim apenas o subrelatório(.jrxml) com o cabeçalho.

Mas valeu pela atenção.

Abraço.

V

Perfeito então, valeu!

Criado 9 de junho de 2008
Ultima resposta 20 de jun. de 2008
Respostas 3
Participantes 2