private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        try {            
            //cargo Parametros del Reporte
            Map parametros = new HashMap();
            parametros.put("name_empresa", r_con.getRazon_social());
            if (jCheckBox1.isSelected()){
                parametros.put("orden",this.orden_por_CPC);
            }
            else{
                parametros.put("orden",this.orden_por_cro_C);
            } 
            parametros.put("menor_cod_PC",""+jTextField3.getText());
            parametros.put("mayor_cod_PC",""+jTextField4.getText());
            parametros.put("menor_nro_C",Integer.parseInt(jTextField1.getText()));
            parametros.put("mayor_nro_C",Integer.parseInt(jTextField2.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());            
            System.out.println(print.getPages().size());
            //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) {
             r_con.cierraConexion();
            Logger.getLogger(GUI_Imprimir_PC.class.getName()).log(Level.SEVERE, null, ex);           
        }

    }//GEN-LAST:event_jButton3ActionPerformed