Reporte de Proyecto
-
Upload
oscar-mendoza-colmenares -
Category
Documents
-
view
43 -
download
6
Transcript of Reporte de Proyecto
2
UNIVERSIDAD NACIONAL DEL CALLAOFACULTAD DE INGENIERIA INDUSTRIAL Y DE SISTEMAS
ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS
CURSO: LENGUAJE DE PROGRAMACION II PROFESORA: SALLY KARINA TORRES ALVARADO
TEMA: PROYECTO DE PROGRAMACION PROYECTO:
ALUMNO: OSCAR ARMANDO MENDOZA COLMENARES CODIGO: 090829K
Julio - 2011
SOBRE ESTOS APUNTES
Estos apuntes han sido realizados con la finalidad de ayudar a futuros Ingenieros de Sistemas que se encuentren cursando “Lenguaje de Programación II”, quienes quieren comenzar a conocer y usar La Programación Java.También se busca dar una guía ordenada para complementar el estudio de este lenguaje, muy poderoso y de gran coherencia, aunque todavía adolece de algunas limitaciones que seguramente se irán superando con el tiempo.
EL AUTOR
3
INDICE GENERAL
1. PRESENTACION 5
1.1 Que es Java …..……………………………………………............................. 5
2. CREANDO UN PROGRAMA EN NETBEANS 6
2.1 Creando Proyecto en NetBeans .……………………………………… 6
2.2 Creando Paquete en NetBeans .………………………………………. 6
2.3 Creando archivos de NetBeans .………………………………………. 6
3. CREANDO NUESTRO PROGRAMA 8
3.1 Archivos de tipo Java Class .…..…………………………………………. 8
3.1.1 Corte …………………………………………………………………………. 8
3.1.2 Empleados ..………………………………………………………………. 8
3.1.3 Inventario …………………………………………………………………. 9
4
3.1.4 Vent ………..………………………………………………………………… 9
3.2 Archivos de tipo JFrame Form ……………………………………….... 10
3.2.1 JFrame Form: Inicio ………………………………………………… 10
3.2.2 JFrame Form de acceso …………………………………………. 11 JFrame Form: IngresoRegistro,
IngresoInventario, IngresoCorte ………………………………………………………….... 11
JFrame Form: IniciarSesion ……………………………………. 14
3.2.3 JFrame Form: RegistroEmpleado …………………………. 15
3.2.4 JFrame Form: Inventariado ..…………………………………. 18
3.2.5 JFrame Form: Norden ……………………………………………. 21
3.2.6 JFrame Form: Venta ………………………………………………. 24
3.2.7 JFrame Form: CorteCaja …..……………………………………. 27
CAPITULO 1
PRESENTACIÓN
El presente trabajo reúne todos los conocimientos desarrollados en el curso de Lenguaje de Programación II correspondiente al cuarto ciclo de la carrera de Ingeniería de Sistemas, donde se enseña la técnica de programación en Lenguaje JAVA, siendo en la actualidad un lenguaje muy usado, debido a las ventajas que trae como la uniformidad existente entre las fases para desarrollo
5
del programa, la comprensión por su similitud con el mundo real y la flexibilidad que permite que cualquier cambio que se realice sobre un dato se vea reflejado en cualquier lugar donde este dato aparece.Todos estos conocimientos son reunidos con la finalidad de aplicarlos en la elaboración de un programa que permita que nuestras actividades sean realizadas de una manera más sencilla y agradable.En esta oportunidad el programa será elaborado bajo el IDE de NetBeans y orientado a empresas dedicadas a ventas y que tienen un contacto directo con sus clientes. Pero ello no quiere decir que no se pueda elaborar otro tipo de programa. Lo que se busca es dar una idea y fomentar la creación de nuevos programas.
1.1 Qué es Java
Java es un lenguaje originalmente desarrollado por un grupo de ingenieros de Sun, utilizado por Netscape posteriormente como base para Javascript. Si bien su uso se destaca en el Web, sirve para crear todo tipo de aplicaciones (locales, intranet o internet).
Java es un lenguaje: De objetos. Independiente de la plataforma.
Algunas características notables: Robusto. Gestiona la memoria automáticamente. No permite el uso de técnicas de programación inadecuadas. Multithreading. Cliente-servidor. Mecanismos de seguridad incorporados. Herramientas de documentación incorporadas.
CAPITULO 2
CREANDO UN PROGRAMA EN NETBEANS
2.1 Creando Proyecto en NetBeans
6
Abrimos el programa NetBeans (en esta oportunidad utilizaremos NetBeans IDE 6.9.1). Luego seleccionamos en el menú principal Archivo/Proyecto Nuevo.En la ventana que aparecerá a continuación, seleccione en la columna Categoría: Java y en la columna Proyectos: aplicación Java y luego presione el botón siguiente. En la siguiente ventana digite el nombre del proyecto, en nuestro caso se llamara “Venta”. Presione el botón examinar para asignar la ubicación que tendrá el proyecto. Para nuestro proyecto nos ubicamos en el escritorio de Windows, luego presiones el botón abrir y en la ventana anterior presione el botón terminar, y de esta manera se habrá creado el proyecto.
2.2 Creando Paquete en NetBeansAhora se creará un paquete al cual se llamará “Proyecto”, para esto dentro de Venta hay una opción Paquete de Fuentes, haga click derecho luego elija Nuevo/Paquete Java, en la siguiente ventana escriba el nombre del paquete: “Proyecto”, y presione el botón terminar. Finalmente se mostrará el paquete creado. Una vez creado el proyecto y el paquete podrá crear sus programas.
2.3 Creando archivos de NetBeansSeleccione el paquete Proyecto, haga click derecho, seleccione nuevo y se mostrará un listado de los diferentes tipos de archivos que se pueden crear, los cuales ayudan a la elaboración de nuestro programa.Los tipos de archivos que usaremos en esta ocasión serán:
Java Class: refiere a creación de clases que nos ayudad a manejar nuestros datos.
JFrame Form: refiere a creación de interfaces gráficas constituidas en base a elementos gráficos como son los componentes (botones, listas, etc.) que permiten al usuario interactuar con el programa diseñado.
En la Figura 2.1 se aprecia 2 paquetes: Imágenes y Proyecto. El paquete Imágenes ha sido creado para almacenar en él, las imágenes a usar. Para ello diríjase al escritorio de Windows, abra la carpeta de nuestro proyecto, seleccione la carpeta SRC y verá 2 carpetas que son nuestros paquetes. En la carpeta Imágenes guarde las imágenes a usar, ya sea para íconos, fondos,
botones, etc.
7
Los archivos de tipo Java Class que crearemos son:
Corte. Empleados. Inventario. Vent.
Y los archivos de tipo JFrame Form que crearemos son:
CorteCaja. IngresoCorte. IngresoIventario. IngresoRegistro. IniciarSesion. Inicio. Inventariado. Norden. RegistroEmpleado. Venta.
8
CAPITULO 3
CREANDO NUESTRO PROGRAMA
3.1 Archivos de tipo Java Class
3.1.1 CorteEsta clase nos ayudará en el almacenamiento de los tipos de pago de los clientes. Para ello escriba el siguiente código en la clase Corte:
3.1.2 EmpleadosEsta clase nos ayudará en el almacenamiento de los datos de los empleados de la empresa.Para ello escriba el siguiente código en la clase Empleados:
9
package Proyecto;
public class Corte { private double efectivo; private double dolares; private double visa; private double master; private double cmr; private double ripley; public double getEfectivo() { return efectivo; } public void setEfectivo(double efectivo) { this.efectivo = efectivo; }
Variable
Métodos
package Proyecto;
public class Empleados { private String nom; private String ape; private int cod; private String cargo; public String getNom() { return nom; } public void setNom(String nom) { this.nom = nom; }
… }
Variable
Métodos
3.1.3 InventarioEsta clase nos ayudará en el almacenamiento de los datos de los productos de la empresa.Para ello escriba el siguiente código en la clase Inventario:
3.1.4 VentEsta clase nos ayudará en el almacenamiento de los productos vendidos.Para ello escriba el siguiente código en la clase Vent:
10
package Inventario;
public class Empleados { private String producto; private int cantidad; private double precioU; public String getProducto() { return producto; } public void setProducto(String producto) { this.producto = producto; }
Variable
Métodos
package Proyecto;
public class Vent { private String producto; private int cantidad; private double precio; private double total; public String getProducto() { return producto; } public void setProducto(String producto) { this.producto = producto; }
Variable
Métodos
3.2 Archivos de tipo JFrame Form
3.2.1 JFrame Form: InicioEsta interfaz será nuestra ventana inicio.
Diseño.
Gran parte del código se autogenerará solo una vez que haya diseñado su interfaz gráfica. Lo que haremos a continuación será digitar el código para nuestro programa.btnSalir: con este boton saldremos del programa.
11
JLabel: JPanel:
JButton:btnSesion
JButton: btnRegistro, btnInventario, JPanel:
Imagen en los componentes: diríjase a la ventana propiedades, seleccione el botón de la opción Icon. En la ventana seleccione la opción Image Within Proyect, en la opción Package (paquete) seleccione el paquete Imágenes que ya fue creado anteriormente, y en la opción File (archivo) seleccione la imagen que desea que contenga su componente.
Acción en los botones (ActionListeners): haga cli,ck derecho en cada uno
private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) { System.exit(0); }
JLabel: lblErrorAl iniciar esta ventana no se verá. Para ello se digitara el siguiente código en el constructor del JFrame Form:
public class IngresoRegistro extends javax.swing.JFrame { public IngresoInventario() { initComponents(); lblError.setVisible(false); }…
Constructor
Código
btnSesion, btnRegistro, btnInventario: nos permite activar los JFrame Form: IniciarSesion, IngresoRegistro e IngresoInventario respectivamente.A continuación se muestra el código para btnRegistro que activa el JFrame Form IngresoRegistro. Para los otro 2 botones será un código similar, cada uno con el correspondiente JFrame Form que activa.
3.2.2 JFrame Form de accesoSerán las ventanas que nos permitan acceder a distintos puntos de nuestro programa, pero antes se debe digitar un código. Todos poseen los mismos componentes en su diseño.
JFrane Form: IngresoRegistro, IngresoInventario, IngresoCorte.
12
private void btnRegistroActionPerformed(java.awt.event.ActionEvent evt) { IngresoRegistro x=new IngresoRegistro(); x.setVisible(true); dispose(); }
JButton: btnAceptar, btnCancelar. Se le debe dar acción (ActionListeners).
btnCancelar. Regresará a la ventana inicio. Código:
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { dispose(); Inicio x=new Inicio();
package Proyecto;import java.io.BufferedReader;
13
JLabel: lblErrorAparecerá cada vez que el código sea el incorrecto. Las únicas personas que tienen acceso son los “Administradores”. Para ello se digitará el siguiente código:
private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { buscar();}
public void buscar(){ int ind=-1,cod; String cargo=""; RegistroEmpleado r=new RegistroEmpleado(); cod=Integer.parseInt(passCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) {ind = i; cargo=a[i].getCargo();} if(ind==-1 ){ lblError.setVisible(true); passCodigo.setText(""); passCodigo.requestFocus();} else if(cargo.equals("ADMINISTRADOR")) {r.setVisible(true); dispose();} else {lblError.setVisible(true); passCodigo.setText(""); passCodigo.requestFocus();}
El método buscar() nos permite buscar los datos del personal, en este caso buscará el código de cada personal. Pero para que pueda buscar cada código, antes debe leer todo el archivo en el que se ha guardado los datos de todo el personal.Para lograr ello se digitará
import java.io.FileReader;import java.io.IOException;import java.util.StringTokenizer;
public class IngresoRegistro extends javax.swing.JFrame {Empleados a[]=new Empleados[1000];int n; public IngresoRegistro() { initComponents(); leerArchivo(); lblError.setVisible(false); }
public void leerArchivo(){ try{ String linea; FileReader f=new FileReader("Usuario.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); a[n]=new Empleados(); a[n].setCod(Integer.parseInt(t.nextToken())); a[n].setNom(t.nextToken()); a[n].setApe(t.nextToken()); a[n].setCargo(t.nextToken()); n++;} b.close(); } catch(IOException e){ System.out.print(e); }}
@SuppressWarnings("unchecked") private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { buscar();}
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { dispose(); Inicio x=new Inicio(); x.setVisible(true);}
public void buscar(){ int ind=-1,cod; String cargo=""; RegistroEmpleado r=new RegistroEmpleado(); cod=Integer.parseInt(passCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) {ind = i; cargo=a[i].getCargo();} if(ind==-1 ){ lblError.setVisible(true); passCodigo.setText(""); passCodigo.requestFocus();} else if(cargo.equals("ADMINISTRADOR")) {r.setVisible(true);
14
Arreglo que llama a nuestra Java Class Empleado
El método leerArchivo() nos permite leer el archivo en el que se encuentra registrado los datos de todo el personal. En esta caso el archivo se llama
Se crea un objeto r de la clase del JFrame Form RegistroEmpleado para poder acceder a él. Para el JFrame Form IngresoInventario se utilizará un código muy similiar, el método leerArchivo() también leerá el archivo en el que se encuentre registrado todos los datos de todo el personal para ver que el código sea el de un administrador. Pero en su método buscar() creará un objeto r de la clase del JFrame Form Inventariado para acceder
dispose();} else { lblError.setVisible(true); passCodigo.setText(""); passCodigo.requestFocus(); } }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new IngresoRegistro().setVisible(true);} }); }
// Variables declaration - do not modify private javax.swing.JButton btnAceptar; private javax.swing.JButton btnCancelar; private javax.swing.JLabel lblError; private javax.swing.JLabel lblIngrese; private javax.swing.JPasswordField passCodigo; // End of variables declaration }
JFrame Form: IniciarSesion.
15
En este caso, tiene acceso todo personal que se encuentre registrado. Manteniendo un código muy similar al de los JFrame Form: IngresoRegistro e IngresoInventario, solo cambiaríamos su manera de acceso. Entonces el método buscar() del botón btnAceptar quedaría de la siguiente manera:
private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { buscar(); }
public void buscar(){ int ind=-1,cod; Norden o=new Norden(); cod=Integer.parseInt(passCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) ind = i; if(ind==-1 ){ lblError.setVisible(true); passCodigo.setText("");
lblError: posee otro texto:” USUARIO NO REGISTRADO” y no será visible al abrirse esta
Se crea un objeto o de la clase del JFrame Form Norden para poder acceder a él.
3.2.3 JFrame Form: RegistroEmpleado
16
En este caso, tiene acceso todo personal que se encuentre registrado. Manteniendo un código muy similar al de los JFrame Form: IngresoRegistro e IngresoInventario, solo cambiaríamos su manera de acceso. Entonces el método buscar() del botón btnAceptar quedaría de la siguiente manera:
private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { buscar(); }
public void buscar(){ int ind=-1,cod; Norden o=new Norden(); cod=Integer.parseInt(passCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) ind = i; if(ind==-1 ){ lblError.setVisible(true); passCodigo.setText("");
Al abrirse esta ventana todos los JTextField aparecen en blanco y solo txtBuscar se encuentra habilitado. Los datos de todos los empleados cargan automáticamente en la tabla. Solo aparecen habilitados btnNuevo y btnSalir. .btnBuscar: una vez ingresado un código en txtBuscar este botón busca el código y muestra los datos nombre, apellido, cargo y código, cada uno en su JTextField correspondiente. Habilita btnModificar, btnCancelar y btnEliminar. Deshabilita btnNuevo y btnBuscar. La misma función sucede cuando se hace click en uno de
JLabel: lblTituloJButton:
JLabel: lblNombre,
JTextField: txtNombre, txtCargo,
JTable:
JTextField: txtBuscar JLabel: lblBuscar, lblApellido
JButton:
SOLO ADMINISTRADOR
JButton: btnNuevo, btnModificar, btnGuardar, btnActualizar, btnCancelar, btnEliminar, btnSalir
17
Al abrirse esta ventana todos los JTextField aparecen en blanco y solo txtBuscar se encuentra habilitado. Los datos de todos los empleados cargan automáticamente en la tabla. Solo aparecen habilitados btnNuevo y btnSalir. .btnBuscar: una vez ingresado un código en txtBuscar este botón busca el código y muestra los datos nombre, apellido, cargo y código, cada uno en su JTextField correspondiente. Habilita btnModificar, btnCancelar y btnEliminar. Deshabilita btnNuevo y btnBuscar. La misma función sucede cuando se hace click en uno de
.btnGuardar: almacena los datos ingresados del nuevo empleado, mostrándolos automáticamente en la tabla. Devuelve el estado inicial de la ventana..btnModificar: habilita txtNombre, txtApellido y txtCargo, para proceder a la modificación de datos. Se deshabilita automáticamente y habilita btnActualizar..btnActualizar: actualiza la modificación de uno de los datos. Devuelve el estado inicial de la vetana..btnEliminar: elimina al empleado seleccionado. Devuelve el estado inicial de la ventana.
private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) { int ind=-1,cod; cod=Integer.parseInt(txtCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) ind=i; if(ind==-1) ingresarDatos(); else
private void btnNuevoActionPerformed(java.awt.event.ActionEvent evt) { txtNombre.requestFocus(); txtBuscar.setText(""); txtNombre.setText(""); txtApellido.setText(""); txtCargo.setText(""); txtCodigo.setText(""); txtBuscar.setEnabled(false); txtNombre.setEnabled(true); txtApellido.setEnabled(true); txtCargo.setEnabled(true); btnBuscar.setEnabled(false); btnNuevo.setEnabled(false); btnEliminar.setEnabled(false);
Código btnNuevo
private void btnCodigoActionPerformed(java.awt.event.ActionEvent evt) { int mayor=999999, menor=100000, n; n=GenerarCodigo(mayor,menor); txtCodigo.setText(""+n); btnGuardar.setEnabled(true);}
public int GenerarCodigo(int sup, int inf){
Código btnCodigo
18
private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) { int ind=-1,cod; cod=Integer.parseInt(txtCodigo.getText()); for(int i=0;i<n;i++) if(cod==a[i].getCod()) ind=i; if(ind==-1) ingresarDatos(); else
Código btnGuardar
Método
MétodoMétodo datosTabla():public void datosTabla(){ try{ String linea; int fila=0; FileReader f=new FileReader("Usuario.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); tblEmpleados.setValueAt(t.nextToken(), fila, 0); tblEmpleados.setValueAt(t.nextToken(), fila, 1); tblEmpleados.setValueAt(t.nextToken(), fila, 2); tblEmpleados.setValueAt(t.nextToken(), fila, 3); fila++;} b.close(); } catch(IOException e){ System.out.print(e);} }
Método ingresarDatos():public void ingresarDatos(){ Empleados c=new Empleados(); c.setNom(txtNombre.getText().toUpperCase()); c.setApe(txtApellido.getText().toUpperCase()); c.setCargo(txtCargo.getText().toUpperCase()); c.setCod(Integer.parseInt(txtCodigo.getText())); try{ FileWriter f=new FileWriter("Usuario.txt",true); PrintWriter p=new PrintWriter(f); p.println(c.getCod()+","+c.getNom()+","+c.getApe()+","+c.getCargo()); p.close(); } catch(IOException e){ System.out.println(e); } }
Lee el archivo creado “Usuario.txt” y muestra los datos en la tabla
Crea el archivo “Usuario.txt” en el que se van a almacenar los datos de los empleados
Lee nuestra Java Class Empleados, almacena las variables
Este código se usa al inicializar la ventana
package Proyecto;import java.io.FileWriter;import java.io.PrintWriter;import java.io.IOException;import java.io.BufferedReader;import java.io.FileReader;import java.util.StringTokenizer;import javax.swing.JOptionPane;
public class RegistroEmpleado extends javax.swing.JFrame {int n,id;Empleados a[]=new Empleados[1000];
3.2.4 JFrame Form: Inventariado
19
package Proyecto;import java.io.FileWriter;import java.io.PrintWriter;import java.io.IOException;import java.io.BufferedReader;import java.io.FileReader;import java.util.StringTokenizer;import javax.swing.JOptionPane;
public class RegistroEmpleado extends javax.swing.JFrame {int n,id;Empleados a[]=new Empleados[1000];
Método leerArchivo()
Método datosTable()
Al inicializar la ventana lee ambos métodos y el puntero aparece
JLabel: lblTituloJButton:
JLabel: lblProducto, lblCantidad,
JTable:
JTextField: txtBuscar JTextField: txtProducto
SOLO ADMINISTRADOR
private void btnEliminarActionPerformed(java.awt.event.ActionEvent evt) { id=tblProductos.getSelectedRow(); txtBuscar.requestFocus(); btnBuscar.setEnabled(true); btnNuevo.setEnabled(true); btnEliminar.setEnabled(true); txtProducto.setText(""); txtPrecioU.setText(""); txtCantidad.setText(""); txtProducto.setEnabled(false); txtCantidad.setEnabled(false);
20
Como se aprecia se utilizan los mismos botones que en RegistroEmpleado (a excepción de btnCodigo) para un manejo más fácil del programa.Al inicializar la ventana se muestra un código similar JFrame Form mencionado.
public void leerArchivo(){ try{ String linea; FileReader f=new FileReader("Inventariado.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); v[n]=new Inventario(); v[n].setProducto(t.nextToken()); v[n].setCantidad(Integer.parseInt(t.nextToken())); v[n].setprecioU(Double.parseDouble(t.nextToken())); n++;} b.close(); } catch(IOException e){ System.out.print(e);} }
public void datosTabla(){ try{ String linea; int fila=0; FileReader f=new FileReader("Inventariado.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); tblProductos.setValueAt(t.nextToken(), fila, 0);
package Proyecto;…public class Inventariado extends javax.swing.JFrame {int n,indice,id;Inventario v[]=new Inventario[1000];
public Inventariado() { initComponents(); leerArchivo(); datosTabla();
Al inicializar la ventana lee ambos métodos y el puntero aparece en txtBuscar. Sin embargo los métodos varían pero
En este caso se va a interactuar con los productos y no con los empleados, por ello es que se procede a la creación de un nuevo archivo “Inventariado.txt” en el que se almacenará los datos de los productos. Se crea en el método
Se invoca a nuestra Java Class Inventario
Método ingresarDatos():public void ingresarDatos(){ Inventario c=new Inventario(); c.setProducto(txtProducto.getText().toUpperCase()); c.setCantidad(Integer.parseInt(txtCantidad.getText())); c.setprecioU(Double.parseDouble(txtPrecioU.getText())); try{ FileWriter f=new FileWriter("Inventariado.txt",true); PrintWriter p=new PrintWriter(f); p.println(c.getProducto()+","+c.getCantidad()+","+c.getprecioU()); p.close(); }
CódigobtnElimin
JButton: btnNuevo, btnModificar, btnGuardar, btnActualizar, btnCancelar, btnEliminar, btnSalir
21
Método ingresarDatos():public void ingresarDatos(){ Inventario c=new Inventario(); c.setProducto(txtProducto.getText().toUpperCase()); c.setCantidad(Integer.parseInt(txtCantidad.getText())); c.setprecioU(Double.parseDouble(txtPrecioU.getText())); try{ FileWriter f=new FileWriter("Inventariado.txt",true); PrintWriter p=new PrintWriter(f); p.println(c.getProducto()+","+c.getCantidad()+","+c.getprecioU()); p.close(); }
public void actualizar(int indice){ v[id].setProducto(txtProducto.getText().toUpperCase()); v[id].setCantidad(Integer.parseInt(txtCantidad.getText())); v[id].setprecioU(Double.parseDouble(txtPrecioU.getText())); try{ FileWriter f=new FileWriter("Inventariado.txt"); PrintWriter p=new PrintWriter(f); for(int i=0;i<n;i++) p.println(v[i].getProducto()+","+v[i].getCantidad()+","+v[i].getprecioU()); p.close(); } catch(IOException e){ System.out.print(e); } }
Este código es usado para los botones btnActualizar en los diferentes JFrame Form que los contengan, solo varia las características
private void btnBuscarActionPerformed(java.awt.event.ActionEvent evt) { id=buscar();} public int buscar(){ int ind=-1; String produc; produc=txtBuscar.getText().toUpperCase(); for(int i=0;i<n;i++) if(produc.equals(v[i].getProducto())) ind=i; if(ind==-1){ JOptionPane.showMessageDialog(this, "NO SE ENCUENTRA REGISTRADO", "ATENCION", JOptionPane.ERROR_MESSAGE); txtBuscar.setText(""); txtBuscar.requestFocus();} else {txtProducto.setText(v[ind].getProducto()); txtCantidad.setText(""+v[ind].getCantidad()); txtPrecioU.setText(""+v[ind].getprecioU()); } return ind;
private void tblProductosMouseClicked(java.awt.event.MouseEvent evt) { id=tblProductos.getSelectedRow(); txtProducto.setText((tblProductos.getValueAt(id, 0)).toString()); txtCantidad.setText((tblProductos.getValueAt(id, 1)).toString());
CódigobtnBuscar
Código para que cada vez que se seleccione un
3.2.5 JFrame Form: Norden
22
Código para que cada vez que se seleccione un
TODO EL PERSONAL
JList: lstOrdenJButton:
JLabel: lblProducto, lblPrecioU, lblPrecio
JTable:
JTextField: txtBuscar , txtProducto,txtPrecioU,
JTextField: txtStock
JLabel lblCantidad, JComboBox: cbxCantidad
JButton: btnAnular
JButton: btnAplicar, btnCuadre, btnSalir
Esta ventana es parecida de cierta manera al JFrame Form Inventariado. btnNuevo, tblProductos mantiene la misma codificación. Al inicializar la ventana se muestra un código similar JFrame Form mencionado, pero se le agrega una nueva lectura de
23
public void mostrarCantidad(){ for(int i=0;i<=100;i++) cbxCantidad.addItem(i); }
public void leerTotal(){ try{ String linea; FileReader f=new FileReader("Total.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); a[q]=new Vent(); a[q].setTotal(Double.parseDouble(t.nextToken())); q++;} b.close(); } catch(IOException e){ System.out.print(e);}
Método mostrarCantidad(): al inicializarse la ventana, automáticamente cbxCantidad tendrá números del 1 hasta i=100.
En este caso se va a interactuar con los productos almacenados y productos vendidos, por ello es que se procede a la creación de un nuevo archivo “Total.txt” en el que se almacenará el total, y así poder llevar ese dato a otra ventana. Se crea en el método agregar(), método del botón
private void btnAplicarActionPerformed(java.awt.event.ActionEvent evt) { agregar(); Venta ven=new Venta(); ven.setVisible(true); dispose();} public void agregar(){ for(int i=0;i<k;i++) c[i].setTotal(total); try{ FileWriter f=new FileWriter("Total.txt",true); PrintWriter p=new PrintWriter(f); for(int i=0;i<k;i++) p.println(c[i].getTotal()); p.close(); } catch(IOException e){
CódigobtnAplic
private void cbxCantidadItemStateChanged(java.awt.event.ItemEvent evt) { int ind; ind=cbxCantidad.getSelectedIndex(); for (int i=0;i<40;i++) if(i==ind) cantidad=i;
private void btnAgregarPActionPerformed(java.awt.event.ActionEvent evt) { producto=txtProducto.getText(); precio=Double.parseDouble(txtPrecioU.getText())*cantidad; total=total+precio; lstOrden.setModel(l); l.addElement(cantidad+" "+producto+" "+precio); txtBuscar.setText(""); txtBuscar.requestFocus(); txtProducto.setText(""); txtPrecioU.setText(""); txtCantidad.setText(""); txtTotal.setText("S/. "+total); c[k]=new Vent(); c[k].setProducto(producto); c[k].setCantidad(cantidad);
CódigobtnAgreg
CódigocbxCantid
24
private void btnAnularActionPerformed(java.awt.event.ActionEvent evt) { int ind; ind=lstOrden.getSelectedIndex(); total=total-c[ind].getPrecio(); txtTotal.setText("S/. "+total); l.remove(ind); for(int i=ind;i<k;i++)
CódigobtnAnular
Con este botón se ingresa al JFrame Form CorteCaja, en el cual se cuadrará la caja del empleado que se encontró laborando. Acceso solo para administradores. A continuación se muestra su código.
private void btnCuadreActionPerformed(java.awt.event.ActionEvent evt) { IngresoCorte x=new IngresoCorte(); x.setVisible(true);
Con este botón se regrese a la ventana de Inicio.
private void btnSalirActionPerformed(java.awt.event.ActionEvent evt) { Inicio x=new Inicio(); x.setVisible(true); dispose();
Este botón nos llevará al JFrame Form Venta, para ingresar el tipo y la cantidad con la que paga el cliente. Su código ya fue formulado en la página anterior.
3.2.6 JFrame Form: Venta
25
JTextField: txtTotal txtEfectivotxtCambio
JButton: btnAplicarbtnAtras
de la venta realizada en el JFrame Form Norden debe cargar
Al inicializar la ventana lee los métodos leerTotal, leerArchivo, mostrarTotal, y leerCorte
Se invoca a nuestras Java Vent, Corte e
InventarioPara cargar el total del JFrame Form NordenPara almacenar los tipos de pago de los clientesPara actualizar el inventario
public void mostrarTotal()
for(int i=0;i<q;i++) k=i;
total=a[k].getTotal();
26
Cada uno de estos botones nos ayudara en la selección del tipo de pago. Solamente btnSoles y btnDolares activaran txtEfectivo. Mostramos los códigos de
El código es similar para todos. La variable tCambio tomará como valor la primera letra de cada tipo de
private void btnSolesActionPerformed(java.awt.event.ActionEvent evt) { tCambio='S'; txtEfectivo.setEnabled(true); txtEfectivo.requestFocus(); } private void btnDolaresActionPerformed(java.awt.event.ActionEvent evt) { tCambio='D'; txtEfectivo.setEnabled(true); txtEfectivo.requestFocus(); } private void btnVisaActionPerformed(java.awt.event.ActionEvent evt) { tCambio='V'; txtEfectivo.setEnabled(false);
private void btnAplicarActionPerformed(java.awt.event.ActionEvent evt) { double cambio, efectivo, dolar,d=2.7; for(int i=0;i<n;i++) j=i; if(tCambio=='S') {efectivo=Double.parseDouble(txtEfectivo.getText()); cambio=efectivo-total; txtCambio.setText(""+cambio); soles=c[j].getEfectivo()+total;} if(tCambio=='D') {efectivo=Double.parseDouble(txtEfectivo.getText()); dolar=efectivo*d; cambio=dolar-total; txtCambio.setText(""+cambio); dolares=c[j].getDolares()+total;} if(tCambio=='V') {txtCambio.setText("CANCELO CON VISA"); visa=c[j].getVisa()+total;} if(tCambio=='M') {txtCambio.setText("CANCELO CON MASTERCARD"); master=c[j].getMaster()+total;}
CódigobtnAplic
Métodos
27
Método guardarCorte():
public void guardarCorte(){ Corte w=new Corte(); w.setEfectivo(soles); w.setDolares(dolares); w.setVisa(visa); w.setMaster(master); w.setCmr(cmr); w.setRipley(ripley); try{ FileWriter f=new FileWriter("Cort.txt",true); PrintWriter p=new PrintWriter(f); p.println(w.getEfectivo()+","+w.getDolares()+","+w.getVisa()+","+w.getMaster()+","+w.getCmr()+","+w.getRipley()); p.close(); } catch(IOException e){ System.out.println(e);}
Almacenamos los distintos tipos de pago en el archivo “Cort.txt” para realizar un cuadre de caja más sencillo y rápido en el JFrameForm
Método actualizaInv():
public void actualizaInv(){ String producto; for(int t=0;t<q;t++) {producto = a[t].getProducto(); for(int i=0;i<n;i++) if(producto.equals(v[i].getProducto())) v[i].setCantidad(v[i].getCantidad()-a[t].getCantidad());} try{ FileWriter f=new FileWriter("Inventariado.txt"); PrintWriter p=new PrintWriter(f); for(int i=0;i<n;i++) p.println(v[i].getProducto()+","+v[i].getCantidad()+","+v[i].getprecioU()); p.close(); } catch(IOException e){ System.out.print(e);} }
Se actualiza el
private void btnAtrasActionPerformed(java.awt.event.ActionEvent evt) { Norden o=new Norden(); o.setVisible(true); dispose(); }
btnAtras nos regresa a JFrame Form Norden para cancelar la orden o tomar una nueva.
3.2.7 JFrame Form: CorteCaja
28
SOLO ADMINISTRADOR
JLabel:lblSoleslblDolareslblVisalblMasterlblCmrlblRipley
JLabel:lblTitulolblDiferencialblDeposita
JTextField: txtSolesCaja, txtSolesDepositado,
JTextField: txtDolaresCaja, txtDolaresDepositado,
JTextField: txtVisaCaja, txtVisaDepositado,
JTextField: txtMasterCaja, txtMasterDepositado,
JTextField: txtCmrCaja, txtCmrDepositado,
JTextField: txtRipleyCaja, txtRipleyDepositado,
JButton: btnChekar,
Llego la hora de cuadrar la caja. Recuerde que solo tienen acceso los administradores. Para que cargue automáticamente los tipos de pago, al inicializar la ventana debe leer nuestro archivo “Cort.txt” ya creado. Veamos el código:
package Proyecto;…
public class CorteCaja extends javax.swing.JFrame {Corte c[]=new Corte[100000];int n,k=0;double soles=0,dolares=0,visa=0,master=0,cmr=0,ripley=0;
public CorteCaja() { initComponents();
Se invoca a nuestra Java Class Corte, para ver los
Método
29
public void leerCorte(){ try{ String linea; FileReader f=new FileReader("Cort.txt"); BufferedReader b=new BufferedReader(f); while((linea=b.readLine())!=null){ StringTokenizer t=new StringTokenizer(linea,","); c[n]=new Corte(); c[n].setEfectivo(Double.parseDouble(t.nextToken())); c[n].setDolares(Double.parseDouble(t.nextToken())); c[n].setVisa(Double.parseDouble(t.nextToken())); c[n].setMaster(Double.parseDouble(t.nextToken())); c[n].setCmr(Double.parseDouble(t.nextToken())); c[n].setRipley(Double.parseDouble(t.nextToken())); n++;} b.close(); } catch(IOException e){ System.out.print(e);} }
public void mostrarCorte(){ for(int i=0;i<n;i++) k=i;
Método leerCorte(): nos permite leer el archivo en el que se encuentra guardado los tipos de pago
Método mostrarCorte(): muestra los tipos de pago en sus JTextField correspondientes.
A los JTextField que se encuentran en la columna DEPOSITADO se le da la acción KeyPressed
Primero se ingresa la cantidad contada en caja y se ingresa en la columna DEPOSITADO, al presionar enter aparecerá en la columna DIFERENCIA si el cajero debe o no.
30
private void txtSolesDepositadoKeyPressed(java.awt.event.KeyEvent evt) { double soles,s,diferencia; soles=Double.parseDouble(txtSolesCaja.getText()); s=Double.parseDouble(txtSolesDepositado.getText()); if(evt.getKeyCode()==evt.VK_ENTER) {diferencia=s-soles; txtSolesDiferencia.setText(""+diferencia);} } private void txtDolaresDepositadoKeyPressed(java.awt.event.KeyEvent evt) { double dolares,d,diferencia; dolares=Double.parseDouble(txtDolaresCaja.getText()); d=Double.parseDouble(txtDolaresDepositado.getText()); if(evt.getKeyCode()==evt.VK_ENTER) {diferencia=d-dolares; txtDolaresDiferencia.setText(""+diferencia);}} private void txtVisaDepositadoKeyPressed(java.awt.event.KeyEvent evt) { double caja,d,diferencia; caja=Double.parseDouble(txtVisaCaja.getText()); d=Double.parseDouble(txtVisaDepositado.getText()); if(evt.getKeyCode()==evt.VK_ENTER) {diferencia=d-caja;
Código para la acción KeyPressed de cada JTextField de la columna DEPOSITADO.El código es el mismo, solo varia el tipo
private void btnChekarActionPerformed(java.awt.event.ActionEvent evt) { Inicio x=new Inicio(); limpiar(); x.setVisible(true); dispose();}
public void limpiar(){ Corte v=new Corte(); v.setEfectivo(soles); v.setDolares(dolares); v.setVisa(visa); v.setMaster(master); v.setCmr(cmr); v.setRipley(ripley); try{ FileWriter f=new FileWriter("Cort.txt",true); PrintWriter p=new PrintWriter(f); p.println(v.getEfectivo()+","+v.getDolares()+","+v.getVisa()+","+v.getMaster()+","+v.getCmr()+","+v.getRipley()); p.close(); } catch(IOException e){ System.out.println(e);}
Código btnChekar: este botón elimina los tipos de pago guardados para poder ingresar nuevos. Cierra la caja del empleado de turno y devuelve la página de Inicio para darle paso a otro
Métod
Método limpiar(): elimina o limpia los datos almacenados como tipo de pago para almacenar
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { Norden x=new Norden(); x.setVisible(true); dispose(); }
btnCancelar: nos devuelve al JFrame Form Norden.