Foro sobre Java SE > Reporte con ireport
Este es el drive que me pide com.microsoft.sqlserver.jdbc.SQLServerDriver, lo mas lindo es que lo tengo, lo coloque en el paquete libreria de mi proyecto, pero como hago para que lo reconosca el ireport?
Vi por internet que en services elegian base de datos y agregaban el driver, lo cual hice lo mismo, pero sigue igual, sin reconocerlo.
Prueba este método:
http://community.jaspersoft.com/wiki/connecting-ireport-microsoft-sql-datasource
No uso iText, pero aquí tienes dos enlaces:
http://api.itextpdf.com/itext/com/itextpdf/text/Document.html
http://tutorials.jenkov.com/java-itext/index.html
Sobre como instalar el driver sql server en iReport:
http://community.jaspersoft.com/wiki/connecting-ireport-microsoft-sql-datasource
Un saludo
Gracias, ya habia hechos los pasos, pero me faltaba uno, y en ese enlace que me mandaron lo pude ver, ahora si aparece mi base de datos.
Saludos
1 - Respecto a tu problema con Itext, creo que tu problemas es que has importado una clase Document que no es la correcta porque debe ser:
com.itextpdf.text.Document
2 - Respecto a JasperReport, desde mi punto de vista meter dentro del report tanto el driver como la consulta que necesita el report no me parece la mejor práctica, ya que la extracción de datos de una aplicación según un modelo MVC debería estar en el modelo más concretamente en los DAOs y no dentro de ningún report. Yo como alternativa recupero los datos en un DAO y con la lista de resultados hago un:
new JRBeanCollectionDataSource(datos)
Y no es necesario tener ni el driver ni la consulta metida en el report ya que le pasas esos datos como parámetro al ejecutar el report:
Te pongo un ejemplo:
JasperPrint print = null;
parameters.put("titulo_report", "TITULO");
List<EstudioFueraCicloData> datos = new ArrayList<EstudioFueraCicloData>();
EstudioFueraCicloData dato = new EstudioFueraCicloData();
dato.setTipo_certificacion("Diseño");
dato.setValor(0);
datos.add(dato);
dato = new EstudioFueraCicloData();
dato.setTipo_certificacion("Pruebas");
dato.setValor(1);
datos.add(dato);
print = JasperFillManager.fillReport(jasperReport, parameters, new JRBeanCollectionDataSource(datos));
Con esto bastaría para poner datos en un report y por supuesto adecuar el diseño del report a los datos.
te dejo un ejemplo más detallado para ireport.
http://www.devpractice.com/2013/05/jasper-reports-using-spring-mvc.html
En el futuro cuando tenga tiempo me gustaría hacer un post sobre esto para mi propio blog, ya os informaré.
Hola, tengo problemas para crear un reporte con ireport, ya que la base de datos con la que me manejo es en SQL server, y cuando tengo que crear la conexion con el ireport, figuran los driver de conexion de otras bases de datos, como ej. MySQL, pero el drive de SQL server figura en color rojo y dice que no se encuentra en el Classpath, cómo hago para que figure junto con los demas driver? y poder hacer el reporte.
Otra cosa, tambien uso librerias itext para crear un documento pdf, siempre lo hice de esta forma, aqui esta el codigo:
try
{
Document doc= new Document (PageSize.A4);
FileOutputStream file=new FileOutputStream("Documento.pdf");
PdfWriter.getInstance(doc, file);
doc.open();
Image imagen=Image.getInstance(("IconoVentana.jpg"));
imagen.setAlignment(Image.LEFT | Image.TEXTWRAP);
doc.add(imagen);
Paragraph titulo=new Paragraph("Prestaciones Registradas");
titulo.setAlignment(Element.ALIGN_CENTER);
doc.add(titulo);
Paragraph lineablanco= new Paragraph(" ");
doc.add(lineablanco);
PdfPTable tabla= new PdfPTable(5);
ResultSet rs= Conexion.getInstance().getResultPrestacion();
while(rs.next())
{
tabla.addCell(String.valueOf(rs.getInt("Codigo")));
tabla.addCell(rs.getString("Nombre"));
tabla.addCell(rs.getString("Descripcion"));
tabla.addCell(String.valueOf(rs.getDouble("CostoPrestacion")));
tabla.addCell(String.valueOf(rs.getInt("TipoPractica")));
}
doc.add(tabla);
doc.close();
file.close();
Runtime.getRuntime().exec("rundll32 url.dll, FileProtocolHandler"+"Documento.pdf");
}
catch(Exception e){System.out.println("El error es:"+e.getMessage());}
El problema que me figura ahora, es que me marca con rojo Document, me dice que document es abstract, no puede ser instanciado. y de ahi en mas, marca los metodos add y close.
Importe la libreria import javax.swing.text.Document; pero igual sigue dando problemas. No tengo mucha idea de como solucionarlo, ya que siempre lo hice asi y me funcionaba bien, nose porque ahora me da ese error, me pueden ayudar? gracias