JasperReports - Subrelatório de subrelatório

Olá,

Tenho um relatorio que precisa fazer uma recursao.

Categoria
Subcategorias
Subcategora da subcategoria
Até a folha e agora um subrelatorio com outras informacoes.

Logo são quatro arquivos XML.
1 geral (chama o 2)
2 categoria(mostra o nome e chama o 3)
3 subcategoria( mostra o nome e chama o 3 mesmo e em seguida chama o 4)
4 fornecedores( mostra os fornecedores)

Alguem sabe como posso fazer isso???
Tenho que carregar os relatorios em uma página e mandar todos os subrelatorios como parametro…
E repassar os relatorios a cada subrelatório??? como faço isso…
Pois chega a mostrar as categorias mas não entra nas subcategorias…

Obrigado

Pelo que entendi você fez os passos corretos, colocou um subrelatorio dentro do outro.

Talvez o erro esteja em outro lugar. Ocorre alguma exceção?

Ok, eu acredito que está ok meu relatório só que estou achando que o jasper ignora minha chamada de um subrelatório dentro de outro subrelatorio…

Pois eu verifiquei as consultas e todas trazem resultado… logo deveria exibir…
mas infelizmente acho que o jasper só chega até dois niveis…

Alguem já fez de três níveis relatorio - sub - sub ???

Se já fez como passar o subrelatorio, por parametro ou string com o caminho???

Obrigado

Acho que tem como passar a URL… Mas nao sei se esse eh o caso, pois se vc tiver 50 niveis ateh chegar a folha, vai ter subrelatorio pacas… Ja testou outras saidas? Como formatar os dados antes de chegar no relatorio…

Quanto a fazer relatorio - sub - sub, não pega nada… vai ser normal… Eu tenho um de 3 niveis…

flw!

<html>
	<report:categoria>
		<h1>$Nome</h1>
		<report:sub-categoria>
			<h2>$Nome</h2>
			<report:sub-sub-categoria>
				<h3>$Nome</h3>
				<report:fornecedor>
					$NomeFornecedor<br>
				</report:fornecedor>
			</report:sub-sub-categoria>
		</report:sub-categoria>
	</report:categoria>
</html>

O único problema caso você queira usar essa opção é que não existe ferramenta que processe esse template :mrgreen:

[quote=renato3110] &lt;html&gt; &lt;report:categoria&gt; &lt;h1&gt;$Nome&lt;/h1&gt; &lt;report:sub-categoria&gt; &lt;h2&gt;$Nome&lt;/h2&gt; &lt;report:sub-sub-categoria&gt; &lt;h3&gt;$Nome&lt;/h3&gt; &lt;report:fornecedor&gt; $NomeFornecedor<br> &lt;/report:fornecedor&gt; &lt;/report:sub-sub-categoria&gt; &lt;/report:sub-categoria&gt; &lt;/report:categoria&gt; &lt;/html&gt;

O único problema caso você queira usar essa opção é que não existe ferramenta que processe esse template :mrgreen: [/quote]

Hmmm… bem que tudo posia ser simples assim… rsssss… :mrgreen:

[quote=brlima]Hmmm… bem que tudo posia ser simples assim… rsssss… :mrgreen:
[/quote]

Na verdade isso é uma idéia de ferramenta que não estou com saco de implementar. Lá em casa tem uma papelada sobre isso. Eu tenho uma implementação em Delphi disso aí, mas só é permitido um aninhamento (apenas um sub-relatório).

É parecido com o Velocity só que originalmente voltado para banco de dados, e usa tags em vez daquela sintaxe do Velocity.

Pensando bem, acho que nao chega a ser complicado. Pois isso dá pra fazer com o jasper, soh eh meio complicadinho. Qdo vc simplifica com “scripts” torna a coisa muito mais simples e facil de usar…
Deve ter ficado interessante essa tua implementação.
Eu fiz uma coisa dessas pra gerar umas classes aqui :smiley: no fim das contas acaba com a mesma ideia: le um script e gera um codigo para executar :smiley:

Só uma coisa: pra que fim serve essa implementação pra banco ? gerar script SQL ?

Se tu quiser vejo um exemplo pra te mandar, o problema é que o que eu tenho pronto aqui são informações da empresa, acho que não rola eu expor isso.

Bem na verdade não é um script, é apenas um template de relatório onde marcas especiais são interpretadas.

Manda pra mim o que tu fez?

Eu falei que é voltada para banco de dados porque nos templates do Velocity você referencia objetos e na minha idéia o pensamento inicial era referenciar tabelas/consultas.

Tipo, assim como você põe objetos no contexto do Velocity, você colocaria tabelas no “contexto” dessa coisa, esse contexto seria um XML tipo assim:

<context>
	<connection><!-- dados da conexão --></connection>
	...
	<element name="cliente" sql="SELECT * FROM CLIENTES;"/>
	<element name="pedido" sql="SELECT * FROM PEDIDOS;">
		<!-- permite os sub-relatórios -->
		<join to="cliente" key-field="COD_CLIENTE"/>
	</element>
	...
</context>

Então você poderia escrever essas coisas:

<report:cliente> <h1>$Nome</h1> <ul> <report:pedido> <li>$DataPedido - $DescrPedido</li> <report:pedido> </ul> </report:cliente>

que seriam referências diretas a tabelas de banco de dados e não a objetos. Mas tem uma parada para flexibilizar isso (apenas no papel :smiley: ).

Você têm apenas uma Collection? Um resultado de query só?
Cada subrelatório deve ter seu JRDataSource…

Abraços

Ou uma connection duardor.

Mas qtas querys?