Hacer un contador en ireport

Bueno tengo un pregunta con respecto a ireport, ya que no se si se pueda generar un contador automáticamente.
Ya que quiero que cuente los reportes que se vayan, generando.
Y si se puede hacer me podrían decir como o darme una idea

1 respuesta

Respuesta
1
Pues mira, si lo que necesitas es hacer un contador para los reportes que se generan, pues no se haría dentro de ireport, porque no hay algo así, ireport lo que ace, es facilitarte la creación de plantillas para tus reportes, basándose en las librerías de jasper reports, entonces, pues creo que lo apropiado es que en tu aplicación, cada vez que llames al método que genera un reporte, tu incrementes una variable que previamente hayas declarado...
HAAA Muchas gracias por la ayuda.
¿Pero tengo una duda como hago el contador? Te muestro el código con el que mando a llamar el reporte pero no se donde o como mando a llamar el contador ya que le paso como parámetro el numero de reporte***
jbReporte=new JButton("Reportes", new ImageIcon("iconos/reporte.png"));
     jp.add(jbReporte);
     jbReporte.setBounds(470,80,110,25);
     jbReporte.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent ae){
        JasperViewer jasperViewer;
        Connection con = null;
        Map<String, String> parametros = new HashMap<String, String>();
                         parametros.put("p_nom_per",jtfPer.getText());
                         parametros.put("p_nom_ubi",jtfUbi.getText());
                        parametros.put("p_nom_zona",jtfZona.getText());
                        ****parametros.put("p_num_rep",jtfReporte.getText());
                         parametros.put("nom_per","nom_ubi");
                     try{
                    try{
                              con = Conexion.getConexion();
                                 JasperReport jasperReport = (JasperReport)JRLoader.loadObject("reportes/general.jasper");
                                 JasperPrint imprime =  JRFiller.fillReport(jasperReport,parametros,con);
                                 jasperViewer = new JasperViewer(imprime,false);
                                 jasperViewer.show();
                             }catch(SQLException sqle){
                                System.out.println("No se logro la conexion  " + sqle.getMessage());
                             }
                         }catch (Exception e){
                          e.printStackTrace();
                         } 
      }
     });
Gracias por la ayuda
Yo te aconsejaría que declararas tu variable desde el principio de tu clase, y después aumentarla cuando pase por el bloque try... así
// principio de tu clase....
private static int contador = 0;                // asi la puedes declarar
try{
                              con = Conexion.getConexion();
                                 JasperReport jasperReport = (JasperReport)JRLoader.loadObject("reportes/general.jasper");
                                 JasperPrint imprime =  JRFiller.fillReport(jasperReport,parametros,con);
                                 jasperViewer = new JasperViewer(imprime,false);
                                 jasperViewer.show();
 contador ++;// puede ir aqui
//contador += 1; o de esta forma tambien funciona
                             }
¿Por qué de esta forma? Bueno, pues por cada vez que se ejecute el evento, después de generarse el reporte, el contador aumentara en uno, si por el contrario, ocurre una excepción, entonces no incrementas nada...
Ya si lo que quieres es que siempre se cuente, entonces deberías de considerar guardar el valor de tu contador en una base de datos... pero bueno, así sencillo, con eso seria suficiente, y declarando u variable desde el principio de tu clase, garantizas que cuando quieras ve su valor, puedes verlo desde cualquier método de tu clase, cualquier duda, con confianza...
Hoo muchas gracias
¿Pero se supone que el contador o numero debe de mostrarse en un jtextfield y de ahí jalara el numero de reporte que es el parámetro que le paso
seria lo mismo realizar el contador en un jtextfiel?
¿O me mencionaste que lo guarde es una base pero me podrías decir como?
Ya que no tengo idea de como hacerlo
Muchas Gracias en verdad tu ayuda es muy buena
Para mostrar el contador en un text field, pues después de que lo incrementas, como lo puse en el código anterior, pues lo mandas a insertar en tu text field... más o menos así:
campoDeTexto.setText(contador+"");
Con eso quedaría listo, cada vez que mandes a llamar tu reporte, se vera reflejado en tu contador y a su vez en el campo de texto...
Y para guardar el valor de tu contador en la base de datos... pues tienes, primeramente que estar trabajando con una base de datos... y para ello, pues tienes estas paginas
http://java.sun.com/docs/books/tutorial/jdbc/basics/index.html    --esta es la oficial de sun, esta en ingles
http://www.roseindia.net/jdbc/jdbc.shtml  --esta tambien es en ingles
http://www.itapizaco.edu.mx/paginas/JavaTut/froufe/parte21/cap21-3.html en español
Ya si tienes alguna duda que sea de base de datos, pues te recomiendo que hagas una nueva pregunta, para no desvirtualizar el concepto de esta... cualquier cosa (con respecto a tu reporte) aquí la vemos, suerte!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas