O post anterior deu problema nao sei pq…
Ola pessoal,
estou gerando relatorios a partir de Lists e Beans com o JRBeanCollectionDataSource… ai pintou um probleminha:
É um relatorio com Subrelatorios…
protected void criarRelatorio() {
try {
MainWeb.abrirConexao();
Connection conn = ConexaoOracle.getConn();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from RCR_REGISTRO_CRIMINAL where CD_REGISTRO_CRIMINAL=1");
Pessoa pessoa = new Pessoa( 1 );
while ( rs.next() ) {
pessoa.setNome(rs.getString("NM_INDIVIDUO"));
pessoa.setDataNascimento(rs.getTimestamp("DT_NASCIMENTO"));
pessoa.setNomeMae(rs.getString("NM_MAE"));
pessoa.setNomePai(rs.getString("NM_PAI"));
pessoa.setNacionalidade(rs.getString("DS_NACIONALIDADE"));
pessoa.setUf_naturalidade("SG_UF_NATURALIDADE");
pessoa.setNaturalidade(rs.getString("DS_CIDADE_NATURALIDADE"));
pessoa.setAfisLocal(rs.getString("ID_AFIS_LOCAL"));
pessoa.setAfisFederal(rs.getString("ID_AFIS_FEDERAL"));
pessoa.setDossieFederal(rs.getString("ID_DOSSIE_FEDERAL"));
}
List documentos = new ManageFichaCriminal().obterDocumentos(pessoa);
Hashtable hash = new Hashtable();
hash.put("NOME", pessoa.getNome());
hash.put("DT_NASCIMENTO", UtilWeb.formataDataTimestamp(pessoa.getDataNascimento()));
hash.put("NOME_PAI", pessoa.getNomePai());
hash.put("NOME_MAE", pessoa.getNomeMae());
hash.put("DS_NACIONALIDADE", pessoa.getNacionalidade());
hash.put("SGUF", pessoa.getUf_naturalidade());
hash.put("DS_CIDADE_NATURALIDADE", pessoa.getNaturalidade());
hash.put("ID_AFIS_LOCAL", pessoa.getAfisLocal());
hash.put("ID_AFIS_FEDERAL", pessoa.getAfisFederal());
hash.put("ID_DOSSIE_FEDERAL", pessoa.getDossieFederal());
JRBeanCollectionDataSource bcds = new JRBeanCollectionDataSource( documentos );
hash.put("documentos", bcds);
JREmptyDataSource eds = new JREmptyDataSource();
JasperRunManager.runReportToPdfFile("fichacriminal.jasper", hash, eds);
//JasperViewer.viewReport("fichacriminal.pdf", false);
} catch ( Exception e ) {
e.printStackTrace();
} catch ( Throwable t ) {
t.printStackTrace();
}
}
o problema e o seguinte: la no ireport, eu tenho um subrelatorio “documentos”, q tem os campos q vao ser associados ao list documentos… esse list vai ser passado como parametro pro subrelatorio no relatorio master…
so q dentro desse list de documentos eu tenho um objeto “TipoDocumento”, junto com “numero” e “orgaoExpedidor” que sao Strings… esse objeto encapsula o codigo e a descricao… (1, CPF - 2, RG)…
como eu faria pro campo “tipo” do sub-relatorio conseguir enxergar o atributo “descricao”, que esta dentro do objeto “tipoDocumento”?
a minha classe TipoDocumento tem a subscrição do metodo .toString q retonra a descricao… eu tentei no ireport, dentro do sub-relatorio, criar o campo “tipoDocumento” sendo “String” e “Object” e dos 2 jeitos deu ClassCastException…
alguem me da uma luz ae? ou indicar o q estou fazendo de errado…
abraços