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 Controlador.ConexionBasesdeDatos; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfPCell; import com.itextpdf.text.pdf.PdfPTable; import com.itextpdf.text.pdf.PdfWriter; import java.awt.Desktop; import java.io.File; import java.io.FileOutputStream; import java.sql.ResultSet; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; /** * * @author Michael */ public class JFPrincipalAdministradorReportesVentas extends javax.swing.JInternalFrame { ConexionBasesdeDatos conexion; DefaultTableModel modelo; /** * Creates new form JFPrincipalAdministradorReportesVentas */ public JFPrincipalAdministradorReportesVentas(ConexionBasesdeDatos conexion) { initComponents(); this.closable = true; this.iconable = true; this.conexion = conexion; modelo = (DefaultTableModel) jtfacturas.getModel(); } /** * 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(); jScrollPane1 = new javax.swing.JScrollPane(); jtfacturas = new javax.swing.JTable(); jLabel1 = new javax.swing.JLabel(); txtidfactura = new javax.swing.JTextField(); jButton1 = new javax.swing.JButton(); jButton2 = new javax.swing.JButton(); jButton3 = new javax.swing.JButton(); jLabel2 = new javax.swing.JLabel(); lbltotal = new javax.swing.JLabel(); setBackground(java.awt.SystemColor.activeCaption); setTitle("Reporte de Ventas"); setFrameIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagenes/Accounting-icon.png"))); // NOI18N jPanel1.setBackground(java.awt.SystemColor.activeCaption); jtfacturas.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jtfacturas.setModel(new javax.swing.table.DefaultTableModel(new Object[][] { }, new String[] { "Factura", "Fecha", "Cliente", "Valor total" }) { Class[] types = new Class[] { java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean[] { false, false, false, false }; public Class getColumnClass(int columnIndex) { return types[columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit[columnIndex]; } }); jtfacturas.setToolTipText(""); jScrollPane1.setViewportView(jtfacturas); jLabel1.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jLabel1.setText("FACTURAS"); txtidfactura.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jButton1.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jButton1.setText("Consultar"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); jButton2.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jButton2.setText("Consultar todo"); jButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton2ActionPerformed(evt); } }); jButton3.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jButton3.setText("Generar PDF"); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); jLabel2.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N jLabel2.setText("TOTAL VENTAS"); lbltotal.setFont(new java.awt.Font("Century Gothic", 0, 11)); // NOI18N lbltotal.setText("0"); 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(11, Short.MAX_VALUE).addGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup( javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addComponent(jButton1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton2).addGap(24, 24, 24)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout .createSequentialGroup().addComponent(jLabel2) .addPreferredGap( javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(lbltotal, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(45, 45, 45)) .addComponent(jButton3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 125, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 590, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()))) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addGap(27, 27, 27).addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(txtidfactura, javax.swing.GroupLayout.PREFERRED_SIZE, 267, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(259, Short.MAX_VALUE)))); jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jButton2).addComponent(jButton1)) .addGap(18, 18, 18) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 229, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 7, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2).addComponent(lbltotal)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButton3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(21, 21, 21)) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup().addContainerGap() .addGroup(jPanel1Layout .createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1).addComponent(txtidfactura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(338, Short.MAX_VALUE)))); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)); layout.setVerticalGroup(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, 0, Short.MAX_VALUE))); pack(); }// </editor-fold>//GEN-END:initComponents private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed try { modelo.setNumRows(0); if (!txtidfactura.getText().equals("")) { if (conexion.consultarexistencia("FACTURA", "fact_valor", "fact_id", txtidfactura.getText())) { ResultSet info0 = conexion.consultarconcondicion("FACTURA", "fact_fecha,fact_cliente,fact_valor", "fact_id = " + txtidfactura.getText()); info0.next(); double valor = Double.parseDouble(info0.getString(3)); System.out.println(valor); Object a[] = { txtidfactura.getText(), info0.getString(1), info0.getString(2), info0.getDouble(3) }; System.out.println("ENTRE1"); modelo.addRow(a); System.out.println("ENTRE2"); double operacion = 0.0; for (int i = 0; i < jtfacturas.getRowCount(); i++) { System.out.println("ENTRE4"); System.out.println(Double.parseDouble(jtfacturas.getValueAt(i, 3).toString())); operacion = operacion + Double.parseDouble(jtfacturas.getValueAt(i, 3).toString()); System.out.println("OPERACION-->" + operacion); lbltotal.setText(operacion + ""); } } else { JOptionPane.showMessageDialog(this, "La factura no existe"); } } else { JOptionPane.showMessageDialog(this, "El campo producto esta vacio"); } } catch (Exception e) { System.out.println("ERROR CON LA BASE DE DATOS"); } // TODO add your handling code here: }//GEN-LAST:event_jButton1ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed ResultSet info0 = null; modelo.setNumRows(0); try { info0 = conexion.consultarsincondicion("FACTURA", "fact_id"); while (info0.next()) { String id = info0.getString(1); System.out.println("FACTURA-->" + id); ResultSet info1 = conexion.consultarconcondicion("FACTURA", "fact_fecha,fact_cliente,fact_valor", "fact_id = " + id); info1.next(); Object a[] = { id, info1.getString(1), info1.getString(2), info1.getString(3) }; modelo.addRow(a); double operacion = 0.0; for (int i = 0; i < jtfacturas.getRowCount(); i++) { operacion = operacion + Double.parseDouble(jtfacturas.getValueAt(i, 3).toString()); lbltotal.setText(operacion + ""); } } } catch (Exception e) { System.out.println("ERROR CON LA BASE DE DATOS"); } // TODO add your handling code here: }//GEN-LAST:event_jButton2ActionPerformed private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed Calendar calendario = new GregorianCalendar(); String fecha = calendario.get(Calendar.DAY_OF_MONTH) + "/" + (calendario.get(Calendar.MONTH) + 1) + "/" + calendario.get(Calendar.YEAR); String digite = JOptionPane.showInputDialog(rootPane, "Digite nombre del archivo"); try { FileOutputStream archivo = new FileOutputStream("C:\\Documentos Empresa\\REPORTES PDF VENTAS\\" + fecha.replace("/", "-") + " -- " + digite + ".pdf"); Document documento = new Document(); PdfWriter.getInstance(documento, archivo); documento.open(); documento.add(new Paragraph("\n\nREPORTE DE VENTAS GENERADO " + calendario.get(Calendar.DAY_OF_MONTH) + " - " + (calendario.get(Calendar.MONTH) + 1) + " - " + calendario.get(Calendar.YEAR) + "\n\n\n FACTURAS(S):\n\n\n")); PdfPTable table = new PdfPTable(4); table.addCell("FACTURA"); table.addCell("FECHA"); table.addCell("CLIENTE"); table.addCell("VALOR TOTAL"); for (int i = 0; i < jtfacturas.getRowCount(); i++) { for (int j = 0; j < jtfacturas.getColumnCount(); j++) { table.addCell(jtfacturas.getValueAt(i, j).toString()); } } PdfPCell celdafinal = new PdfPCell(new Paragraph("TOTAL DE VENTAS")); celdafinal.setColspan(3); table.addCell(celdafinal); table.addCell(lbltotal.getText()); documento.add(table); documento.add(new Paragraph("\n\nREPORTE GENERADO EXITOSAMENTE")); JOptionPane.showMessageDialog(this, "PDF generedao exitosamente"); if (JOptionPane.showConfirmDialog(this, "Desea abrir el reporte de ventas que acabo de crear") == 0) { File archivoabrir = new File("C:\\Documentos Empresa\\REPORTES PDF VENTAS\\" + fecha.replace("/", "-") + " -- " + digite + ".pdf"); Desktop.getDesktop().open(archivoabrir); } documento.close(); } catch (Exception e) { } }//GEN-LAST:event_jButton3ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButton1; private javax.swing.JButton jButton2; private javax.swing.JButton jButton3; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jtfacturas; private javax.swing.JLabel lbltotal; private javax.swing.JTextField txtidfactura; // End of variables declaration//GEN-END:variables }