Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package Vista; import Negocio.Entidades.Pedido; import Negocio.Entidades.Venta; import Negocio.Operaciones.AdminPedidos; import Negocio.Operaciones.AdminVentas; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.pdmodel.PDPageContentStream; import org.apache.pdfbox.pdmodel.font.PDType1Font; import java.util.Date; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author DEMON */ public class AdminReportes extends javax.swing.JFrame { PDPage pagina; PDPageContentStream content; String nombreArchivo; PDDocument documento; AdminVentas adminVentas = new AdminVentas(); AdminPedidos adminPedidos = new AdminPedidos(); /** * Creates new form AdminReportes */ public AdminReportes() { initComponents(); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { jPanel1 = new javax.swing.JPanel(); botonPedidos = new javax.swing.JButton(); botonVolver = new javax.swing.JButton(); botonVentas = new javax.swing.JButton(); labelEstado = new javax.swing.JLabel(); labelEstatus = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); botonPedidos.setText("Imprimir Pedidos Completados ltimo Mes"); botonPedidos.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { botonPedidosActionPerformed(evt); } }); botonVolver.setText("Salir"); botonVolver.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { botonVolverActionPerformed(evt); } }); botonVentas.setText("Imprimir Ventas ltimo Mes"); botonVentas.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { botonVentasActionPerformed(evt); } }); labelEstado.setText("ESTADO:"); labelEstatus.setText("En Espera"); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(botonVolver, javax.swing.GroupLayout.DEFAULT_SIZE, 355, Short.MAX_VALUE) .addComponent(botonPedidos, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(botonVentas, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 355, Short.MAX_VALUE) .addGroup(jPanel1Layout.createSequentialGroup().addComponent(labelEstado) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(labelEstatus).addGap(0, 0, Short.MAX_VALUE))))); jPanel1Layout .setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup( jPanel1Layout.createSequentialGroup().addContainerGap() .addComponent(botonVentas, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(botonPedidos, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(botonVolver, javax.swing.GroupLayout.PREFERRED_SIZE, 58, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 36, Short.MAX_VALUE) .addGroup(jPanel1Layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(labelEstado).addComponent(labelEstatus)) .addGap(19, 19, 19))); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 12, Short.MAX_VALUE))); layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent( jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)); pack(); }// </editor-fold>//GEN-END:initComponents private void botonVentasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonVentasActionPerformed try { crearArchivoPDF("Ventas"); imprimirVentasMes(adminVentas.getVentasPorFecha(getUltimoMes())); terminarArchivo(); labelEstatus.setText("Exito"); } catch (IOException ex) { labelEstatus.setText("Fallido"); Logger.getLogger(AdminReportes.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_botonVentasActionPerformed private void botonPedidosActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonPedidosActionPerformed try { crearArchivoPDF("Pedidos"); imprimirPedidosMes(adminPedidos.getPedidosFechaCreacion(getUltimoMes())); terminarArchivo(); labelEstatus.setText("Exito"); } catch (IOException ex) { labelEstatus.setText("Fallido"); Logger.getLogger(AdminReportes.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_botonPedidosActionPerformed private void botonVolverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_botonVolverActionPerformed this.dispose(); this.setVisible(false); MenuPrincipal menuPrincipal = new MenuPrincipal(); menuPrincipal.setVisible(true); }//GEN-LAST:event_botonVolverActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(AdminReportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(AdminReportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(AdminReportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(AdminReportes.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new AdminReportes().setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton botonPedidos; private javax.swing.JButton botonVentas; private javax.swing.JButton botonVolver; private javax.swing.JPanel jPanel1; private javax.swing.JLabel labelEstado; private javax.swing.JLabel labelEstatus; // End of variables declaration//GEN-END:variables private void imprimirVentasMes(List<Venta> ventasMes) throws IOException { imprimirTitulo("Reporte Ventas ltimo mes"); for (Venta venta : ventasMes) { String contenido = ("Id: " + Integer.toString((int) venta.getId()) + ", Fecha de creacion: " + venta.getFechaCreacion() + ", Cliente: " + venta.getCliente().getNombre() + ", Costo: " + Double.toString(venta.getCostoTotal()) ); imprimirRegistro(contenido); } } private void imprimirPedidosMes(List<Pedido> pedidosMes) throws IOException { imprimirTitulo("Reporte Pedidos ltimo mes"); for (Pedido pedido : pedidosMes) { String contenido = ("Id: " + Integer.toString((int) pedido.getId()) + ", Fecha de creacion: " + pedido.getFechaCreacion() + ", Comprador: " + pedido.getNombreComprador() + ", Costo: " + Double.toString(pedido.getCostoTotal())); } } private void imprimirTitulo(String titulo) throws IOException { content.beginText(); content.setFont(PDType1Font.HELVETICA, 26); content.moveTextPositionByAmount(220, 750); content.drawString(titulo); content.endText(); } private void crearArchivoPDF(String tipo) throws IOException { nombreArchivo = "Reporte" + tipo + getReporteID() + ".pdf"; documento = new PDDocument(); pagina = new PDPage(); documento.addPage(pagina); content = new PDPageContentStream(documento, pagina); } private void terminarArchivo() { try { content.close(); documento.save(nombreArchivo); documento.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } private String getReporteID() { Calendar cal = Calendar.getInstance(); int mes = cal.get(Calendar.MONTH); int anio = cal.get(Calendar.YEAR); String diaDelMes = String.valueOf(mes + 1) + String.valueOf(anio); return (diaDelMes); } private void imprimirRegistro(String input) throws IOException { content.beginText(); content.setFont(PDType1Font.HELVETICA, 16); content.moveTextPositionByAmount(80, 650); content.drawString(input); content.endText(); } private Date getUltimoMes() { Calendar cal = Calendar.getInstance(); cal.add(Calendar.MONTH, -1); DateFormat sdf = new SimpleDateFormat("dd-MM-YYYY"); Date resultado = cal.getTime(); sdf.format(resultado); return resultado; } }