Desarrollo Sistema de Ventas
December 7, 2021 | Author: Anonymous | Category: N/A
Short Description
Download Desarrollo Sistema de Ventas...
Description
MONOGRAFÍA SOBRE EL DESARROLLO DE SISTEMA INFORMÁTICO PARA VENTA DE PRODUCTOS DE CÓMPUTO
ASESOR Ing. Hobby Saavedra Rosas
DICIEMBRE 2012 TRUJILLO - PERÚ
AGRADECIMIENTOS:
En primer lugar a Dios todo poderoso que me ha permitido llegar hasta aquí, que me dio la bendición de culminar mis estudios superiores.
A mis padres, a quienes le debo este logro, quien siempre me apoyo desde el inicio de mi carrera, tanto en lo económico, como en lo moral.
A mis compañeros de estudios y a mis compañeros de trabajo, asesor, amigos y todas las personas que han creído en mí, y que de una u otra forma han ayudado a la finalización de este trabajo
A todas las demás personas que no fueron citadas, pero que de
alguna
manera directa o indirecta contribuyeron a la realización de este trabajo.
ii
RESUMEN El desarrollo de un programa computarizado optimiza el tiempo, sistematizar la labor del usuario, especialmente desarrollado para un análisis rápido y eficaz. Pretende primordialmente esta monografía diseñar e implementar un sistema informático de Escritorio, destinado a la venta de Productos de cómputo, con la finalidad de mantener la información centralizada y almacenada en una base de datos y a partir de ellos poder realizar consultas y reportes, para brindar información a los clientes sobre los precios y productos que cuenta una empresa que se dedica a la venta de productos de cómputo. Para el desarrollo del sistema informático se ha empleado como soporte de base de datos a Microsoft Access 2010 y lenguaje de programación Visual Basic. Net. Como fuentes de datos se han consultado tanto fuentes de internet como bibliografía de las universidades locales. Finalmente se diseñó e implemento satisfactoriamente dicho sistema, que permite el mantenimiento de clientes, productos, proveedores; así como también permite generar el pedido y realizar la respectiva venta. Además dicho sistema genera los reportes, los cuales pueden ser exportados en formato pdf, xls o Word, para su posterior uso. En este trabajo se muestra paso a paso el diseño e implementación, tanto de la base de datos como el código fuente de dicho sistema. Se concluye que el sistema informático es un instrumento útil puesto que permite automatizar las búsquedas, por determinado campos, de cada entidad que conforman el sistema. Palabras claves: Sistema informático, Base de Datos, Lenguaje de Programación, Generación de Reportes.
iii
INTRODUCCIÓN El presenta trabajo pretende mostrar, la integración de la tecnológica .NET, en el desarrollo de un Sistema Informático para la Venta de Productos de Cómputo, los cuales actualmente están logrando un auge importante, debido a que hoy en día se maneja mayor cantidad de información y se requiere obtenerlo en el menor tiempo y generar a partir de ello ventajas competitivas, en las empresas dedicadas a este rubro. Para la elaboración de este sistema informático, se hizo uso
del lenguaje de
programación Visual Basic. Net, el cual nos va a permitir el diseño e implementación de dicho software, en el aspecto sobre el almacenamiento de los datos, se hizo uso de Microsoft Access 2010, el cual permitirá almacenar toda la información, y para los reportes se hizo uso de Cristal Reports, el cual permitirá generar los informes.
La estructura de está monografía está conformada por tres capítulos; Capítulo I Marco Referencial, Capítulo II Metodología y Capitulo III Conclusiones, Recomendaciones y Trabajos futuros.
La parte medular de la monografía se ubica en el Capítulo II, debido a que en ellos se presenta el diseño e implementación tanto de la base de datos como de la aplicación.
iv
INDICE DE IMÁGENES Ilustración 1: Funcionamiento Sistema Gestor de Base de Datos ........................................................... 9 Ilustración 2: Niveles de Abstracción de una Base de Datos ............................................................................ 11 Ilustración 3: Estructura multicapa de las facilidades de usuario ........................................................... 13 Ilustración 4: Entidad y Conjunto de Entidades ........................................................................................ 15 Ilustración 5: Representación de la Entidad Persona .............................................................................. 16 Ilustración 6: Entidad Débil ........................................................................................................................... 16 Ilustración 7: Ejemplo de Relación .............................................................................................................. 17 Ilustración 8: Representación Gráfica de Relación .................................................................................. 17 Ilustración 9: Atributos de Entidad y Relación ........................................................................................... 17 Ilustración 10: Transformación de Entidad a esquema Relacional ........................................................ 20 Ilustración 11: Grafo Relacional .................................................................................................................. 20 Ilustración 12: Esquema Relacional de Ms Access .................................................................................. 21 Ilustración 13: .Net Framework .................................................................................................................... 26 Ilustración 14: Modelo Lógico de Sistema Informático ............................................................................ 28 Ilustración 15: Modelo Entidad Relación .................................................................................................... 30 Ilustración 16: Entidades o Tablas .............................................................................................................. 31 Ilustración 17: Modelo Relacional en Access ............................................................................................ 34 Ilustración 18: Tabla Producto ..................................................................................................................... 34 Ilustración 19: Tabla Cliente......................................................................................................................... 35 Ilustración 20: Tabla Venta ........................................................................................................................... 35 Ilustración 21: Tabla DetalleVenta .............................................................................................................. 36 Ilustración 22: Tabla Proveedor ................................................................................................................... 36 Ilustración 23: Tabla Usuario ....................................................................................................................... 36 Ilustración 24: Formulario de Acceso al Sistema ...................................................................................... 37 Ilustración 25: Código Fuente Conexión Base Datos .............................................................................. 37 Ilustración 26: Código Fuente Formulario de Acesso .............................................................................. 38 Ilustración 27: Formulario Principal del Sistema ....................................................................................... 38 Ilustración 28: Código Fuente Formulario Principal.................................................................................. 39 Ilustración 29: Formulario Mantenimiento de Clientes ............................................................................. 40 Ilustración 30: Elementos Formulario Mantenimiento Clientes ............................................................... 40 Ilustración 31: Código Fuente Formulario Mantenimiento de Clientes .................................................. 44 Ilustración 32: Formulario Mantenimiento Productos ............................................................................... 44 Ilustración 33: Código Fuente Formulario Mantenimiento de Productos .............................................. 49 Ilustración 34: Formulario Mantenimiento de Proveedor ......................................................................... 50 Ilustración 35: Componentes de Formulario Mantenimiento de Proveedores ..................................... 50 Ilustración 36: Código Fuente Mantenimiento Proveedor ....................................................................... 53 Ilustración 37: Componentes Formulario Mantenimiento de Usuarios .................................................. 54 Ilustración 38: Código Fuente Formulario Mantenimiento de Usuarios ................................................ 59 Ilustración 39: Formulario de Búsqueda de Clientes................................................................................ 59 Ilustración 40: Componentes Formulario Búsqueda de Clientes ........................................................... 59 Ilustración 41: Código Fuente Formulario Consulta de Clientes ............................................................ 61 Ilustración 42: Formulario Búsqueda de Productos.................................................................................. 61 Ilustración 43: Código Fuente Formulario Consulta de Clientes ............................................................ 63 Ilustración 44: Formulario Búsqueda de Proveedores ............................................................................. 64
v
Ilustración 45: Código Fuente Formulario Consulta de Proveedores .................................................... 65 Ilustración 46: Formulario Consulta de Ventas ......................................................................................... 66 Ilustración 47: Código Fuente Formulario Consulta de Ventas .............................................................. 67 Ilustración 48: Formulario Búsqueda de Cliente para Ventas................................................................. 68 Ilustración 49: Código de Fuente en el formulario Búsqueda de Cliente Ventas ................................. 69 Ilustración 50: Formulario Búsqueda de Ventas ....................................................................................... 69 Ilustración 51: Código Fuente Formulario Búsqueda de Ventas ............................................................ 70 Ilustración 52: Código Fuente Formulario de Venta ................................................................................. 76 Ilustración 53: Formulario de Reporte de Ventas ..................................................................................... 77 Ilustración 54: Diseño de Reporte de Ventas ............................................................................................ 77 Ilustración 55: Código Fuente Formulario Reporte de Ventas ................................................................ 77 Ilustración 56: Formulario Reporte de Clientes ......................................................................................... 78 Ilustración 57: Diseño de Reporte de Clientes .......................................................................................... 78 Ilustración 58: Código Fuente Formulario Reporte de Clientes .............................................................. 78 Ilustración 59: Formulario Reporte de Productos ..................................................................................... 79 Ilustración 60: Diseño de Reporte de Productos ...................................................................................... 79 Ilustración 61: Código Fuente Formulario Reporte de Productos .......................................................... 79 Ilustración 62: Formulario de Reporte de Proveedores ........................................................................... 80 Ilustración 63: Diseño de Reporte de Proveedores .................................................................................. 80 Ilustración 64: Código Fuente en el Formulario Reporte de Proveedores ............................................ 80 Ilustración 65: Manejo Formulario Acceso al Sistema ..................................................................................... 83 Ilustración 66: Manejo Formulario Principal ............................................................................................... 83 Ilustración 67: Manejo de Formulario Mantenimiento de Clientes ......................................................... 84 Ilustración 68: Manejo de Formulario de Mantenimiento de Productos ................................................ 84 Ilustración 69: Manejo de Formulario Mantenimiento de Proveedor ..................................................... 85 Ilustración 70: Manejo Formulario Mantenimiento de Usuarios ............................................................. 85 Ilustración 71: Manejo de Consulta de Clientes ........................................................................................ 86 Ilustración 72: Manejo de Consulta de Proveedores................................................................................ 86 Ilustración 73: Manejo de Consulta de Productos .................................................................................... 86 Ilustración 74: Manejo de Consulta de Ventas por Cliente ..................................................................... 87 Ilustración 75: Manejo de Pedido por Cliente ............................................................................................ 87 Ilustración 76: Manejo de Gestión Pedido (Venta) ................................................................................... 88 Ilustración 77: Manejo de Cliente que realiza Pedido .............................................................................. 88 Ilustración 78: Manejo de Selección de Productos ................................................................................... 89 Ilustración 79: Gestión del Pedido por Cliente .......................................................................................... 89 Ilustración 80: Reporte de Clientes ............................................................................................................. 90 Ilustración 81: Reporte de Productos ......................................................................................................... 90 Ilustración 82: Reporte de Proveedores ..................................................................................................... 91 Ilustración 83: Reporte de Ventas ............................................................................................................... 91 Ilustración 84: Reporte de Facturas ............................................................................................................ 92
vi
INDICE DE TABLAS Tabla 1: Tabla de una Base Datos .............................................................................................. 19 Tabla 2: Tabla Clientes de una Base de Datos ......................................................................... 19 Tabla 3: Características del Software ......................................................................................... 30 Tabla 4: Descripción Tabla Clientes ............................................................................................ 31 Tabla 5: Descripción Tabla Producto .......................................................................................... 32 Tabla 6: Descripción Tabla Usuario ............................................................................................ 32 Tabla 7: Descripción Tabla Proveedor ........................................................................................ 33 Tabla 8: Descripción Tabla Venta ................................................................................................ 33 Tabla 9: Descripción Tabla DetalleVenta ................................................................................... 33 Tabla 10: Elementos del Formulario de Acceso ........................................................................ 37 Tabla 11: Elementos Formulario Principal.................................................................................. 39 Tabla 12: Componentes Formulario Mantenimiento de Productos ........................................ 45 Tabla 13: Componentes del Formulario Búsqueda de Productos .......................................... 62 Tabla 14: Componentes Formulario Búsqueda de Proveedores ............................................ 64 Tabla 15: Componentes Formulario Búsqueda de Ventas ...................................................... 66 Tabla 16: Componentes del Formulario Consulta de Clientes para Ventas ...................................... 68 Tabla 17: Componentes Formulario Búsqueda de Ventas ...................................................... 69 Tabla 18: Componentes Formulario Gestión de Pedido .......................................................... 71
vii
INDICE GENERAL AGRADECIMIENTOS .........................................................................................................................ii RESUMEN..........................................................................................................................................iii INTRODUCCIÓN................................................................................................................................iv INDICE DE IMÁGENES ......................................................................................................................v INDICE DE TABLAS .........................................................................................................................vii
CAPITULO I ........................................................................................................................... 9 1.
MARCO REFERENCIAL ................................................................................................ 9 1.1.
SISTEMAS GESTORES DE BASES DE DATOS (SGBD).................................... 9
1.1.1.
Definición de SGBD........................................................................................ 9
1.1.2.
Niveles de abstracción de una base de datos .......................................... 10
1.1.3.
Estructura Multicapa .................................................................................... 13
1.1.4.
Modelos Conceptuales ................................................................................ 14
1.1.5.
Modelos Lógicos .......................................................................................... 17
1.1.6.
Principales Sistemas Gestores de Bases de Datos ................................. 21
1.2.
TECNOLOGÍA .NET .............................................................................................. 24
1.2.1.
Visual Studio .Net 2010 ............................................................................... 24
1.2.2.
.NET FRAMEWORK .................................................................................. 25
CAPITULO II ........................................................................................................................ 27 2.
METODOLOGÍA ........................................................................................................... 27 2.1.
Visión .................................................................................................................... 27
2.2.
Oportunidad de Negocio ..................................................................................... 27
2.3.
Análisis de beneficios ......................................................................................... 27
2.4.
Modelo lógico de integración de tecnologías en el Sistema informático ..... 28
2.5.
Descripción de componentes ............................................................................ 28
2.6.
Especificaciones Técnicas ................................................................................. 29
2.7.
Diseño e Implementación de la Base de Datos del Sistema Informático ..... 30
2.8.
Diseño e implementación del Sistema Informático ......................................... 37
CAPITULO III ....................................................................................................................... 81 3.
CONCLUSIONES Y RECOMENDACIONES ............................................................... 81
REFERENCIAS BIBLIOGRÁFICAS ................................................................................... 82 ANEXOS ............................................................................................................................... 83
CAPITULO I 1. MARCO REFERENCIAL 1.1. SISTEMAS GESTORES DE BASES DE DATOS (SGBD) 1.1.1. Definición de SGBD Un sistema gestor de bases de datos o SGBD (aunque se suele utilizar más a menudo las siglas
DBMS
procedentes del inglés,
Data Base Management
System) es el software que permite a los usuarios procesar, describir, administrar y recuperar los datos almacenados en una base de datos. En estos
Sistemas se proporciona un conjunto coordinado de programas,
procedimientos y lenguajes que permiten a los distintos usuarios realizar sus tareas habituales con los datos, garantizando además la seguridad de los mismos.
Ilustración 1: Funcionamiento Sistema Gestor de Base de Datos El éxito del SGBD reside en mantener la seguridad e integridad de los datos. Lógicamente tiene que proporcionar herramientas a los distintos usuarios. Entre las herramientas que proporciona están:
Herramientas para la creación y especificación de los datos. Así como la estructura de la base de datos.
Herramientas para administrar y crear la estructura física requerida en las unidades de almacenamiento.
Herramientas para la manipulación de los datos de las bases de datos, para añadir, modificar, suprimir o consultar datos.
Herramientas de recuperación en caso de desastre
Herramientas para la creación de copias de seguridad 9
Herramientas para la gestión de la comunicación de la base de datos
Herramientas para la creación de aplicaciones que utilicen esquemas externos de los datos
Herramientas de instalación de la base de datos
Herramientas para la exportación e importación de datos
1.1.2. Niveles de abstracción de una base de datos En cualquier sistema de información se considera que se pueden observar los datos desde dos puntos de vista:
Vista externa. Esta es la visión de los datos que poseen los usuarios del Sistema de Información.
Vista física. Esta es la forma en la que realmente están almacenados los datos.
En un
sistema
orientado a procesos, los usuarios ven los datos desde las
aplicaciones creadas por los programadores. Esa vista pueden ser formularios, informes visuales o en papel. Pero la realidad física de esos datos, tal cual se almacenan en los discos queda oculta. Esa visión está reservada a los administradores. En el caso de los Sistemas de Base de datos, se añade una tercera vista, que es la vista conceptual. Esa vista se sitúa entre la física y la externa. Se habla pues en Bases de datos de la utilización de tres esquemas para representar los datos. 1.1.2.1.
Esquema físico
Representa la forma en la que están almacenados los datos. Esta visión sólo la requiere el administrador/a. El administrador la necesita para poder gestionar más eficientemente la base de datos. 1.1.2.2.
Esquema Conceptual
Se trata de un esquema teórico de los datos en el que figuran organizados en estructuras reconocibles del mundo real y en el que también aparece la forma
10
de relacionarse los datos. Este esquema es el paso que permite modelar un problema real a su forma correspondiente en el ordenador. Este esquema es la base de datos de todos los demás. Como se verá más adelante es el primer paso a realizar al crear una base de datos. El esquema conceptual lo realiza diseñadores/as o analistas. 1.1.2.3.
Esquema externo
Se trata de la visión de los datos que poseen los usuarios y usuarias finales. Esa visión es la que obtienen a través de las aplicaciones. Las aplicaciones creadas por los desarrolladores abstraen la realidad conceptual de modo que el usuario no conoce las relaciones entre los datos, como tampoco conoce todos los datos que realmente se almacenan. Realmente cada aplicación produce un esquema externo diferente (aunque algunos pueden coincidir) o vista de usuario. El conjunto de todas las vistas de usuario es lo que se denomina esquema externo global.
Ilustración 2: Niveles de Abstracción de una Base de Datos 1.1.2.4.
Recursos Humanos de las Bases de Datos
11
Intervienen muchas personas en el desarrollo y manipulación de una base de datos. Habíamos seleccionado cuatro tipos de usuarios (administradores/as, desarrolladores, diseñadores/as y usuarios/as). La clasificación de estos usuarios es la siguiente: a. Informáticos Lógicamente son los profesionales que definen y preparan la base de datos. Pueden ser:
Directivos/as. Organizadores y coordinadores del proyecto a desarrollar y máximos responsables del mismo. Esto significa que son los encargados de decidir los recursos que se pueden utilizar, planificar el tiempo y las tareas, la atención al usuario y de dirigir las entrevistas y reuniones pertinentes.
Analistas. Son los encargados de controlar el desarrollo de la base de datos aprobada por la dirección. Normalmente son además los diseñadores de la base de datos (especialmente de los esquemas interno y conceptual) y los directores de la programación de la misma.
Administradores/as de las bases de datos. Encargados de crear el esquema interno de la base de datos, que incluye la planificación de copia de seguridad, gestión de usuarios y permisos y creación de los objetos de la base de datos.
Desarrolladores/as o programadores/as. Encargados de la realización de las aplicaciones de usuario de la base de datos.
Equipo de mantenimiento. Encargados de dar soporte a los usuarios en el
trabajo diario (suelen incorporar además tareas
administrativas como la
creación de copias de seguridad por
ejemplo o el arreglo de problemas de red por ejemplo). b. Usuarios
12
Expertos/as. Utilizan el lenguaje de manipulación de datos (DML) para acceder a la base de datos. Son usuarios que utilizan la base de datos para gestión avanzada de decisiones.
Habituales.
Utilizan
las
aplicaciones
creadas
por
los
desarrolladores para consultar y actualizar los datos. Son los que trabajan en la empresa a diario con estas herramientas y el objetivo fundamental de todo el desarrollo de la base de datos.
Ocasionales. Son usuarios que utilizan un acceso mínimo a la base de datos a través de una aplicación que permite consultar ciertos datos. Serían por ejemplo los usuarios que consultan el horario de trenes a través de Internet.
1.1.3. Estructura Multicapa El proceso que realiza un SGBD está en realidad formado por varias capas que actúan como interfaces entre el usuario y los datos. Fue el propio organismo ANSI (en su modelo X3/SPARC que luego se comenta) la que introdujo una mejora de su modelo de bases de datos en 1988 a través de un grupo de trabajo llamado UFTG (User Facilities Task Group, grupo de trabajo para las facilidades de usuario).
. Ilustración 3: Estructura multicapa de las facilidades de usuario
13
Este modelo toma como objeto principal al usuario habitual de la base de datos y modela el funcionamiento de la base de datos en una sucesión de capas cuya finalidad es ocultar y proteger la parte interna de las bases de datos Desde esta óptica para llegar a los datos hay que pasar una serie de capas que desde la parte más externa poco a poco van entrando más en la realidad física de la base de datos.
1.1.4. Modelos Conceptuales a. Modelo Entidad Relación Ya hemos visto anteriormente que existen varios esquemas a realizar para poder
representar en forma de base de datos informática un problema
procedente del ordenador. En 1976 y 1977 dos artículos de Peter P. Chen presentan un modelo para realizar esquemas que posean una visión unificada de los datos. Este modelo es
el modelo entidad/interrelación (entity/relationship en inglés) que
actualmente se conoce más con el nombre de entidad/relación (Modelo E/R o ME/R, en inglés E/RM). Posteriormente otros autores han añadido mejoras a este modelo lo que ha producido una familia de modelos. La más aceptada actualmente es el modelo
entidad/relación extendido (ERE) que complementa algunas
carencias del modelo original. No obstante las diversas variantes del modelo hacen que la representación de este modelo no sea muy estándar, aunque hay ideas muy comunes a todas las variantes.
b. Componentes del Modelo Entidad Relación
Entidad. Se trata de cualquier objeto u elemento (real o abstracto) acerca del cual se pueda almacenar información en la base de datos. Es
14
decir cualquier elemento informativo que tenga importancia para una base de datos. Ejemplos de entidades son Pedro, la factura número 32456, el coche matrícula 3452BCW, etc. Una entidad no es un propiedad concreta sino un objeto que puede poseer múltiples propiedades (atributos). Es decir “Sánchez” es el contenido del atributo Primer Apellido de la entidad que representa a la
persona Pedro
Sánchez Crespo con DNI 12766374. Una entidad es un objeto concreto, no un simple dato: el coche que tenemos en el garaje es una entidad, “Mercedes” sin embargo es la marca de ese coche, es decir es un atributo de esa entidad.
Ilustración 4: Entidad y Conjunto de Entidades En la actualidad se suele llamar entidad a lo que anteriormente se ha definido
como conjunto de entidades. De este modo
hablaríamos de la entidad
PERSONAS. Mientras que cada
persona en concreto sería una ocurrencia o un ejemplar de la entidad persona.
Representación Gráfica
15
En el modelo entidad relación los conjuntos de entidades se representan con un
rectángulo dentro del cual se
escribe el nombre de la entidad:
Ilustración 5: Representación de la Entidad Persona
Tipos de Entidades Regulares. Son las entidades normales que tienen existencia por sí mismas sin depender de otras. Su representación gráfica es la indicada arriba Débiles. Su existencia depende de otras. Es decir e. Por ejemplo la entidad tarea laboral sólo podrá tener existencia si existe la entidad trabajo. Las entidades débiles se presentan de esta forma:
Ilustración 6: Entidad Débil
Relación Representan asociaciones entre entidades. Es el elemento del modelo que permite relacionar en sí los datos del mismo. Por ejemplo, en el caso de que tengamos una entidad personas y otra entidad trabajos. Ambas se realizan ya que las personas trabajan y los trabajos son realizados por personas:
16
Ilustración 7: Ejemplo de Relación
Representación Gráfica
Ilustración 8: Representación Gráfica de Relación
Atributos Describen propiedades de las entidades y las relaciones. En este modelo se representan con elipses, dentro de las cuales se coloca el nombre del atributo. Esa elipse se une con una línea a las entidades. Ejemplo:
Ilustración 9: Atributos de Entidad y Relación
1.1.5. Modelos Lógicos 17
a. Modelo Relacional Edgar Frank Codd definió las bases del modelo relacional a finales de los 60. En 1970 publica el documento “A Relational Model of data for Large Shared Data Banks” (“Un modelo relacional de datos para grandes bancos de datos compartidos”). Actualmente se considera que ese es uno de los documentos más influyentes de toda la historia de la informática. Lo es porque en él se definieron las bases del llamado Modelo Relacional de Bases de Datos. Anteriormente el único modelo teórico estandarizado era el Codasyl que se utilizó masivamente en los años 70 como paradigma del modelo en red de bases de datos. Codd se apoya en los trabajos de los matemáticos Cantor y Childs (cuya teoría de conjuntos es la verdadera base del modelo relacional). Según Codd los datos se agrupan en relaciones (actualmente llamadas tablas) que es un concepto que se refiere a la estructura que aglutina datos referidos a una misma entidad de forma independiente respecto a su almacenamiento físico. Lo que Codd intentaba fundamentalmente es evitar que las usuarias y usuarios de la base de datos tuvieran que verse obligadas a aprender los entresijos internos del sistema. Pretendía que los usuarios/as trabajaran de forma sencilla e independiente del funcionamiento físico de la base de datos en sí. Fue un enfoque revolucionario.
b. Relación o Tabla Según el modelo relacional (desde que Codd lo enunció) el elemento fundamental es lo que se conoce como relación, aunque más habitualmente se
le llama tabla (o también array o matriz). Codd definió las relaciones
utilizando un lenguaje matemático, pero se pueden asociar a la idea de tabla (de filas y columnas) ya que es más fácil de entender. No hay que confundir la idea de relación según el modelo de Codd, con lo que significa una relación en el modelo Entidad/Relación de Chen. No tienen nada que ver Las relaciones constan de:
Atributos. Referido a cada propiedad de los datos que se almacenan en la relación (nombre, dni,...).
18
Tuplas. Referido a cada elemento de la relación. Por ejemplo si una relación almacena personas, una tupla representaría a una persona en concreto.
Puesto que una relación se representa como una tabla; podemos entender que las
columnas de la tabla son los atributos; y las filas, las tuplas.
Tabla 1: Tabla de una Base Datos Ejemplo real de relación o tabla clientes.
Tabla 2: Tabla Clientes de una Base de Datos
c. Paso de Entidad Relación a Modelo Relacional
Transformación de las Entidades En principio las entidades fuertes del modelo Entidad Relación son transformadas al modelo relacional siguiendo estas instrucciones: Entidades. Las entidades pasan a ser tablas Atributos. Los atributos pasan a ser columnas o atributos de la tabla. Identificadores principales. Pasan a ser claves primarias Identificadores candidatos. Pasan a ser claves candidatas. Esto hace que la transformación se produzca según este ejemplo: 19
Ilustración 10: Transformación de Entidad a esquema Relacional
Grafos Relacionales Es un esquema relacional en el que hay líneas que enlazan las claves principales
con las claves secundarias para representar
mejor las relaciones. A veces se representa en forma de nodos de grafos y otras se complementa el clásico. Ejemplo:
Ilustración 11: Grafo Relacional
d. Esquemas Relacionales Se ha hecho muy popular la forma de presentar esquemas relacionales del programa Microsoft Access.
20
Ilustración 12: Esquema Relacional de Ms Access
1.1.6. Principales Sistemas Gestores de Bases de Datos 1.1.6.1.
SGBD de código Abierto (Libres)
a. MySQL MySQL es un sistema gestor de bases de datos que se puede encuadrar dentro de la categoría de los programas open-source. Aparte de las características que definen MySQL como programa open-source, existen aspectos que lo diferencian de otros productos como, por citar uno conocido, Access. Los atributos a los que hacemos referencia son:
Posibilidad de crear y configurar usuarios, asignando a cada uno de ellos permisos diferentes.
Facilidad de exportación e importación de datos, incluso de la base de datos completa.
Posibilidad de ejecutar conjuntos de instrucciones guardadas en ficheros externos a la base de datos.
21
MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB,
en
plataformas
(Linux/Windows-Apache-MySQL-
PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL. MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante adelantar monitoreos sobre el desempeño para detectar y corregir errores tanto de SQL como de programación.
b. POSTGRESQL PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD. Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una sola empresa sino que es dirigido por una comunidad de desarrolladores y organizaciones comerciales las cuales trabajan en su desarrollo. Dicha comunidad es denominada el PGDG (PostgreSQL Global Development Group). Alta concurrencia Mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés) PostgreSQL permite que mientras un proceso escribe en una tabla, otros accedan a la misma tabla sin necesidad de bloqueos. Cada usuario obtiene una visión consistente de lo último a lo que se le hizo commit.
1.1.6.2.
SGBD Propietarios
a. MICROSOFT SQL SERVER
22
Es un motor de base de datos relacional, de libre descarga y distribución, tanto para dispositivos móviles como para aplicaciones escritorio. Especialmente orientada a sistemas ocasionalmente conectados, ofrece unas características especialmente útiles para clientes ligeros. La versión más reciente es SQL Server Compact 3.5 SP2. Anteriormente era conocida como SQL Server CE o SQL Server Mobile. Desde la versión 2.0, el lanzamiento de SQL Server Compact ha ido ligado al de Microsoft Visual Studio .NET.
Un motor de base de datos compacto y un sólido optimizador de consultas.
Compatibilidad con la réplica de mezcla y el acceso a datos remotos (RDA).
Integración con Microsoft SQL Server 2005.
Las herramientas de administración son Microsoft SQL Server Management Studio y SQL Server Management Studio Express.
Integración con Microsoft Visual Studio 2005.
Acceso a datos remotos y réplica de mezcla para sincronizar datos.
Microsoft Proveedor de datos .NET Framework y .NET Compact Framework
para
SQL
Server
Compact
Edition
(System.Data.SqlServerCe).
Compatibilidad con Microsoft ADO.NET y el proveedor de OLE DB para SQL Server Compact Edition.
Un subconjunto de sintaxis SQL.
Se implementa como una base de datos incrustada en equipos de escritorio, dispositivos móviles y Tablet PC.
b. MICROSOFT ACCESS Microsoft Access 2010 se basa en la simplicidad, con plantillas listas para que empiece a trabajar y herramientas eficaces para 23
mantenerse al día a medida que los datos crecen. Access 2010 le otorga capacidades para aprovechar la información, incluso si no es experto en bases de datos. Además, a través de bases de datos web recién agregadas, Access amplía la eficacia de los datos, facilitando el seguimiento, la creación de informes y el uso compartido con otras personas. Los datos nunca estarán más allá del explorador web más cercano.
Posibilidad de ampliación
Sencillez
Múltiples usuarios
Escalabilidad
1.2. TECNOLOGÍA .NET 1.2.1. Visual Studio .Net 2010
Desde la primera versión de .NET Framework, los equipos de desarrollo de estos dos lenguajes han procurado marcar algunas diferencias entre ambos, siendo su intención la de hacer de Visual Basic un lenguaje más atractivo al desarrollador de aplicaciones de gestión, mientras que C# se pretendía dirigir a los programadores más orientados hacia el desarrollo a más “bajo nivel”: componentes, servicios, etc. Scott Wiltamuth, uno de los directores de la división de lenguajes de Visual Studio, menciona que llevar estos objetivos a la práctica resultó más complicado de lo esperado, debido a la presencia de lo que él denomina “poderosas fuerzas de unificación” que han propiciado un cambio de orientación hacia el desarrollo en paralelo de funcionalidades para los dos lenguajes, como:
La existencia de un entorno de desarrollo integrado y bloques de construcción de aplicaciones comunes a ambos lenguajes.
La naturaleza orientada a objetos y el sistema de tipos común a los dos lenguajes.
24
El hecho de que las principales áreas de innovación presente y futura en el desarrollo de los lenguajes se reflejan en partes “exteriores” de los mismos, como ocurre en el caso de LINQ.
A los elementos anteriores hay que añadir las demandas de las comunidades de desarrolladores, ya que los programadores de VB querían aquellas funcionalidades disponibles en C# de las que VB carecía, y viceversa. Todo ello ha propiciado el cambio de estrategia que acabamos de mencionar, que tiene el claro objetivo de que, independientemente del lenguaje que utilicemos, podamos aprovechar toda la potencia que .NET Framework pone a nuestra disposición.
1.2.2. .NET FRAMEWORK .NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET El .NET Framework es el corazón de .NET, cualquier cosa que queramos hacer en cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes del .NET Framework.
El Common Lenguage Runtime (CLR) es una serie de librerías dinámicas (DLLs), también llamadas assemblies, que hacen las veces de las DLLs del API de Windows así como las librerías runtime de Visual Basic o C++. Como sabrás, y si no lo sabes ahora te lo cuento yo, cualquier ejecutable depende de una forma u otra de una serie de librerías, ya sea en tiempo de ejecución como a la hora de la compilación. Pues el CLR es eso, una serie de librerías usadas en tiempo de ejecución para que nuestros ejecutables o cualquiera basado en .NET puedan funcionar. Se acabó eso de que existan dos tipos de ejecutables: los que son autosuficientes y no dependen de librerías externas o los que necesitan de librerías en tiempo de ejecución para poder funcionar, tal es el caso de las versiones anteriores de Visual Basic.
25
Por otro lado, la librería de clases de .NET Framework proporcionan una jerarquía de clases orientadas a objeto disponibles para cualquiera de los lenguajes basados en .NET, incluido el Visual Basic. Esto quiere decir que a partir de ahora Visual Basic ya no será la "oveja negra" de los lenguajes de programación, sino que tendrá a su disposición todas las clases disponibles para el resto de los lenguajes basados en .NET, (o casi), con lo cual sólo nos diferenciará del resto de programadores en la forma de hacer las cosas: ¡más fáciles!
VB.NET ahora es totalmente un lenguaje orientado a objetos con herencia y todo. También permite crear Threads o hilos o tramas de ejecución y otras cosas que antes nos estaban vetadas.
Ilustración 13: .Net Framework
26
CAPITULO II 2. METODOLOGÍA FASE I: VISIÓN Y ALCANCE DEL PROYECTO 2.1. Visión La visión de este trabajo es desarrollar un sistema informático, que permita automatizar el proceso de venta de productos de cómputo, haciendo uso de la tecnología .Net, descrita en el capítulo anterior, así mismo del gestor de base de datos Microsoft Access.
2.2. Oportunidad de Negocio En la actualidad las empresas dedicadas a las ventas necesitan automatizar sus procesos para ello necesitan contar con sistemas informáticos que agilicen estos procesos, además a cada momento se necesita información, los usuarios finales ya sean vendedores hacen uso de un sistema de ventas, para consultar precios y gestionar los pedidos, y finalmente entregar los informes. Pero existen aún algunas empresas que todo este proceso no lo hacen de forma automático sino más bien, lo hacen de forma manual, y esto genera bastante incomodad en los clientes. La mayoría de pequeñas empresas tienen la noción que este servicio cuesta bastante dinero, pero tienen que ver el lado positivo es decir la utilidad de contar con un sistema informático dentro de su empresa.
2.3. Análisis de beneficios Los beneficios que se obtienen al desarrollar un sistema informático para la gestión de ventas de una empresa de dedicada a la venta de artículos de cómputo, son los siguientes:
Reducción de costos y tiempo de desarrollo, debido a que en la actualidad se cuenta con herramientas tecnológicas en nuestro caso se hizo uso de la tecnología .Net, la cuales se pueden utilizar e integrar para obtener un producto a bajo costo.
Reducción del costo de mantenimiento, debido a que detrás de estas herramientas tecnológicas .Net, existe bastante información en la web.
Reducción de costo de integración, debido a que es factible integrarlo con otras herramientas que permitan aumentar el nivel de seguridad, ya que todas estas
27
herramientas se basan en los estándares que les permute poder trabajar en conjunto.
FASE II: PLANEAMIENTO 2.4. Modelo lógico de integración de tecnologías en el Sistema informático
Ilustración 14: Modelo Lógico de Sistema Informático
2.5. Descripción de componentes 2.5.1. Clientes Son los usuarios que interactúan con el sistema informático, a través de las GUI (Interfaz Gráfica de Usuario), o mejor dicho ventanas, ya sea para enviar o recibir información. En nuestro caso los usuarios vienen a ser los administradores de la base de datos y los vendedores encargados de gestionar los pedidos. 2.5.2. Servidor de Aplicaciones En nuestro caso se trata del IDE, visual Studio 2010, que permite gestionar el código fuente, más aun el .net Framework, que es necesario para la ejecución de la aplicación en cualquier ordenador que cuente con dicho requerimiento. El lenguaje utilizado es visual Basic.Net. y el framework usado fue el 4.0. es decir en esta parte se gestiona toda la lógica del negocio, para permitir mostrar información al usuario final y 28
como también poder realizar consultas, insertar, actualizar, eliminar y reportar, todos los datos que se necesiten en algún momento determinado. 2.5.3. Servidor de Base de Datos En nuestro caso se encarga de gestionar toda la data, es decir almacenar el dispositivos secundarios, toda la información referente al proceso de venta de productos de computo, en este trabajo se hizo uso del Gestor Microsoft Access 2010, por su facilidad de integración con Visual Studio .Net. En este gestor se implementó nuestra base de datos. La cual será podrá ser accedida desde el servidor de aplicaciones que en este caso es el lenguaje de programación visual Basic .Net, para ello hace uso del ADO.NET, que provee dicha tecnología. FASE III: DESARROLLO E IMPLEMENTACIÓN 2.6. Especificaciones Técnicas Todos los componentes de nuestro sistema informático fueron implementados usando la tecnología .Net y ADO.Net, para poder gestionar toda la data.
2.6.1. Características del Hardware El Hardware utilizado para la implementación de los servidores, tiene las siguientes características:
Fabricante del sistema: HP Pavillion
Modelo del sistema: dv4 -1413la
Tipo de sistema: PC basado en x32
Procesador: AMD Athlon x2 Dual-Core
RAM: 3GB
El Hardware utilizado, por el cliente es el siguiente:
Fabricante del sistema: TOSHIBA
Modelo del sistema: Satellite SP 69836R
Tipo de sistema: PC basado en x64
Procesador: Intel ( R) Centrino
RAM: 4GB 29
2.6.2. Características del Software A continuación se detallara, cada de los componentes software utilizados, para la implementación:
DESCRIPCIÓN
NOMBRE
VERSIÓN
Sistema Operativo
Microsoft Windows
Windows 7
Lenguaje de Programación
Visual Basic .Net
VB 10.0
IDE
Visual Studio
2010
Sistema Gestor de Base de Datos
Microsott Access
2010
Reportes
Crystal Reports
Crystal Reports 14.0
Tabla 3: Características del Software
2.7. Diseño e Implementación de la Base de Datos del Sistema Informático 2.7.1. Modelo Entidad Relación
Ilustración 15: Modelo Entidad Relación
2.7.2. Entidades o Tablas
30
Ilustración 16: Entidades o Tablas
2.7.3. Diccionario de Datos 2.7.3.1. Tabla Clientes Tipo de dato
Tamaño del campo
codcliente
Autonumeracion
Entero Largo
Código del Usuario , es un correlativo y es la PK (clave primaria) no permite valores nulos
nombre
Texto
38
Nombre y Apellido completo del cliente, no permite valores nulos
dirección
Texto
45
Dirección completa del cliente, no permite valores nulo
DNI
Texto
11
El número del DNI del cliente, no permite valores nulos
teléfono
Texto
10
El número del teléfono fijo o celular, no permite valores nulos
Atributo
Descripción
Tabla 4: Descripción Tabla Clientes
31
2.7.3.2. Tabla Producto Atributo
Tipo de dato
Tamaño del campo
Descripción
codproducto
Numero
Entero Largo
Serieproducto
Texto
80
Nombre de la serie del producto, no permite valores nulos
Marca
Texto
20
Nombre de la marca del producto, no permite valores nulo
Tipo
Texto
50
Nombre del Tipo del producto, no permite valores nulos
Stockactual
Numero
Entero Largo
Cantidad actual del producto en stock, no permite valores nulos
PreCosto
Moneda
--
Costo de cada Producto, no permite valores nulos
Código del Producto, es un correlativo y es la PK (clave primaria) no permite valores nulos
PreVenta
Moneda
--
Precio de venta de cada Producto, no permite valores nulos
FechActualizacion
Fecha/Hora
--
Se ingresa la fecha de la compra del Producto, no permite valores nulos
Entero Largo
Código del Proveedor y es FK (clave externa) no permite valores nulos
idProveedor
Numero
Tabla 5: Descripción Tabla Producto
2.7.3.3. Tabla Usuario Atributo
Tipo de dato
Tamaño del campo
Id
Autonumeracion
Entero Largo
usuario
Texto
255
clave
Texto
255
nombre
Texto
255
Texto
255
apellido
Descripción Código del Usuario , es un correlativo y es la PK (clave primaria) no permite valores nulos Tipo de Usuario (administrador / secretaria ), no permite valores nulos La clave del usuario, no permite valores nulo El nombre del usuario, no permite valores nulos El apellido del usuario, no permite valores nulos
Tabla 6: Descripción Tabla Usuario
32
2.7.3.4. Tabla Proveedor Atributo
Tipo de dato
Tamaño del campo
Descripción
codproveedor
Numero
Entero Largo
rucproveedor
Texto
12
El número del RUC del Proveedor, no permite valores nulos
nombre
Texto
30
Nombre de la empresa del proveedor, no permite valores nulo
teléfono
Texto
10
Teléfono de la empresa del proveedor, no permite valores nulos
dirección
Texto
50
Dirección de la empresa, no permite valores nulos
Código del Proveedor , es un correlativo y es la PK (clave primaria) no permite valores nulos
Tabla 7: Descripción Tabla Proveedor 2.7.3.5. Tabla Venta Atributo
Tipo de dato
Tamaño del campo
IdVenta
Numero
Entero Largo
idCliente
Texto
255
fechaVenta
Fecha/Hora
--
igv
Numero
Decimal
Total
Numero
Decimal
Descripción Código de la tabla venta , es un correlativo y es la PK (clave primaria) no permite valores nulos Código del Cliente y es FK (clave externa) no permite valores nulos La fecha de la salida de la venta, no permite valores nulo El IGV del producto a la venta, no permite valores nulos El precio total de la venta, no permite valores nulos
Tabla 8: Descripción Tabla Venta 2.7.3.6. Tabla DetalleVenta Atributo
Tipo de dato
Tamaño del campo
IdVenta
Numero
Entero Largo
idProducto
Numero
Entero Largo
Cantidad
Numero
Entero Largo
Numero
Decimal
precioVenta
Descripción Código del Usuario , es un correlativo y es la PK (clave primaria) no permite valores nulos Código del Producto y es FK (clave externa) no permite valores nulos La cantidad de productos vendidos, no permite valores nulo El precio del producto vendido, no permite valores nulos
Tabla 9: Descripción Tabla DetalleVenta 33
2.7.4. Modelo Relacional en Microsoft Access
Ilustración 17: Modelo Relacional en Access
2.7.4.1.
Producto
Ilustración 18: Tabla Producto
34
2.7.4.2.
Cliente
Ilustración 19: Tabla Cliente
2.7.4.3.
Venta
Ilustración 20: Tabla Venta
35
2.7.4.4.
DetalleVenta
Ilustración 21: Tabla DetalleVenta
2.7.4.5.
Proveedor
Ilustración 22: Tabla Proveedor
2.7.4.6.
Usuario
Ilustración 23: Tabla Usuario
36
2.8. Diseño e implementación del Sistema Informático 2.8.1. Diseño del formulario de Acceso al Sistema (FrmLogin)
Ilustración 24: Formulario de Acceso al Sistema a. Elementos utilizados Tipo de Control ComboBox Label
Nombre Asignado cboUsuario lblUusuario lblPasssword TextBox txtPasword Button btnEntrar btnCancelar PictureBox pbUsuario Tabla 10: Elementos del Formulario de Acceso
Usamos un cuadro combinado para elegir el Usuario con cual vamos a ingresar al sistema.
Usamos una caja de texto donde se ingresará el Password respectivo de cada usuario
Usaremos un botón llamado ENTRAR en donde accederemos a nuestro proyecto
Usaremos un botón SALIR sirve para cancelar el proceso de acceso
b. Módulo de Conexión a la Base de Datos Venta de Computadoras
Ilustración 25: Código Fuente Conexión Base Datos 37
c. Codificación del Formulario de Acceso (FrmLogin)
Ilustración 26: Código Fuente Formulario de Acesso
2.8.2. Formulario Principal (MDIPrincipal) a. Diseño del formulario Principal
Ilustración 27: Formulario Principal del Sistema 38
b. Elementos utilizados Tipo de Control MenuStrip Mantenimiento
Nombre Asignado mnuPrincipal Clientes Producto Proveedor Venta Usuario Consultas Clientes Producto Proveedor Venta Usuario Movimientos Ventas Reportes Clientes Producto Proveedor Venta Usuario Tabla 11: Elementos Formulario Principal
c. Codificación en el Formulario Principal (MDIPrincipal)
Ilustración 28: Código Fuente Formulario Principal 39
2.8.3. Formulario de Mantenimiento de Clientes a. Diseño de Formulario (FrmMantClientes)
Ilustración 29: Formulario Mantenimiento de Clientes
b. Elemento utilizados Tipo de control TextBox
Button
DataGridView GroupBox Label
Nombre txtCodigo txtNombres txtDireccion txtDNI txtTelefono btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir dgvClientes gbDatosClientes gbOpciones lblTitulo lblListClientes
Ilustración 30: Elementos Formulario Mantenimiento Clientes
40
c. Código Fuente en el Formulario Mantenimiento de Clientes
41
42
43
Ilustración 31: Código Fuente Formulario Mantenimiento de Clientes
2.8.4. Formulario de Mantenimiento de Productos a. Diseño de Formulario Mantenimiento de Productos
Ilustración 32: Formulario Mantenimiento Productos
44
b. Elementos utilizados Tipo de control TextBox
ComboBox
DateTimePicker Button
DataGridView GroupBox Label
Nombre txtCodigo txtSerie txtStockActual txtPreCosto txtPreVenta cboMarca cboCategoria cboProveedor dtpFechAct btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir dgvProductos gbDatosProductos gbOpciones lblTitulo lblListProductos
Tabla 12: Componentes Formulario Mantenimiento de Productos
c. Condigo fuente en el Formulario Mantenimiento Productos
45
46
47
48
Ilustración 33: Código Fuente Formulario Mantenimiento de Productos 49
2.8.5. Formulario Mantenimiento de Proveedores a. Diseño del formulario FrmMantProveedor
Ilustración 34: Formulario Mantenimiento de Proveedor
b. Elementos utilizados Tipo de control TextBox
Button
DataGridView GroupBox Label
Nombre txtCodigo txtRUC txtSNombre txtTelefono txtDireccion btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir dgvProveedor gbDatosProveedor gbOpciones lblTitulo lblListProveedor
Ilustración 35: Componentes de Formulario Mantenimiento de Proveedores
50
c. Código fuente del formulario FrmMantProveedor
51
52
Ilustración 36: Código Fuente Mantenimiento Proveedor 53
2.8.6. Formulario Mantenimiento de Usuarios a. Diseño del Formulario
b. Elementos utilizados Tipo de control TextBox
Button
DataGridView GroupBox Label
Nombre txtCodigo txtUsuario txtClave txtNombres txtApellidos btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir dgvUsuarios gbDatosUsuarios gbOpciones lblTitulo lblListUsuarios
Ilustración 37: Componentes Formulario Mantenimiento de Usuarios
c. Código fuente del formulario FrmMantUsuarios Imports System.Data Imports System.Data.OleDb Public Class FrmMantUsuarios Dim daCodUsu As OleDbDataAdapter Dim dr As DataRow ' Objeto DataRow
54
Dim registro As Integer Dim sw As Integer = 0 Dim ultimo As Integer Private Sub FrmMantUsuarios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'cargar datagridview CargarDatos() 'cargar datos en las cajas de texto CargarDatosActualizados(0) habilitarControles(False) ActivarBotones(True, False, False, False, False) End Sub Sub ActivarBotones(ByVal bnuevo As Boolean, ByVal bagregar As Boolean, ByVal bactualizar As Boolean, ByVal beliminar As Boolean, ByVal bcancelar As Boolean) btnNuevo.Enabled = bnuevo btnAgregar.Enabled = bagregar btnActualizar.Enabled = bactualizar btnEliminar.Enabled = beliminar btnCancelar.Enabled = bcancelar End Sub Sub CargarDatos() daClientes = New OleDbDataAdapter("Select * from Usuario", conexion) dsClientes = New DataSet daClientes.Fill(dsClientes, "Cliente") ultimo = dsClientes.Tables("cliente").Rows.Count - 1 dgvUsuarios.DataSource = dsClientes.Tables(0).DefaultView ConfigurarDataGridView() End Sub Sub ConfigurarDataGridView() dgvUsuarios.DefaultCellStyle.BackColor = Color.LightGreen dgvUsuarios.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow End Sub Sub correlativo() Dim TblUsuarios As DataTable 'limpiarCliente() 'Limpiar los Controles daCodUsu = New OleDbDataAdapter("Select max(id) as codigo from usuario", conexion) daCodUsu.Fill(dsClientes, "codigousuario") TblUsuarios = dsClientes.Tables("codigousuario") Me.txtCodigo.Text = CInt(TblUsuarios.Rows(0).Item(0).ToString) + 1 TblUsuarios.Dispose() End Sub Sub limpiarUsuario() Me.txtUsuario.Clear() txtClave.Clear() txtNombres.Clear() txtApellidos.Clear() txtUsuario.Focus() End Sub Sub habilitarControles(ByVal estado As Boolean) Me.txtCodigo.Enabled = False Me.txtUsuario.Enabled = estado Me.txtClave.Enabled = estado Me.txtNombres.Enabled = estado Me.txtApellidos.Enabled = estado End Sub Sub Nuevo() Dim cad As String cad = "Insert into usuario values(@id,@usuario,@clave,@nombre,@apellidos)" If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() cmd.CommandType = CommandType.Text cmd.CommandText = cad cmd.Connection = conexion With cmd.Parameters
55
.Add("@id", OleDbType.VarChar).Value = Me.txtCodigo.Text .Add("@usuario", OleDbType.VarChar).Value = Me.txtUsuario.Text .Add("@clave", OleDbType.VarChar).Value = Me.txtClave.Text .Add("@nombre", OleDbType.VarChar).Value = Me.txtNombres.Text .Add("@apellidos", OleDbType.VarChar).Value = Me.txtApellidos.Text End With Dim N As Integer N = cmd.ExecuteNonQuery If N = 1 Then MessageBox.Show("Registro Guardado Correctamente") CargarDatos() CargarDatosActualizados(ultimo) habilitarControles(False) Else MessageBox.Show("Error en la Transacción") End If cmd.Parameters.Clear() : conexion.Close() End Sub Sub Actualizar() Dim cad As String cad = "update usuario set id=@id,usuario= @usuario,clave= @clave,nombre=@nombre,apellidos=@apellidos where id=@id" If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() cmd.CommandType = CommandType.Text cmd.CommandText = cad cmd.Connection = conexion With cmd.Parameters .Add("@id", OleDbType.VarChar).Value = Me.txtCodigo.Text .Add("@usuario", OleDbType.VarChar).Value = Me.txtUsuario.Text .Add("@clave", OleDbType.VarChar).Value = Me.txtClave.Text .Add("@nombre", OleDbType.VarChar).Value = Me.txtNombres.Text .Add("@apellidos", OleDbType.VarChar).Value = Me.txtApellidos.Text End With Dim N As Integer N = cmd.ExecuteNonQuery If N = 1 Then MessageBox.Show("Registro Actualizado Correctamente") CargarDatos() CargarDatosActualizados(ultimo) habilitarControles(False) Else MessageBox.Show("Error en la Transacción") End If cmd.Parameters.Clear() : conexion.Close() End Sub Sub Eliminar() If MessageBox.Show("Seguro de Borrar?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = _ Windows.Forms.DialogResult.Yes Then Dim cad As String cad = "update usuario set id=@id,usuario= @usuario,clave= @clave,nombre=@nombre,apellidos=@apellidos where id=@id" If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() cmd.CommandType = CommandType.Text cmd.CommandText = cad cmd.Connection = conexion With cmd.Parameters .Add("@id", OleDbType.VarChar).Value = Me.txtCodigo.Text .Add("@usuario", OleDbType.VarChar).Value = Me.txtUsuario.Text .Add("@clave", OleDbType.VarChar).Value = Me.txtClave.Text .Add("@nombre", OleDbType.VarChar).Value = Me.txtNombres.Text
56
.Add("@apellidos", OleDbType.VarChar).Value = Me.txtApellidos.Text End With Dim N As Integer N = cmd.ExecuteNonQuery If N = 1 Then MessageBox.Show("Registro Eliminado Correctamente") registro = Me.txtCodigo.Text - 1 CargarDatosActualizados(ultimo) habilitarControles(False) Else MessageBox.Show("Error en la Transacción") End If cmd.Parameters.Clear() : conexion.Close() End If End Sub Public Sub CargarDatosActualizados(ByVal fila As Integer) Dim total As Integer Try Dim TblClientes As DataTable Dim dr As DataRow ' daClientes = New OleDbDataAdapter("Select * from usuario ", conexion) dsClientes = New DataSet daClientes.Fill(dsClientes, "usuario") TblClientes = dsClientes.Tables("usuario") ' Para mostarar la posicion, contamos los registros de la tabla Idiomas_Ofertado total = TblClientes.Rows.Count '' Asignando una fila de datos "Registro" al DataRow dr = TblClientes.Rows(fila) ' Mostrando los datos desde el datarow txtCodigo.Text = dr("id") txtUsuario.Text = dr("usuario") txtClave.Text = dr("clave") txtNombres.Text = dr("nombre") txtApellidos.Text = dr("apellidos") Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Sub buscar() Dim total As Integer Dim codigo As String codigo = InputBox("Ingrese código a Buscar") If Len(codigo) = 1 Then codigo = "0" + codigo End If Try Dim TblClientes As DataTable Dim dr As DataRow ' daClientes = New OleDbDataAdapter("Select * from usuario where id='" & codigo & "'", conexion) dsClientes = New DataSet daClientes.Fill(dsClientes, "Usuario") TblClientes = dsClientes.Tables("Usuario") ' Para mostarar la posicion, contamos los registros de la tabla Idiomas_Ofertado total = TblClientes.Rows.Count '' Asignando una fila de datos "Registro" al DataRow dr = TblClientes.Rows(0) ' Mostrando los datos desde el datarow txtCodigo.Text = dr("id") txtUsuario.Text = dr("usuario")
57
txtClave.Text = dr("clave") txtNombres.Text = dr("nombre") txtApellidos.Text = dr("apellidos") Catch exc As Exception MessageBox.Show(exc.Message) End Try End Sub Private Sub verdetalle(ByVal fila As Integer) Try If dgvUsuarios.Rows.Count > 0 Then Me.txtCodigo.Text = dgvUsuarios.Item(0, fila).Value.ToString txtUsuario.Text = dgvUsuarios.Item(1, fila).Value.ToString txtClave.Text = dgvUsuarios.Item(2, fila).Value.ToString txtNombres.Text = dgvUsuarios.Item(3, fila).Value.ToString txtApellidos.Text = dgvUsuarios.Item(4, fila).Value.ToString Else dgvUsuarios.Visible = False End If Catch ex As Exception End Try dgvUsuarios.DefaultCellStyle.BackColor = Color.LightGoldenrodYellow dgvUsuarios.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen End Sub Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click habilitarControles(True) limpiarUsuario() correlativo() sw = 1 ActivarBotones(True, True, False, False, True) End Sub Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click buscar() ActivarBotones(True, False, True, True, True) End Sub Private Sub btnAgregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click If sw = 1 Then Nuevo() ElseIf sw = 2 Then Actualizar() End If sw = 0 ActivarBotones(True, False, False, False, False) End Sub Private Sub btnActualizar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActualizar.Click sw = 2 habilitarControles(True) ActivarBotones(False, True, True, False, True) End Sub Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click Eliminar() End Sub Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click CargarDatosActualizados(0) habilitarControles(False) sw = 0 ActivarBotones(True, False, False, False, False) End Sub
58
Private Sub btnSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSalir.Click If MsgBox("Desea salir?", vbInformation + vbYesNo, "Salir") = vbYes Then Close() End If End Sub Private Sub dgvUsuarios_CellMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgvUsuarios.CellMouseClick Try Dim f As Integer = dgvUsuarios.CurrentRow.Index verdetalle(f) Catch ex As Exception End Try End Sub End Class
Ilustración 38: Código Fuente Formulario Mantenimiento de Usuarios
2.8.7. Formulario de Búsqueda de Clientes a. Diseño del Formulario FrmConClientes
Ilustración 39: Formulario de Búsqueda de Clientes
b. Elementos utilizados Tipo de control
Nombre
RadioButton
rbtCodigo rbtNombre rbtDNI
TextBox
txtDato
DataGridView
dgvClientes
Label
lblTitulo
Ilustración 40: Componentes Formulario Búsqueda de Clientes 59
c. Código Fuente en el Formulario FrmConClientes Imports System.Data Imports System.Data.OleDb Public Class FrmConClientes Dim strcampo As String Dim objDataAdapter As OleDbDataAdapter Dim objDataSet As DataSet Dim sqlstr, oper As String Private Sub FrmConClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtDato.Clear() txtDato.Enabled = False dgvCliente.ReadOnly = True End Sub Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtCodigo.Click, rbtNombre.Click, rbtDNI.Click Select Case sender.name Case "rbtCodigo" strcampo = "codcliente" oper = "codigo" Case "rbtNombre" strcampo = "nombre" oper = "nombre" Case "rbtDNI" strcampo = "DNI" oper = "DNI" End Select Me.lblTitulo.Text = "Ingrese " & oper & " a buscar" Me.dgvCliente.DataSource = Nothing txtDato.Enabled = True txtDato.Clear() txtDato.Focus() lblEncontrados.Text = "" End Sub Private Sub txtDato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDato.TextChanged dgvCliente.DefaultCellStyle.BackColor = Color.LightGreen dgvCliente.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow Dim strSQL As String 'Dim total As Integer strSQL = "SELECT * FROM cliente WHERE " & Trim(strcampo) & " LIKE '" & _ Trim(Me.txtDato.Text) & "%'" If txtDato.Text = "" Then txtDato.Clear() : txtDato.Focus() lblEncontrados.Text = "" dgvCliente.DataSource = Nothing dgvCliente.Visible = False Exit Sub End If objDataAdapter = New OleDbDataAdapter(strSQL, conexion) If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() objDataSet = New DataSet() objDataAdapter.Fill(objDataSet, "Cliente") conexion.Close() Dim TblClientes As DataTable TblClientes = objDataSet.Tables("Cliente") If TblClientes.Rows.Count > 0 Then
60
Me.dgvCliente.Visible = True Me.dgvCliente.DataSource = objDataSet Me.dgvCliente.DataMember = "Cliente" lblEncontrados.Text = TblClientes.Rows.Count TblClientes.Dispose() Else Me.dgvCliente.DataSource = Nothing dgvCliente.Visible = False lblEncontrados.Text = 0 End If End Sub Private Sub rbtCodigo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtCodigo.CheckedChanged Me.lblEncontrados.Text = "" End Sub Private Sub rbtNombre_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtNombre.CheckedChanged Me.lblEncontrados.Text = "" End Sub Private Sub rbtDNI_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtDNI.CheckedChanged Me.lblEncontrados.Text = "" End Sub End Class
Ilustración 41: Código Fuente Formulario Consulta de Clientes
2.8.8. Formulario de Búsqueda de Productos a. Diseño de Formulario FrmConProductos
Ilustración 42: Formulario Búsqueda de Productos
b. Elementos utilizados Tipo de control
Nombre
RadioButton
rbtCodigo
61
rbtPreVenta rbtSerie TextBox
txtDato
DataGridView
dgvProductos
Label
lblTitulo
Tabla 13: Componentes del Formulario Búsqueda de Productos
c. Código fuente en el Formulario FrmConProductos Imports System.Data Imports System.Data.OleDb Public Class FrmConProductos Dim strcampo As String Dim objDataAdapter As OleDbDataAdapter Dim objDataSet As DataSet Dim sqlstr, oper As String Dim marca() As String Dim categoria() As String Private Sub FrmConProductos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtDato.Clear() txtDato.Enabled = False dgvProducto.ReadOnly = True cargarMarca() cargarCategoria() End Sub Sub cargarMarca() marca = {"", " GIGABYTE", " ASUS", "FOXCONN", "NVIDIA", "GAINWARD", "MICROSOFT", "LOGITECH", "LG", "SAMSUNG", "INTEL", "AMD"} cboMarca.Items.AddRange(marca) cboMarca.SelectedIndex = 0 'cboMarca.Enabled = False End Sub Sub cargarCategoria() categoria = {"", " Motherboards", " Graphics Cards", "Mouse", "Keyboard", "Monitor", "Microprocessors"} cboCategoria.Items.AddRange(categoria) cboCategoria.SelectedIndex = 0 'cboCategoria.Enabled = False End Sub Sub buscar() dgvProducto.DefaultCellStyle.BackColor = Color.LightGreen dgvProducto.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow Dim strSQL As String 'Dim total As Integer strSQL = "SELECT * FROM producto WHERE " & Trim(strcampo) & " LIKE '" & _ Trim(Me.txtDato.Text) & "%'" If txtDato.Text = "" Then txtDato.Clear() : txtDato.Focus() lblEncontrados.Text = "" dgvProducto.DataSource = Nothing dgvProducto.Visible = False Exit Sub End If objDataAdapter = New OleDbDataAdapter(strSQL, conexion) If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() objDataSet = New DataSet()
62
objDataAdapter.Fill(objDataSet, "producto") conexion.Close() Dim TblClientes As DataTable TblClientes = objDataSet.Tables("producto") If TblClientes.Rows.Count > 0 Then Me.dgvProducto.Visible = True Me.dgvProducto.DataSource = objDataSet Me.dgvProducto.DataMember = "producto" lblEncontrados.Text = TblClientes.Rows.Count TblClientes.Dispose() Else Me.dgvProducto.DataSource = Nothing dgvProducto.Visible = False lblEncontrados.Text = 0 End If End Sub Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtCodigo.Click, rbtSerie.Click, rbtPrecioVenta.Click Select Case sender.name Case "rbtCodigo" strcampo = "codProducto" oper = "codigo" Case "rbtSerie" strcampo = "serieproducto" oper = "serie producto" Case "rbtPrecioVenta" strcampo = "PreVenta" oper = "Precio Venta" End Select Me.lblTitulo.Text = "Ingrese " & oper & " a buscar" Me.dgvProducto.DataSource = Nothing txtDato.Enabled = True txtDato.Clear() txtDato.Focus() lblEncontrados.Text = "" End Sub Private Sub txtDato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDato.TextChanged buscar() End Sub Private Sub cboCategoria_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboCategoria.SelectedIndexChanged Me.strcampo = "tipo" Me.txtDato.Text = cboCategoria.SelectedItem.ToString End Sub Private Sub cboMarca_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboMarca.SelectedIndexChanged Me.strcampo = "Marca" Me.txtDato.Text = cboMarca.SelectedItem.ToString End Sub End Class
Ilustración 43: Código Fuente Formulario Consulta de Clientes
63
2.8.9. Formulario de Búsqueda de Proveedores a. Diseño del Formulario FrmConProveedores
Ilustración 44: Formulario Búsqueda de Proveedores
b. Elementos utilizados Tipo de control
Nombre
RadioButton
rbtCodigo rbtPreVenta rbtSerie
TextBox
txtDato
DataGridView
dgvProductos
Label
lblTitulo
Tabla 14: Componentes Formulario Búsqueda de Proveedores c. Código fuente en el formulario FrmConProveedores Imports System.Data Imports System.Data.OleDb Public Class FrmConProveedores Dim strcampo As String Dim objDataAdapter As OleDbDataAdapter Dim objDataSet As DataSet Dim sqlstr, oper As String Private Sub rbtCodigo_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rbtCodigo.CheckedChanged End Sub
64
Private Sub rbtCodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles rbtCodigo.Click, rbtRUC.Click, rbtNombre.Click Select Case sender.name Case "rbtCodigo" strcampo = "codProveedor" oper = "codigo" Case "rbtNombre" strcampo = "nombre" oper = "nombre" Case "rbtRUC" strcampo = "rucproveedor" oper = "rucproveedor" End Select Me.lblTitulo.Text = "Ingrese " & oper & " a buscar" Me.dgvProveedor.DataSource = Nothing txtDato.Enabled = True txtDato.Clear() txtDato.Focus() lblEncontrados.Text = "" End Sub Private Sub FrmConProveedores_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load txtDato.Clear() txtDato.Enabled = False dgvProveedor.ReadOnly = True End Sub Private Sub txtDato_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDato.TextChanged buscar() End Sub Sub buscar() dgvProveedor.DefaultCellStyle.BackColor = Color.LightGreen dgvProveedor.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGoldenrodYellow Dim strSQL As String 'Dim total As Integer strSQL = "SELECT * FROM proveedor WHERE " & Trim(strcampo) & " LIKE '" & _ Trim(Me.txtDato.Text) & "%'" If txtDato.Text = "" Then txtDato.Clear() : txtDato.Focus() lblEncontrados.Text = "" dgvProveedor.DataSource = Nothing dgvProveedor.Visible = False Exit Sub End If objDataAdapter = New OleDbDataAdapter(strSQL, conexion) If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() objDataSet = New DataSet() objDataAdapter.Fill(objDataSet, "proveedor") conexion.Close() Dim TblClientes As DataTable TblClientes = objDataSet.Tables("proveedor") If TblClientes.Rows.Count > 0 Then Me.dgvProveedor.Visible = True Me.dgvProveedor.DataSource = objDataSet Me.dgvProveedor.DataMember = "proveedor" lblEncontrados.Text = TblClientes.Rows.Count TblClientes.Dispose() Else Me.dgvProveedor.DataSource = Nothing dgvProveedor.Visible = False lblEncontrados.Text = 0 End If End Sub End Class
Ilustración 45: Código Fuente Formulario Consulta de Proveedores 65
2.8.10. Formulario de Búsqueda de Ventas a. Diseño del Formulario FrmConVenta
Ilustración 46: Formulario Consulta de Ventas
b. Elementos utilizados Tipo de Control
Nombre
TextBox
txtCliente txtDireccion
DataGridView
dgvConVentas
Buttton
btnBuscarVenta
Label
lblSubTotVenta lblIGV lblTotalVenta
GroupBox
gbDatosCliente
Tabla 15: Componentes Formulario Búsqueda de Ventas
66
c. Código Fuente del Formulario FrmConVenta Imports System.Data Imports System.Data.OleDb Imports vb = Microsoft.VisualBasic Public Class FrmConVenta Public codVenta As Integer Private Sub Btn_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Buscar.Click 'Me.Enabled = False ' FrmBuscarVenta.MdiParent = MDIPrincipal1 FrmBuscarVenta.Show() DataGridView1.DataSource = Nothing DataGridView1.Rows.Clear() End Sub Public Sub Realizar_Calculo() '-------------->>>>
View more...
Comments