-1

-

LPI

APLICACIÓN ELABORACIÓN DE UNA FACTURA.
Objetivo.- En esta aplicación de la elaboración de una factura se aplica todos los procesos vistos en clases así como consultas , inserción , eliminación de registros Como se muestra en la figura.

Esta aplicación es utilizando la base de datos BDVENTAS , el diseño es como se muestra en la figura 2. Los controles empleados : Etiquetas (jlabel): JtextBox lbfe (fecha) , lbpre (precio) , lbrno( factura)

: txtcan ( cantidad)

Jcombobox : combo1 ( para la Descripción) JTabla : tabla1 ( para mostrar los productos)

Prof. Ing. Alberto Moreno C

-2-

LPI

Codificación : Organización de los paquetes:

package GUI; import List.*; import java.util.*; import Clases.Articulos; import javax.swing.table.DefaultTableModel; import java.text.SimpleDateFormat; import javax.swing.JOptionPane; public class FrFactura extends javax.swing.JFrame { ArrayList lista=new ArrayList(); DefaultTableModel dt=new DefaultTableModel(); double pre=0; public FrFactura() { initComponents();

Prof. Ing. Alberto Moreno C

-3tabla1.setModel(dt); dt.addColumn("Codigo"); dt.addColumn("Descripcion"); dt.addColumn("Precio"); dt.addColumn("Cantidad"); dt.addColumn("Total"); FormateaGrid(); LlenaCombo(); } //para dar ancho a cada columna que por defecto es de 10 caracteres. void FormateaGrid(){ tabla1.getColumnModel().getColumn(0).setPreferredWidth(50); tabla1.getColumnModel().getColumn(1).setPreferredWidth(180); tabla1.getColumnModel().getColumn(2).setPreferredWidth(80); tabla1.getColumnModel().getColumn(2).setPreferredWidth(80); tabla1.getColumnModel().getColumn(2).setPreferredWidth(80); } void LlenaCombo(){ lista=(ArrayList) ArticulosDB.ListaArt(); Articulos x; this.combo1.removeAllItems(); for(int f=0; f<lista.size();f++){ combo1.addItem(ArticulosDB.LeerArt(f).getNomar()); combo1.insertItemAt(ArticulosDB.LeerArt(f).getNomar(),f ); } } private void btnGrabaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String factura=ArticulosDB.GeneraFac(); this.lbfac.setText(factura); ArticulosDB.InsertaFactura(factura,this.lbfecha.getText()); //insertar detalle String coda; int can; for(int f=0; f<dt.getRowCount();f++){ coda=dt.getValueAt(f,0).toString(); can=(Integer)(dt.getValueAt(f,3)); ArticulosDB.InsertaDeta(factura,coda,can); } JOptionPane.showMessageDialog(this,"Registro Grabado");

LPI

} private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) {

Prof. Ing. Alberto Moreno C

-4// TODO add your handling code here: this.txtcan.setText(""); this.lbstot.setText(""); dt.setRowCount(0);// coloca la tabla a cero filas this.txtcan.requestFocus(); } private void formWindowOpened(java.awt.event.WindowEvent evt) { // TODO add your handling code here: Date fecha=new Date(); SimpleDateFormat sd=new SimpleDateFormat("dd/MM/yyyy"); lbfecha.setText(""+sd.format(fecha)); } private void btnBorraActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int nro= this.tabla1.getSelectedRow(); if(nro==-1) return; dt.removeRow(nro); Totaliza(); } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { //agregar datos a la tabla int can; double tot; int pos=this.combo1.getSelectedIndex(); String codp=ArticulosDB.LeerArt(pos).getCoda(); can=Integer.parseInt(this.txtcan.getText()); tot=can*pre; dt.addRow(new Object[]{codp, this.combo1.getSelectedItem(), pre,can,tot }); Totaliza(); } void Totaliza(){ double sm=0; for(int f=0;f<dt.getRowCount();f++){ sm += (Double)(dt.getValueAt(f,4));

LPI

Prof. Ing. Alberto Moreno C

-5} this.lbstot.setText(""+sm);

LPI

} private void combo1ItemStateChanged(java.awt.event.ItemEvent evt) { // TODO add your handling code here: int posicion= combo1.getSelectedIndex(); try{ pre=ArticulosDB.LeerArt(posicion).getPrecio(); this.lbprecio.setText(""+pre); } catch(Exception ex){ } } /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new FrFactura().setVisible(true); } }); }

la clase ArticulosDB package List; import Clases.Articulos; import java.util.*; import Data.DataBase; import java.sql.*; import java.text.DecimalFormat; public class ArticulosDB { public static int nro=0; public static ArrayList ListaArt(){ Connection cn; ArrayList lista=new ArrayList(); try{ cn= DataBase.GetConnection();

Prof. Ing. Alberto Moreno C

-6LPI Statement cmd=cn.createStatement(); ResultSet rs=cmd.executeQuery(" select art_cod,art_nom,art_pre from Articulos order by art_cod"); while(rs.next()){ Articulos a=new Articulos(); a.setCoda(rs.getString(1)); a.setNomar(rs.getString(2)); a.setPrecio(rs.getDouble(3)); lista.add(a); } }catch(SQLException ex){ ex.printStackTrace(); } return lista; }

public static Articulos LeerArt(int pos){ return (Articulos)ListaArt().get(pos); } public static boolean InsertaFactura(String fac,String fec){ boolean sw=false; Connection cn=null; PreparedStatement cmd=null; try{ cn=DataBase.GetConnection(); cmd=cn.prepareStatement("insert into fac_cabe values(?,?,?,?,?)"); cmd.setString(1,fac); cmd.setString(2,fec); cmd.setString(3,"c0002"); cmd.setString(4,"S"); cmd.setInt(5,2); cmd.executeUpdate(); cmd.close(); cn.close(); sw=true; }catch(SQLException ex){ sw=false; } return sw; } public static boolean InsertaDeta(String fac,String coda,int can){ boolean sw=false; Connection cn=null;

Prof. Ing. Alberto Moreno C

-7PreparedStatement cmd=null; try{ cn=DataBase.GetConnection(); cmd=cn.prepareStatement("insert into fac_deta values(?,?,?)"); cmd.setString(1,fac); cmd.setString(2,coda); cmd.setInt(3,can); cmd.executeUpdate(); cmd.close(); cn.close(); sw=true; }catch(SQLException ex){ sw=false; } return sw; }

LPI

public static String GeneraFac(){ String cod=""; Connection cn=null; String cad, sql="select max(fac_num) from fac_cabe"; DecimalFormat sd=new DecimalFormat("0000"); int nro; try{ cn=DataBase.GetConnection(); Statement cmd=cn.createStatement(); ResultSet rs=cmd.executeQuery(sql); if(rs.next()){ cad=rs.getString(1).substring(1).trim(); nro=Integer.parseInt(cad)+1; cod="F"+sd.format(nro); } }catch(SQLException ex){ ex.printStackTrace(); } return cod; }

Prof. Ing. Alberto Moreno C

-8} la clase conexión package Data; import java.sql.*; import javax.swing.JOptionPane; public class DataBase { public static Connection GetConnection(){ Connection cn=null; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); cn=DriverManager.getConnection("jdbc:odbc:odventas","sa",""); System.out.print("conexion ok!"); } catch(Exception ex){ JOptionPane.showMessageDialog(null,ex.getMessage()); //System.out.print("conexion incorrecta !!"+ex.getMessage()); } return cn; } public static void CierraConex(Connection cn){ try{ if(cn!=null) cn.close(); }catch(SQLException ex){ ex.printStackTrace(); }

LPI

}

Prof. Ing. Alberto Moreno C

-9-

LPI

Prof. Ing. Alberto Moreno C

Sign up to vote on this title
UsefulNot useful