JasperReports - Obter um atributo de um objeto dentro de um ArrayList NOVO

0 respostas
fabim

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

Criado 2 de fevereiro de 2007
Respostas 0
Participantes 1