ProgressBar al invocar un reporte en eclipse
buenas, quisera una orientacion de como implementar un progressbar al momento de invocar mi reporte, esto es porque al momento de invocarlo el mismo tarda aproximadamente entre 4 y 5 segundos en mostrarse, estuve consultando en varios foros y documentandome y creo que no se puede optimizar ese tiempo, ya que de porsi, todos presentan ese mismo problema al ejecutar su reporte desde la aplicacion.
estuve documentandome un poco sobre los Thread, pero no me quedo muy claro... tengo una clase en donde defino el reporte, y su ubicacion, y desde la aplicacion le envio por paramentros los valores para llenar el reporte, en este caso como haria para mostrar un progresbar desde que presiono el boton ver reporte y este aparezca.
gracias.
desde aqui llamo a mi reporte y le paso los parametros
/*Se Crea un objeto del tipReporte deseado y se ejecuta su metodo */
CS_RptFicIns Rpt = new CS_RptFicIns();
String value=jtf_cedEscolar.getText().trim().toString();
Rpt.runReporte(value);
y en mi clase CS_RptFicIns tengo el siguiente codigo
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JRExporterParameter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;
import com.mysql.jdbc.Connection;
public class CS_RptFicIns {
private Connection conn;
private final String login = "root";
private final String password = "";
private String url = "jdbc:mysql://localhost/csytec_sgpi";
public CS_RptFicIns(){
try{
Class.forName("com.mysql.jdbc.Driver");
conn = (Connection) DriverManager.getConnection(url,login,password);
}
catch (ClassNotFoundException ex){
ex.printStackTrace();
}
catch (SQLException ex){
ex.printStackTrace();
}
}
public void runReporte(String value ){
try{
String fileName = "C:/CSytec/CSGE/rpt/CSGE_RptInscAlumno.jasper";
if (fileName == ""){
System.out.println("No encuentro el archivo del reporte.");
System.exit(2);
}else{
Map<String, Object> parameters = new HashMap<String, Object>();
parameters.put("idCedEsc", value);
JasperReport reporte = (JasperReport) JRLoader.loadObjectFromFile(fileName);
JasperPrint jasperPrint = JasperFillManager.fillReport(reporte, parameters, conn);
JRExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE, new java.io.File("C:/CSytec/CSGE/Reportes Inscripcion/CSGE-"+value+".pdf"));
exporter.exportReport();
JasperViewer visor=null;
visor = new JasperViewer(jasperPrint,false); //Creamos un visor para previsualizar el reporte
visor.setTitle("Reporte");
visor.setVisible(true);
}
}catch (Exception j){
System.out.println("Mensaje de Error:"+j.getMessage());
}
}
public void cerrar(){
try{
conn.close();
}catch (SQLException ex){
ex.printStackTrace();
}
}
- Inicie sesión o regístrese para enviar comentarios
Comentarios recientes
hace 3 semanas 21 horas
hace 7 semanas 1 día
hace 14 semanas 5 días
hace 22 semanas 5 días
hace 25 semanas 2 días
hace 26 semanas 6 días
hace 30 semanas 1 día
hace 30 semanas 1 día
hace 36 semanas 1 día
hace 37 semanas 2 días