Trabajo
Trabajo
Trabajo
Integrantes Diolinda Guerrero Garca Alfredo Wenceslao Hoyos Morales Crisanto zurita Berr
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.
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
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.
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.
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
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
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.)
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
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.
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 .
-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.
17
18
18
19
19
20
20
21
21
22
22
23
24
2.
Diseo
24
25
2.1.2
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 y especificaciones
Al presionar en este lugar luego de elegir tu usuario y escribir tu contrasea, ingresara al sistema ventana del sistema
Barra desplegabl e
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
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
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
Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar
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
Despus de haber dado clic a nuevo y haber llenado las cajas de texto se presiona este botn grabar
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
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
38
39
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
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
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
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
Al drsele clic aparece un reporte de toda la interfaz Ventana flotante guardar como 42
43
Aqu escribimos el nombre de nuestra basa de datos, pero por defecto aparece la fecha actual
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
Acerca de farmobrero
43
44
Al darle clic sale otra ventana flotante y nos da la informacin del tipo de computadora que se tiene
44
45
46
46
47
47
48
49
3 3.1
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
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
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
84
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
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
87
Proyecto L.D.C. Esfuerzo $(000) PP.Doc Errores Defectos Personas
Farmacia El Obrero
1200
3.67
1871.7 80
49
Estadsticas
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.
88
1871.7/1200 =1,56 . 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.
f) Lneas / Esfuerzo
1200/ 4 = 300
. En cuanto a productividad cada esfuerzo realizado se han producido 300 lneas de cdigo.
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
Parmetros
Estadsticas
a) Errores * Pf
49*215.3 =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
d) Paginas Doc. * Pf
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 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.
96
97
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