Bom dia, preciso montar um relatório com um subrelatório, criei os 2 separados e funcionam perfeitamente, mas na hora que eu adiciona o subrelatorio no principal ele monta as colunas corretamente porém está trazendo os valores como null:
Chamando o relatório via Jasper:
public static void main(String[] args) throws Exception {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse("c:/addressbook.xml");
String recordPath = "/addressbook/category/person";
String arquivoJasper = "teste.jasper";
JRXmlDataSource xmlDataSource = new JRXmlDataSource(doc, recordPath);
JasperPrint rel = JasperFillManager.fillReport(arquivoJasper,
new HashMap(), xmlDataSource);
JasperViewer.viewReport(rel, false);
}
Criei o campo no relatório principal e coloquei em descrição . conforme o manual, alguém tem ideía do que acontece quando traz as colunas do subrelatórios como null como se não reconhecesse o campo?
Pedrosa, não entendi como vc está fazendo, mas eu tenho vários relatórios utilizando sub-relatorios e funcionam perfeitamente, mas essa configuração do sub-report eu realizo no iReport mesmo
Passando os parametros
Acho que ele não está encontrando o campo, pq o cmapo está no sub-relatorio e não no relatorio mestre, como está configurado no iReport ?
Pedrosa,
Poste o fonte dos relatórios.
[]'s
Estou montando no IReport também, estranho que adiciono mais campos no meu relatório compilo e não aparece no Jasper View quando rodo no Java, no menu fica como (Não modificados) que coisa louca, e também quando tento rodar pelo IReport não acontece nada, ta cheio de bugs com data source em xml.
Estou usando a versão 2.0.
O que vocês acham do BIRT?
Realmente o Ireport tem muitos bugs, principalmente as versoes mais antigas, voce altera o relatorio no ireport, mas no arquivo xml ele nao modifica nada.
A ultima versao ja foi bem melhorada, mas continua com bugs…
Vc está passando algum parametro para o subRelatorio corretamente?
Estou passando assim:
((net.sf.jasperreports.engine.data.JRXmlDataSource)
$P{REPORT_DATA_SOURCE}).subDataSource("/enc/itens")
Lembrando que estou usando um data source em xml nesse formato:
<producaoencomendas>
<enc>
<cod>130193</cod>
<ord>
<cod>1840</cod>
</ord>
<ped>
<cod>1134982</cod>
<desc>tipo</desc>
</ped>
<empD>
<cod>0</cod>
<nome>RS17118</nome>
<fant>FS17118</fant>
<cnpj>CN17118</cnpj>
<grup>FS17556</grup>
</empD>
<cont/>
<endD>
<ce>0</ce>
<log>LG85776</log>
<num>1415</num>
<cep>04511-001</cep>
<bai>INSTITUTO DE PREVIDENCIA</bai>
<cid>SAO PAULO</cid>
<est>SP</est>
<comp>ap 150</comp>
</endD>
<dtEmi>14/06/2007</dtEmi>
<dtEnt>19/06/2007</dtEnt>
<tpEnc>Avulso</tpEnc>
<numPeds>70</numPeds>
<qtd>2</qtd>
<menS>1</menS>
<maiS>2</maiS>
<itens>
<ite>
<qt>24</qt>
<unit>1.0</unit>
<t>24.0</t>
<pr>
<id>0</id>
<cod>05.07</cod>
<des1>DESC</des1>
</pr>
</ite>
<ite>
<qt>230</qt>
<unit>2.0</unit>
<t>460.0</t>
<pr>
<id>0</id>
<cod>05.09</cod>
<des1>DESC2</des1>
</pr>
</ite>
</itens>
</enc>
</producaoencomendas>
E chamo no Jasper:
String recordPath = "/producaoencomendas/enc";
String arquivoJasper = "Encomendas.jasper";
JRXmlDataSource xmlDataSource = new JRXmlDataSource(doc, recordPath);
JasperPrint rel = JasperFillManager.fillReport(arquivoJasper,
new HashMap(), xmlDataSource);
JasperViewer.viewReport(rel, false);
Outras dúvidas:
1 Como exibir o título em todas as páginas, coloquei em Title e so é exibido na primeira página?
2 Como tratar os valores null no relatório pelo IReport?

Troquei minha configuração do subrelatorio assim:
O que estou fazendo de errado?


nas propriedades do titulo vc coloca print repeated values
[code]2 Como tratar os valores null no relatório pelo IReport? [/code]
nas propriedades do valor vc coloca em print when expression um pattern
que o ireport ja tem, tipo
[code]( <condition> ? exp1 : exp2 )[/code]
blzz
nas propriedades do titulo vc coloca print repeated values
nas propriedades do valor vc coloca em print when expression um pattern
que o ireport ja tem, tipo
blzz