Desarrollo Sistema de Ventas

December 7, 2021 | Author: Anonymous | Category: N/A
Share Embed Donate


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

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF