monografía sistema de ventas básico en vb .net

92
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Ú

Upload: hobby-s

Post on 18-Dec-2014

4.387 views

Category:

Technology


12 download

DESCRIPTION

 

TRANSCRIPT

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Ú

ii

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.

iii

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.

iv

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.

v

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

vi

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

vii

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

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

9

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

10

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

11

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

12

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

13

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

14

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

15

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

16

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:

17

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

18

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,...).

19

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:

20

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.

21

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.

22

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

23

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

24

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.

25

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.

26

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

27

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

28

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

29

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

30

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

31

Ilustración 16: Entidades o Tablas

2.7.3. Diccionario de Datos

2.7.3.1. Tabla Clientes

Atributo Tipo de dato Tamaño del

campo Descripción

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

Tabla 4: Descripción Tabla Clientes

32

2.7.3.2. Tabla Producto

Atributo Tipo de dato Tamaño del campo

Descripción

codproducto

Numero

Entero Largo

Código del Producto, es un correlativo y es la PK (clave primaria) no permite valores nulos

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

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

idProveedor

Numero

Entero Largo

Código del Proveedor y es FK (clave externa) no permite valores nulos

Tabla 5: Descripción Tabla Producto

2.7.3.3. Tabla Usuario

Atributo Tipo de dato Tamaño del campo

Descripción

Id

Autonumeracion

Entero Largo

Código del Usuario , es un correlativo y es la PK (clave primaria) no permite valores nulos

usuario

Texto

255

Tipo de Usuario (administrador / secretaria ), no permite valores nulos

clave

Texto

255

La clave del usuario, no permite valores nulo

nombre

Texto

255

El nombre del usuario, no permite valores nulos

apellido

Texto

255

El apellido del usuario, no permite valores nulos

Tabla 6: Descripción Tabla Usuario

33

2.7.3.4. Tabla Proveedor

Atributo Tipo de dato Tamaño del campo

Descripción

codproveedor

Numero

Entero Largo

Código del Proveedor , es un correlativo y es la PK (clave primaria) no permite valores nulos

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

Tabla 7: Descripción Tabla Proveedor

2.7.3.5. Tabla Venta

Atributo Tipo de dato Tamaño del campo

Descripción

IdVenta

Numero

Entero Largo

Código de la tabla venta , es un correlativo y es la PK (clave primaria) no permite valores nulos

idCliente

Texto

255

Código del Cliente y es FK (clave externa) no permite valores nulos

fechaVenta

Fecha/Hora

--

La fecha de la salida de la venta, no permite valores nulo

igv

Numero

Decimal

El IGV del producto a la venta, no permite valores nulos

Total

Numero

Decimal

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

Descripción

IdVenta

Numero

Entero Largo

Código del Usuario , es un correlativo y es la PK (clave primaria) no permite valores nulos

idProducto

Numero

Entero Largo

Código del Producto y es FK (clave externa) no permite valores nulos

Cantidad

Numero

Entero Largo

La cantidad de productos vendidos, no permite valores nulo

precioVenta

Numero

Decimal

El precio del producto vendido, no permite valores nulos

Tabla 9: Descripción Tabla DetalleVenta

34

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

35

2.7.4.2. Cliente

Ilustración 19: Tabla Cliente

2.7.4.3. Venta

Ilustración 20: Tabla Venta

36

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

37

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 Nombre Asignado

ComboBox cboUsuario

Label 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

38

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

39

b. Elementos utilizados

Tipo de Control Nombre Asignado

MenuStrip mnuPrincipal

Mantenimiento 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

40

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 Nombre

TextBox txtCodigo txtNombres txtDireccion txtDNI txtTelefono

Button btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir

DataGridView dgvClientes

GroupBox gbDatosClientes gbOpciones

Label lblTitulo lblListClientes

Ilustración 30: Elementos Formulario Mantenimiento Clientes

41

c. Código Fuente en el Formulario Mantenimiento de Clientes

42

43

44

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

45

b. Elementos utilizados

Tipo de control Nombre

TextBox txtCodigo txtSerie txtStockActual txtPreCosto txtPreVenta

ComboBox cboMarca cboCategoria cboProveedor

DateTimePicker dtpFechAct

Button btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir

DataGridView dgvProductos

GroupBox gbDatosProductos gbOpciones

Label lblTitulo lblListProductos

Tabla 12: Componentes Formulario Mantenimiento de Productos

c. Condigo fuente en el Formulario Mantenimiento Productos

46

47

48

49

Ilustración 33: Código Fuente Formulario Mantenimiento de Productos

50

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 Nombre

TextBox txtCodigo txtRUC txtSNombre txtTelefono txtDireccion

Button btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir

DataGridView dgvProveedor

GroupBox gbDatosProveedor gbOpciones

Label lblTitulo lblListProveedor

Ilustración 35: Componentes de Formulario Mantenimiento de Proveedores

51

c. Código fuente del formulario FrmMantProveedor

52

53

Ilustración 36: Código Fuente Mantenimiento Proveedor

54

2.8.6. Formulario Mantenimiento de Usuarios

a. Diseño del Formulario

b. Elementos utilizados

Tipo de control Nombre

TextBox txtCodigo txtUsuario txtClave txtNombres txtApellidos

Button btnNuevo btnGuardar btnBuscar btnModificar btnEliminar btnCancelar btnSalir

DataGridView dgvUsuarios

GroupBox gbDatosUsuarios gbOpciones

Label 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

55

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

56

.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

57

.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")

58

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

59

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

60

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

61

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

62

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 = {"<Seleccionar>", " 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 = {"<Seleccionar>", " 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()

63

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

64

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

65

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

66

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

67

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() '-------------->>>><<<<<------------------------' Dim Cantidad As Double Dim IGV, Total, MTotal, MVenta, MIGV As Double Dim Precio As Double MTotal = 0 MVenta = 0 MIGV = 0 lbl_vVenta.Text = 0 lbl_Igv.Text = 0 lbl_pVenta.Text = 0 For n As Integer = 0 To DataGridView1.RowCount - 1 Cantidad = Val(DataGridView1.Rows(n).Cells(0).Value.ToString()).ToString Precio = Val(DataGridView1.Rows(n).Cells(2).Value) Total = (Cantidad * Precio) Me.DataGridView1.Rows(n).Cells(3).Value = Total.ToString("##,##0.00") MTotal += Total Next lbl_vVenta.Text = MTotal.ToString("##,##0.00") IGV = (MTotal * Val(txt_igvM.Text)) / 100 lbl_Igv.Text = IGV.ToString("##,##0.00") Total = MTotal + IGV lbl_pVenta.Text = Total.ToString("##,##0.00") Convertir_Letras() End Sub Private Sub Convertir_Letras() If Me.DataGridView1.RowCount = 0 Then lbl_numletras.Text = "" Else Dim numero As String Dim cantidad As Integer = vb.Len(Me.lbl_pVenta.Text) numero = vb.Mid(lbl_pVenta.Text, 1, cantidad - 3) lbl_numletras.Text = "SON: " & Num2Text(numero) & " CON " & vb.Right(lbl_pVenta.Text, 2) & "/100 NUEVO SOLES" End If End Sub Private Sub FrmConVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class

Ilustración 47: Código Fuente Formulario Consulta de Ventas

68

2.8.11. Formulario de Consulta de Clientes para Formulario de Ventas

a. Diseño de Formulario Consulta de Clientes FrmCliClientes

Ilustración 48: Formulario Búsqueda de Cliente para Ventas

b. Elementos utilizados

Tipo de Control Nombre

TextBox txtNombre

DataGridView dgvConClientes

Tabla 16: Componentes del Formulario Consulta de Clientes para Ventas

c. Código Fuente en el Formulario FrmCliClientes

Imports System.Data Imports System.Data.OleDb Public Class FrmCliClientes Public codigoCliente As String Public nombre As String Public direccion As String Dim DV As DataView 'Instancio una VISTA Private Sub FrmCliClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim DA As New OleDbDataAdapter("Select codCliente,nombre,direccion from cliente", conexion) Dim DS As New DataSet DA.Fill(DS) DV = DS.Tables(0).DefaultView 'El DATASET lo pasamos al 'DataView() dgvClientes.DataSource = DV.Table() End Sub Private Sub dgvClientes_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvClientes.CellContentClick End Sub

69

Private Sub dgvClientes_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvClientes.CellDoubleClick codigoCliente = Me.dgvClientes.Item(0, dgvClientes.CurrentRow.Index()).Value.ToString() nombre = Me.dgvClientes.Item(1, dgvClientes.CurrentRow.Index()).Value.ToString() direccion = Me.dgvClientes.Item(2, dgvClientes.CurrentRow.Index()).Value.ToString() Me.Close() End Sub Private Sub txtNombre_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtNombre.TextChanged DV.RowFilter = "nombre like '%" & txtNombre.Text & "%'" End Sub End Class

Ilustración 49: Código de Fuente en el formulario Búsqueda de Cliente Ventas

2.8.12. Formulario de Consulta de Ventas para formulario de Ventas

a. Diseño de Formulario de Búsqueda de Ventas FrmBusVentas

Ilustración 50: Formulario Búsqueda de Ventas

b. Elementos utilizados

Tipo de control Nombre

Label lblDescripcion

DataGridView dgvVentas

Tabla 17: Componentes Formulario Búsqueda de Ventas

c. Código fuente en el Formulario FrmBusVentas

Imports System.Data Imports System.Data.OleDb Public Class FrmBuscarVenta

70

Public daVenta As OleDbDataAdapter Public tblVentas As New DataTable Public daDVenta As OleDbDataAdapter Public tblDVenta As New DataTable Public codVenta As Integer Private Sub FrmBuscarVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Cargar_Ventas() End Sub Private Sub Cargar_Ventas() 'LstVenta = objVentaBL.Listar_Venta Dim sql As String ' sql = "Select v.idVenta,c.nombre,c.direccion from venta V inner join Cliente C on (v.idCliente=c.codcliente)" sql = "SELECT Venta.IdVenta, Cliente.nombre, Cliente.direccion, Venta.fechaVenta, Venta.igv, Venta.Total FROM Cliente INNER JOIN Venta ON Cliente.codcliente = Venta.idCliente" daVenta = New OleDbDataAdapter(sql, conexion) daVenta.Fill(tblVentas) 'Me.DataGridView1.AutoGenerateColumns = False Me.DataGridView1.DataSource = tblVentas End Sub Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick Try Dim f As Integer = DataGridView1.CurrentRow.Index FrmConVenta.DataGridView1.DataSource = Nothing FrmConVenta.DataGridView1.Rows.Clear() verdetalle(f) Close() 'verdetalle1(f) 'TrackBar2.Value = f 'CargarDatos(f) Catch ex As Exception End Try End Sub Private Sub verdetalle(ByVal fila As Integer) Dim sql1 As String FrmConVenta.DataGridView1.DataSource = Nothing FrmConVenta.DataGridView1.Rows.Clear() Try If DataGridView1.Rows.Count > 0 Then codVenta = DataGridView1.Item(0, fila).Value.ToString FrmConVenta.codVenta =DataGridView1.Item(0, fila).Value.ToString FrmConVenta.txt_cliente.Text = DataGridView1.Item(1, fila).Value.ToString FrmConVenta.txt_direccion.Text = DataGridView1.Item(2, fila).Value.ToString sql1 = "SELECT DetalleVenta.Cantidad, PRODUCTO.Serieproducto+' '+' '+PRODUCTO.Marca+' '+' '+PRODUCTO.Tipo as Producto, DetalleVenta.precioVenta FROM PRODUCTO INNER JOIN DetalleVenta ON PRODUCTO.codproducto = DetalleVenta.idProducto where DetalleVenta.IdVenta= " & codVenta daDVenta = New OleDbDataAdapter(sql1, conexion) daDVenta.Fill(tblDVenta) FrmConVenta.DataGridView1.AutoGenerateColumns = False FrmConVenta.DataGridView1.DataSource = tblDVenta tblDVenta.Dispose() ' DataGridView1.Visible = False FrmConVenta.Realizar_Calculo() End If Catch ex As Exception End Try DataGridView1.DefaultCellStyle.BackColor = Color.LightGoldenrodYellow DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen End Sub End Class

Ilustración 51: Código Fuente Formulario Búsqueda de Ventas

71

2.8.13. Formulario de Gestión de Pedido

a. Diseño del Formulario FrmVenta

b. Elementos utilizados

Tipo de Control Nombre

Button btnNuevo,btnEliminar,btnLimpiar

btnGuardar,btnSalir, btnBusCliente

btnBusProductos

TextBox txtCliente,txtDireccio

txtDescripcion,txtStock,txtPreUnit

txtCantidad

Label lblSubTotVenta,lblIGV,lblTotalVenta

lblNumVenta, lblValorVentaLetras

DataGridView dgvPedido

Tabla 18: Componentes Formulario Gestión de Pedido

72

c. Código fuente en el Formulario FrmVenta

Imports vb = Microsoft.VisualBasic Imports System.Data Imports System.Data.OleDb Public Class FrmVenta Dim codproducto As Integer Dim codVenta As Integer Dim daCodVenta As OleDbDataAdapter Dim codCliente As String Private Sub txt_cliente_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txt_cliente.KeyDown 'Si se Presiono la Tecla F5 se llama a la ventana de Ayuda If e.KeyCode = Keys.F5 Then Dim Xayuda As New FrmCliClientes 'Instanciar al Formulario de 'esta(manera) ' puedo acceder a las variables que estan declarados 'en el Form3 Xayuda.ShowDialog() ' Me.txtCodigo.Text = Xayuda.codigoCliente codCliente = Xayuda.codigoCliente Me.txt_cliente.Text = Xayuda.nombre txt_direccion.Text = Xayuda.direccion End If End Sub Sub correlativo() Dim TblVenta As DataTable 'limpiarCliente() 'Limpiar los Controles dsClientes = New DataSet daCodVenta = New OleDbDataAdapter("Select max(idventa) as codigo from venta", conexion) daCodVenta.Fill(dsClientes, "CodigoVenta") TblVenta = dsClientes.Tables("CodigoVenta") lblVenta.Text = CInt(TblVenta.Rows(0).Item(0).ToString) + 1 codVenta = CInt(TblVenta.Rows(0).Item(0).ToString) + 1 'MsgBox("El codigo es" & codVenta) TblVenta.Dispose() End Sub Sub ActivarBotones(ByVal bnuevo As Boolean, ByVal beliminar As Boolean, ByVal blimpiar As Boolean, ByVal bguardar As Boolean) btnNuevo.Enabled = bnuevo Btn_Eliminar.Enabled = beliminar Btn_Limpiar.Enabled = blimpiar Btn_Guardar.Enabled = bguardar End Sub Private Sub FrmVenta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ActivarBotones(True, False, False, False) End Sub Private Sub Verificar_Cajas() If Trim(txtNombre.Text) = "" Then txtNombre.Focus() Exit Sub ElseIf Trim(txt_precio.Text) = "" Then txt_precio.Focus() Exit Sub ElseIf Trim(txtCantidad.Text) = "" Then txtCantidad.Focus() Exit Sub ElseIf vb.Right(Me.txt_precio.Text, 1) = "." Then MessageBox.Show("¡Esto no es un Precio Válido!!!", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information) txt_precio.Focus() Exit Sub ElseIf verificarstock() = True Then

73

txtCantidad.Focus() Exit Sub ElseIf Buscar_Producto_Gridview() = False Then MessageBox.Show("El Producto que intenta Agregar ya existe en la Lista" & Chr(13) & "Item Seleccionado en la Lista", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information) Me.txtNombre.Focus() Else Me.DataGridView1.Rows.Add(codproducto.ToString, Me.txtCantidad.Text, Trim(Me.txtNombre.Text), Me.txt_precio.Text) Realizar_Calculo() Limpiar() Me.txtCantidad.Focus() End If End Sub Private Sub Realizar_Calculo() '-------------->>>><<<<<------------------------' Dim Cantidad As Double Dim IGV, Total, MTotal, MVenta, MIGV As Double Dim Precio As Double MTotal = 0 MVenta = 0 MIGV = 0 lbl_vVenta.Text = 0 lbl_Igv.Text = 0 lbl_pVenta.Text = 0 For n As Integer = 0 To DataGridView1.RowCount - 1 Cantidad = Val(DataGridView1.Rows(n).Cells(1).Value.ToString()).ToString Precio = Val(DataGridView1.Rows(n).Cells(3).Value) Total = (Cantidad * Precio) Me.DataGridView1.Rows(n).Cells(4).Value = Total.ToString("##,##0.00") MTotal += Total Next lbl_vVenta.Text = MTotal.ToString("##,##0.00") IGV = (MTotal * Val(txt_igvM.Text)) / 100 lbl_Igv.Text = IGV.ToString("##,##0.00") Total = MTotal + IGV lbl_pVenta.Text = Total.ToString("##,##0.00") Convertir_Letras() End Sub Private Sub Convertir_Letras() If Me.DataGridView1.RowCount = 0 Then lbl_numletras.Text = "" Else Dim numero As String Dim cantidad As Integer = vb.Len(Me.lbl_pVenta.Text) numero = vb.Mid(lbl_pVenta.Text, 1, cantidad - 3) lbl_numletras.Text = "SON: " & Num2Text(numero) & " CON " & vb.Right(lbl_pVenta.Text, 2) & "/100 NUEVO SOLES" End If End Sub Private Function Buscar_Producto_Gridview() For n As Integer = 0 To Me.DataGridView1.RowCount - 1 If Me.DataGridView1.Rows(n).Cells(2).Value = Trim(Me.txtNombre.Text) Then DataGridView1.CurrentCell = DataGridView1.Rows(n).Cells(2) DataGridView1.Refresh() Return False Exit Function End If Next Return True

74

End Function Private Sub txt_Descripcion_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtNombre.KeyDown 'Si se Presiono la Tecla F5 se llama a la ventana de Ayuda If e.KeyCode = Keys.F5 Then Dim Xayuda As New FrmProProducto 'Instanciar al Formulario de Xayuda.ShowDialog() Me.txtStock.Text = Xayuda.stock Me.txtNombre.Text = Xayuda.nombre txt_precio.Text = Xayuda.precio codproducto = Xayuda.codproducto End If End Sub Private Sub Limpiar() txtCantidad.Clear() txtNombre.Clear() txt_precio.Clear() txtStock.Clear() btnBProducto.Focus() End Sub Private Function verificarstock() As Boolean Dim valor As Boolean Dim a, b As Integer a = CInt(Me.txtStock.Text) b = CInt(Me.txtCantidad.Text.Trim) If a < b Then MsgBox("Ingrese una cantidad menor al stock") Me.txtCantidad.Clear() Me.txtCantidad.Focus() valor = True Else valor = False End If Return valor End Function Private Sub txtStock_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtCantidad.KeyDown If e.KeyData = Keys.Enter Then Verificar_Cajas() End If End Sub Private Sub Btn_Eliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Eliminar.Click If Me.DataGridView1.RowCount <> 0 Then If MessageBox.Show("¿Realmente Desea Eliminar el Item Seleccionado?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then Me.DataGridView1.Rows.RemoveAt(Me.DataGridView1.CurrentRow.Index) End If End If Realizar_Calculo() End Sub Private Sub Btn_Limpiar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Limpiar.Click If Me.DataGridView1.RowCount <> 0 Then If MessageBox.Show("¿Realmente Desea Eliminar la Lista?", "Atención", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then Me.DataGridView1.Rows.Clear() End If End If Realizar_Calculo() End Sub

75

Sub GUARDAR() Dim cmV As New OleDbCommand() Dim cmDV As New OleDbCommand() Dim cmA As New OleDbCommand() Dim cad As String Dim cad1 As String Dim N As Integer Dim n1 As Integer cad = "Insert into Venta values(@IdVenta,@idCliente,@fechaVenta,@igv,@Total)" cad1 = "Insert into DetalleVenta values(@IdVenta,@idProducto,@Cantidad,@precioVenta)" If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() cmV.CommandType = CommandType.Text cmV.CommandText = cad cmV.Connection = conexion cmDV.CommandType = CommandType.Text cmDV.CommandText = cad1 cmDV.Connection = conexion With cmV.Parameters .Add("@IdVenta", OleDbType.Integer).Value = codVenta .Add("@idCliente", OleDbType.VarChar).Value = codCliente .Add("@fechaVenta", OleDbType.Date).Value = Now .Add("@igv", OleDbType.Decimal).Value = CDbl(lbl_Igv.Text) .Add("@Total", OleDbType.Decimal).Value = CDbl(lbl_pVenta.Text) End With n1 = cmV.ExecuteNonQuery Dim i As Integer Dim cant As Integer cant = DataGridView1.Rows.Count MsgBox("Cantidad de Productos" & cant) For i = 0 To cant - 1 With cmDV.Parameters cmDV.Parameters.Clear() .Add("@IdVenta", OleDbType.Integer).Value = codVenta .Add("@idProducto", OleDbType.Integer).Value = CInt(Me.DataGridView1.Item(0, i).Value) .Add("@Cantidad", OleDbType.Integer).Value = CInt(Me.DataGridView1.Item(1, i).Value) .Add("@precioVenta", OleDbType.Decimal).Value = CDbl(Me.DataGridView1.Item(3, i).Value) End With N = cmDV.ExecuteNonQuery Next actualizarStock() If n1 = 1 Then MessageBox.Show("Registro Guardado Correctamente") Else MessageBox.Show("Error en la Transacción") End If cmV.Parameters.Clear() : conexion.Close() End Sub Sub limpiarVenta() txt_cliente.Clear() txt_direccion.Clear() txtNombre.Clear() txtStock.Clear() txt_precio.Clear() txtCantidad.Clear() lbl_vVenta.Text = "" lbl_Igv.Text = "" lbl_pVenta.Text = "" btnNuevo.Focus() End Sub

76

Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click correlativo() ActivarBotones(False, True, True, True) End Sub Private Sub Btn_Guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Guardar.Click GUARDAR() ActivarBotones(True, False, False, False) DataGridView1.Rows.Clear() limpiarVenta() End Sub Private Sub btnBCliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBCliente.Click Dim Xayuda As New FrmCliClientes 'Instanciar al Formulario de 'esta(manera) ' puedo acceder a las variables que estan declarados 'en el Form3 Xayuda.ShowDialog() ' Me.txtCodigo.Text = Xayuda.codigoCliente codCliente = Xayuda.codigoCliente Me.txt_cliente.Text = Xayuda.nombre txt_direccion.Text = Xayuda.direccion End Sub Private Sub btnBProducto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBProducto.Click Dim Xayuda As New FrmProProducto 'Instanciar al Formulario de 'esta(manera) ' puedo acceder a las variables que estan declarados 'en el Form3 Xayuda.ShowDialog() Me.txtStock.Text = Xayuda.stock Me.txtNombre.Text = Xayuda.nombre txt_precio.Text = Xayuda.precio codproducto = Xayuda.codproducto End Sub Sub actualizarStock() If conexion.State = ConnectionState.Open Then conexion.Close() End If conexion.Open() Dim sql As String = "UPDATE producto SET Stockactual = Stockactual - @cantidad WHERE codproducto = @codproducto" Dim cmd As OleDbCommand = New OleDbCommand(sql, conexion) For Each row As DataGridViewRow In Me.DataGridView1.Rows Dim codproducto As Integer = CInt(row.Cells("codigo").Value) Dim cantidad As Integer = CInt(row.Cells("cantidad").Value) cmd.Parameters.Clear() cmd.Parameters.AddWithValue("@cantidad", cantidad) cmd.Parameters.AddWithValue("@codproducto", codproducto) cmd.ExecuteNonQuery() Next cmd.Parameters.Clear() : conexion.Close() End Sub 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 End Class

Ilustración 52: Código Fuente Formulario de Venta

77

2.8.14. Formulario Reporte de Ventas

a. Diseño de Formulario FrmRptVentas

Ilustración 53: Formulario de Reporte de Ventas

b. Diseño de Reporte en Crystal Report rptVentas

Ilustración 54: Diseño de Reporte de Ventas

c. Código fuente en el Formulario FrmRptVentas

Public Class FrmRptVentas Private Sub FrmRptVentas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim reporteVentas As New RptVentas reporteVentas.Refresh() crvVentas.ReportSource = reporteVentas End Sub End Class

Ilustración 55: Código Fuente Formulario Reporte de Ventas

78

2.8.15. Formulario Reporte de Clientes

a. Diseño de Formulario FrmRptClientes

Ilustración 56: Formulario Reporte de Clientes

b. Diseño de Reporte en Crystal Report rptClientes

Ilustración 57: Diseño de Reporte de Clientes

c. Código fuente en el formulario FrmRptClientes

Imports System.Data Imports System.Data.OleDb Public Class FrmRptClientes Private Sub FrmRptClientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim reporteClientes As New RptCliente reporteClientes.Refresh() crvClientes.ReportSource = reporteClientes End Sub End Class

Ilustración 58: Código Fuente Formulario Reporte de Clientes

79

2.8.16. Formulario Reporte de Productos

a. Diseño del Formulario Reporte de Productos

Ilustración 59: Formulario Reporte de Productos

b. Diseño de Reporte en Crystal Report rptProductos

Ilustración 60: Diseño de Reporte de Productos

c. Código Fuente en el Formulario FrmRptProductos

Public Class FrmRptProductos Private Sub FrmRptProductos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim reporteProductos As New RptProductos reporteProductos.Refresh() crvProductos.ReportSource = reporteProductos End Sub End Class

Ilustración 61: Código Fuente Formulario Reporte de Productos

80

2.8.17. Formulario Reporte de Proveedores

a. Diseño del Formulario Reporte de Proveedores

Ilustración 62: Formulario de Reporte de Proveedores

b. Diseño de Reporte en Crystal Report rptProveedores

Ilustración 63: Diseño de Reporte de Proveedores

c. Código de fuente en el Formulario FrmRptProveedores

Public Class FrmRptProveedores Private Sub FrmRptProveedores_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim reporteProveedor As New rptProveedor reporteProveedor.Refresh() crvProveedor.ReportSource = reporteProveedor End Sub End Class

Ilustración 64: Código Fuente en el Formulario Reporte de Proveedores

81

CAPITULO III

3. CONCLUSIONES Y RECOMENDACIONES

3.1. CONCLUSIONES

Se creó un documento en el que se abordan de una forma general los

conceptos de base de datos, lenguaje de programación Visual Basic. Net, y el

desarrollo del Sistema Informático para Venta de Productos de cómputo.

El contar con un sistema informático dentro de una empresa; nos permite

automatizar los procesos de venta y consulta de productos, el cual genera

ventajas competitivas y nos entrega información en el menor tiempo posible.

Se determinó que es un tanto sencillo la integración de la Tecnología. Net,

para el desarrollo de aplicaciones, de escritorio, que son de mucha utilidad

hoy en día dentro las empresas dedicadas al rubro de ventas.

El sistema cuenta con varias funcionabilidades que facilitan al usuario la

comprensión y manejo del mismo.

3.2. RECOMENDACIONES

Que los usuarios que van a manejar el sistema tenga conocimientos básicos

en Informática y una previa capacitación a la utilización del mismo.

Para cualquier ayuda utilizar el manual de usuario.

Los vendedores o usuarios deben ser los únicos responsables de la

información que se ingresa al sistema para que no hayan confusiones.

Para que la implementación del sistema sea efectiva es recomendable que la

información se maneje con gran seguridad.

82

REFERENCIAS BIBLIOGRÁFICAS

[1] Programación Visual Basic .net CEVALLOS F, Javier Ed. AlgaOmega Grupo

Editor, S.A. México.

[2] Programación Visual Basic .net Carrasco Muñoz, Joel Ed. AG Editores SRL, Lima

2005

[3] Visual Basic .net 2005 Librería Editorial MACRO, Lima 2005

[4] Visual Basic .net 2005 Express Castañeda León, Juan José. Editorial RITISA

GRAF, Lima 2006.

[5] Desarrollando Aplicaciones .NET Oficina de Publicaciones de FIIS UNI PARA

WINDOWS CON ADO.NET 2005 Sistemas UNI, Lima. 2008.

[6] Microsoft Access 2010 en Profundidad, Pérez, María. Editorial AlfaOmega, RC Libros,

México 2011.

[7] Sistemas de Bases de Datos, Administración y Uso. Y.H. TSAJ, A Editorial: Prentice

Hall 1ª Edición México 1990

83

ANEXOS

1. FUNCIONAMIENTO DEL SISTEMA

1.1. INGRESO AL SISTEMA

Ilustración 65: Manejo Formulario Acceso al Sistema

1.2. FORMULARIO PRINCIPAL

Ilustración 66: Manejo Formulario Principal

84

1.3. Opciones del Menú Mantenimiento

1.3.1. Formulario de Mantenimiento de Clientes

Ilustración 67: Manejo de Formulario Mantenimiento de Clientes

1.3.2. Formulario de Mantenimiento de Productos

Ilustración 68: Manejo de Formulario de Mantenimiento de Productos

85

1.3.3. Formulario de Mantenimiento de Proveedores

Ilustración 69: Manejo de Formulario Mantenimiento de Proveedor

1.3.4. Formulario Mantenimiento de Usuarios

Ilustración 70: Manejo Formulario Mantenimiento de Usuarios

86

1.4. Opciones del Menú Consultas

1.4.1. Formulario Consulta de Clientes

Ilustración 71: Manejo de Consulta de Clientes

1.4.2. Formulario Consulta de Proveedores

Ilustración 72: Manejo de Consulta de Proveedores

1.4.3. Formulario Consulta de Productos

Ilustración 73: Manejo de Consulta de Productos

87

1.4.4. Formulario Consulta de Ventas

1.4.4.1. Formulario Búsqueda de Venta por Cliente

Ilustración 74: Manejo de Consulta de Ventas por Cliente

1.4.4.2. Formulario Consulta de Pedido por Cliente (Venta Realizada)

Ilustración 75: Manejo de Pedido por Cliente

88

1.5. Opciones del Menú Movimientos

1.5.1. Generación de Pedido (Ventas)

Ilustración 76: Manejo de Gestión Pedido (Venta)

1.5.1.1. Búsqueda de Clientes (Clic en el Botón Buscar Cliente)

Ilustración 77: Manejo de Cliente que realiza Pedido

89

1.5.1.2. Búsqueda de Productos (Clic en el Botón Buscar Productos)

Ilustración 78: Manejo de Selección de Productos

1.5.1.3. Generación del Pedido para un cliente

Ilustración 79: Gestión del Pedido por Cliente

90

1.6. Opciones del Menú Reportes

1.6.1. Reporte de Clientes

Ilustración 80: Reporte de Clientes

1.6.2. Reporte de Productos

Ilustración 81: Reporte de Productos

91

1.6.3. Reporte de Proveedores

Ilustración 82: Reporte de Proveedores

1.6.4. Reporte de Ventas

Ilustración 83: Reporte de Ventas

92

1.6.5. Reporte de Facturas

Ilustración 84: Reporte de Facturas