private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        try {
            if (validarDatos()){
                //cargo Parametros del Reporte
                Map parametros = new HashMap();
                parametros.put("name_empresa", r_con.getRazon_social());
                parametros.put("min_asto",Integer.parseInt(jTextField1.getText()));
                parametros.put("max_asto",Integer.parseInt(jTextField2.getText()));
                parametros.put("min_fec",campoFecha1.getText());
                parametros.put("max_fec",campoFecha2.getText());

                //localizo el reporte para usarlo
                JasperReport report = JasperCompileManager.compileReport("src/Reportes/"+nombre_reporte);

                r_con.Connection();
                //cargo los datos
                JasperPrint print = JasperFillManager.fillReport(report, parametros, r_con.getConn());            

                //vector con las impresoras del modulo de la base de datos
                Vector<Vector<String>>v = r_con.getContenidoTabla("SELECT * FROM impresoras WHERE imp_id_modulo = "+id_modulo_imp);
                //total impresoras disponibles
                PrintService [] impresoras = PrintServiceLookup.lookupPrintServices(null, null);
                //vector con las impresoras del modulo como objeto impresora (PrintService)
                Vector<PrintService>impresoras_modulo = new Vector();
                //objeto impresora en el que se imprime
                PrintService impresora = null;

                if (v.size()>0){
                    String nombre_imp;
                    //caso en que haya mas de una impresora por modulo
                    if (v.size()>=1){
                        //localizo con el simple nombre de la base de dato, el objeto impresora y los cargo
                        for (int i = 0; i < v.size(); i++) {
                            nombre_imp=v.elementAt(i).firstElement();
                            AttributeSet aset = new HashAttributeSet();
                            aset.add(new PrinterName(nombre_imp, null));
                            impresoras = PrintServiceLookup.lookupPrintServices(null, aset);
                            impresora = impresoras[0];
                            impresoras_modulo.add(impresora);
                        }
                        //paso las impresoras del modulo a un arreglo para poder mostrarlo en el Dialog
                        PrintService [] listado_impresoras = new PrintService[impresoras_modulo.size()];
                        for (int i = 0; i < impresoras_modulo.size(); i++) {
                            listado_impresoras[i]=impresoras_modulo.elementAt(i);
                        }
                        //muestro el listado de impresoras como objeto y se la asigno a la impresora a imprimir
                        impresora = (PrintService) JOptionPane.showInputDialog(null, "Seleccione una impresora asignada a este módulo:",
                            "Imprimir Reporte", JOptionPane.QUESTION_MESSAGE, null, listado_impresoras, listado_impresoras[0]);
                    }

                    //mando a imprimir el reporte en la impresora
                    if (impresora != null){
                        JRPrintServiceExporter jrprintServiceExporter = new JRPrintServiceExporter();
                        jrprintServiceExporter.setParameter(JRExporterParameter.JASPER_PRINT, print );
                        jrprintServiceExporter.setParameter(JRPrintServiceExporterParameter.PRINT_SERVICE, impresora );
                        jrprintServiceExporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PAGE_DIALOG, Boolean.TRUE);
                        jrprintServiceExporter.setParameter(JRPrintServiceExporterParameter.DISPLAY_PRINT_DIALOG, Boolean.FALSE);
                        jrprintServiceExporter.exportReport();
                    }
                }
                else{
                    JOptionPane.showMessageDialog(null, "No hay Impresoras asignadas a este Modulo, "
                        + "\npóngase en contacto con el Administrador de Impresoras.","Atención",JOptionPane.WARNING_MESSAGE);
                }
                r_con.cierraConexion();
            }
            } catch (JRException ex) {
                Logger.getLogger(GUI_Imprimir_ASTO.class.getName()).log(Level.SEVERE, null, ex);
                r_con.cierraConexion();
            }

    }//GEN-LAST:event_jButton3ActionPerformed