Pessoal,
Eu segui esse tutorial http://www.cin.ufpe.br/~tjs/Tutorial%20IReport.doc
Tenho as classes: ProntuarioJRDataSource.java - Prontuario.java - ProntuarioJRDataSourceFactory.java
estão dentro desse pacote: br.edu.anglo.EMS.Dados
Segui o tutorial e criei o relatorio, só que na hora de compilar para gerar o .jasper, ele diz ter um problema com os textfields $F{CODIGO} , etc.
=> Daí fui ver e tentar fazer um teste de conexao e aparece classe não encontrada.
Já tentei usar o caminho br.edu.anglo.EMS.DadosProntuarioJRDataSourceFactory na configuração da conexão, já tentei só o nome da classe e tal.
Já tentei tudo que li no fórum e ainda não consegui resolver esse problema.
Alguém pode me dar uma ajuda aí?!
Bom dia!!
Por favor poste o stack do erro ai !!
Att.
[quote=ManoJava]Bom dia!!
Por favor poste o stack do erro ai !!
Att.[/quote]
classNotFoundError!
Msg: ProntuarioJRDataSourceFactory
Possible not found class: ProntuarioJRDataSourceFactory
Check your classpath!
[quote=gilson.anselmo]Wellington
voce ja deu uma olhada neste tutorial?
http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/ht...l/documentviews/relatorios.htm
[/quote]
Bom vou dar uma lida nisso,
Mas não to usando Hibernate, nem JSF, to fazendo apenas uma aplicação desktop simples.
Versão do iReport 4.0.2
Criei as classes, agora não faço idéia de como ‘‘ligo’’ os parametros do iReport com esse aqui.
Como eu disse, tentei o que comentei no inicio do tópico, mas dá aquele erro lá.
O que tenho é o seguinte:
public class Prontuario {
private String codigo;
private Date dtInternacao;
private boolean teveAlta;
private Date dtAlta;
private int leito;
private String presCuid;
private String foco;
private String SVD;
private String GS;
private String FV;
private String reacao;
private String plano;
private String encaminhamentos;
private int nEncaminhamentos;
private int nAtestados;
private int nDeclaracoes;
private int nLaudos;
private String hipResumida;
private String hipAmpliada;
private String testes;
private String evolucao;
private String insight;
private String resolucao;
private String melhoria;
private String modificacoes;
private String projetos;
private String consFinais;
private String queixaResAlta;
private List<Acomp> acomp;
private List<MotivoAlta> motAlta;
getters and setters
}
public class ProntuarioJRDataSource implements JRDataSource{
Iterator<Prontuario> iterador;
Prontuario prontuario;
public ProntuarioJRDataSource(Vector<Prontuario> prontuarios){
super();
iterador = prontuarios.iterator();
}
public boolean next() throws JRException {
boolean retorno = iterador.hasNext();
if(retorno){
prontuario = iterador.next();
}
return retorno;
}
public Object getFieldValue(JRField nome) throws JRException {
if (nome.getName().equals("CÓDIGO")) {
return prontuario.getCodigo();
}
return null;
}
}
[/code][code]
package br.edu.anglo.EMS.Dados;
import java.util.Vector;
import net.sf.jasperreports.engine.*;
public class ProntuarioJRDataSourceFactory {
private static JRDataSource dados;
public static JRDataSource createDataSource(Vector<Prontuario> prontuarios){
dados = new ProntuarioJRDataSource(prontuarios);
return dados;
}
}
Wellington
olha isso aqui.
//esse metodo cria o relatorio
public String getVerRelatorio(){
Usuario usuario = MenuController.getUsuarioSession();
//aqui passo alguns parametros
Map parameters = new HashMap();
//parameters.put("grafico", ConsultaAvalDocenteAction.createGraficoChart() );
parameters.put("responsavel", usuario.getApelido());
parameters.put("dataIni", Utilidades.dateToString( this.getConsultaAcesso().getDataInicio()));
parameters.put("dataFim", Utilidades.dateToString( this.getConsultaAcesso().getDataFinal()));
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat data = new SimpleDateFormat( "dd/MM/yyyy" );
SimpleDateFormat hora = new SimpleDateFormat( "HH:mm:ss" );
parameters.put("datarelatorio", data.format(gc.getTime()));
parameters.put("horarelatorio", hora.format(gc.getTime()));
//pego a lista de beans e passo no construtor da classe.
ConsultaDataSource consulta = new ConsultaDataSource(this.getListConsultaAcesso());
String jasperFile = null;
try {
jasperFile = "relat_acessos_sistema.jasper";
InputStream is = null;
try {
is = ConsultaAcessoController.class.getResourceAsStream(jasperFile);
} catch (Exception ee) {
ee.printStackTrace();
}
byte[] bytes = null;
bytes = JasperRunManager.runReportToPdf(is, parameters, consulta);
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(bytes, 0, bytes.length);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//Classe
public class ConsultaDataSource implements JRDataSource {
private Iterator itrBeanListagemUsuario;
private Object valorAtual;
private boolean irParaProximoAluno = true;
private String familiaAnterior;
public ConsultaDataSource(List lista) {
super();
this.itrBeanListagemUsuario = lista.iterator();
}
public boolean next() throws JRException {
valorAtual = itrBeanListagemUsuario.hasNext() ? itrBeanListagemUsuario.next() : null;
irParaProximoAluno = (valorAtual != null);
return irParaProximoAluno;
}
public Object getFieldValue(JRField campo) throws JRException {
Object valor = null;
BeanListagemUsuario usuario = (BeanListagemUsuario) valorAtual;
if ("nun_ord".equals(campo.getName())) {
valor = new String(
usuario.getNun_ord()
);
}
if ("nm_usuario".equals(campo.getName())) {
valor = new String(
usuario.getNm_usuario()
);
}
if ("dt_ultimo_acesso".equals(campo.getName())) {
valor = new String(
usuario.getDt_ultimo_acesso()
);
}
if ("num_acessos".equals(campo.getName())) {
valor = new Integer(
usuario.getNum_acessos()
);
}
if ("perfilDescricao".equals(campo.getName())) {
valor = new String(
usuario.getPerfilDescricao()
);
}
if ("datarelatorio".equals(campo.getName())) {
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat data = new SimpleDateFormat( "dd/MM/yyyy" );
valor = data.format(gc.getTime());
}
if ("horarelatorio".equals(campo.getName())) {
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat hora = new SimpleDateFormat( "HH:mm:ss" );
valor = hora.format(gc.getTime());
}
return valor;
}
}
veja se te ajuda, qualquer coisa pergunte.
Voce é de Foz do Iguaçu? sou também…