[RESOLVIDO] IReport + varios Dataset + passar parametro [SOLUCAO NO POST]

Tenho varios dataSet, gostaria de passar 1 parametro para todos, alguem tem uma dica?

Não estou com o iReport aqui para verificar, mas não é só criar um parâmetro do relatório e acessar esse parâmetro em todos os datasets normalmente não ?

Nao. Quando vo pra fazer a query ele so aparece as variaves e parametros daquele dataset, pois cada dataset tem os seus.

tenho uns 5 dataset no meu relatorio, se eu conseguisse passar o valor pra cada um dele, ja resolveria, acredito que nao seje o ideal mais funcionaria.

bom consegui resolver…

1º Crie um parametro na base principal! Nao esqueça de mudar o tipo do parametro no caso o meu era tipo Long. (Caso teste direto do ireport deixa a opção “Use as a prompt” se for testa direto do sistema passando o parametro ae nao precisa deixar marcado)

2º Crie um parametro em cada base(DataSet) do MESMO TIPO que voce na base principal e desmarque a opção “Use as a prompt”.

3º Vai na sua tabela ou List e clique com o botao direito e vá em “Edit table datasource”

4º Selecione o subDataset que deseja usar, e na Aba “Connection / DataSource Expression” verifique se a opção “Use connection expression” esta selecionada que automaticamente o valor “$P{REPORT_CONNECTION}” será preenchida.

5º Ainda na mesma tela, vá na aba “Parameters” e click em “Add”, No drop voce ira selecionar o parametro que voce criou no SUBDATASET, após selecionado, a baixo em “Value expression” click no botao “Expression Editor” e ae voce procura o PARAMETRO criado no DataSet PRINCIPAL e clica nele até ele aparecer na caixa de texto.

Pronto, pode dar “Ok”, ae so pra confirma, vai aparecer tipo uma tabela contendo o nome dos dois parametros na tela DataRun na aba parameters, ae pode dar “ok” em tudo que ja vai estar funcionando.

7º Vá no seu Sub DataSet, click com o botao direito e em “Edit Query” e utilize o parametro do jeito que você quiser :smiley:

Obs.: Caso tenha 10 tabelas, terá que fazer isso tudo nas 10 sempre lincando com o parametro do DATASET principal, ae é so passar o valor via prompt ou pelo o sistema que voce esta criando.

vlw, penei pra descobrir isso entao para os proximos que tiverem a mesma duvida, fica a dica :smiley:

3 curtidas

[quote=Guguuu]bom consegui resolver…

1º Crie um parametro na base principal! Nao esqueça de mudar o tipo do parametro no caso o meu era tipo Long. (Caso teste direto do ireport deixa a opção “Use as a prompt” se for testa direto do sistema passando o parametro ae nao precisa deixar marcado)

2º Crie um parametro em cada base(DataSet) do MESMO TIPO que voce na base principal e desmarque a opção “Use as a prompt”.

3º Vai na sua tabela ou List e clique com o botao direito e vá em “Edit table datasource”

4º Selecione o subDataset que deseja usar, e na Aba “Connection / DataSource Expression” verifique se a opção “Use connection expression” esta selecionada que automaticamente o valor “$P{REPORT_CONNECTION}” será preenchida.

5º Ainda na mesma tela, vá na aba “Parameters” e click em “Add”, No drop voce ira selecionar o parametro que voce criou no SUBDATASET, após selecionado, a baixo em “Value expression” click no botao “Expression Editor” e ae voce procura o PARAMETRO criado no DataSet PRINCIPAL e clica nele até ele aparecer na caixa de texto.

Pronto, pode dar “Ok”, ae so pra confirma, vai aparecer tipo uma tabela contendo o nome dos dois parametros na tela DataRun na aba parameters, ae pode dar “ok” em tudo que ja vai estar funcionando.

7º Vá no seu Sub DataSet, click com o botao direito e em “Edit Query” e utilize o parametro do jeito que você quiser :smiley:

Obs.: Caso tenha 10 tabelas, terá que fazer isso tudo nas 10 sempre lincando com o parametro do DATASET principal, ae é so passar o valor via prompt ou pelo o sistema que voce esta criando.

vlw, penei pra descobrir isso entao para os proximos que tiverem a mesma duvida, fica a dica :D[/quote]

Isso me salvou!! Muito obrigado!!