Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/10/2011, 13:38
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 9 meses
Puntos: 260
Sonrisa Respuesta: Llamar un ireport desde un JDialog Hijo

Hola,

Cita:
Iniciado por juliocock Ver Mensaje
... Todo esta bien pero cuando llamo al Reporte desde JDialog Hijo , lo llama al Reporte Existosamente pero se ubica detras del Jdialog Y no puedo acceder al Reporte Hasta que no cierre el JDialog Hijo. ...
Eso se llaman ventanas modales, en cualquier lenguaje y sistema operativo. Cuando una ventana se coloca adelante de las otras y las otras no responden hasta que se cierra la que está al frente, se le denomina una ventana modal.

Cita:
Iniciado por juliocock Ver Mensaje
... Pero no creo que sea la solucion mas bien he obtenido una ayuda y es que el reporte lo muestre en jdialog hijo , pero lo que no se es como llamar este reporte para que se muestre en un JDialog
Realmente no entendí la pregunta inicial, me basé en el comportamiento de una ventana modal, porque lo que describiste es una ventana modal. Aunque sigo sin entender completamente que es lo que quieres hacer.

Yo muestro de esta forma mis reportes en Jasper y no tengo ningún inconveniente con las ventanas modales, posiblemente y digo posiblemente porque no tengo ni idea que estas haciendo, te sea de alguna ayuda,

Código Java:
Ver original
  1. public class JDialogReport01 extends javax.swing.JDialog {
  2.    
  3.     public JDialogReport01(java.awt.Frame parent, boolean modal) {
  4.         super(parent, modal);
  5.         initComponents();
  6.         setLocationRelativeTo(parent);
  7.         DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
  8.         jTextField1.setText(df.format(new Date()));
  9.         jTextField2.setText(df.format(new Date()));
  10.     }
  11.  
  12.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  13.         try {
  14.             Reportes reportes = new Reportes();
  15.             DateFormat df = DateFormat.getDateInstance();
  16.             JasperViewer.viewReport(reportes.Reporte03(
  17.                     df.parse(jTextField1.getText()),
  18.                     df.parse(jTextField2.getText())),
  19.                     false);
  20.         } catch (Exception ex) {
  21.             JOptionPane.showMessageDialog(this,
  22.                     "Ha ocurrido un error al intentar imprimir el documento.\n" +
  23.                     ex, getTitle(), JOptionPane.ERROR_MESSAGE);
  24.         }
  25.     }

Y esta es mi clase Reporte03:

Código Java:
Ver original
  1. public JasperPrint Reporte03(java.util.Date p_fecini, java.util.Date p_fecfin) throws DataConnectionException, SQLException, JRException {
  2.         HashMap<String, java.util.Date> m = new HashMap<String, java.util.Date>();
  3.         m.put("p_fecini", p_fecini);
  4.         m.put("p_fecfin", p_fecfin);
  5.         JasperReport jasperReport = JasperCompileManager.compileReport(Main.getProperty("reportes_filepath") + "/jaspReport03.jrxml");
  6.         JasperPrint jasperPrinter = JasperFillManager.fillReport(jasperReport, m, new DataConnection().getConnection());
  7.         return jasperPrinter;
  8.     }

Y la forma de llamar el JDialog:

Código Java:
Ver original
  1. if (Main.usuario.hasAccess(13)) {
  2.             new JDialogReport01(this, false).setVisible(true);
  3.         } else {
  4.             JOptionPane.showMessageDialog(this,
  5.                     "No tiene los permisos para ingresar a esta opción.\n",
  6.                     getTitle(), JOptionPane.ERROR_MESSAGE);
  7.         }

Sino posiblemente alguien mas sea de mayor ayuda,
Saludos,