Está en la página 1de 98

1

Ao de las Cumbres Mundiales en el Per

Integrantes Diolinda Guerrero Garca Alfredo Wenceslao Hoyos Morales Crisanto zurita Berr

Profesor Ing. CIP. Fernando Infante Saavedra Curso

Ingeniera de Sistemas Tema Presentacin de la Primera parte del Proyecto

PER-PIURA 2008
1

INTRODUCCION

El conocimiento de la ingeniera de software, permite promover y mejorar el aprendizaje del estudiante de la carrera de anlisis de sistemas ,para poder complementar todos sus conocimientos a un nivel elevado. Nosotros como un buen equipo responsable tratamos de brindar una visin sistemtica de los procesos en cada etapa de desarrollo como el anlisis, diseo, programacin, prueba y mantenimiento. Destacando su influencia en el desarrollo socioeconmico del pas. Todos los contenidos establecidos en este sistema , constituyen una base indispensable sobre aspectos generasles de la ingeniera del software teniendo como captulos a desarrollar el planeamiento metodolgico, ejecucin e implementacin de nuestro proyecto o sistema, cronogramas y presupuestos ,y gestin de calidad y en cada capitulo lo dividiremos en subetapas. El termino de cada capitulo incluye su desarrollo total que permitir complementar la comprensin y dominio correspondiente.

Planeamiento Metodolgico
1. Marco Histrico de la Empresa
1.1 Razn Social Farmacia El Obrero 1.2 Ubicacin AV. Manuel Rejn S/N Sullana 1.3 Giro del Negocio Venta de Medicamentos 1.4 Misin Vende Medicamentos al Pblico en General 1.5 Visin Tener una clientela leal y llegar a un mercado mucho ms extendido donde podamos crear y abrir ms locales en todo el norte peruano y contar con productos y profesionales de primer nivel.

2. Descripcin del rea de Estudio


2.1. Descripcin del rea Brindar atencin al cliente Realizar ventas Atender las consultas y necesidades del cliente. Consultar existencias de productos. Emitir Boletas. Bsquedas avanzadas. Ayudas. Seguridad del Sistema. Interfaces Graficas. Relaciones de Tablas. Seguridad de Los datos. Integridad de los datos. 3

4 Copias de Seguridad. 2.2. Organigrama de la Empresa

GERENTE

Administrado r Supervisores

Empleado s

2.3 Definicin del Problema La farmacia El Obrero actualmente atraviesa una serie de problemas ya que brinda todos sus servicios de forma manual, generando desorden entre los clientes, medicamentos cambiados, prdida de tiempo, etc Fsicamente tambin tiene una infraestructura no muy implementada la cual necesita removerse, cambiar vitrinas, mostradores. El propietario de esta farmacia desea automatizar todas las operaciones que se llevan a cabo de forma manual, excluyendo las actividades fsicas, que sera algo muy complejo de automatizar. Nos basaremos en las actividades que demandan de ms tiempo, y retrasan la realizacin de las otras, empezaremos por un anlisis minucioso de las operaciones para identificar las deficiencias que las ocasionan, tratando de implementar una solucin para cada proceso a ejecutar. Se necesita de una herramienta capaz de reducir el tiempo en que las tareas tardan en ejecutarse, por otro lado se necesita un resumen diario de ventas, resumen quincenal y reportes mensuales, tambin se desea implementar una opcin donde el propietario tenga una nocin de cuanto producto tiene en stock cual es la productividad diaria de ventas y al final un estado de ganancias y prdidas de una determinada temporada. Basaremos nuestro estudio en el estudio de todos estos requerimientos para analizar y buscar la solucin ms eficiente para acelerar estos procesos, y satisfacer las necesidades y expectativas del cliente. 4

3. Formulacin del Problema


3.1 Problema Principal El principal problema que nosotros hemos considerado es que la farmacia El Obrero brinda sus servicios con un sistema manual, que ocasiona gran prdida de tiempo y de dinero.

4. Objetivos de la Investigacin
4.1 Objetivo General Desarrollar un sistema de ventas que permita la mejora de servicios de la empresa el obrero.

4.2. Objetivo Especfico Desarrollar una base de datos del stock de medicamentos con el que cuenta la farmacia Desarrollar una base de datos de los productos mas vendidos Desarrollar un inventario de los ingresos y egresos Generar un reporte de todos los pedidos que van a ser vendidos durante un periodo de tiempo.

5. Justificacin e Importancia de la Investigacin


5.1. Justificacin Hemos credo conveniente elaborar el sistema de ventas para esta farmacia porque con este mejorara la rapidez de su servicio, evitara confusin en su stock, Creara reportes, y dara ms ganancias. Adems como esta farmacia no tiene mucho tiempo de creacin y esta abarcando un gran mercado; Que con el paso del tiempo se piensa expandir por todo el norte. Y para competir necesita rapidez y eficacia en sus servicios y as dejar satisfecho al cliente. Implementacin del desarrollo y automatizacin de las distintas operaciones, a un bajo coste y de mejor calidad para el usuario.

Por otro lado el beneficio Seria tanto para el Propietario de la farmacia como para nosotros como estudiantes, lo cual nos permitir desarrollar nuestras habilidades y destrezas en la investigacin. Este estudio nos ayudara a identificar que parte de nuestra capacidad aun nos falta desarrollar centraremos en estas partes para mejorarlas y reflejarlas en el producto final, identificando el nivel de calidad d nuestro producto. Se sabe que la automatizacin de las operaciones requiere de un anlisis profundo para reducir el nmero de posibles errores que puedan sucitarse en desarrollo de estas operaciones.

5.2. Importancia Una adecuada atencin al cliente Reducir el tiempo de espera Stocks actualizados Reportes Consultas Ganancias de utilidades. Menor inversin, Mayor Ganancia. Reduccin en el tiempo de las operaciones.

6. Tcnicas e Instrumentos de Recoleccin de

Informacin
6.1. Tcnicas Entrevista: Comunicacin interpersonal, Es una conversacin entre 2 o mas personas, en el cual interviene un entrevistador

Encuesta: Es un conjunto de preguntas normalizadas dirigidas a una muestra representativa de la poblacin o instituciones, con el fin de conocer estados de opinin o hechos especficos.

7 Referencias: Opiniones de personas cercanas a un lugar especfico Utilizamos las 3 formas anteriores Entrevista al administrador del local Referencias- de los clientes de la farmacia Encuesta- a los clientes de la farmacia

6.2. Instrumentos Software Microsoft Office Word 2007 Requerimientos de hardware PC con Intel Pentium de 233-megahertz (MHz) o procesador ms veloz. Se recomienda el uso de un Pentium III. Memoria RAM de 128 megabytes (MB) o capacidad superior (recomendado). 150 MB de espacio disponible en el disco rgido. El uso del disco rgido variar en funcin de su configuracin; las opciones de instalacin implican la necesidad de ms o menos espacio disponible

Requerimiento del software Microsoft Windows 2000 con Service Pack 3 (SP3) o versiones posteriores; o Windows XP o versiones posteriores Super VGA (800 600) o monitor de mayor resolucin

Microsoft Visual Basic 6.0 Requerimientos de hardware Microprocesador 486dx/66 o modelo superior de procesador

8 16 MB de Ram Unidad de CD-Rom

Requerimiento del software Microsoft 95 o Microsoft 98 Pantalla vga

Microsoft SQL Server Requerimientos de hardware Procesador Intel 486 DX PC (o similar) o superior Memoria 8 Mb en RAM para Windows 3.1.16 MB para Windows 95 y Windows NT Requerimientos aproximados de espacio en Disco duro 20 Mb de espacio libre

Requerimiento del software Software Windows 95. Windows NT 3.51 o 4.0

Microsoft Office Access 2007 Requerimientos de hardware Equipo y Procesador PC Intel Pentium 233-megahertz (MHz) Procesador superior. Se recomienda Pentium III. Memoria 128 megabytes (MB) de RAM o superior. Disco Rgido 180 MB de espacio disponible en el disco rgido (el uso del disco rgido variar dependiendo de la configuracin; las opciones personalizadas de la instalacin pueden requerir ms o menos espacio de disco.) Requerimiento del software Sistema Operativo Microsoft Windows 2000 con Service Pack 3 (SP3) o posterior; o Windows XP o posterior. 8

9 Pantalla Super VGA (800 600) o monitor con una resolucin superior. Microsoft Office PowerPoint 2007 Requerimientos de hardware

1. Equipo y procesador PC con procesador Intel Pentium 233-megahertz (MHz) o superior, Pentium III recomendado 2. Memoria 128 megabytes (MB) de RAM o superior recomendado 3. Disco Rgido 150 MB de espacio disponible en el disco rgido (El uso del disco rgido depender de la configuracin; la instalacin personalizada puede requerir ms o menos espacio.)

Requerimiento del software

4. Sistema Operativo Microsoft Windows 2000 con Service Pack 3 (SP3) o superior o Windows XP o posterior 5. Pantalla Super VGA (800 600) o mayor resolucin de pantalla

Rational Rose 2000 Requerimientos de hardware 1. Procesador Intel Pentium 233-megahertz (MHz) o superior 2. Memoria de 128 Mb 3. Disco duro de 120Mb Requerimiento del software 1. Windows XP o posterior 2. Pantalla Super VGA (800 600) o mayor resolucin de pantalla 9

10

Hardware 1. Procesador Intel Core2Duo de 2.2GHZ 2. Bancos de Memorias DDR2 DE 2Gb 3. Disco Duro de 160 GB 4. Monitor Pantalla Plana LCD de 19 5. Teclado Microsoft 6. Mouse para puerto PS/2 7. Impresora HP Deskjet F4180

7. Cronograma y Presupuesto
N Nombre de la Tarea Elaboracin de una herramienta Elaboracin y presentacin de planeamiento metodolgico Revisin de proceso actual Entrevistas Elaboracin de informe Ejecucin e Implementacin del P Entrevistas con usuarios y jefes Recolectar documentacin Visitar a instalaciones Diagramas Diseo Diagrama lgico de BD Diseo de estructura de BD Diseo de las interfaces Diseo de los reportes Entrega de informacin Aprobacin de informe Sustentacin del informe Ejecucin e implementacin P Programacin Duracin (D) 34 5 3 1 1 7 1 1 1 1 2 1 1 2 1 1 1 1 5 3 Comienzo (FECHA) 10-06 10-06 10-06 13-06 14-06 15-06 15-06 15-06 16-06 16-06 16-06 17-06 17-06 19-06 21-06 22-06 23-06 24-06 25-06 25-06 Fin (FECHA) 14-07 15-06 13-06 14-06 15-06 22-06 16-06 16-06 17-06 17-06 18-06 18-06 18-06 21-06 22-06 23-06 24-06 25-06 30-06 28-06

1 1.1 1.2 1.3 2 2.1.1 2.1.2 2.1.3 2.1.4 2.2 2.2.1 2.2.2 2.2.3 2.2.4 3 4 5 6 6.1

10

11
6.1.1 6.1.2 6.1.3 6.2 6.2.1 6.2.2 6.2.3 7 7.1 7.2 8 8.1 8.2 8.3 8.3.1 8.3.2 9 10 11 12 13 13.1 13.2 14 14.1 14.2 Programa modulo de datos Programa modulo de procesos de datos Programa modulo salida de Pruebas Modulo ingreso de datos Modulo procesos de datos Modulo salida de informacin Mantenimiento Plan de mantenimiento Registros de ocurrencia de datos Gestin de Calidad Nivel de Gestin de Calidad Alcanzado Calidad del Software Mtrica de calidad Mtrica de Tamao Mtrica de Punto de Funcin Conclusin Recomendacin Anexos Bibliografa Informe final Preparar informe Presentacin de informe final Presentacin y sustentacin Elaboracin de presentacin Sustentacin de informe final 1 1 1 2 1 1 1 1 1 1 6 2 2 2 1 1 1 1 1 1 2 1 1 2 1 1 25-06 26-06 27-06 28-06 28-06 29-06 29-06 30-06 30-06 30-06 1-07 1-07 3-07 5-07 5-07 6-07 7-07 7-07 8-07 9-07 10-07 10-07 11-07 12-07 12-07 13-07 26-06 27-06 28-06 30-06 29-06 30-06 30-06 1-07 1-07 1-07 7-07 3-07 5-07 7-07 6-07 7-07 8-07 8-07 9-07 10-07 12-07 11-07 12-07 14-07 13-07 14-07

Presupuesto

Modelo cocomo I

A: ESTIMACION DE CANTIDAD DE INSTRUCCIONES ML=L/1000 ML=1200/1000=1.2 miles de lneas cdigo

B: ESTIMACION DEL ESFUERZO ESF=3*MIL exp1.12 Esf=3*1,2 ^1.12=3,67 = 4personas/mes C.ESTIMACION DEL TIEMPO DE DESARROLLO TDES=2.5*ESF^0.35 TDES=2.5*3,67^0.35=3.94=4MESES 11

12 D.ESTIMACION DEL PERSONAL NECESARIO EP=ESF/TDES EP=3.67/3.94=0.94=1 persona E: ESTIMACION DE LA PRODUCTIVIDAD O RENDIMIENTO PROD=L/ESF PROD=1200/3.67=326.97 lneas de cdigo por persona F: ESTIMACION DEL COSTE COSTO=ESF*SUELDO COSTO=3.67*510=1.871.7 COSTO DEL PROYECTO COMPUTADORA IMPRESORA HP COSTO DE IMPLANTACION 1,871.7+ 2,400.0 300 .0 550.0 ________

TOTAL 5,121.7

8. Fuente de Financiamiento.
El Proyecto ser financiado por fuentes propias, los gastos que genera la produccin del mismo sern detallados

Anlisis
1.1 Recopilacin de Informacin
12

13

1.1.1 Entrevistas con usuarios y jefes Primero hubo una charla informal, luego proseguimos a la entrevista 1Cul es el giro del negocio? Venta de medicamentos en general 2Cul es la misin de su negocio? Vender medicamentos al pblico en general 3Qu es lo que se quiere hacer a futuro? Tener una clientela leal y llegar a un mercado mucho mas extendido, donde podamos crear y abrir mas locales en todo el Norte Peruano y contar con productos y profesionales de 1er nivel 4Cmo se proyecta en 5 aos ms? En la farmacia lder en el Norte 5Cmo est organizado su empresa? Gerente, administrador, supervisor, empleados 6Qu necesidades lo llevaron a tomar Una decisin de poner este negocio? En un principio vendamos mi esposa y yo medicina natural de forma ambulante, porque tenamos que sustentar el hogar. Pero con el tiempo veamos que la gente se aquejaba con enfermedades y les resultaba molesto ir hasta el centro, por eso decidimos abrir una pequeo local donde se poda atender las necesidades de algunos vecinos, hasta que la convertimos en farmacia.

7Por qu opto por medicina? Porque en realidad es lo que mas nos gusto y de una forma u otra forma nos resulto lucrativa. Adems mi esposa tiene experiencia en enfermera 13

14

1.1.2 Recoleccin de Informacin En realidad solo nos concedi la entrevista, pero hemos hecho el modelo de sus Boletas.

1.1.3 Visita a las Instalaciones

14

15 Bueno la visita que hicimos no fue demasiada prolongada ya que el dueo de la farmacia estaba ocupado aunque amablemente nos concedi unos 15 minutos, los cual aprovechamos para entrevistarlos y aclare nuestras ideas de cmo funciona el sistema .

1.2 Seleccin del Modelo de Procesos


Modelo Lineal Secuencial Enfoque Sistemtico del desarrollo del software que comienza en un nivel de sistemas y progresa con el anlisis, diseo, codificacin, pruebas y mantenimiento. Actividades -Ingeniera y modelado del sistema/informacin -Anlisis de los requisitos del software -Diseo -Generacin de cdigo o implementacin -Pruebas -Mantenimiento Modelo de Construccin de Prototipos Se dan un conjunto de objetivos generales de entrada, procesamiento y salida. Con ello se desarrolla un prototipo inicial que sirve para detallar objetivos (requisitos) ms concretos del producto final. Desarrollo Rpido de aplicaciones(DRA) Es una adaptacin de Alta Velocidad del modelo lineal secuencial. Puede permitir el desarrollo de un sistema en corto tiempo de 60 a 90 das. -Solo puede aplicarse cuando se cumplen una serie de condiciones: 1. Se comprenden muy bien los requisitos del sistema a desarrollar. 2. Se delimita muy bien el mbito del problema. 3. La interaccin del software con el nuevo sistema no es complicada o se Utiliza tecnologa que no son dominadas por el equipo.

-Inconvenientes:

15

16 1_ Debe de haber un compromiso por parte del equipo de desarrollo y del Cliente en el desarrollo 2_ Requiere recursos suficientes para crear el nmero de equipos Necesarios. Modelos Evolutivos 1_Modelo Incremental: -Combina elementos de modelo lineal secuencial con la filosofa Interactiva de construccin de prototipos. -Entrega por incrementos. -Fcil adaptacin a requerimientos temporales de entrega. Modelos Evolutivos 1_Modelo en Espiral: -Combina el modelo secuencial y el de construccin de prototipos -Se establece el nmero de interacciones.

1.2.1 Modelo Lineal Secuencial Este es el Modelo que Nosotros Elegiremos

1.3 Elaboracin de los Diagramas Orientados a Objetos


16

17 1.3.1 Diagrama de Clases

1.3.2 Diagrama de Casos de Uso

17

18

18

19

19

20

1.3.3 Diagrama de Actividades

20

21

1.3.4. Diagrama de Secuencias

21

22

22

23 1.3.5. diagrama de estado

23

24

2.

Diseo

2.1 Diseo y modelado de BD


2.1.1 Diagrama lgico de la BD

24

25

2.1.2

Diseo Fsico de la BD Tablas Correspondientes al Sistema

Boletas

25

26

Boletas Emitidas

Categoras

Clientes

DetalleBoleta

26

27 Detallefactura

Factura

FacturasEmitidas

Presentacion

27

28 Producto

Proveedor

Usuario

28

29

2.1.3

Diccionario de Datos

Boleta= { numerodeboleta+ idcliente +nombrealter+fecha+total} Boletasemitidas= {numboleta + fecha + total + idusuario} Categora= {idcategoria + descripcion } clientes ={idcliente + nombres+ apellidos + DNI +direccin + telefono } DetalleBoleta= {numeroboleta+idproducto + descripcin + cantidad+ precio +importe} Factura = {numerofactura + fecha + idcliente +subtotal + IGV + total}

2.2-Diseo
29

30

2.2.1

Diseo de las interfaces

Diseo y especificaciones

Aqu se elige en la barra desplegable que usuario se va a elegir

Al presionar en este lugar luego de elegir tu usuario y escribir tu contrasea, ingresara al sistema ventana del sistema

Barra desplegabl e

Aqu se escribe la clave correspondiente a cada usuario

AL dar clic se saldra del sistema

30

31

Este es la ventana que contiene todos los mens y desde donde se maneja todo el sistema

Estos son los mens; aqu al Darle un clic a cada una de Esas opciones se despliegan Varias opciones, las cuales Al darle clic hacen aparecer Otras ventanas. Estas dos opciones que pertenecen a la barra de herramientas

31

32

Estas son las opciones que se despliegan del men

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Botn usado para vaciar las cajas de texto y as 32 poder ingresar nueva informacin

33

Registrar producto

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar Primer o anterio r siguiente ultimo

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Sirve para eliminar todo un registro entero

Todos los datos de la base de datos Registrar cliente Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin 33

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

34

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Todos los datos de la base de datos

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Sirve para eliminar todo un registro entero

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Registrar proveedor

Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin 34

35

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Todos los datos de la base de datos

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Sirve para eliminar todo un registro entero

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin 35

36

Registro de categora

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Sirve para eliminar todo un registro entero

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Botn usado para vaciar las cajas de texto y as poder 36 ingresar nueva informacin

37

Registro de presentacin

Estos son botones de navegaci n los cuales son primero, anterior, siguiente, ultimo Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar Sirve para eliminar todo un registro entero

37

38

Trabajadores Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticame nte con la informacin que hay en la base de datos

Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Sirve para eliminar todo un registro entero

38

39

Cuentas por pagar

Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticam ente con la informacin que hay en la base de datos

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Estos son botones de navegaci n los cuales son primero, anterior, siguient e, ultimo

Sirve para eliminar todo un registro entero

39

40 Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin

Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Maquinarias y equipos

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Sirve para eliminar todo un registro entero

40

41 Todo lo que est dentro del cuadro son las cajas de texto estn llenadas automtica mente con la informaci n que hay en la base de datos

Botn usado para vaciar las cajas de texto y as poder ingresar nueva informacin

Bienes Inmuebles

Estos son botones de navegacin los cuales son primero, anterior, siguiente, ultimo

Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar

Sirve para eliminar todo un registro entero

41

42 Todo lo que est dentro del las cajas de texto estn llenadas automticamente con la informacin que hay en la base de datos

Total de activos y pasivos

Al drsele clic aparece un reporte de toda la interfaz Ventana flotante guardar como 42

43

Se elige la ubicacin de donde va a estar la copia de seguridad guardada

Aqu escribimos el nombre de nuestra basa de datos, pero por defecto aparece la fecha actual

Al darle clic a crear copia de seguridad sale una ventana flotante

Finalmente guardamos o caso contario cancelamos

Al darle clic a restaurar copia de seguridad sale otra ventana flotante Se elige la ubicacin de donde hemos guardado nuestra copia de seguridad

Finalmente abrimos

Se sale al la ventana principal

Acerca de farmobrero

43

44

Al darle clic nos lleva a la ventana principal

Al darle clic sale otra ventana flotante y nos da la informacin del tipo de computadora que se tiene

Ventana flotante que nos da informacin del sistema

44

45 2.2 Diseo de salida

45

46

46

47

47

48 2.3 Diseo de Consultas

48

49

3 3.1

Programacin Programacin de ingreso de datos

Private Sub cmdAceptar_Click() If cbusuario.Text = "" Or txtContrasea = "" Then 49

50 MsgBox "No se Aceptan Valores Nulos", vbCritical + vbOKOnly, "Sistema de Farmacia" txtContrasea.Text = "" End If If (cbusuario.Text = "Administrador" Or cbusuario.Text = "administrador") And (txtContrasea = "wjo" Or txtContrasea = "Wjo") Then MsgBox "Bienvenido al Sistema Farmacia Obrero" Principal.Show frmSplash.Show activamenu formusuario.Hide Else If (cbusuario.Text = "Trabajador" Or cbusuario.Text = "trabajador") And (txtContrasea = "funciones" Or txtContrasea = "Funciones") Then MsgBox "Bienvenido al Sistema Farmacia Obrero" Principal.Show bloqueamenu frmSplash.Show formusuario.Hide frmSplash.Show Else MsgBox "Usuario o Contrasea Erronea" cbusuario.Text = "" txtContrasea.Text = "" End If End If End Sub Private Sub cmdCancelar_Click() End End Sub Private Sub Form_Load() cbusuario.Text = "" txtContrasea.Text = "" End Sub Public Function bloqueamenu() Principal.mnustock.Enabled = False Principal.mnubolemitida.Enabled = False Principal.mnufacemitidas.Enabled = False Principal.mnulista.Enabled = False Principal.mnutrabajadores.Enabled = False Principal.mnucuentas.Enabled = False Principal.mnumaquinaria.Enabled = False Principal.mnubienes.Enabled = False Principal.mnuactivopasivo.Enabled = False 50

51 End Function Public Function activamenu() Principal.mnustock.Enabled = True Principal.mnubolemitida.Enabled = True Principal.mnufacemitidas.Enabled = True Principal.mnulista.Enabled = True Principal.mnutrabajadores.Enabled = True Principal.mnucuentas.Enabled = True Principal.mnumaquinaria.Enabled = True Principal.mnubienes.Enabled = True Principal.mnuactivopasivo.Enabled = True End Function Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub Private Sub Timer1_Timer() S = Left(Label1.Caption, 1) Label1.Caption = Right(Label1.Caption, Len(Label1.Caption) - 1) + S End Sub

51

52

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True Text7.Locked = True Text8.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew Text1.SetFocus Text1.Locked = False 52

53 Text2.Locked = False Text3.Locked = False Text4.Locked = False Text5.Locked = False Text6.Locked = False Text7.Locked = False Text8.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub Private Sub Command1_Click() List1.Visible = True End Sub

Private Sub Command2_Click() List1.Visible = False End Sub Private Sub Command3_Click() List2.Visible = True End Sub Private Sub Command4_Click() List2.Visible = False 53

54 End Sub Private Sub Form_Load() cmdguardar.Enabled = False Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True Text7.Locked = True Text8.Locked = True List1.Visible = False List2.Visible = False End Sub Private Sub Timer1_Timer() Timer1.Tag = Mid(Timer1.Tag, 2) + Left(Timer1.Tag, 1) FACTURA.Caption = Timer1.Tag End Sub

54

55

Private Sub cmdanterior_Click() Adodc2.Recordset.MovePrevious If Adodc2.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc2.Recordset.MoveFirst End If End Sub Private Sub cmdbuscar_Click() codigo = InputBox("Ingrese el codigo de detalle") Adodc2.Recordset.Find "nombres='" & codigo & "'", , , 1 55

56 If Adodc2.Recordset.EOF Then MsgBox "registro no existente" End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc2.Recordset.Delete End If Adodc2.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc2.Recordset.Update Else Adodc2.Recordset.MoveFirst End If Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdlimpiar_Click() Text7.Text = "" End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc2.Recordset.AddNew Text1.SetFocus Text1.Locked = False Text2.Locked = False Text3.Locked = False Text4.Locked = False Text5.Locked = False 56

57 Text6.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc2.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc2.Recordset.MoveNext If Adodc2.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc2.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc2.Recordset.MoveLast End Sub

Private Sub Form_Load() cmdguardar.Enabled = False Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True End Sub

57

58

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If 58

59 End Sub Private Sub cmdbuscar_Click() codigo = InputBox("Ingrese el codigo de detalle") Adodc1.Recordset.Find "idproveedor='" & codigo & "'", , , 1 If Adodc1.Recordset.EOF Then MsgBox "registro no existente" End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If Text1.SetFocus Text1.Locked = True Text2.Locked = True Text5.Locked = True Text6.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdlimpiar_Click() Text7.Text = "" End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew Text1.SetFocus Text1.Locked = False 59

60 Text2.Locked = False Text5.Locked = False Text6.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub Private Sub Form_Load() Text1.Locked = True Text2.Locked = True Text5.Locked = True Text6.Locked = True cmdguardar.Enabled = False End Sub

60

61

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() Textsueldototales = Val(txtsueldo) Txttotalbienes = Val(txtvalor) If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If txtcodigo.Locked = True txtapellido.Locked = True txtcargo.Locked = True 61

62 txtdireccion.Locked = True txtdni.Locked = True txtedad.Locked = True txtnombre.Locked = True txtsueldo.Locked = True txttelefono.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew txtcodigo.Locked = False txtapellido.Locked = False txtcargo.Locked = False txtdireccion.Locked = False txtdni.Locked = False txtedad.Locked = False txtnombre.Locked = False txtsueldo.Locked = False txttelefono.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub 62

63

Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub Private Sub Form_Load() cmdguardar.Enabled = False txtcodigo.Locked = True txtapellido.Locked = True txtcargo.Locked = True txtdireccion.Locked = True txtdni.Locked = True txtedad.Locked = True txtnombre.Locked = True txtsueldo.Locked = True txttelefono.Locked = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) adototaltraba.Refresh End Sub

Dim DirAnterior As String 63

64 Dim NomArchivoSeg As String Dim FActual As String Const TITULO = "BACKUP" 'el titulo de la ventana y de los msgbox Private Sub CmdCopiaseguridad_Click() CompactarBD 'llamo a la funcion de compactar la base de datos If DirAnterior <> "" Then DlgArchivos.InitDir = DirAnterior Else DlgArchivos.InitDir = DameDirectorioAplicacion End If DlgArchivos.FileName = FActual ' Si ocurre un error ejecutar ManipularErrorGuardar On Error GoTo ManipularErrorGuardar ' Generar un error cuando se pulse Cancelar DlgArchivos.CancelError = True ' Filtros DlgArchivos.Filter = "Ficheros de proyecto (*.bak)|*.bak|Todos los ficheros (*.*)|*.*" ' Filtro por omisin DlgArchivos.FilterIndex = 1 ' Visualizar la caja de dilogo DlgArchivos.ShowSave Label14.Caption = "Copiando copia de seguridad" DoEvents SHCopyFile App.Path & "\bd.mdb", DlgArchivos.FileName 'recogemos los datos Dim Indice As Long For Indice1 = Len(DlgArchivos.FileName) To 1 Step -1 If Mid$(DlgArchivos.FileName, Indice1, 1) = "\" Then Exit For Next NomArchivoSeg = Mid$(DlgArchivos.FileName, Indice1 + 1, Len(DlgArchivos.FileName)) DirAnterior = Mid$(DlgArchivos.FileName, 1, (Len(DlgArchivos.FileName) Len(NomArchivoSeg)) - 1) SalirGuardar: 64

65

Mensaje.Visible = False MsgBox "Finished backup", vbInformation, TITULO Screen.MousePointer = 0 Exit Sub ManipularErrorGuardar: ' Manipular el error Screen.MousePointer = 0 Mensaje.Visible = False If Err.Number = cdlCancel Then Exit Sub MsgBox Err.Description Resume SalirGuardar End Sub Private Function CompactarBD() Screen.MousePointer = 11

On Error Resume Next Dim BaseDeDatos As String Dim BaseDeDatosCo As String BaseDeDatos = App.Path & "\bd.mdb" 'la direccion de la base de datos original BaseDeDatosCo = Mid$(BaseDeDatos, 1, Len(BaseDeDatos) - 4) & "Co.mdb" 'la direccion que tendra la copia 'compruebo y elimino si existe alguna copia de seguridad If Dir(DameDirectorioAplicacion & "~bdatos.mdb") Then _ Kill DameDirectorioAplicacion & "~bdatos.mdb" '-Mostrar el mensaje de grabando --------------------------------Mensaje.Visible = True Label14.Caption = "Copia de seguridad en progreso" DoEvents 'hago una copia de seguridad de la base de datos antes de compactar 65

66 FileCopy BaseDeDatos, DameDirectorioAplicacion & "~bdatos.mdb" ' Me aseguro que no existe un archivo con el ' nombre de la base de datos compactada (de algn error anterior). If Dir(BaseDeDatosCo) <> "" Then _ Kill BaseDeDatosCo ' Esta instruccin crea una versin compactada de la base de datos Label14.Caption = "Compactando base de datos" DoEvents DBEngine.CompactDatabase BaseDeDatos, _ BaseDeDatosCo, dbLangGeneral 'si nuestra bd tiene contrasea se hara con esta instruccin: ' ' DBEngine.CompactDatabase BaseDeDatos, _ BaseDeDatosCo, dbLangSpanish & ";pwd =" & gClave, , ";pwd =" & gClave 'si tiene contrasea, hay que aadir ,pwd="contrasea" 'elimino la base de datos y copio la compactada con el nombre bueno If Dir(BaseDeDatosCo) <> "" Then Kill BaseDeDatos End If Label14.Caption = "Restaurando base de datos" DoEvents FileCopy BaseDeDatosCo, BaseDeDatos 'elimino las copias de seguridad Kill BaseDeDatosCo Kill DameDirectorioAplicacion & "~bdatos.mdb" Screen.MousePointer = 0 Label14.Caption = "Base de datos compactada" DoEvents End Function Private Sub CmdRecuperar_Click() 66

67 DlgArchivos.CancelError = True On Error Resume Next DlgArchivos.FileName = NomArchivoSeg DlgArchivos.InitDir = DirAnterior DlgArchivos.Filter = "Backup (*.bak)|*.bak|" & "all files (*.*)|*.*" DlgArchivos.Action = 1 If Err.Number = 0 Then 'cerrar la base de datos On Error Resume Next 'gconexion.Cerrar 'Set mBasedeDatos = Nothing If MsgBox("La base de datos ser reemplazada, Estas seguro?", vbQuestion + vbYesNo, TITULO) <> vbYes Then Exit Sub Screen.MousePointer = 11 On Error Resume Next FileCopy DlgArchivos.FileName, App.Path & "\bd.mdb" If Err.Number <> 0 Then MsgBox "Error recuperando la base de datos", vbCritical, TITULO Else MsgBox "Recuperacion de la base de datos completa", vbInformation, TITULO End If On Error GoTo 0 Screen.MousePointer = 0 Else MsgBox "Restauracin de la base de datos cancelada por el usuario", vbInformation, TITULO End If End Sub Private Sub CmdSalir_Click() Unload Me End Sub Private Sub Form_Load() Dim nPermiso As Integer Me.Caption = TITULO Screen.MousePointer = 0 FActual = Format(Now, "dd_mm_yyyy") 67

68

'comprobar si existe el archivo ini If Not ExisteArchivo(DameDirectorioAplicacion & "config.ini") Then DirAnterior = DameDirectorioAplicacion 'si no existe dar direccion por defecto (en este caso, la carpera del programa) Else DirAnterior = LeerIni(DameDirectorioAplicacion & "config.ini", "CopiaBD", "DirCopia") NomArchivoSeg = LeerIni(DameDirectorioAplicacion & "config.ini", "CopiaBD", "NombreCopia") 'aqui encuentro un fallo que no se solucionar '-> en leerini, no me lee toda la direccion completa que esta en el archivo ini '-> no se si tiene limitacin de tamao de alguna forma. If Trim$(DirAnterior) <> "" Then DirAnterior = Mid(DirAnterior, 1, Len(Trim$(DirAnterior)) - 1) Else DirAnterior = DameDirectorioAplicacion End If If Trim$(NomArchivoSeg) <> "" Then NomArchivoSeg = Mid(NomArchivoSeg, 1, Len(Trim$(NomArchivoSeg)) - 1) End If 'si existe, leer los datos diranterior End If 'en este momento, si tenemos abierta la base de datos de alguna manera (controles ado, ' dao, dataenviroment, etc) la cerraremos 'Si la base de datos est abierta dar error en compactarla y en recuperarla. 'cerrar la base de datos End Sub

Private Sub Form_Unload(Cancel As Integer) If DirAnterior <> "" Then EscribirIni "CopiaBD", "DirCopia", DirAnterior, DameDirectorioAplicacion & "config.ini" End If 68

69

If NomArchivoSeg <> "" Then EscribirIni "CopiaBD", "NombreCopia", NomArchivoSeg, DameDirectorioAplicacion & "config.ini" End If End Sub

Function DameDirectorioAplicacion() As String DameDirectorioAplicacion = UCase$(App.Path) If Right(DameDirectorioAplicacion, 1) <> "\" Then DameDirectorioAplicacion = DameDirectorioAplicacion & "\" End Function

69

70

3.2- Programacin de procesos de datos

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If Text1.SetFocus 70

71 Text1.Locked = True Text2.Locked = True Text5.Locked = True Text6.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew Text1.SetFocus Text1.Locked = False Text2.Locked = False Text5.Locked = False Text6.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub 71

72 Private Sub Form_Load() Text1.Locked = True Text2.Locked = True Text5.Locked = True Text6.Locked = True cmdguardar.Enabled = False End Sub

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If 72

73 Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True Text7.Locked = True Text8.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew Text1.SetFocus Text1.Locked = False Text2.Locked = False Text3.Locked = False Text4.Locked = False Text5.Locked = False Text6.Locked = False Text7.Locked = False Text8.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub 73

74

Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub Private Sub Command1_Click() List1.Visible = True End Sub Private Sub Command2_Click() List1.Visible = False End Sub Private Sub Command3_Click() List2.Visible = True End Sub Private Sub Command4_Click() List2.Visible = False End Sub Private Sub Form_Load() cmdguardar.Enabled = False Text1.Locked = True Text2.Locked = True Text3.Locked = True Text4.Locked = True Text5.Locked = True Text6.Locked = True Text7.Locked = True Text8.Locked = True List1.Visible = False List2.Visible = False End Sub 74

75 Private Sub Timer1_Timer() Timer1.Tag = Mid(Timer1.Tag, 2) + Left(Timer1.Tag, 1) FACTURA.Caption = Timer1.Tag End Sub

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" 75

76 Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() Text1 = Val(txtmonto) If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update Else Adodc1.Recordset.MoveFirst End If txtcuentas.Locked = True txtdescripcion.Locked = True txtfecha.Locked = True txtnuero.Locked = True txtrazonsocial.Locked = True txtmonto.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub

76

77

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() Text1 = Val(txtvalormon) If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update 77

78 Else Adodc1.Recordset.MoveFirst End If txtcodigo.Locked = True txtnombre.Locked = True txtdescripcion.Locked = True txttotal.Locked = True txtvalormon.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew txtcodigo.Locked = False txtnombre.Locked = False txtdescripcion.Locked = False txttotal.Locked = False txtvalormon.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() 78

79 Adodc1.Recordset.MoveLast End Sub Private Sub DataGrid1_Click() End Sub Private Sub Form_Load() cmdguardar.Enabled = False txtcodigo.Locked = True txtnombre.Locked = True txtdescripcion.Locked = True txttotal.Locked = True txtvalormon.Locked = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) adomaquinaria.Refresh End Sub Private Sub FRABOTONES_DragDrop(Source As Control, X As Single, Y As Single) Adodc1.Recordset.MoveLast End Sub

79

80

Private Sub cmdanterior_Click() Adodc1.Recordset.MovePrevious If Adodc1.Recordset.BOF Then MsgBox "Se encontro inicio de archivo", vbCritical, "cuidado" Adodc1.Recordset.MoveFirst End If End Sub Private Sub cmdeliminar_Click() If MsgBox("desea eliminar el registro", 4, "eliminar") = 6 Then Adodc1.Recordset.Delete End If Adodc1.Recordset.MoveFirst End Sub Private Sub cmdguardar_Click() Txttotalbienes = Val(txtvalor) If MsgBox("desea guardar los cambios", 4, "guardar") = 6 Then Adodc1.Recordset.Update 80

81 Else Adodc1.Recordset.MoveFirst End If txtcodigo.Locked = True txtdescripcion.Locked = True txtnombre.Locked = True txtubicacion.Locked = True txtvalor.Locked = True Txttotalbienes.Locked = True cmdprimero.Enabled = True cmdanterior.Enabled = True cmdsiguiente.Enabled = True cmdultimo.Enabled = True cmdnuevo.Enabled = False cmdeliminar.Enabled = True cmdguardar.Enabled = False cmdnuevo.Enabled = True End Sub Private Sub cmdnuevo_Click() cmdguardar.Enabled = True Adodc1.Recordset.AddNew txtcodigo.SetFocus txtcodigo.Locked = False txtdescripcion.Locked = False txtnombre.Locked = False txtubicacion.Locked = False Txttotalbienes.Locked = False txtvalor.Locked = False cmdprimero.Enabled = False cmdanterior.Enabled = False cmdsiguiente.Enabled = False cmdultimo.Enabled = False cmdnuevo.Enabled = False cmdeliminar.Enabled = False End Sub Private Sub cmdprimero_Click() Adodc1.Recordset.MoveFirst End Sub Private Sub cmdsiguiente_Click() Adodc1.Recordset.MoveNext 81

82 If Adodc1.Recordset.EOF Then MsgBox "Se encontro fin de archivo", vbCritical, "CUIDADO" Adodc1.Recordset.MoveLast End If End Sub Private Sub cmdultimo_Click() Adodc1.Recordset.MoveLast End Sub

Private Sub Form_Load() cmdguardar.Enabled = False txtcodigo.Locked = True txtdescripcion.Locked = True txtnombre.Locked = True txtubicacion.Locked = True txtvalor.Locked = True txttotal.Locked = True Txttotalbienes.Locked = True End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) adototalbienes.Refresh End Sub

82

83

3.2

Programacin de salida de informacin

Gestin de calidad del software


83

84

3.1 Nivel de Gestin de calidad Alcanzado


Nivel Inicial

Nivel de Gestin de Calidad

1. Nivel Inicial

Requisitos Definicin de polticas elementales de contratacin. Obtencin de las especificaciones del cliente Formacin emprica de equipos de trabajo de acuerdo a la disponibilidad de personal que se tenga. Compromisos de plazos de entrega sin criterios bien fundamentados Uso de herramientas de ingeniera de software a voluntad de los desarrolladores Empleo de los lenguajes de programacin en que se tiene experiencia, al no ser que el cliente exija lo contrario Mnima documentacin Acta de aceptacin del cliente quien generalmente no esta en condiciones de evaluar adecuadamente el producto Deficiente organizacin del mantenimiento de posventa del producto

84

85

3.2 Calidad del Software

Requerimientos 1. Documentacin de las lneas de cdigo 2. Documentacin del sistema 3. Control de acceso 4. Barra de herramientas 5. Reportes 6. Copias de Seguridad 7. Tratamiento de Errores 8. Control de salidas 9. Presentacin 10. Ayudas

Cumplimiento

85

86 11. Men interactivo 12. Acerca de

3.3 Mtrica de calidad del software

3.3.1 mtrica de tamao

86

87
Proyecto L.D.C. Esfuerzo $(000) PP.Doc Errores Defectos Personas

Farmacia El Obrero

1200

3.67

1871.7 80

49

Estadsticas

a) Errores / Miles de lneas de Cdigo. 1200/1000 = 1,2 miles de lneas de cdigo

49 / 1,2 = 40,83

. En cuanto a calidad, el proyecto presenta 40,83 errores por cada mil lneas codificadas.

b) Defectos / miles de lneas de cdigo 8/1,2 =6,66 . El proyecto presenta 6,66 defectos por cada mil lneas de cdigo.

c) Costo / lneas de cdigo. 87

88

1871.7/1200 =1,56 . Programar cada lnea de cdigo cuesta 1,56 nuevos soles.

d) Documentacin 7 miles de lneas de cdigo. 120/1,2 = 100

. El nivel de documentacin alcanzado en el proyecto es de 100 , por cada mil lneas de cdigo.

e) Errores / esfuerzo. 49/3,67 = 13,35

. Por cada esfuerzo realizado se han cometido se han cometido 13,35 errores.

f) Lneas / Esfuerzo

1200/ 4 = 300

. En cuanto a productividad cada esfuerzo realizado se han producido 300 lneas de cdigo.

g) Costo / Documentacin 1200/ 120 =15 88

89

.Por cada pgina documentada el proyecto demanda de 15 nuevos soles.

3.3.2 Mtrica de Punto de Funcin

Factor de Ponderacin Parmetro de Cuenta Simple Medio Complejo Subtotal 89

90 Medicin Nmero de Entradas de Usuario Nmero de Salidas de Usuario Nmero de Peticiones de Usuario Numero de Archivos Numero de Interfaces Externas

28

15

75

18

20

10

15

200

10

Cuenta = Total

328

90

91

3.3.2.1 Encuesta

Pregunta 1. Requiere el sistema copias de seguridad y de recuperacin fiables? 2. Se requiere comunicacin de datos? 3. Existen funciones de procesamiento distribuido? 4. Es crtico el rendimiento? 5. Se ejecutara el sistema en un entorno operativo existente y fuertemente utilizado? 6. Existe algn proceso que requiere gran Procesamiento. 7. Requiere el sistema entrada de datos interactiva? 8. Se especifico requerimientos de usuario? 9. Se actualizan los archivos maestros de forma interactiva? 10. Son complejas las entradas, las salidas, los archivos o las peticiones? Y Es complejo el procesamiento interno? 11. Se ha diseado el cdigo para ser reutilizado? 12. Estn incluidas en el diseo la conversin y la instalacin? 13. Se ha diseado la aplicacin para facilitar los cambios y para ser fcilmente utilizada por el usuario? 14. Se ha diseado el sistema para soportar mltiples instalaciones en diferentes organizaciones?

Valoracin 2 0 1 2 3 3 1 3 0 0

1 1 2

91

92 Fi 21

Formula

Punto de funcin= Cuenta total *(0.65+0.01*Fi)

P.F = 328*(0.65+0.1*21) P.F =215.3

Parmetros

Estadsticas

a) Errores * Pf

49*215.3 =10549.7

. En Cuanto a calidad los Errores por cada funcin implementada es de 10549.7

b) Defectos *Pf

8*215.3 =1722.4 . En cuanto a calidad la cantidad de defectos presentados por punto de funcin es de 1722.4.

c) Costo * Pf

1871.7* 215.3=402977.01 92

93 . El proyecto en cuanto a costo por punto de funcin es de 402977.01.

d) Paginas Doc. * Pf

80 *215.3=17224 . En cuanto a documentacin el proyecto por punto de funcin es de 25836.

e) PF* personas por mes 4 * 215.3=861.2 . El punto de funcin por personas por mes es de 861.2

CONCLUSIONES

En cuanto a calidad, el proyecto presenta 40,83 errores por cada mil lneas codificadas. El proyecto presenta 6,66 defectos por cada mil lneas de cdigo.

Programar cada lnea de cdigo cuesta 1,56 nuevos soles. El nivel de documentacin alcanzado en el proyecto es de 100, por cada mil lneas de cdigo. Por cada esfuerzo realizado se han cometido se han cometido 13,35 errores.

93

94 En cuanto a productividad cada esfuerzo realizado se han producido 300 lneas de cdigo. Por cada pgina documentada el proyecto demanda de 15 nuevos soles. En Cuanto a calidad los Errores por cada funcin implementada es de 10549.7 En cuanto a calidad la cantidad de defectos presentados por punto de funcin es de 1722.4. El proyecto en cuanto a costo por punto de funcin es de 402977.01. En cuanto a documentacin el proyecto por punto de funcin es de 25836.

El punto de funcin por personas por mes es de 861.2.

El desarrollo de la aplicacin demando de un criterio de anlisis, analtico y de criterio propio.

El usuario no especifico los detalles minuciosos del sistema de manera que fue un anlisis procedimental por parte nosotros los desarrolladores.

RECOMENDACIONES Se recomienda la capacitacin previa para el uso ptimo del sistema. Se recomienda no obviar ningn detalle de registro para el buen control diario de las operaciones a travs del sistema. 94

95 Se sugiere que el usuario tenga conocimientos previos de computacin. Para realizar un buen proyecto es necesario realizar un buen anlisis, para la descripcin detallada de los requerimientos. Para el buen uso del Sistema se recomienda seguir las instrucciones descritas en el manual de instalacin. El sistema esta implementado para generar reportes bsicos que el usuario requiera, por ello de recomienda que los datos sean precisos para que los reportes generados sean ptimos. Se recomienda usar una computadora PIII como mnimo hacia adelante para el ptimo funcionamiento del sistema, esto con la finalidad de no tornar lentos los programas utilizados. Se recomienda solicitar el soporte tcnico requerido cada vez que el sistema presente fallas, con la finalidad de asistir de inmediato los errores. En caso de complicaciones graves a travs del uso del sistema, se recomienda consultar con el proveedor. Se recomienda la evaluacin y las pruebas antes de la entrega del sistema, para reducir la cantidad de errores durante el uso.

Anexos

95

96

Iconos Usados.

Icono Usado para Describir los Productos.

96

97

Este Icono representa La vista de los estados Financieros.

El icono representa el inicio de sesin.

BIBLIOGRAFIA
97

98

- Visual Basic 6.0 Nivel I Joel Carrasco Muoz. - Aprendiendo UML en 24 hora. - Manuales internet EMagister.com. - Lawebdelprogramador.com. - Rincondelprogramador.com.

98