Documentación Del Registro Del Personal De Empresa
La siguiente aplicación esta construida en el lenguaje de programación JAVA y la base de datos en MYSQL, hemos escogido JAVA debido a que es un lenguaje de programación muy potente, además consta de la característica de ser multiplataformas y de encontrar mucha documentación para la elaboración de cualquier aplicación, y hemos escogido la base de datos MYSQL debido a su facil instalación y utilización, además de ser codigo libre.
Esta aplicación resolverá el problema del registro manual del personal de cualquier empresa que allá utilizado esta solución. Se lo resolverá al problema con un software que lleve un registro de la asistencia del personal de una forma sencilla y fácil de entender al usuario, y además le ocupe el menos tiempo posible.
La pantalla principal sera la de acceso directo al empleado para su respectivo registro de entrada como de la salida.

registro del personal
Este software consta de un menú llamado Archivos el cual tiene un acceso a la ventana de Administración y uno de salida. Además consta de una barra de acceso directo a la mismas opciones y un reloj para su propio control.

Autentificación del Administrador
Al hacer click en el icono para la ventana de administración nos aparece la esta ventana para autentificar que somos el administrador de este software con lo cual nos registramos como administrador, accediendo o negando el usuario. Una vez autentificado el usuario tenemos acceso a la ventana de administración.

Ventana para el manejo del Administrador
En esta ventana de administración tenemos también un menú llamado archivo y una barra de acceso directo a las mismas opciones del menú, las opciones son listar, registrar y eliminar . En esta ventana de administración hemos creado y un panel interno en el cual se van abrir dentro de este todas estas opciones de ventanas ya dichas lo cual ara mas fácil de llevar el manejo de estas.

pantalla listar empleados
Al hacer clic en la el icono de acceso directo listar nos aparece la anterior ventana metida dentro del panel de administración esta contendrá un listado de los empleados y para obtener información sobre su asistencia hacemos clic sobre cualquier nombre que queramos apareciéndonos mas información detallada de todas sus asistencias dentro del a misma venta de listar.

Ventana de registro de Empleados
A continuación se presenta la ventana para registrar un nuevo empleado la cual también va ha estar en un un panel interno dentro de la ventana de administración esta podrá hacer accedido mediante el menú, registrar o mediante su acceso directo Acontinuacion se presenta la ventana en esta ventana se va ingresar los datos personales del empleado, para guardarlos en la base de datos de MYSQL

Ventana Eliminar Empleado
La ventana siguiente es la ventana de Eliminar empleado la cual procederá a eliminar cualquier empleado mediante su numero de cédula, podemos acceder a esta ventana mediante menú, eliminar o mediante su icono de acceso directo en la barra de tareas

Ventana para Imprimir informe
La siguiente es la ventana de informe cual puede ser imprimida esta presenta el informe ingresando los datos de cédula, mes y año del pago correspondiente al mes que se va ha cancelar.

Ventanas administración con ventanas internas.
Ventanas administración con ventanas internas.
Documentación de Todas Las Clases Aplicadas
Para desarrollar esta aplicación la primera clase que cree fue la clases de la conexión a la base de datos de MYSQL para lo cual me descargue de internet la librería que controla la conexión a MYSQL.
Para su mayor facilidad he creado un paquete en donde solo pondré las clases que voy ha utilizar y aparte las clases que implementan interfaz gráfica, además de un paquete para todas las imágenes que se utilice.
La Clase Conexion
/*La primera linea importa la librería sql para trabajar con MYSQL y sus respectivas sentencias
La clase Conexion que se la va a utilizar por defecto la cual contiene las siguientes variables que seran estaticas y de tipo string bd que contiene el nombre de la base de datos para la conexion a esta, la variable del mismo tipo login que contiene el login con el cual la clase Conexion va ha tener acceso a mysql, la variable password del mismo tipo que va contener la clave de acceso a mysql y por ultimo la variable url por la cual mysql va ha escuchar las peticiones a esta y que va ha ser del mismo tipo de las anteriores
la varialble url especifica que es una conexión a la base de datos de mysql por la dirección o ip 127.0.0.1 la cual es igual al localhost y que va ha escuchar las peticiones por el puerto 3306*/
import java.sql.*;
public class Conexion {
static String bd = "resgistro_del_personal_empresarial";
static String login = "root";
static String password = "creedyeli1234";
static String url = "jdbc:mysql://127.0.0.1:3306/"+bd;
Connection conn = null; /** Crea una nueva instancia del Conexión */
/* En el constructor de la clase Conexion carga los drivers y se hace la conexión y se hace pone un capturador de posibles errores o ecepciones y la imprime en consola*/
public Conexion(){
try{
//obtenemos el driver de para mysql
Class.forName("com.mysql.jdbc.Driver");
//obtenemos la conexión
conn = DriverManager.getConnection(url,login,password);
if (conn!=null){
System.out.println("Conección a base de datos "+bd+" OK");
}else
System.out.println("Error onectando a la base de datos "+bd);
}catch(SQLException e){
System.out.println(e);
}catch(ClassNotFoundException e){
System.out.println(e);
}
}
/* El método getConexion devuelve un objeto Connection que especifica que se ha conectado*/
public Connection getConexion(){
return conn;
}
/* este método desconecta la conexión que se ha hecho a la base de datos*/
public void desconectar(){
conn = null;
System.out.println("Desconectado");
}
/* Este es un metodo que sirve de prueba para la clase Conexion */
public static void main(String args[]){
Conexion conec=new Conexion();
}
}
La Clase ConecAdmin
/*En esta clase importamos la librería sql con todas sus clases para trabajar tambien con la base de datos*/
import java.sql.*;
/*Esta clase va ha conectarse a la base de datos y a la stabla que contiene los usuarios y contraseñas de administración. En esta clase creamos un objeto de tipo Conexion el cual hace la conexion a la base de datos */
public class ConecAdmin {
Conexion conec;
/** Creamos el contructor de la clase ConecAdmin la cual inicializa la conexión*/
public ConecAdmin() {
conec = new Conexion();
}
/* Este método retorna si los datos de usuario y contraseñas fueron correctos y están almacenados en la tabla administradores, esto lo hace mediante la devolución de una variable booleana
En este método resive 2 variables de tipo String la cuales contiene el usuario y el password ha comparar con la de la tabla de administrador para ser autentificado*/
public boolean comparacion(String usuario, String passw){
boolean aceptacion=false;
try{
/*crea una variable Statement que con la variable de tipo conexion van a permitir hacer las consultas ha la tabla*/
Statement stm = conec.getConexion().createStatement();
/*con esta sentencia extrae los datos de todos los campos de la tabla administradores y luego los extrae en una variable de tipo metadatos llamada resultado, con la cual se va ha obtener los datos que necesitamos para comparar el ingreso del administrador*/
ResultSet resultado=stm.executeQuery("SELECT * FROM administradores");
ResultSetMetaData metaDatos= resultado.getMetaData();
//Con este while recorremos la tabla fila por fila la cual cada fila es un usuario administrador
while(resultado.next()){
//la variable i indica el campo en la tabla de meta datos
int i=2;
/*imprimimos en consola que datos estamos sacando para estar seguros, y los datos que saquemos que deben ser el usuario y el password los almacenamos en unas variables de tipo String usuabd y passwbd la cual
System.out.println(resultado.getString(i)+resultado.getString(i+1));
String usuabd=resultado.getString(i);
String passwbd=resultado.getString(i+1);
/*En este if comparamos si existe una coincidencia con algún usuario administrador si es la autenticación de usuario fue correcta, cambiamos la variable aceptación por verdadero y terminamos la busqueda y retornamos el valor */
if(usuabd.equals(usuario)&& passwbd.equals(passw)){
aceptacion=true;
break;
}else{
aceptacion=false;
}
}
}catch(SQLException e){
System.out.println(e);
}
if(aceptacion==true){
System.out.println("estan bien las contraseñas");
}else{
System.out.println("estan mal las contraseñas");
}
return aceptacion;
}
//Este es un metodo de prueba de la clase
public static void main(String args[]){
ConecAdmin nuevo=new ConecAdmin();
boolean ver=false;
ver=nuevo.comparacion("admin","admin");
}
public void desconectar(){
conec.desconectar();
}
}
La Clase Eliminar
// Importamos las librerías de java que contiene las clases para tratarse con las base de datos
import java.sql.*;
/*La clase Eliminar hace eso elimina el empleado de la tabla empleados mediante el numero de cédula. */
/*Esta clase tiene una variable global cédula la cual va ha almacenar la cédula para luego ser comparada con los datos del campos cédula de tabla empleado si es igual a alguno de los datos de ese campo lo elimina. Con la sentencia sql comparamos y eliminamos* /
public class Eliminar {
private String cedula;
Conexion conec;
/** Creates a new instance of Eliminar */
public Eliminar(String cedula) {
this.cedula=cedula;
conec = new Conexion();
try{
//boolean aceptacion=false;
Statement stm = conec.getConexion().createStatement();
stm.executeUpdate("DELETE FROM empleados WHERE cedula="+this.cedula);
}catch(SQLException e){
System.out.println(e);
}
}
}
Creacion de la Base de Datos en MYSQL
bueno la primera sentencia sql es para borrar por si acaso exista una base de datos de igual nombre.
drop database `registro_del_personal_empresarial`;
create database `registro_del_personal_empresarial`;
use `registro_del_personal_empresarial`;
CREATE TABLE `administradores` (
`Id` int(6) unsigned NOT NULL auto_increment,
`usuario` varchar(100) default NULL,
`clave` varchar(100) default NULL,
PRIMARY KEY (`Id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;
INSERT INTO `administradores` VALUES (1,’admin’,'admin’);
CREATE TABLE `empleados` (
`nombres` varchar(50) default NULL,
`apellidos` varchar(50) default NULL,
`area` varchar(255) default NULL,
`cedula` varchar(11) default NULL,
`email` varchar(255) default NULL,
`sexo` varchar(50) default NULL,
`direccion` varchar(255) default NULL,
`horas` varchar(255) NOT NULL,
PRIMARY KEY (`cedula`));
CREATE TABLE `registro` (
`id` int(11) NOT NULL auto_increment,
`cedula` varchar(10) default NULL,
`fecha` date NOT NULL,
`entrada` time NOT NULL,
`salida` time NOT NULL,
`total` time NOT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `empleados` VALUES (‘Cesar’,'Pesantez’,'desarrollo’,’1000000000′,’craupesantez@hotmail.com’,'hombre’,'leopoldo palacios entre JJ Peña y olmedo’,’18′);
INSERT INTO `empleados` VALUES (‘Augusto’,'Cabrera’,'Ingenieria’,’1111111111′,’lacabrea@utpl.edu.ec’,'hombre’,'frente al colegio Daniel alvarez’,’18′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-7-23′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-7-23′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-2′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-2′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-3′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-3′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-5′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-5′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-10′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-10′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-20′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-20′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-8-30′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-8-30′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-9-23′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-9-23′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1000000000′,’2008-9-30′,’10:0:0′,’12:0:0′,’2:0:0′);
INSERT INTO `registro` VALUES (”,’1111111111′,’2008-9-30′,’10:0:0′,’12:0:0′,’2:0:0′);
Cualquier percanse con la base o con el programa o cualquier problema en la instalación comunicarmerlo a este correo yo estare dispuesto ayudarle solo por haber visitado mi blog.Mi correo es craupesantez@hotmail.es Y disculpen si esta incompleto.
Rapidshare Search Engine