I
UNIVERSIDAD DE GUAYAQUILFacultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en SistemasComputacionales
“Sistema Electrónico de Control de Tiempo y
Proyecto de Auditoria”
PROYECTO DE GRADOCURSO DE GRADUACION
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
LOZANO OTERO YESSICA JACQUELINEMAYOR FERRUZOLA WALTER DAVIDMOREIRA ESTRADA PEDRO ANTONIO
GUAYAQUIL-ECUADOR
Año: 2008
II
AGRADECIMIENTO
Agradecemos primeramente a Dios, quien
a estado con nosotros en los momentos
que mas nos necesita dándonos fuerzas
para seguir adelante en la vida personal y
profesional de cada uno de este grupo.
Además también a nuestros padres y
familiares que se convierteron en un pilar
fundamental para cualquier meta que
tracemos en nuestras vidas.
Y a todos los catedráticos que nos
aportaron todos sus conocimientos y
experiencias para poder alcanzar este
logro.
III
DEDICATORIA
Dedicamos con todo nuestro esfuerzo
durante toda la carrera universitaria a
nuestras familias que siempre confiaron
en nosotros y acompañaron con éxito
todas las etapas que vivimos para
alcanzar un presente lleno de triunfo y
superación.
IV
TRIBUNAL DE GRADUACIÓN
Presidente del Tribunal 1er Vocal
2do Vocal Secretario
V
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en sistemas
Computacionales, Art. 26)
Lozano Otero Yessica Jacqueline Mayor Ferruzola Walter DavidC.I.: 0913298600 C.I.: 0920113305
Moreira Estrada Pedro AntonioC.I.:0919389361
VI
RESUMEN
S E C T P A (Sistema Electrónico de Control de Tiempo y Proyecto de
Auditoria) es hacer que el auditor o administrador deje de manejar en papel,
hojas de Excel o en el mejor de los casos Project u otras herramientas
semejantes a Project, sus tareas lo cual en muchos casos, no aportan
soluciones oportunas que incluso producen problemas tales como conflictos,
inconsistencias en la planeación del proyecto y su seguimiento en la línea del
tiempo.
En este sistema, el cual llevará el control de tiempo, la evaluación del
proyecto, con técnicas de diagnóstico y pronóstico que brindan los
elementos necesarios para la toma de decisiones generando Informes de
control y como va el procedimiento de un proyecto de auditoria en una
empresa.
Los proyectos concluidos serán almacenados para futuras consultas, dichos
análisis nos ayudara para proyectos similares. Sus reportes serán exportados
a Excel dando facilidad de portabilidad de reportes.
Con este proyecto se ofrecerá una herramienta de control, que permite la
entrega exitosa de proyectos y además culminar a tiempo y dentro de los
días asignados.
SUMMARY
The S E C T P A (Electronic system of Control of Time and Project of Audit) it is
to make that the auditor or administrator stops to manage in paper, leaves of
Excel or in the best in the cases Project or other tools similar to Project, his
tasks that which in many cases, they don't contribute opportune solutions that
even produce such problems as conflicts, inconsistencies in the drifting of the
project and his pursuit in the line of the time.
In this system, which will take the control of time, the evaluation of the project,
with technical of diagnostic and presage that you/they offer the necessary
elements for the taking of decisions generating control Reports and like the
procedure of an audit project goes in a company.
The concluded projects will be stored for future consultations; this analysis
helped us for similar projects. Their reports will be exported Excel giving
easiness of portability of reports.
With this project he/she will offer a control tool that allows the successful
delivery of projects and also to culminate on time and in the assigned days.
VII
INDICE GENERAL
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
Parte I
Capítulo I
Sistema Electrónico de Control de Tiempo y Proyecto
de Auditoria
1.1 introducción 1
1.2. Solución 3
1.3 Misión 4
1.4 Visión 4
1.5 Objetivos 4
1.5.1 Objetivos Generales 4
1.5.2 Objetivos Específicos 4
VIII
1.6 Alcances 5
1.7 Beneficios 6
1.8 Recursos 7
1.8.1. Recursos Tecnológicos 7
1.8.1.1 Hardware 7
1.8.1.2 Software 8
Base de Datos: Access 8
Sistema Operativo: Windows Xp profesional 8
Utilitarios: Microsoft Office 9
Herramientas: VISUAL BASIC 6.0 9
1.8.2 Talento humano: Recurso Humano 10
1.8.2.1. Analistas 10
1.8.2.2. Diseño 10
1.8.2.3. Administrador Base De Datos 10
1.8.2.3.1. Líder del Proyecto 11
1.8.2.3.2. Jefe de Proyecto 11
1.8.2.3.3.- Equipo de Desarrolladores y Analistas 11
1.9. Cronograma Estimado De Actividades 12
IX
Capitulo II: 14
Análisis
2.1. Metodología 14
2.2. Modelo De Desarrollo 15
2.3. Análisis Foda 16
2.3.1. Fortalezas 16
2.3.2. Oportunidades 16
2.3.3. Debilidades 17
2.3.4. Amenazas 17
2.3.5.- Convirtiendo las debilidades en fortalezas 17
2.3.6.- Convirtiendo las amenazas en oportunidades 18
2.4. Modelo Entidad - Relación 18
2.5. Diccionario De Datos 19
2.6.- Relación Secuencial 19
2.6.1.- TblActividades 20
2.6.2.- TblProyecto 20
2.6.3.-TblRecursos 21
2.6.4.- TblProveedor 21
2.6.5.- TblArea 21
2.6.6.- TblUsuario 22
2.7. Casos De Uso 22
X
2.7.1. Descripción De Casos De Uso 23
2.7.2.- Descripción y referencia a los requerimientos consignados
al proyecto
24
2.8.Diagrama De Flujo De Datos 32
2.9.Diagrama De Estado 32
2.9.1. Diagrama De Estado Del Proyecto 33
2.9.2. Diagrama De Estado De Actividad Responsable 33
2.9.3. Diagrama conceptual Sistema electrónico de control de
tiempo.
34
2.10.Diagrama De Secuencias 34
2.10.1.- Diagrama de interacción de avances 35
2.11.Riesgos 35
2.11.1.- Efecto 36
2.11.2.- Detalle De Riesgos Predecibles 36
2.11.3.- Definiciones De Riesgos 37
2.11.4.- Mala Estimación del tiempo para la Duración del
desarrollo
38
2.11.5.-Indisponibilidad de reuniones del grupo y Enfermedad o
Problemas de grupo
38
2.11.6.- Que los equipos disponibles no estén en óptimas
condiciones de trabajo
38
XI
2.11.7.- Mala interpretación de alcances y requisitos pedidos en la
tesis
39
2.11.8.- Usuarios se resistan a utilizar el software 39
2.11.9.- Que los usuarios no tengan los conocimientos básicos
para manejar sistemas GUI, lo cual dificulta el tiempo de
enseñanza del mismo
39
2.11.10.- Daño imprevisto de equipos 39
2.11.11.- Falta de Respaldos de los módulos ya codificados 40
2.11.12.- Modificaciones en etapa final del ciclo 40
2.11.13.- Robo de Equipos de Desarrollo 40
2.11.14.- Redefinición Constante de Procesos que se cumplen en
cada actividad del cronograma
41
2.11.15.- Expiración del tiempo límite de elaboración del software 41
2.11.16.- Problemas de personalidades del grupo de desarrollo 41
2.11.17.- Resultados obtenidos no satisfacen todas las
necesidades y expectativas del tutor y/o tribunal
42
2.11.18.- Tener que realizar cambios en los diálogos de entrada,
diseño de la base de datos, acceso a la base de datos, objetos
para adaptarlos a una nueva estructura
42
2.12.- Seguridad en los accesos 42
2.13.- Controles De Entrada, Proceso y Modificación 43
XII
2.13.1.-ENTRADAS 43
2.13.2.- CONSULTAS 43
2.13.3.- ARCHIVOS 44
2.13.4.- SALIDAS 45
2.13.5.- INTERFACES 45
2.14.- Análisis De Factibilidad De Costos 45
Capitulo III: 46
Diseño
3.1. Diagrama De Clases 46
3.2. Propiedades 47
3.3. Operaciones 47
3.4. Interfaz 47
3.5. Herencia 48
3.6. Metodología 48
3.6.1. Análisis/Diseño 48
3.6.2. Implementación 48
3.6.3. Pruebas 49
3.7. Modelo De Desarrollo 49
3.8. Arquitectura Del Sistema 50
XIII
3.8.1. 1era Capa: Interfaz De Usuario. 50
3.8.2. 2da Capa: Reglas Del Negocio 51
3.8.3. 3era Capa: Base De Datos 51
3.8.3.1. Acceso A Datos 51
3.8.3.2. Origen De Datos 51
3.9. Diagramas De Flujo De Ventanas 51
3.9.1. Menú Principal 52
3.9.1.1. Mantenimiento 52
3.9.1.2. Movimiento 53
3.9.1.3. Reportes. 53
3.9.1.4. Usuario 54
3.9.1.5. Salir. 55
CAPITULO IV:
CODIFICACIÓN 56
4.1. Base De Datos 56
4.2. Tabla: Tblactividades 57
4.3. Tabla: Tblareas 67
4.4. Tabla: Tbleventos 70
4.5. Tabla: Tblhorasactividades 74
XIV
4.6. Tabla: Tblproveedor 76
4.7. Tabla: Tblproyectos 82
4.8. Tabla: Tblrecursoactividad 91
4.9. Tabla: Tblrecursos 94
4.10. Tabla: Tblusuarios 100
4.11. Tabla: Tblusuariosactividades 110
4.12. Tabla: Tblusuariosareas 114
4.13. Tabla: Tblusuariosproyectos 117
CAPITULO V:
PRUEBAS 120
5.1. Introducción 120
5.2.- Desarrollo De Pruebas Opción Menú Principal 121
5.3.- Desarrollo De Pruebas Opción Mantenimiento De Proyectos 122
5.4.- Desarrollo De Pruebas De Opción Movimientos De Proyecto 123
5.5.- Desarrollo De Pruebas De Opción Reportes E Informes Del
Proyecto
124
5.6.- Desarrollo De Pruebas De Opción Usuario Del Proyecto. 125
XV
CAPITULO VI:
CONCLUSIONES Y RECOMENDACIONES 126
6.1. CONCLUSIONES 126
6.2. RECOMENDACIONES 128
BIBLIOGRAFIA 130
ANEXOS 131
GLOSARIO 152
ABREVIATURAS 153
XVI
INDICE GRAFICO
CAPITULO I
CUADRO 1.1 10
CAPITULO II
CUADRO 2.1 16
CUADRO 2.2 16
CUADRO 2.3 18
CUADRO 2.4 20
CUADRO 2.5 20
CUADRO 2.6 21
CUADRO 2.7 21
CUADRO 2.8 21
CUADRO 2.9 22
CUADRO 2.10 23
CUADRO 2.11 24
CUADRO 2.12 24
CUADRO 2.13 25
CUADRO 2.14 26
CUADRO 2.15 27
XVII
CUADRO 2.16 28
CUADRO 2.17 30
CUADRO 2.18 31
CUADRO 2.19 34
CUADRO 2.20 35
CUADRO 2.21 36
CUADRO 2.22 45
CAPITULO IIICUADRO 3.1 49
CUADRO 3.2 50
CUADRO 3.3 52
CUADRO 3.4 52
CUADRO 3.5 53
CUADRO 3.6 54
CUADRO 3.7 54
CUADRO 3.8 55
XVIII
INDICE TABLAS
CAPITULO I
TABLA 1.1 12
CAPITULO V
TABLA 5.1 121
TABLA 5.2 122
TABLA 5.3 123
TABLA 5.4 124
TABLA 5.5 125
CAPITULO 1
1.1 INTRODUCCIÓN
En el país existe pocas empresas de
desarrollo de software que prestan
soluciones especificas dedicadas al trabajo
de campo de una auditoria de sistema con
lo cual el costo es muy elevado.
Actualmente existen profesionales en la
rama de la auditoria de sistema como
consultores, administradores de proyecto
de auditoria que cumplen su trabajo de
2
Manera manual perdiendo muchas horas en auditoria de campo y
distribución eficiente de su tiempo.
Existen software que ayudan a controlar las actividades y recursos asignados
a un proyecto siendo el mas común MS-PROJECT de Microsoft pero existe
el inconveniente que no es una aplicación pensada en esta área que su
mayor recurso es el humano.
Un administrador necesita llevar bitácoras de actividades, soluciones de
problemas que se presenten el trayecto del proyecto, recursos que dispone,
etc.
A Través de un Sistema Electrónico de Control de Tiempo y Proyecto de
Auditoria ya están estandarizando rápidamente sus procesos para mejorar el
tiempo de control y administrar más efectivamente la complejidad de sus
proyectos.
La Carrera de Ingeniería en Sistemas Computacionales propuso el V Curso
de Graduación para realizar un sistema Electrónico de Control de Tiempo y
Proyecto de Auditoria. En este sistema, el cual llevará el control de tiempo, la
evaluación del proyecto, con técnicas de diagnóstico y pronóstico que
brindan los elementos necesarios para la toma de decisiones generando
Informes de control y como va el procedimiento de un proyecto de auditoria
en una empresa.
3
1.2 SOLUCIÓN.
La propuesta del proyecto es hacer que el auditor o administrador deje de
manejar en papel, hojas de Excel o en el mejor de los casos Project u otras
herramientas semejantes a Project, sus tareas lo cual en muchos casos, no
aportan soluciones oportunas que incluso producen problemas tales como
conflictos, inconsistencias en la planeación del proyecto y su seguimiento en
la línea del tiempo, comparación entre costo estimado y costo real, en otras
herramientas no se relaciona correctamente los recursos con las actividades
diarias muchas veces.
La aplicación a desarrollar pretende controlar el tiempo de las actividades
relacionadas al proyecto, manejar el recurso humano para sacar el provecho
de sus conocimientos profesionales del campo donde se ha especializado, el
administrador de proyecto y demás participantes día a día puedan controlar
sus proyectos, actividades respectivamente, haciendo un seguimiento de las
mismas con las debidas restricciones de acceso de acuerdo a su jerarquía de
usuario. Los proyectos concluidos serán almacenados para futuras consultas,
dichos análisis nos ayudara para proyectos similares. Sus reportes serán
exportados a Excel dando facilidad de portabilidad de reportes.
Cabe recalcar que a diferencia de otras aplicaciones, el software que
desarrollaremos será multiproyecto, es decir se podrá administrar varios
proyectos y tipos de proyectos en una misma sesión, que según el perfil de
usuario tendrán el acceso a los mismos.
4
1.3 MISIÓN
La misión de este proyecto es facilitar al auditor o administrador de proyectos
un sencillo y eficaz sistema de control de tiempo y proyecto de auditoria.
Con este proyecto se ofrecerá una herramienta de control, que permite la
entrega exitosa de proyectos y además culminar a tiempo y dentro de los
días asignados.
1.4 VISIÓN
La visión es dar a conocer el software a empresas de auditoria en sistema o
departamento de auditoria interna de grandes empresas como una
herramienta facilitadota de administración de tiempo de manera integral y
consistente.
1.5.- OBJETIVOS
1.5.1.- Objetivos Generales
Desarrollar una herramienta de software que permita declarar
proyectos de auditoria, controlarlos a través de franjas de tiempo,
controlar recursos individuales y equipos de trabajo (Recurso Humano)
y poder manejar desde un ambiente fácil los tiempos y asignaciones
de un audit. Team.
1.5.2.- Objetivos Específicos
Los objetivos específicos del proyecto son:
5
Generar una herramienta fácil de usar.
Permitir a un administrador de proyectos o gerente de auditoria
saber que asignaciones existen.
Cuál es el estado de trabajo de las mismas.
Que personas y que tipo de actividad están ejecutando.
Permitir conocer el tiempo y el costo del proyecto expresado en
horas incurridas.
Obtener un producto funcional que cumpla los estándares de
programación y planificación adecuados.
Aplicar conceptos de auditoria y buenas prácticas integrados
con la herramienta solicitada.
1.6.- ALCANCES.
Siguiendo las recomendaciones de las tesis y estándares de desarrollo de
software se tomaran en cuenta las siguientes características:
Interfaz grafica de usuario completa y funcional
Conceptos de control de proyectos
Sistema de almacenamientos de datos habilitado.
Principales datos habilitados.
El Sistema maneja seguridad considerando como mejor practica
habilitando opciones basados en roles de usuario.
6
El sistema permitirá emitir reportes para varios proyectos y varios
periodos.
El sistema contemplará la asignación de recursos a proyectos por
periodos de tiempo, clasificado por áreas dentro de cada proyecto.
La estructura de un proyecto tendrá siempre un líder, equipo de
trabajo y especialista que tendrán costos por hora. De esa forma se
podrán calcular los costos reales de cada proyecto.
El sistema será multiproyecto y multiusuario, es decir se maneja varios
proyectos y varios usuarios. De esa manera se podrá trabajar más de
una revisión a la vez de un mismo usuario.
Toda la información principal del proyecto será codificada y
relacionada.
El sistema será capaz de emitir reportes de los proyectos mediante
filtros.
El sistema manejará estados de proyecto (Activo, inactivo).
1.7.- BENEFICIOS
Obtener reportes reales de la situación del proyecto para facilitar el
control de tiempo de una auditoria.
Mantener un seguimiento continuo las actividades de un proyecto.
Emitir alarmas cuando una actividad no cumpla con el cronograma
existiendo la posibilidad que el proyecto se encuentre en riesgo.
7
El líder del proyecto tendrá la perspectiva de visualizar el proyecto
planificado vs. porcentaje de avance real del proyecto.
1.8.- RECURSOS
En esta sección detallaremos características de los recursos sobre las
herramientas que nos ayudan a alcanzar la misión y objetivos finales que son
funcionar y cubrir las expectativas tanto el de los consultores como auditores
o gerentes de proyectos.
Estos recursos se clasificaron de la siguiente manera: Recursos tecnológicos
de Hardware, Software y El Talento Humano para desarrollo del proyecto
1.8.1.- Recursos Tecnológicos
Para el desarrollo del Sistema se necesita los siguientes recursos:
1.8.1.1.- Hardware
Para el desarrollo de la aplicación se va a necesitar los siguientes recursos:
1 Computador
Monitor CRT de 15”
Disco Duro de 120 GB mínimo
Unidad CD-RW o Unidad DVD-RW
Memoria 512MB Ram mínimo
Procesador Intel PIV de 1.5 Ghz mínimo.
8
Distribución de Equipo
1 PC será el servidor, en donde se instalara la base de datos Access solo al
momento de pruebas finales y sustentación Final.
1 PC que se utilizaran para el desarrollo del software.
1.8.1.2.- Software
Base de Datos: ACCESS
Sistema Operativo: Windows Xp profesional.
Utilitarios: Microsoft Office.
Herramientas de desarrollo: VISUAL BASIC 6.0
Base de Datos: ACCESS
En Microsoft Office Access 2003, se puede ver información sobre
dependencias entre objetos de bases de datos. Ver una lista de objetos que
utiliza un objeto específico ayuda a mantener una base de datos y a evitar
errores relacionados con fuentes de registro que faltan. Por ejemplo, la
consulta de Pedidos trimestrales de la base de datos. Ventas ya no es
necesaria, pero antes de eliminarla, puede que desee saber qué otros
objetos de la base de datos utilizan la consulta.
Sistema Operativo: Windows XP Profesional.
Windows XP Profesional proporciona las herramientas necesarias para
trabajar y jugar en el entorno actual de comunicaciones de alta velocidad. El
cuadro de herramientas incluye herramientas del sistema que le ayudan a
9
configurar y ajustar recursos del sistema, usuarios y grupos de usuarios y
tareas programadas del sistema.
Utilitarios: Microsoft Office.
Paquete integrado de aplicaciones ofimáticas desarrollados por la Microsoft
que permite crear todo tipo de documento. Los mas utilizados son Word y
Excel aunque para esta tesis debido a la semejanza con MS-project se
procedió a investigar su funcionamiento.
Herramientas: VISUAL BASIC 6.0
Visual Basic es un lenguaje de programación de los llamados
"visuales", puesto que parte de la programación que se realiza con él
se basa en la utilización de elementos visuales. La palabra "Visual"
hace referencia al método que se utiliza para crear la interfaz gráfica de
usuario. En lugar de escribir numerosas líneas de código para describir
la apariencia y la ubicación de los elementos de la interfaz,
simplemente podemos agregar objetos prefabricados en su lugar
dentro de la pantalla, que ahorran mucho tiempo de programación y
que sobrepasan el concepto de la programación convencional en
cuanto a la estructura secuencial del programa ya que maneja el
concepto de eventos lo cual quiere decir que se ejecutan porciones de
código según el evento que es invocado por cada objeto visual.
10
1.8.2.- Talento Humano(RR.HH.)
En los recursos humanos los 3 integrantes del grupo se desempeñan de la
siguiente manera (ver cuadro 1.1):
RECURSO HUMANO DESEMPEÑO INTEGRANTES
1 Analista, Programador Sr. Walter Mayor F.
1 Diseño, Documentación Sr. Pedro Moreira E.
1 DBA , Programador Sra. Jessica Lozano
Cuadro 1.1 Talento Humano
1.8.2.1.- Analistas
Sus funciones dentro del proyecto serán: Realizar en análisis de
requerimientos, levantamiento de información, pruebas, codificación y
funcionamiento del proyecto.
1.8.2.2.- Diseño
Su Funciones serán: Realizar la Interfaz grafica, y además es responsable
de la codificación, pruebas y funcionamiento del proyecto. También debido a
que conoce mejor los formatos será quien lleve en mayor porcentaje el
control de la documentación, es decir, todas las páginas se adapten al
formato de tesis dado por el departamento de graduación.
1.8.2.3.- Administrador Base de Datos
Por ultimo la compañera se encarga de la Administración de la Base de
Datos del proyecto, crear tablas, modificar tablas, eliminar tablas,crear
11
procedimientos almacenados, etc. Y tambien tiene la codificación, pruebas y
funcionamiento del proyecto.
Además para la elaboración este proyecto tiene lo siguientes:
Líder de Proyecto
Jefe de Proyecto
Equipo de Desarrolladores y Analistas
1.8.2.3.1.- Líder del Proyecto
La misión del Líder del Proyecto es dirigir el equipo que dispone para
alcanzar los objetivos del proyecto, coordinar los recursos empleados en el
proyecto, toma de decisiones necesarias para conocer en todo momento la
situación en relación con los objetivos establecidos.
1.8.2.3.2.- Jefe de Proyecto
Es la figura clave en la planificación, ejecución, control del proyecto y es el
que impulsa el avance del mismo mediante la toma de decisiones. El Jefe de
Proyecto tiene poder ejecutivo y autoridad para mandar y tomar decisiones
dentro del ámbito y objetivos del proyecto.
1.8.2.3.3.- Equipo de Desarrolladores y Analistas
Son las personas encargadas de la parte de implementación, diseño y
codificación del proyecto así como los encargados de realizar los manuales
tantos técnicos como de usuario.
12
1.9.-CRONOGRAMA ESTIMADO DE ACTIVIDADES
(TABLA 1.1).
ETAPAS Y ACTIVIDADES Cantidadde Días Total(Dias)
ANÁLISIS
Definición de Alcances y Objetivos, Misión Visión,Metodología y arquitectura de desarrollo 3
Levantamiento de Información 10
Entrevista con Auditores de Campo oConsultores 7
Escoger una empresa y TramitarPermisos de Acceso 1
Análisis de Campo aplicada alproyecto Mediante Entrevista yObservación 6
Análisis de Recursos Requeridos 3
Recursos de Software 1
Recursos de Hardware 1
Recursos Humano 1
Análisis de Riesgos del Proyecto 3
Análisis de Costos Probables 8
Análisis de Entidades que Participan en unProyecto 1 48
DISEÑO
Diseño de Plantillas de Pantallas 4
Diseño Lógico de la Base de datos 4
Diseño del Diagrama de Clases 5
Diseño del Diagrama de Objetos 8
Diseño de Casos de uso 3
PRIMERA SUSTENTACIÓN 1 25
DESARROLLO Y PRUEBAS
Diseño Físico de la Base de datos en Base al D.de clase 5
Diseño de Pantallas Basado en las PlantillasAprobadas Por Usuario 5
Programación de Procedimientos y Funciones 20
13
AlmacenadasSEGUNDA SUSTENTACIÓN 1Rediseño de Reportes Específicos 14Redefinición de pantallas en base a nuevosRequerimientos 14Elaboración de Manual de Usuario Impreso yAdjuntos del Código 22 81
IMPLEMENTACIÓN
Configuración de Equipos Previo a laSustentación 1
Configuración del servidor de Base deDatos 1Configuración de PC Cliente(Ejecutables) 1
Documentación del Tomo II (MANUAL DEUSUARIO Y TECNICO) 38
PRUEBAS FINALES14
ÚLTIMA SUSTENTACIÓN1 55
TOTAL 209DíasTabla 1.1. Cronograma de Actividades
Para verificar el cronograma detallado remitirse al Anexo 1
14
CAPITULO 2
ANÁLISIS
2.1.- METODOLOGÍA
La metodología usada para el desarrollo
de este sistema esta basado en UML
(Lenguaje de Modelado Unificado) es
una especificación de notación orientada
a objetos, el cual se compone de
diferentes diagramas, los cuales
representan las diferentes etapas del
desarrollo del proyecto. Nos basaremos
15
a esta metodología para administrar proyectos de desarrollo, donde se
llevará el control de los avances de sus diferentes etapas.
Usaremos varios diagramas que tengan que ver con la metodología
orientada a objetos.
2.2.- MODELO DE DESARROLLO
El desarrollo de este proyecto será a través de un Modelo de Ciclo de vida
en espiral (ver cuadro 2.1) toma en cuenta el riesgo que aparece a la hora
de desarrollar el sistema.
Para ello se comienza mirando las posibles alternativas de desarrollo, se
opta por la del riesgo más factible y se hace un ciclo de la espiral.
Si el departamento o área quiere seguir haciendo mejoras en el software
se vuelve a evaluar las distintas nuevas alternativas y se realiza otra vuelta
del espiral hasta que llegue un momento que el producto desarrollado sea
aceptado y no seguir mejorándolo con otro nuevo ciclo.
El Modelo en Espiral que es más óptimo para nuestro sistema, además
permite ir comprobando fase a fase el cumplimiento correcto de la misma.
Para la realización de las GUI (Interfaces Gráficas de Usuarios) se utiliza el
Modelo de Prototipo.
16
Cuadro 2.1 Modelo de Espiral
2.3.- ANÁLISIS FODA
ASPECTOS POSITIVOS ASPECTOS NEGATIVOS
F O D A
FORTALEZAS OPORTUNIDADES DEBILIDADES AMENAZAS
INTERNAS EXTERNAS INTERNAS EXTERNAS
Cuadro 2.2 FODA
2.3.1. – Fortalezas
Software confiable.
Fácil uso y entendimiento, muy intuitivo, para uso de personas con
mediana a gran experiencia.
El sistema funciona con una base de datos robusta en seguridades.
2.3.2. – Oportunidades
Por su funcionalidad el sistema podrá utilizarse como auditoria de los
proyectos que se realizan en las organizaciones.
17
Las organizaciones a través del desarrollo acelerado de la tecnología,
están obteniendo el perfeccionamiento empresarial.
Tecnología al alcance de las Organizaciones.
Software escalable
2.3.3. – Debilidades
La licencia de la base datos está incluida en el Office como parte del
paquete.
Para manejar el sistema se requiere ciertos conocimientos iniciales de
manejo de proyectos informáticos.
Que el software no ofrezca los controles totales o esperados por el
cliente.
2.3.4. – Amenazas
Por su característica de la primera presentación inicial software puede
ser usado por otras personas para su uso comercial.
Imposibilidad de contar con hardware acorde a las necesidades del
sistema.
2.3.5.- Convirtiendo las debilidades en fortalezas:
Los costos de licenciamiento del software esta dentro de cualquier
presupuesto tolerante en una empresa.
La seguridad que ofrece la base de datos hace que su servicio
compense su valor.
18
Capacitación previa sobre el manejo del sistema para el mejor uso de
la misma.
Optimizar en base a versiones en la cual se detallara su manejo y el
cambio ocurrido y mejorado.
2.3.6.- Convirtiendo las amenazas en oportunidades
Si llegase a pasar el software se lo daría a conocer gratuitamente por
las organizaciones, para nuevas actualizaciones.
Dar informe sobre las características del hardware que se necesita
para la implementación del sistema.
2.4 MODELO ENTIDAD RELACIÓN
Cuadro 2.3
19
2.5.- DICCIONARIO DE DATOS
El Diccionario de Datos contiene las características de los sitios donde se
almacenan los datos del sistema incluyendo los nombres, descripciones
contenido y organización. Permite identificar los procesos donde se emplean
los datos y los sitios donde se necesita el acceso inmediato a la información
lo elaboramos durante el análisis de flujo de datos y se vuelve una
herramienta importante en para los analistas que participan en la
determinación de los requerimientos del sistema, su contenido es muy
importante y también se lo emplea en el diseño.
El Diccionario de Datos tiene dos tipos de descripciones para el flujo de
datos del sistema son los elementos de datos y estructura del sistema.
Estructura de Datos
Es un grupo de datos que están relacionados con otros y que en conjunto
describen un componente del sistema.
2.6.- RELACIÓN SECUENCIAL
Define los componentes que siempre serán incluidos en su estructura de
datos.
El Diccionario de Datos consiste en información perteneciente a las tablas
donde se detalla cada uno de los campos pertenecientes a las mismas.
A continuación detallamos las tablas del Sistema
20
2.6.1.- TblActividades
Cuadro 2.4
PROPOSITO: El propósito de la siguiente tabla presentar todos los datos de
las actividades del proyecto (ver cuadro 2.4).
2.6.2.- TblProyecto
Cuadro 2.5
PROPOSITO: El objetivo de esta tabla es permitir presentar el proyecto de
control al auditor y sus respectivas características de la misma (ver cuadro
2.5).
21
2.6.3.-TblRecursos
Cuadro 2.6
PROPOSITO: Esta tabla contiene información de cada uno de los
implementos que son asignados a una persona participante de un proyecto.
(Ver cuadro 2.6)
2.6.4.- TblProveedor
Cuadro 2.7
PROPOSITO: Esta tabla contiene los datos del proveedor de implementos
que serán utilizados para cumplir tareas o actividades de un determinado
proyecto. (Ver cuadro 2.7)
2.6.5.- TblArea
Cuadro 2.8
22
PROPOSITO: Esta tabla contiene la descripción de área del proyecto. (ver
cuadro 2.8)
2.6.6.- TblUsuario
Cuadro 2.9
PROPOSITO: Esta tabla contiene información de cada uno de los usuarios
que a la vez forman parte del banco de los recursos humanos que pueden
ser asignados a un proyecto por su perfil profesional almacenado en los
registros. (Ver cuadro2.9)
2.7.- CASOS DE USO
Un caso de uso es una técnica para la captura de requisitos potenciales de
un nuevo sistema o una actualización de un software existente. Cada caso
de uso proporciona uno o más escenarios que indican cómo debería
interactuar el sistema con el usuario o con otro sistema para conseguir un
objetivo específico. Normalmente, en los casos de uso se evita el empleo de
jergas técnicas, prefiriendo en su lugar un lenguaje más cercano al usuario
final.
23
Actividades
Reportes
Responsable
Proyecto
Administrador
En otras palabras, un caso de uso es una secuencia de interacciones que se
desarrollarán entre un sistema y sus actores en respuesta a un evento que
inicia un actor principal sobre el propio sistema. Los diagramas de casos de
uso sirven para especificar la comunicación y el comportamiento de un
sistema mediante su interacción con los usuarios y/o otros sistemas.
2.7.1.- Descripción de Casos de Uso
CASOS DE USO Sistema electrónico de control de tiempo
Este diagrama representa la funcionalidad completa de un sistema (o una
clase) mostrando su interacción con los agentes externos. Este diagrama
cumple y satisface todos los requerimientos que tiene a cargo.
Cuadro 2.10 CASOS DE USO
24
Proyecto
2.7.2.- Descripción y referencia a los requerimientos consignados alproyecto
Cuadro 2.11 proyecto
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Proyecto
Actores: Responsable
Función: Permitir el mantenimiento de los proyectos.
Descripción: El Responsable puede registrar proyectos nuevos,
identificando todas sus características.
De Casos: Actividades, CalculoAvanceProyecto.
Cuadro 2.12 actividades
DESCRIPCION DE CASOS DE USO
Nombre: Actividades
Actores: Responsable
Función: Permitir el mantenimiento de las actividades.
Descripción: El responsable puede crear y asociar actividades a las etapas
de cada Proyecto. Puede modificar y eliminar etapas sin movimiento.
De Casos: RRHH, Proyecto.
Actividades
25
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Actividades
Actores: Responsable
Función: Permitir el registro del tiempo invertido en cada actividad de cada
fase.
Descripción: El responsable puede registrar el tiempo en horas utilizado en
el desarrollo de las actividades del proyecto. El usuario debe registrar el
porcentaje de avance de cada actividad, y el sistema debe calcular el avance
ponderado por cada etapa y por el proyecto global.
De Casos: Proyecto, Etapa, Actividades, CalculoAvanceProyecto,
CalculoAvanceEtapa.
Cuadro 2.13 responsables
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Responsable
Actores: Responsable
Función: Permitir el registro y mantenimiento de los códigos de
Administrador de Proyecto o Auditores de sistemas responsables.
Descripción: Permitir el ingreso de nuevos Administrador de Proyecto o
Auditores de sistemas, modificación de su nombre, y eliminación del mismo,
conocer proyectos asignados.
Responsable
26
De Casos: Proyecto, Actividades, Reportes
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: CalculoAvanceProyecto
Actores: Responsable
Función: Efectuar el cálculo del porcentaje de avance por proyecto, basado
en los tiempos.
Descripción: Al registrar los tiempos por actividad, el sistema aplica la
fórmula para este cálculo y actualiza este dato del proyecto a partir de los
avances de las etapas correspondientes.
De Casos: Actividades.
Cuadro 2.14 reportes
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Reportes
Actores: Responsable
Función: Generar Informe de un Proyecto, responsables, Administrador de
Proyecto o Auditores de sistemas y todos sus componentes.
Descripción: Permite obtener un informe para consulta o impresión de uno o
varios proyectos con sus etapas y actividades asociados, su avance y sus
características.
Reportes
27
INGRESO_PROYECTO
MODIFICACION_PROYECTO
ELIMICACION_PROYECTO
PROYECTO
De Casos: Actividades.
Cuadro 2.15 proyectosSUBCASOS DE USO
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Proyectos, Ingreso_Proyectos
Actores: Responsable
Función: Permitir la creación de los Proyectos Nuevos.
Descripción: El Responsable puede registrar Proyectos nuevos, identificando
todas sus características. El sistema debe validar que el código esté
disponible, y que sea válido para ser ingresado.
De Casos: Actividades.
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Proyectos, Modificación_Proyectos
Actores: Responsable
Función: Permitir la modificación de los Proyectos Existentes.
Descripción: El Responsable puede modificar las características de los
Proyectos existentes en el sistema. El sistema debe validar que el código
28
exista, que no esté terminado, y que solo pueda modificar datos como
nombre y duración del proyecto, más no el tiempo reportado, ya que éste es
resultado del registro de movimientos.
De Casos: Actividades.
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Proyectos, Eliminación _ proyectos
Actores: Responsable
Función: Permitir la eliminación de Proyectos Existentes.
Descripción: El Responsable puede Eliminar Proyectos existentes en el
sistema, que no tengan actividades reportadas.
De Casos: Actividades.
Cuadro 2.16 actividades
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Actividades, Ingreso_Actividades
Actores: Responsable
Función: Permitir la creación de nuevas actividades.
INGRESO_ACTIVIDADES
MODIFICACION_ACTIVID
ADES
ELIMICACION_ATIVIDADES
ACTIVIDADES
CalculoAvanceProyecto
CalculoAvanceEtapa
29
Descripción: El responsable puede ingresar nuevas actividades y debe
revisar las asignaciones de personal para evitar el exceso de los recursos.
De Casos: Proyecto, Etapas
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Actividades, Modificación _ Actividades
Actores: Responsable
Función: Permitir la modificación de las actividades Existentes.
Descripción: El Responsable puede modificar las características de las
Actividades existentes en el sistema y que solo pueda modificar actividades
existentes como asignación de datos de personal, más no el tiempo
reportado.
De Casos: Actividades.
Control de Tiempo
DESCRIPCION DE CASOS DE USO
Nombre: Actividades, Eliminación_Actividades
Actores: Responsable
Función: Permitir la eliminación de Actividades Existentes.
Descripción: El Responsable puede Eliminar actividades existentes en el
sistema, que estén finalizadas y reportadas en las actividades mas no las
que aun están en curso.
De Casos: Actividades.
30
Cuadro 2.17responsables
DESCRIPCION DE CASOS DE USO
Nombre: Responsable, Ingreso_Responsable
Actores: Responsable
Función: Permitir el ingreso de sistemas responsables
Descripción: El Responsable puede ingresar actividades existentes en el
sistema.
De Casos: Actividades.
DESCRIPCION DE CASOS DE USO
Nombre: Responsable, Modificacion_Responsable
Actores: Responsable
Función: Permitir modificar el sistemas
Descripción: El Responsable ingresa primero y puede modificar en las
actividades del sistema.
De Casos: Actividades
DESCRIPCION DE CASOS DE USO
Nombre: Responsable, Eliminación_Responsable
Ingreso_Responsables
Modificacion_Responsable
Elimicacion_Responsable
RESPONSABLES
31
Actores: Responsable
Función: Permitir eliminar el sistemas
Descripción: El Responsable elimina todas las actividades del sistema
responsable.
De Casos: Actividades
Cuadro 2.18 reportes
DESCRIPCION DE CASOS DE USO
Nombre: reportes, proyecto_reportes
Actores: reportes
Función: permite reportar los proyectos elaborados por el auditor
Descripción: reportar diariamente el proyecto por el auditor.
De Casos: actividades
DESCRIPCION DE CASOS DE USO
Nombre: reportes, actividades_reportes.
Actores: reportes.
Función: permite reportar las actividades de control.
Descripción: reportar diariamente las actividades de tiempo para el auditor
De Casos: actividades
PROYECTO_REPORTES
ACTIVIDADES _REPORTESREPORTES
RESPONSABLES_REPORTES
32
DESCRIPCION DE CASOS DE USO
Nombre: reportes, responsable_reportes.
Actores: reportes
Función: permite ser los únicos responsables de enviar reportes al auditor.
Descripción: responsabilidad diaria de enviar reportes.
De Casos: actividades.
2.8.- DIAGRAMA DE FLUJO DE DATOS
Los diagramas de flujo de datos son una herramienta de representación del
flujo de información.
Características:
Notación gráfica
Representan el flujo de información
Permiten descomposición en sub-modelos
2.9.- DIAGRAMA DE ESTADO
El diagrama de estado y transiciones engloba todos los mensajes que un
objeto puede enviar o recibir. En un diagrama de estados, un escenario
representa un camino dentro del diagrama. Dado que generalmente el
intervalo entre dos envíos de mensajes representa un estado, se pueden
utilizar los diagramas de secuencia para buscar los diferentes estados de un
objeto.
33
2.9.1.- Diagrama de Estado del Proyecto
El primer proceso es el mantenimiento de Proyecto que nos permite ingresar
nuevos proyectos evaluar proyectos ya ingresados asignarles actividades
2.9.2.-Diagrama de Estado de Actividad Responsable
El primer proceso es el ingreso actividad responsable que permite evaluar
dos alternativas:
El valor del estado del proceso ingreso actividad de responsables es falso
ocurriendo el proceso de No aceptación el siguiente proceso es salida.
En la siguiente alternativa el valor del estado ingreso de actividad
responsable es verdadero presentando el proceso aceptación que presenta
tres alternativas en la primera y la segunda se van a permitir indicar la etapa,
en la primera opción el proceso siguiente es calculo de avance de proyecto y
siguiente proceso es salida la segunda opción es calculo de avance de
etapas el proceso siguiente es salida la tercera opción presenta la actividad a
través del proceso ingreso de cumplimiento de actividades luego vamos a
indicar la actividad el siguiente proceso es calculo de avance de actividad
permite evaluar dos alternativas en ambas se va a poder listar las actividades
en el primer caso ocurre el proceso de eliminación de cumplimiento de
actividades el próximo valor del estado de ingreso actividad de responsables
es salida en el segundo caso ocurre el proceso modificación de cumplimiento
de actividades el siguiente proceso es salida.
34
2.9.3.- Diagrama conceptual Sistema electrónico de control de tiempo.
Cuadro 2.19 Diagrama conceptual Sistema electrónico de control de
tiempo.
2.10.-DIAGRAMA DE SECUENCIAS
Un diagrama de secuencia muestra las interacciones entre objetos
ordenadas en secuencia temporal. Además muestra los objetos que se
encuentran en el escenario y la secuencia de mensajes intercambiados entre
los mismos para llevar a cabo la funcionalidad descrita por el escenario. En
aplicaciones grandes además de los objetos se muestran también los
componentes y casos de uso. El mostrar los componentes tiene sentido ya
que se trata de objetos reutilizables, en cuanto a los casos de uso hay que
recordar que se implementan como objetos cuyo rol es encapsular lo definido
en el caso de uso.
PROYECTOS
RRHH
ACTIVIDADES
RESPONSABLES
REPORTES
35
2.10.1.- Diagrama de interacción de avances
Cuadro 2.20 Diagrama de interacción de avances
2.11.-RIESGOS
Los Riesgos son los principales inconvenientes que se pueden presentar los
mismos que deben ser tomados muy en cuenta para ser solucionados.
RIESGOS IMPACTO SOLUCION
Que no se llene lasexpectativas el Proyectoal tribunal
ALTO Definiciones de estándares deintegración antes de hacerpruebas del sistema.
Proyecto
Actividades
Costoactividad
es
Costoproyec
Selectproyec Captura select()
Lista=capturaDatos ()
e=crearActividades (listaProyecto)
p=CreaProyecto(listaProyecto)
Ccap=CreaCalculoAvanceProyecto(lista)
Ap=CalculoAvanceProyecto(Proyecto)
M=CreaMovimiento(lista)
Grabamovimiento(lista,ca,e,p)
ActualizaProyecto(ap)
IngreseUsuario
36
Que el proyecto no seculmine en el tiempoestablecido
MEDIO Establecer prorrogas de tiempopara establecer lo faltante
Que el Hardwarepresente averías a últimomomento
MEDIO Realizar respaldo de versionesnecesario del sistema para laobtención rápida de la información
Se afecte con cambios ala base de datos aultimo momento
ALTO Establecer políticas de entrega deinformaron del sistema yseguridades de la base de datos
Que existan nuevosrequerimientos aultimo momento
ALTO Definir hasta donde son losalcances y si hay masrequerimientos que haya unproducto con una nuevaversión
Cuadro 2.21 Riesgos (ampliado en Anexo 5)
2.11.1.- Efecto:
Existen 3 tipos: TOLERABLE, CATASTRÓFICO, MEDIO
2.11.2.- DETALLE DE RIESGOS PREDECIBLES
Necesidad de adquirir Licencias Corrientes o adicionales requeridas
como la del Control Spread.
Falta de Respaldos de los módulos ya codificados
Que los usuarios no tengan los conocimientos básicos para manejar
sistemas en general, lo cual dificulta el tiempo de enseñanza del
mismo
Usuarios se resistan a utilizar el software
Mala interpretación de alcances y requisitos pedidos en la tesis.
Modificaciones en etapa final del desarrollo
37
Robo de Equipos de Desarrollo
Que los equipos disponibles no estén en óptimas condiciones de
trabajo.
Daño imprevisto de equipos
Enfermedad o Problemas de grupo
Indisponibilidad de reuniones del grupo
Redefinición Constante de Procesos que se cumplen en cada
actividad del cronograma
Mala Estimación del tiempo para la Duración del desarrollo
Expiración del tiempo límite de elaboración del software
Problemas de personalidades del grupo de desarrollo
Resultados obtenidos no satisfacen todas las necesidades y
expectativas del tutor y/o tribunal
Tener que realizar cambios en los diálogos de entrada, diseño de la
base de datos, acceso a la base de datos, objetos para adaptarlos a
una nueva estructura.
2.11.3.- Definiciones De Riesgos
Necesidad de adquirir Licencias Corrientes o adicionales requeridas como la
del Control Spread
Por su facilidad en el uso de controles (objetos) ya definidos, se escogió
como plataforma de desarrollo Visual Basic 6.0 (tal es el caso de spread
desarrollado por una empresa ajena a la Microsoft) por lo cual será necesario
en algunos casos pagar un valor adicional al utilizar estos controles (Objetos
no comunes) como parte del desarrollo, lo cual podría aumentar el costo de
producto final.
38
Orientado a que el proyecto manejará controles gráficos no comunes puede
existir en el transcurso de investigación nos encontremos con controles ya
diseñados que faciliten el desarrollo y optimicen el tiempo estipulado. Como
ejemplo puede existir un control que maneje (Gráficas de línea de tiempo).
2.11.4.- Mala Estimación del tiempo para la Duración del desarrollo
Adaptar el cronograma al tiempo disponible “como máximo-duración del
seminario” cada vez que se presente una falencia o riesgo no predecido en la
matriz de análisis de riesgo.
Además, puede ser que por falta de experiencia en gestión de proyectos de
un software se estimen mal los tiempos a cada actividad del cronograma, y
tomemos en cuenta muy aparte de los buenos conocimientos o buenas
prácticas que tengamos conocimiento sobre la gestión, la experiencia de
proyectos anteriores en semestres es un buen punto a favor del equipo de
desarrollo, por lo tanto es un riesgo con un impacto muy alto si llega a ocurrir
si no se disponen los controles adecuados.
2.11.5.-Indisponibilidad de reuniones del grupo y Enfermedad o
Problemas de grupo
Este riesgo analiza las diferentes razones por lo cual el grupo no se pueda
reunir para seguir con lo estipulado en el cronograma. Entre estos motivos
pueden ser familiares, enfermedad, por trabajo, viajes urgentes, no contar
con implementos necesarios, integrantes no tenga claro los trabajos
asignados.
39
2.11.6.- Que los equipos disponibles no estén en óptimas condiciones
de trabajo
Se refiere a la inexistencia de recursos de Hardware y software no este
adecuado para ejecutar la aplicación que se esta desarrollando, para así
cumplir los requerimientos ya definidos.
2.11.7.- Mala interpretación de alcances y requisitos pedidos en la tesis
Este riesgo es de mucho cuidado ya que nos puede llevar al fracaso total del
proyecto, porque retrasaría enormemente el cronograma de trabajos del
mismo.
2.11.8.- Usuarios se resistan a utilizar el software
Actualmente se ven muchos casos que los usuarios finales de productos de
software se resisten a utilizarlos tales como: No están enseñados a manejar
ese tipo de interfaz, nunca han utilizado un software para cumplir sus
actividades o tienen miedo al cambio por temor a ser desplazados de sus
puestos de trabajo. Un caso puntual es que aún en nuestros días, existen
auditores de sistemas que aún utilizan largos papeles para detallar sus
planes.
2.11.9.- Que los usuarios no tengan los conocimientos básicos para
manejar sistemas GUI, lo cual dificulta el tiempo de enseñanza del
mismo
Este riesgo se alinea con el anterior porque existirán usuarios que nunca han
cogido una computadora, tal es el caso de quienes cumplen sus tareas aún
40
en papel. Esto conllevaría mas tiempo de capacitación y eso representaría
costos. Es recomendable en estos casos que este usuario sea tomado muy
en cuenta al momento de diseño de interfaces participando muy activamente
con recomendaciones.
2.11.10.- Daño imprevisto de equipos
Los daños más importantes que se pueden presentar es que el disco duro se
averíe, memoria Ram, mainboard o procesador y no se disponga de
reemplazos. El peor de los casos sería sectores dañados del disco duro o
avería total si no se dispone de respaldos en otro medio
2.11.11.- Falta de Respaldos de los módulos ya codificados
Al hablar de Backups nos referimos a respaldos de módulos que se
encuentren avanzados o talvez quemados (implementados para etapa de
prueba) y podrían almacenarse en medios extraíble como flash memory,
Disco duro externo o un CD_ROM para poder llevarlos con reuniones con el
resto de grupo de desarrollo, para revisiones de calidad o de avances
(refiriéndonos a que los lugares de desarrollo pueden ser en 2 o mas lugares
distintos y lejanos como casa y universidad)
2.11.12.- Modificaciones en etapa final del ciclo
Suele suceder que el usuario a última hora se le presentó un requerimiento
que puede ser mas útil implementarlo en algún modulo y esto cambie
totalmente la estructura del proyecto. Para esto es necesario llevar un buen
levantamiento de información para definir bien objetivos y sobretodo
41
alcances. Se aplicará como buena práctica hacer firmar documentos de
aprobación de etapas del proyecto.
2.11.13.- Robo de Equipos de Desarrollo
Lo peor que puede suceder en el desarrollo de un proyecto es que los
equipos de dañen o sean robados parcial o totalmente. Por eso es necesario
tener los respaldos en un lugar ajeno y lejano a donde se desarrolla la
aplicación.
2.11.14.- Redefinición Constante de Procesos que se cumplen en cada
actividad del cronograma
Debido a la aplicación del Modelo de Desarrollo espiral es un riesgo el hecho
de que si no se establecen controles de hitos mediante documentación, el
usuario final pedirá cambios constantes sobretodo en la interfaz o solicitará
mayores requerimientos.
Si no se tienen controles definidos para aquello esto retrasará el proyecto y a
la vez aumentará costos del mismo.
2.11.15.- Expiración del tiempo límite de elaboración del software
Este riesgo se complementa con el anterior debido a ser muy crítico si no se
definen controles para cambios constantes solicitados por usuarios. Lo mas
recomendable sería que exista una participación activa en el diseño de
interfaces por parte de usuario experimentados que tengan mas dependencia
del software. La fecha máxima según el cronograma sería 27 de Junio
42
2.11.16.- Problemas de personalidades del grupo de desarrollo
Es un riesgo que ocurre en muchos casos cuando no se tienen definidos los
papeles y funciones dentro del desarrollo del software. Es tolerable siempre y
cuando se lleguen a acuerdos mediante la correcta comunicación entres los
desarrolladores siguiendo estándares de programación.
2.11.17.- Resultados obtenidos no satisfacen todas las necesidades y
expectativas del tutor y/o tribunal
Este riesgo es muy común ya que según las tesis predecesoras a la nuestra.
Compañeros que ya se han graduado comentan que siempre a última hora
suelen ocurrir cambios porque el usuario no está de acuerdo con interfaces o
por no cumplir algún requerimiento que surgió en la etapa de
implementación.
2.11.18.- Tener que realizar cambios en los diálogos de entrada, diseño
de la base de datos, acceso a la base de datos, objetos para adaptarlos
a una nueva estructura
Es un riesgo manejable siempre y cuando se definan bien la arquitectura que
se aplico sobretodo por eso se recomienda utilizar 3 capas como mínimo, las
cuales son Interfaz, Reglas del Negocio y Base de Datos siendo la última
muchas veces por seguridad recomendable dividirla en Capa de Acceso a
datos y De Encriptación sobretodo cuando se aplica en Proyectos de red.
43
2.12.- SEGURIDAD EN LOS ACCESOS
El administrador podrá utilizar la aplicación si este ha iniciado sesión
previamente en el sistema, caso contrario no puede ingresar. Además el
administrador puede asignar recursos a su criterio.
Entre las políticas de seguridad:
Login y password
Encriptación
Tablas que guarden pistas Auditoria
Crear niveles de usuarios(administradores y auditores)
2.13.- CONTROLES DE ENTRADA, PROCESO Y
MODIFICACIÓN
2.13.1.-Entradas
Creación de Proyecto
Creación de Usuarios del sistema
Ingreso de Recurso Humano
Asignación de Recursos
Ingreso Proyecto
Mantenimiento de Usuario
Asignación de Roles para Usuario
Ingreso Cronograma Ideal y Real con fecha Inicio y Fin
Consultas o Comparación del Estado del Proyecto
Ingreso Avance Proyecto
Tipo de control del Riesgo
44
2.13.2.- Consultas
Búsqueda de Recurso Humano por Filtro
Titulo
Experiencia
Dirección Domiciliaria
Que tipo de alternativas va a ver un auditor especifico
Consultas de tipos de Usuario
Búsqueda Proyecto
Búsqueda de Recurso Humano por perfil
Reportes de Utilización de Recursos
2.13.3.- Archivos
Histórico de Reporte
Problemas suscitados y soluciones dadas(Controles)
Histórico Seguimiento
Fecha Actual Proyecto
Nombre auditor
Recurso Humano / Participante Proyecto
Cliente
Nombre Proyecto
Costo Estimado Proyecto
Costo Actual del Proyecto
45
Histórico Terminación Proyecto
Tiempo Duración Proyecto
Participante Proyecto
Costo Estimado Proyecto
Costos Reales del Proyecto
Nombre del Administrador
Fecha Inicial del Proyecto
Fecha Final del Proyecto
Cliente o empresa
Logs de seguimiento de transacciones de Usuario
2.13.4.- Salidas
Comparación Estimada y real del Proyecto
Proyectos
2.13.5.- Interfaces
Creación de Proyecto
Inserción Recursos
Cuentas Usuario
Cuentas Administrativas
Creación del Cronograma Estimado
Asignación de Recurso por Actividad
2.14.- ANÁLISIS DE FACTIBILIDAD DE COSTOS
Según el análisis realizado este proyecto es factible, por que sus costos
están contraídos dentro de los gastos del proyecto
46
Cuadro 2.22 Análisis De Factibilidad De Costos
Cantidad EquiposValor
Valor TotalUnitario
1 Licencia Visual Basic 6.0 $ 4981 Computadores Pentium IV, 1Gb MB RAM
(con periféricos incluidos) HD 80GB, Veloc.2.4 GHZ
$ 800
1 licencia Windows XP $ 1.4001 Licencia de Office 2003 (Para access ,word y
excel)$ 109.99
Total $ 2.807.99
46
CAPITULO 3DISEÑO
3.1.- DIAGRAMA DE CLASES
Un diagrama de clases es un tipo de
diagrama estático que describe la
estructura de un sistema mostrando sus
clases, atributos y las relaciones entre
ellos. Los diagramas de clases son
utilizados durante el proceso de análisis
y diseño de los sistemas,
47
donde se crea el diseño conceptual de la información que se manejará en
el sistema, y los componentes que se encargaran del funcionamiento y la
relación entre uno y otro.
3.2. PROPIEDADES
Llamados atributos o características, a los valores que corresponden a un
objeto, como color, material, cantidad, ubicación. Y se conoce como la
información detallada del objeto.
3.3. OPERACIONES
Son actividades o verbos que se pueden realizar para este objeto ejemplo
abrir, cerrar, buscar, cancelar, acreditar, cargar. De la misma manera que el
nombre de un atributo, el nombre de una operación se escribe con
minúsculas si consta de una sola palabra. Si el nombre contiene más de una
palabra, cada palabra será unida a la anterior y comenzará con una letra
mayúscula, a excepción de la primera palabra que comenzará en minúscula.
3.4. INTERFAZ
Es un conjunto de operaciones que permiten a un objeto comportarse de
cierta manera, por lo que define los requerimientos mínimos del objeto.
48
3.5. HERENCIA
Es la reutilización de un objeto padre ya definido para poder extender la
funcionalidad en un objeto hijo.
Los objetos hijos heredan todas las operaciones o propiedades de un objeto
padre.
3.6. METODOLOGÍA
Se aplicarán técnicas de Ingeniería de software cumpliendo estándares de
desarrollo de software siguiendo la metodología UML (Lenguaje de Modelado
Unificado) es una especificación de notación orientada a objetos, el cual se
compone de diferentes diagramas, los cuales representan las diferentes
etapas del desarrollo del proyecto:
Análisis, diseño, desarrollo, pruebas e implementación.
3.6.1. Análisis/Diseño se muestran tanto el modelo de análisis/diseño
(diagrama de clases) como el modelo de datos (modelo entidad - relación),
desde los cuales se puede consultar la especificación de los métodos de
clase más relevantes o las especificaciones de atributos.
3.6.2. Implementación se muestran los prototipos de interfaces de usuario
de la aplicación, tanto para el sistema de gestión de ventas como para el
sistema de gestión.
49
3.6.3. Pruebas se encuentran los enlaces a los documentos word de
especificación de casos de pruebas funcionales consultables mediante el
navegador o bien descargables mediante un enlace en formato zip. Se
muestran únicamente los casos de pruebas generados para los casos de uso
incorporados hasta la segunda iteración de la fase de construcción.
3.7. MODELO DE DESARROLLO
En esta parte del proyecto para alcanzar la solución planteada hemos
decidido “según comparaciones de diferentes modelos existentes” utilizar el
MODELO DE DESARROLLO EN ESPIRAL, debido a que al combinar este
modelo nos ayudará a hacer cambios o modificaciones necesarias en
cualquier etapa o ciclo siguiendo una secuencia mediante hitos de
aprobación con documentación en cada etapa.
Teóricamente se conoce que en el modelo lineal secuencial surgieren los
enfoques sistemáticos, secuenciales para el desarrollo de software que
comienza en un nivel de sistema de información.
CUADRO 3.1
50
El desarrollo en espiral esta formado por ciclos divididos en cuatro fases
(Según el Gráfico): Análisis de requisitos, diseño e implementación, pruebas
y planificación del ciclo de desarrollo
3.8. ARQUITECTURA DEL SISTEMA
El Sistema se concentra en una arquitectura de tres capas: Interfaz de
usuario (capa de presentación), reglas del negocio (capa del negocio),
acceso a datos (capa de datos) a continuación se detalla la estructura de
cada una (VER cuadro 3.2):
Cuadro 3.2
3.8.1. 1era Capa: interfaz de usuario.
Se diseñarán Ventanas las cuales va a interactuar el usuario final con
nuestro aplicativo las cuales serán diseñadas de manera mas amigables
utilizando objetos de VISUAL BASIC.6.0.
51
3.8.2. 2da Capa: Reglas del Negocio
En esta capa aloja la aplicación, la misma que hará petición a la base de
datos.
Se crearan módulos de clase que contengan todos métodos o funciones
miembros que trabajen en la interacción de la base datos para manejo de
estándares de programación orientada a objetos que utilice el programa
Se crearán los módulos donde se almacenarán la definición de todas los
procedimientos y funciones del mismo También usaremos el servidor
ACCESS.
3.8.3. 3era Capa: Base de Datos
Manejará tanto el Acceso a Datos como Origen de datos
3.8.3.1. Acceso a Datos
Este acceso de datos se realiza las siguientes tareas: (open B/D, close B/D,
select, insert, update, delete). Y
3.8.3.2. Origen de Datos
Procesará la petición para devolver la respuesta (consulta según reportes
solicitados y actualización de registros) que la presenta al usuario. Para esto
usaremos procedimientos almacenados en la BD.
3.9. DIAGRAMAS DE FLUJO DE VENTANAS
El diagrama de Flujo de Ventanas presenta la interacción directa con objetos
que aparecen en la interfaz
52
3.9.1. Menú Principal
En el menú principal del sistema de control de proceso de auditoria aparecen
las siguientes opciones (Ver cuadro 3.3).
Cuadro 3.3
3.9.1.1. Mantenimiento
En este Menú el usuario tendrá disponible las siguientes opciones:
Mantenimiento de Usuarios, Mantenimiento de Proyectos, recursos y
proveedores.
Esta parte presentamos el mantenimiento de cada uno de los usuarios con
sus respectivos proyectos para este sistema de control (ver cuadro 3.4).
Cuadro 3.4
53
3.9.1.2. Movimiento.
Esta Opción de este menú puede ser accesada combinando directamente
como muestra en el cuadro Permite: Crear, Modificar, Eliminar actividades de
un proyecto
Esta parte del menú tenemos las siguientes opciones como: definición y
control de tiempo y la modificación de tiempo. (Ver cuadro 3.5)
Cuadro 3.5
3.9.1.3. Reportes.
Esta Opción de este menú Permite:
Mostrar tiempo de proyecto y actividades, control de costos, reporte
generales del proyecto, actividades por auditor, proyecto por auditor,
actividades por proyecto y los rastros de auditoria.( ver cuadro 3.6)
54
Cuadro 3.6
3.9.1.4. Usuario.
En esta parte nos permite realizar dos opciones ya sea cambiar de
contraseña al proyecto y cerrar la sesión del proyecto realizado (ver cuadro
3.7)
Cuadro 3.7
55
3.9.1.5. Salir.
En esta y ultima parte nos Permite salir totalmente del sistema
Cuadro 3.8
56
CAPITULO 4
CODIFICACIÓN4.1 BASE DE DATOS
En la parte de desarrollo de Base
de Datos se implementaron los
procedimientos almacenados
(paqueterías) que son ejecutados
desde el Administrador, para
realizar la extracción de los datos
de la base.
57
4.2. TABLA: TBLACTIVIDADESPropiedadesDateCreated: 20/07/2008 17:04:15 DefaultView: Hoja de datos
GUID: {guid {90793292-81F9-4494- LastUpdated:
01/09/2008 18:40:03
8EAA-42C7A1DC6298}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 11
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
AcCod Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {A44DE225-5B10-4EA4-A093-
35119DB06DB8}}
OrdinalPosition: 0
Required: Falso
SourceField: AcCod
SourceTable: TblActividades
AcPro Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
58
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {804139DE-CF66-4CA5-B0A3-381C90B0AE8F}}
OrdinalPosition: 1
Required: Falso
SourceField: AcPro
SourceTable: TblActividades
ACOrden Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {5014210C-1361-4834-A7BF-0AF92D50743B}}
OrdinalPosition: 2
Required: Falso
SourceField: ACOrden
SourceTable: TblActividades
ACDescripcion Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
59
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {84CF1D80-AE67-4808-ACE5-49EC9522D572}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
SourceField: ACDescripcion
SourceTable: TblActividades
UnicodeCompression: Verdadero
ACCodRes Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {C399A72A-8DFB-4BEA-827A-148ED5F2F6F3}}
OrdinalPosition: 4
Required: Falso
SourceField: ACCodRes
SourceTable: TblActividades
AcFecIni Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
60
DataUpdatable: Falso
GUID: {guid {79607E55-2F06-4E03-A7BB-085F7CAA989C}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 5
Required: Falso
SourceField: AcFecIni
SourceTable: TblActividades
AcFecFin Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {6B988942-8CE0-4BA0-A739-737654587D04}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: AcFecFin
SourceTable: TblActividades
AcHoras Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
61
DisplayControl: Cuadro de texto
GUID: {guid {EBF186B5-D810-46A1-8C63-06E73126E979}}
OrdinalPosition: 7
Required: Falso
SourceField: AcHoras
SourceTable: TblActividades
AcEstado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
Description: A=Activa I=Iniciada F=FInalizada E=Eliminada
DisplayControl: Cuadro de texto
GUID: {guid {59A9CA1A-2396-47D8-AA12-57FB653920DF}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 8
Required: Falso
SourceField: AcEstado
SourceTable: TblActividades
UnicodeCompression: Verdadero
AcUsIngreso Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
62
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {3BAE8F13-0339-4CBD-8AD9-A77A6CC6F52C}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 9
Required: Falso
SourceField: AcUsIngreso
SourceTable: TblActividades
UnicodeCompression: Verdadero
AcFecIngreso Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {2BC88B45-A0ED-448F-BAC8-6C4415D3FB7E}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 10
Required: Falso
SourceField: AcFecIngreso
SourceTable: TblActividades
UnicodeCompression: Verdadero
AcUsModi Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
63
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {0D71B29F-6011-4021-96EE-9536905A8711}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 11
Required: Falso
SourceField: AcUsModi
SourceTable: TblActividades
UnicodeCompression: Verdadero
AcFecModi Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {11CF1D53-8DB9-454D-8B0F-45915B1681A7}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 12
Required: Falso
SourceField: AcFecModi
SourceTable: TblActividades
UnicodeCompression: Verdadero
AcDias Entero 2
AllowZeroLength: Falso
64
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {41850F67-6072-4F9C-91F7-548D76900190}}
OrdinalPosition: 13
Required: Falso
SourceField: AcDias
SourceTable: TblActividades
AcPorcentaje Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {0598D307-CF5B-4558-92BE-163F77FB9C3D}}
OrdinalPosition: 14
Required: Falso
SourceField: AcPorcentaje
SourceTable: TblActividades
AcFeFinReal Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
65
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {68BD7D15-0FB5-4446-94B9-75CDADC4D590}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 15
Required: Falso
SourceField: AcFeFinReal
SourceTable: TblActividades
AcDiasReal Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {3A9F1F44-0E50-4D42-A83E-34752B0D530E}}
OrdinalPosition: 16
Required: Falso
SourceField: AcDiasReal
SourceTable: TblActividades
AcHorasTotReal Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
66
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {B4B73BB7-9C84-4B3B-8D42-682782E875D3}}
OrdinalPosition: 17
Required: Falso
SourceField: AcHorasTotReal
SourceTable: TblActividades
Relaciones
TblProyectosTblActividades
TblProyectos TblActividades
PRCodigo AcPro
Attributes: No forzado
RelationshipType: Uno a varios
TblUsuariosTblActividades
TblUsuarios
UsCodigo
Attributes: No forzado
RelationshipType: Indeterminado
Índices de tabla
Nombre Número de campos
PrimaryKey 2
Clustered: Falso
DistinctCount: 23
Foreign: Falso
IgnoreNulls: Falso
TblActividades
ACCodRes
67
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
AcCod Ascendente
AcPro Ascendente
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer Definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer Definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer Definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
4.3. TABLA: TBLAREAS
PropiedadesDateCreated: 27/07/2008 12:38:54 DefaultView: Hoja de datos
GUID: {guid {913F6F17-5185-4765- LastUpdated: 27/07/2008 12:52:53
8A3A-D28DBCD07239}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 11
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
ArCod Entero largo 4
AllowZeroLength: Falso
68
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: 1
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {FF5D62F4-E90D-4122-AFF5-3AF880902923}}
OrdinalPosition: 0
Required: Falso
SourceField: ArCod
SourceTable: TblAreas
ArDescrpicion Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: 3825
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {2CCA5F13-C247-44A9-9881-18D92F7B5CF6}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: Falso
SourceField: ArDescrpicion
SourceTable: TblAreas
UnicodeCompression: Verdadero
69
Relaciones
TblUsuariosAreasTblAreas
TblUsuariosAreas
CodArea
Attributes: No forzado
RelationshipType: Indeterminado
Índices de tabla
Nombre Número de campos
PrimaryKey 1
Clustered: Falso
DistinctCount: 11
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
ArCod Ascendente
Permisos de usuario
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer Definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
TblAreas
ArCod
70
actualizar datos, Eliminar datos
4.4. TABLA: TBLEVENTOS
PropiedadesDateCreated: 20/07/2008 15:18:55 DefaultView: Hoja de datos
GUID: {guid {3D305C5E-643A- LastUpdated: 20/07/2008 15:35:15
4D92-BF72-
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 221
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
IdEvento Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: 1
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {1E08DE1A-1EED-4A42-A9D4-5647CDF9DA7A}}
OrdinalPosition: 0
Required: Falso
SourceField: IdEvento
SourceTable: TblEventos
IdUsuario Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
71
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {723077C7-7F3B-4F08-A284-E806D2FCC142}}
OrdinalPosition: 1
Required: Falso
SourceField: IdUsuario
SourceTable: TblEventos
Fecha Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: 2850
DataUpdatable: Falso
GUID: {guid {A84ABDB7-D447-4C68-BEB2-9B8D688F4220}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: Fecha
SourceTable: TblEventos
Descripcion Texto 100
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
72
ColumnOrder: Predeterminado
ColumnWidth: 3570
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {8292FB66-99ED-4084-9A74-5DA0970646B1}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
SourceField: Descripcion
SourceTable: TblEventos
UnicodeCompression: Verdadero
Índices de tabla
Nombre Número de campos
IdEvento 1
Clustered: Falso
DistinctCount: 329
Foreign: Falso
IgnoreNulls: Falso
Name: IdEvento
Primary: Falso
Required: Falso
Unique: Falso
Campos:
IdEvento Ascendente
IdUsuario 1
Clustered: Falso
DistinctCount: 5
Foreign: Falso
IgnoreNulls: Falso
Name: IdUsuario
Primary: Falso
73
Required: Falso
Unique: Falso
Campos:
IdUsuario Ascendente
PrimaryKey 1
Clustered: Falso
DistinctCount: 329
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
IdEvento Ascendente
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
74
4.5. TABLA: TBLHORASACTIVIDADES
PropiedadesDateCreated: 08/09/2008 16:57:44 DefaultView: Hoja de datos
GUID: {guid {D3C5C177-275F- LastUpdated: 08/09/2008 17:02:31
45A3-B269-18BA226834BA}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 14
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
CodProyecto Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {BF936A31-78B7-4EEF-BDBB-1EAC65316342}}
OrdinalPosition: 0
Required: Falso
SourceField: CodProyecto
SourceTable: TblHorasActividades
CodActividad Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
75
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {BB442F7A-00A6-4F20-95C2-4F7C19F3AD94}}
OrdinalPosition: 1
Required: Falso
SourceField: CodActividad
SourceTable: TblHorasActividades
Fecha Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {123B25B6-C7C9-42C9-A30A-ECB1FDA3DC0C}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: Fecha
SourceTable: TblHorasActividades
Horas Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
76
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {9A982BCF-C246-47AA-88ED-1A8E04020CA0}}
OrdinalPosition: 3
Required: Falso
SourceField: Horas
SourceTable: TblHorasActividades
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
4.6. TABLA: TBLPROVEEDOR
PropiedadesDateCreated: 17/07/2008 19:28:19 DefaultView: Hoja de datos
GUID: {guid {13241C65-9628-41D9- LastUpdated:
29/07/2008 12:15:42
B2CF-45429D591FA6}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 7
Updatable: Verdadero
77
Columnas
Nombre Tipo Tamaño
POCod Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {136995CB-81E5-43EE-A1CB-00F2A8BB0C05}}
OrdinalPosition: 0
Required: Falso
SourceField: POCod
SourceTable: TblProveedor
PONombre Texto 100
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {670784BB-F715-4BD5-9E15-B4C9F5601EB8}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: Falso
SourceField: PONombre
SourceTable: TblProveedor
78
UnicodeCompression: Verdadero
PORuc Texto 15
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {19E260C5-D864-4E43-86D6-5346F5318D26}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: PORuc
SourceTable: TblProveedor
UnicodeCompression: Verdadero
PODireccion Texto 100
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {971B09A7-5D1E-46A6-AE3E-7CDC517E5DD8}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
79
SourceField: PODireccion
SourceTable: TblProveedor
UnicodeCompression: Verdadero
POTelefono Texto 15
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {5D90076C-F7FC-4991-9D93-610888297F68}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: Falso
SourceField: POTelefono
SourceTable: TblProveedor
UnicodeCompression: Verdadero
POContacto Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {3421A34B-0D9A-46E5-A543-C86E6E4BA1B6}}
IMEMode: 0
IMESentenceMode: 3
80
OrdinalPosition: 5
Required: Falso
SourceField: POContacto
SourceTable: TblProveedor
UnicodeCompression: Verdadero
POmail Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {50CEF131-A068-480B-B900-A9D5CF5FFFB4}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: POmail
SourceTable: TblProveedor
UnicodeCompression: Verdadero
POFechaIng Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {4C92A0A5-56BD-4317-B6A2-CEFF54504647}}
IMEMode: 0
IMESentenceMode: 3
81
OrdinalPosition: 7
Required: Falso
SourceField: POFechaIng
SourceTable: TblProveedor
POUSIngreso Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {38743147-7317-458D-88A3-C352B53FDDE6}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 8
Required: Falso
SourceField: POUSIngreso
SourceTable: TblProveedor
UnicodeCompression: Verdadero
Índices de tabla
Nombre Número de campos
PrimaryKey 1
Clustered: Falso
DistinctCount: 8
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
82
Unique: Verdadero
Campos:
PORuc Ascendente
Permisos de usuario
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos.
4.7. TABLA: TBLPROYECTOS
PropiedadesDateCreated: 17/07/2008 17:29:05 DefaultView: Hoja de datos
GUID: {guid {6199606D-B1F9-4250- LastUpdated: 03/09/2008 17:21:09
BC15-3B9EEAA2EF46}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 6
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
PRCodigo Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
83
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {E83B70D2-197F-485F-AD2B-82E08398FD03}}
OrdinalPosition: 0
Required: Falso
SourceField: PRCodigo
SourceTable: TblProyectos
PRNombre Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: 2235
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {31F2066B-9229-4151-8DE4-07E84BD2B966}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: Falso
SourceField: PRNombre
SourceTable: TblProyectos
UnicodeCompression: Verdadero
PRDescripcion Texto 100
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
84
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {776B91DE-6847-4C2F-8365-2C43CD5326C2}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: PRDescripcion
SourceTable: TblProyectos
UnicodeCompression: Verdadero
PRFechaInicio Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {04A71982-97D3-4090-AE87-A0BE25100C7C}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
SourceField: PRFechaInicio
SourceTable: TblProyectos
PRIdResponsable Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
85
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {63FC101B-907F-4D94-BE52-4959FCF5A909}}
OrdinalPosition: 4
Required: Falso
SourceField: PRIdResponsable
SourceTable: TblProyectos
PRFechaCreacion Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {B5F80199-E9D8-463A-9A24-852E77B5EA36}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 5
Required: Falso
SourceField: PRFechaCreacion
SourceTable: TblProyectos
PRUsCreacion Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
86
DisplayControl: Cuadro de texto
GUID: {guid {2FCB9FBE-8383-4439-B647-3C8FF8ABD256}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: PRUsCreacion
SourceTable: TblProyectos
UnicodeCompression: Verdadero
PRFechaModi Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {D5A94375-700E-42AA-8F67-6E6567B9508D}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 7
Required: Falso
SourceField: PRFechaModi
SourceTable: TblProyectos
PRUsModi Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
87
GUID: {guid {CDF0ADD1-5997-4158-B92D-35C258E1D916}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 8
Required: Falso
SourceField: PRUsModi
SourceTable: TblProyectos
UnicodeCompression: Falso
PREstado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {0666BAD8-97B6-42DC-9C15-90E998AAA192}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 9
Required: Falso
SourceField: PREstado
SourceTable: TblProyectos
UnicodeCompression: Verdadero
PREspecializacion Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
88
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {7DA640A4-9DE6-4A8C-A272-34CAE4F6849E}}
OrdinalPosition: 10
Required: Falso
SourceField: PREspecializacion
SourceTable: TblProyectos
PRFechaFin Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {FBF2E2B1-2524-48C1-BB04-7C54F3FD1941}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 11
Required: Falso
SourceField: PRFechaFin
SourceTable: TblProyectos
PRPorcentaje Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
89
GUID: {guid {F0FCE927-D7CC-463C-8E4C-2A98AB890FA7}}
OrdinalPosition: 12
Required: Falso
SourceField: PRPorcentaje
SourceTable: TblProyectos
Relaciones
TblProyectosTblActividades
TblProyectos
PRCodigo
Attributes: No forzado
RelationshipType: Uno a varios
TblUsuariosTblProyectos
Attributes: No forzado
RelationshipType: Uno a varios
Índices de tabla
Nombre Número de campos
PRId 1
Clustered: Falso
DistinctCount: 19
Foreign: Falso
IgnoreNulls: Falso
TblActividades
AcPro
TblProyectos
PRIdResponsable
TblUsuarios
UsLogin
90
Name: PRId
Primary: Falso
Required: Falso
Unique: Falso
Campos:
PRCodigo Ascendente
PrimaryKey 1
Clustered: Falso
DistinctCount: 19
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
PRCodigo Ascendente
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos.
91
4.8. TABLA: TBLRECURSOACTIVIDAD
PropiedadesDateCreated: 13/08/2008 17:28:09 DefaultView: Hoja de datos
GUID: {guid {5591B9A9-FBE7-4478- LastUpdated: 14/08/2008 12:49:39
BFEF-A9FA340314CF}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 15
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
CodPro Entero largo 4
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {DA0E2F2A-8F99-46FC-9FE0-AF6BB0AF7260}}
OrdinalPosition: 0
Required: Falso
SourceField: CodPro
SourceTable: TblRecursoActividad
CodActividad Entero largo 4
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
92
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {82A89273-C559-4040-A317-4B3FF5A77A57}}
OrdinalPosition: 1
Required: Falso
SourceField: CodActividad
SourceTable: TblRecursoActividad
CodRecurso Entero largo 4
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {3ABF6C53-1E4A-4598-B699-4A2012ED6672}}
OrdinalPosition: 2
Required: Falso
SourceField: CodRecurso
SourceTable: TblRecursoActividad
Cantidad Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
93
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {C96DB086-07D4-4CED-8887-0689852CF003}}
OrdinalPosition: 3
Required: Falso
SourceField: Cantidad
SourceTable: TblRecursoActividad
Estado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {35900B69-8B47-4F41-BE4C-6F567C2D6B62}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: Falso
SourceField: Estado
SourceTable: TblRecursoActividad
UnicodeCompression: Verdadero
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
94
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos.
4.9. TABLA: TBLRECURSOS
PropiedadesDateCreated: 18/07/2008 11:55:35 DefaultView: Hoja de datos
GUID: {guid {D07F1D98-D8D7- LastUpdated: 13/08/2008 19:14:32
40D9-82CF-3D15084B9E73}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 5
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
MaCod Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {B968238E-EE51-4651-94B7-3FD8D5C05DED}}
OrdinalPosition: 0
Required: Falso
SourceField: MaCod
SourceTable: TblRecursos
MaNombre Texto 50
95
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {4CCABD56-93ED-481A-BA37-31459EB848BE}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: Falso
SourceField: MaNombre
SourceTable: TblRecursos
UnicodeCompression: Verdadero
MaCodProve Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {7DE0A4B1-891A-44B1-BDE4-61A9FD8E96B7}}
OrdinalPosition: 2
Required: Falso
SourceField: MaCodProve
SourceTable: TblRecursos
MaStock Doble 8
96
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {3AAC0D7A-ACF5-4077-92EB-8EF94EDA9A38}}
OrdinalPosition: 3
Required: Falso
SourceField: MaStock
SourceTable: TblRecursos
MaUsIngreso Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {03ED2484-B218-4FFF-A5E6-06AE9FD05413}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: Falso
SourceField: MaUsIngreso
SourceTable: TblRecursos
UnicodeCompression: Verdadero
MaFeIngreso Fecha/Hora 8
AllowZeroLength: Falso
97
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {E34825FC-2E3C-4840-BB65-FDA33D669175}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 5
Required: Falso
SourceField: MaFeIngreso
SourceTable: TblRecursos
MaUsModi Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {0C04CB79-7902-4244-B276-B5767947DE6B}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: MaUsModi
SourceTable: TblRecursos
UnicodeCompression: Verdadero
MaFeModi Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
98
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {07FE11D9-BE1E-448B-9ED7-A6509CE3BBDF}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 7
Required: Falso
SourceField: MaFeModi
SourceTable: TblRecursos
PU Doble 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {F74F3A06-2CEC-47E8-AB92-D8CACC07199D}}
OrdinalPosition: 8
Required: Falso
SourceField: PU
SourceTable: TblRecursos
Descripcion Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
99
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {3A7A59FB-FB22-4627-AAE6-ACB5428F187B}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 9
Required: Falso
SourceField: Descripcion
SourceTable: TblRecursos
UnicodeCompression: Verdadero
Disponible Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {1E29D360-C9A5-4EAB-B634-97F5039C59B6}}
OrdinalPosition: 10
Required: Falso
SourceField: Disponible
SourceTable: TblRecursos
Índices de tabla
Nombre Número de campos
PrimaryKey 1
Clustered: Falso
DistinctCount: 15
100
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
MaCod Ascendente
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
4.10. TABLA: TBLUSUARIOS
PropiedadesDateCreated: 16/07/2008 17:02:10 DefaultView: Hoja de datos
GUID: {guid {1C32044B-7777-44F7- LastUpdated: 22/07/2008 13:03:09
BB55-A655B188C959}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 11
Updatable: Verdadero
101
Columnas
Nombre Tipo Tamaño
UsCodigo Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {54A60C61-9FEF-4E5D-A045-CF692A4D94A8}}
OrdinalPosition: 0
Required: Falso
SourceField: UsCodigo
SourceTable: TblUsuarios
UsLogin Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {8438AEFE-7EA3-4547-BD3F-3C3611AC7C19}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 1
Required: Falso
SourceField: UsLogin
SourceTable: TblUsuarios
102
UnicodeCompression: Verdadero
UsApellidos Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: 1875
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {04DF1A46-56F0-48A8-9CAE-29061679C8DC}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: UsApellidos
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsNombres Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {163E29A8-E948-40D9-A023-7EA6AC2490A5}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
103
SourceField: UsNombres
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsEmail Texto 100
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {EBB82676-7A05-4F2F-87AC-0BDF8B5CA670}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: Falso
SourceField: UsEmail
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsDireccion Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {28907002-6F8A-4D03-8782-ADC128983158}}
IMEMode: 0
IMESentenceMode: 3
104
OrdinalPosition: 5
Required: Falso
SourceField: UsDireccion
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsSexo Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {C6F49CC7-77E5-4D5E-AE4F-A34D9A068BD4}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: UsSexo
SourceTable: TblUsuarios
UnicodeCompression: Falso
UsTelefono Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {A47F5680-DE8D-476F-AD4C-1732774072E2}}
IMEMode: 0
105
IMESentenceMode: 3
OrdinalPosition: 7
Required: Falso
SourceField: UsTelefono
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsPass Texto 20
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {011A4DD4-D99C-447C-8951-D48A2D3FF34D}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 8
Required: Falso
SourceField: UsPass
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsTipo Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
Description: 1= Administrador 2= auditor
106
DisplayControl: Cuadro de texto
GUID: {guid {B4A61FB6-E2B2-48C4-A2BD-E2F890DB055F}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 9
Required: Falso
SourceField: UsTipo
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsTitulo Texto 50
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {E61DAC86-2457-41AE-9F45-9E20AEE1E202}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 10
Required: Falso
SourceField: UsTitulo
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsValorHora Doble 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
107
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {FA84C55B-42DD-4C00-8407-78D07BF86079}}
OrdinalPosition: 11
Required: Falso
SourceField: UsValorHora
SourceTable: TblUsuarios
UsEstado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {CA4B3B21-7485-4C50-B82C-4BC3A5E5103E}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 12
Required: Falso
SourceField: UsEstado
SourceTable: TblUsuarios
UnicodeCompression: Verdadero
UsFecIngreso Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
108
GUID: {guid {85E7A3AC-913F-411A-ACA1-A69B43AF2143}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 13
Required: Falso
SourceField: UsFecIngreso
SourceTable: TblUsuarios
Relaciones
TblUsuariosTblActividades
TblUsuarios
UsCodigo
Attributes: No forzado
RelationshipType: Indeterminado
TblUsuariosTblProyectos
TblUsuarios
UsLogin
Attributes: No forzado
RelationshipType: Uno a varios
TblUsuariosTblUsuariosAreas
TblUsuarios
UsCodigo
TblActividades
ACCodRes
TblProyectos
PRIdResponsable
109
Attributes: No forzado
RelationshipType: Indeterminado
Índices de tabla
Nombre Número de campos
PrimaryKey 1
Clustered: Falso
DistinctCount: 14
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
Campos:
UsLogin Ascendente
Permisos de usuario
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer, definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
TblUsuariosAreas
CodUsuario
110
4.11. TABLA: TBLUSUARIOSACTIVIDADES
PropiedadesDateCreated: 13/08/2008 17:25:28 DefaultView: Hoja de datos
GUID: {guid {3B6B4253-FAEF-4506- LastUpdated: 20/08/2008 12:13:22
BF87-3DAF6F641AF1}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 11
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
CodUsuario Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {507A5752-68F1-4C08-BF76-0E79E6C3610E}}
OrdinalPosition: 0
Required: Falso
SourceField: CodUsuario
SourceTable: TblUsuariosActividades
CodPro Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
111
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {0DAA116D-9CC3-42D6-87EE-A0A168B795E4}}
OrdinalPosition: 1
Required: Falso
SourceField: CodPro
SourceTable: TblUsuariosActividades
CodActividad Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {00C82C5F-FCD9-427B-ADA3-9D3B7D2633BF}}
OrdinalPosition: 2
Required: Falso
SourceField: CodActividad
SourceTable: TblUsuariosActividades
FInicio Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
112
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {2F0A6847-0C86-4E11-979E-75470735C0E9}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 3
Required: Falso
SourceField: FInicio
SourceTable: TblUsuariosActividades
FFin Fecha/Hora 8
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
GUID: {guid {9542802F-BCA3-4397-8BCA-9FCF78B492D5}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 4
Required: Falso
SourceField: FFin
SourceTable: TblUsuariosActividades
HoraDiarias Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
113
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {32910AB6-D249-4575-80B0-29E70CC7515A}}
OrdinalPosition: 5
Required: Falso
SourceField: HoraDiarias
SourceTable: TblUsuariosActividades
Estado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {C304EE68-010C-4095-942B-9E8ABBC751FF}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 6
Required: Falso
SourceField: Estado
SourceTable: TblUsuariosActividades
UnicodeCompression: Verdadero
Permisos de usuario
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
114
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
4.12. TABLA: TBLUSUARIOSAREAS
PropiedadesDateCreated: 27/07/2008 12:45:30 DefaultView: Hoja de datos
GUID: {guid {AD2654C3-F065-4712- LastUpdated: 28/07/2008 12:50:48
B467-B5AA7D2BA27C}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 28
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
CodUsuario Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {7E01DCAD-932C-49E5-91D4-C79B941E0446}}
OrdinalPosition: 0
Required: Falso
SourceField: CodUsuario
115
SourceTable: TblUsuariosAreas
CodArea Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {789A9B63-DD6A-4943-B5B5-3EBD17480DE8}}
OrdinalPosition: 1
Required: Falso
SourceField: CodArea
SourceTable: TblUsuariosAreas
Estado Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {B4E4CF74-AF1E-441A-84A7-AC09FD3D953E}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: Estado
SourceTable: TblUsuariosAreas
116
UnicodeCompression: Verdadero
Relaciones
TblUsuariosAreasTblAreas
TblUsuariosAreas
CodArea
Attributes: No forzado
RelationshipType: Indeterminado
TblUsuariosTblUsuariosAreas
TblUsuarios
UsCodigo
Attributes: No forzado
RelationshipType: Indeterminado
Índices de tabla
Nombre Número de campos
PrimaryKey 2
Clustered: Falso
DistinctCount: 104
Foreign: Falso
IgnoreNulls: Falso
Name: PrimaryKey
Primary: Verdadero
Required: Verdadero
Unique: Verdadero
TblAreas
ArCod
TblUsuariosAreas
CodUsuario
117
Campos:
CodUsuario Ascendente
CodArea Ascendente
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
4.13. TABLA: TBLUSUARIOSPROYECTOS
PropiedadesDateCreated: 12/08/2008 17:24:18 DefaultView: Hoja de datos
GUID: {guid {8955CAD4-86E9-4792- LastUpdated: 12/08/2008 17:27:05
B6DB-47A453919DAE}}
NameMap: Datos binarios largos OrderByOn: Falso
Orientation: De izquieda a derecha RecordCount: 5
Updatable: Verdadero
Columnas
Nombre Tipo Tamaño
CodUsuario Entero 2
AllowZeroLength: Falso
118
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {0514989E-F54D-4B45-919B-D2401844BA9A}}
OrdinalPosition: 0
Required: Falso
SourceField: CodUsuario
SourceTable: TblUsuariosProyectos
CodProyecto Entero 2
AllowZeroLength: Falso
Attributes: Tamaño fijo
CollatingOrder: 3082
ColumnHidden: Falso
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DecimalPlaces: Automático
DisplayControl: Cuadro de texto
GUID: {guid {1C8F7803-3906-4FBC-82C7-2123A14B1FB1}}
OrdinalPosition: 1
Required: Falso
SourceField: CodProyecto
SourceTable: TblUsuariosProyectos
EstadoPro Texto 1
AllowZeroLength: Verdadero
Attributes: Longitud variable
CollatingOrder: 3082
ColumnHidden: Falso
119
ColumnOrder: Predeterminado
ColumnWidth: Predeterminado
DataUpdatable: Falso
DisplayControl: Cuadro de texto
GUID: {guid {C51491F4-A753-4EB6-A390-983AE39B439E}}
IMEMode: 0
IMESentenceMode: 3
OrdinalPosition: 2
Required: Falso
SourceField: EstadoPro
SourceTable: TblUsuariosProyectos
UnicodeCompression: Verdadero
Permisos de usuario
admin Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Permisos de grupo
Admin. Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
Users Eliminar, Leer permisos, Establecer permisos, Cambiar propietario,
Leer definición, Escribir definición, Leer datos, Insertar datos,
Actualizar datos, Eliminar datos
120
CAPITULO 5
PRUEBAS
5.1.- INTRODUCCIÓN
Prueba locales del sistema con
datos de prueba. Este paso
permite una comparación de la
salida del nuevo sistema con
respecto a lo que se sabe que es
salida correctamente procesada,
121
así como una buena sensación de cómo serán manejados los datos reales.
Lo que se hizo fueron los de caja negra y algunas de caja blanca sobre
todo cuando se caía el sistema.
5.2.- DESARROLLO DE PRUEBAS OPCIÓN MENÚ
PRINCIPAL
ESCENARIO RESULTADOESPERADO
RESULTADOOBTENIDO COMENTARIO
Se Seleccionamantenimientos
del MenúPrincipal
Visualiza la Pantallamantenimiento deProyecto
OK
El usuariovisualiza losmantenimientosde proyecto.
Se Seleccionamovimientos
del MenúPrincipal
Visualiza la Pantallamovimientos deproyecto
OK
El usuariovisualiza losmovimientos deun proyecto
Se Seleccionalos reportes e
informesdel MenúPrincipal
Visualiza la Pantalla dereportes e informe delproyecto
OK
El usuariovisualiza losreportes einformes delproyecto
Se Seleccionausuarios
del MenúPrincipal
Visualiza la Pantalla deusuarios de un proyecto OK
el proyectovisualiza losdatos de usuariode un proyecto
se seleccionaRRHH del
menú principal
visualiza la pantalla deRRHH de proyecto OK
Se seleccionacontrol de
proyecto delmenú principal
visualiza la pantalla delcontrol de los proyectos OK
Se seleccionacontrol de
actividades delmenú principal
Visualiza la pantalla decontrol de actividadesdel proyecto.
OK
Tabla 5.1
122
5.3.- DESARROLLO DE PRUEBAS OPCIÓN
MANTENIMIENTO DE PROYECTOS
ESCENARIO RESULTADO ESPERADO RESULTADOOBTENIDO COMENTARIO
Se seleccionala opción
mantenimientode proyecto
Visualizar la Pantallamantenimiento de proyecto OK
El usuariovisualiza todos losmantenimientosdel proyecto
Se seleccionamantenimiento
de usuario
Visualiza la Pantalla de losmantenimientos de usuario OK
El usuariovisualiza todos losmantenimiento deusuarioseleccionado
También puedeseleccionar el
mantenimientode recurso del
proyecto
Visualiza la pantalla de losmantenimientos de recurso OK
El usuariovisualiza todas losrecursos deproyecto
se seleccionalos
mantenimientosde proveedores
Se actualice la pantalla conlos mantenimientos deproveedores
OK
el usuariovisualizo losmantenimientosde proveedores
Tabla 5.2
123
5.4.- DESARROLLO DE PRUEBAS DE OPCIÓN
MOVIMIENTOS DE PROYECTO.
ESCENARIO RESULTADOESPERADO
RESULTADOOBTENIDO COMENTARIO
Se seleccionala opción
demovimientosde proyecto
Visualizar la pantallamovimiento de proyecto OK
El usuariovisualiza losmovimientos deproyecto
Se seleccionala opción
definición deactividades
Visualiza la Pantalla dedefinición de Proyectos OK
visualiza ladefinición deactividades
Se seleccionael control deactividades
Visualiza la pantalla decontrol de actividades deproyecto
OK
El usuariovisualiza el controlde actividades delproyecto
También puedeseleccionar la
modificación detiempo de
actividades
Visualiza la pantallatiempo de actividades deproyecto
OK
El usuariovisualiza todas lasmodificaciones detiempo deactividades delproyecto
Tabla 5.3
124
5.5.- DESARROLLO DE PRUEBAS DE OPCIÓN
REPORTES E INFORMES DEL PROYECTO.
ESCENARIO RESULTADO ESPERADO RESULTADOOBTENIDO COMENTARIO
Se seleccionala opción
reportes einformes del
proyecto
Visualizar la pantalla dereportes de proyecto OK
El usuariovisualiza losreportes delproyecto
Se seleccionala opción
reportes detiempo de
proyecto
Visualiza la Pantallareportes de tiempo deProyectos
OK
Aparece la listade todos losreportes detiempo delproyectos
Se seleccionala opción
control decostos deproyecto
Visualiza la pantalla Controlde costos de proyecto OK
El usuariovisualiza todo loscontroles decostos deproyecto
se seleccionalos reportes
generales delproyecto
Visualiza la pantalla de losreportes generales delproyecto
OK
El usuariovisualiza losreportesgenerales de losproyectos
Puedeseleccionar los
reportes deactividades por
auditoria
Visualiza la pantalla deactividades de auditoria OK
El usuariovisualiza lasactividades deauditoria
se seleccionalos reportes de
proyecto porauditoria
visualiza la pantalla de losproyectos por auditoria OK
el usuariovisualiza losreportes deproyectos deauditoria.
puedeseleccionar losreportes deactividadesgraficas deproyecto
visualiza la pantalla de losreportes de actividades demanera grafica de proyecto
OK
Se seleccionalos rastros deauditoria delproyecto
visualiza la pantalla de losreportes de rastros deauditoria de proyecto
OK
Tabla 5.4
125
5.6.- DESARROLLO DE PRUEBAS DE OPCIÓN
USUARIO DEL PROYECTO.
ESCENARIO RESULTADOESPERADO
RESULTADOOBTENIDO COMENTARIO
Se selecciona laopción
usuario deproyecto
Visualizar lapantalla de usuariodel proyecto
OKusuariovisualizado delproyecto
Se selecciona laopción cambiar
contraseña
cambio obligadode contraseña OK
aparece nuevacontraseña delusuario
Se seleccionacerrar sesión de
proyecto
visualiza la opciónde cerrar sesiónde proyecto
OK
Tabla 5.5
126
126
CAPITULO 6
CONCLUSIONES Y
RECOMENDACIONES
6.1 CONCLUSIONES
Sistema Electrónico de Control de Tiempo
y Proyecto de Auditoria ya están
estandarizando rápidamente sus procesos
para mejorar el tiempo de control y
administrar más efectivamente la
complejidad de sus proyectos.
127
En esta parte se pueden utilizar los resultados emitidos por nuestro módulo
como una herramienta para la toma de decisiones.
A continuación emitimos algunas conclusiones de este sistema electrónico de
control de tiempo y proyecto:
Mediante la presentación del sistema electrónico el líder del Proyecto
conocerá cuando una actividad esta atrasada pudiendo tomar medidas
correctivas a fin de no afectar el desarrollo del proyecto.
Mediante el proyecto concluido serán almacenados para futuras
consultas, dichos análisis nos ayudara para proyectos similares.
Además los reportes serán exportados a Excel dando facilidad de
portabilidad de reportes.
Con este proyecto se ofrecerá una herramienta de control
Nos Permite conocer el tiempo y el costo del proyecto expresado en
horas incurridas.
Mediante esta opción para los mantenimientos solo tiene acceso los
usuarios que tengan privilegios de administrador de proyectos caso
contrario estará deshabilitada.
Además En la parte de las modificaciones de usuario la cual mostrara la
lista de Proyectos al cual está asignado el usuario administrador de
proyectos que se logoneó.
128
En los reportes e informes la Opción de este menú nos Permite: Mostrar
tiempo de proyecto y actividades, control de costos, reporte general
entre otros.
También lo mas importante en esta parte para los usuarios es que nos
permite realizar opciones ya sea cambiar de contraseña al proyecto y
cerrar la sesión del proyecto realizado.
Quiere decir que si algún usuario haya invadido su proyecto por error a
otro proyecto la cual el usuario obligadamente se realizara una nueva
contraseña actualizada y personalmente sin dar a otros usuarios la
contraseña.
6.2.- RECOMENDACIONES
El Sistema Electrónico de Control de Tiempo y Proyecto de Auditoria, en este
caso, llevará el control de tiempo, la evaluación del proyecto, con técnicas de
diagnóstico y pronóstico que brindan los elementos necesarios para la toma de
decisiones generando Informes de control y como va el procedimiento de un
proyecto de auditoria en una empresa.
Existen software que ayudan a controlar las actividades y recursos asignados a
un proyecto siendo el mas común MS-PROJECT de Microsoft pero existe el
inconveniente que no es una aplicación pensada en esta área que su mayor
recurso es el humano.
129
Cabe recalcar que a diferencia de otras aplicaciones, el software que
desarrollaremos será multiproyecto, es decir se podrá administrar varios
proyectos y tipos de proyectos en una misma sesión, que según el perfil de
usuario tendrán el acceso a los mismos
Y además con este proyecto se ofrecerá una herramienta de control, que
permite la entrega exitosa de proyectos y además culminar a tiempo y dentro
de los días asignados.
130
BIBLIOGRAFIA
www.plexityhide.com , PÁGINAS DE INFORMACIÓN DE PLEXITO HIDE.
www.solostoks.com/bRcl_project_1_1.html, PÁGINAS DE INFORMACIÓN DE
MICROSOFT CORP.
http://www.pwc.com/teammate, PÁGINAS DE INFORMACIÓN DE PRICE
WATERHOUSECOOPERS.
http://www.teammate.pwc.com, PÁGINAS DE INFORMACIÓN DE
PRICEWATERHOUSECOOPERS.
www.b-kin.com, PAGINAS DE INFORMACIÓN DE B-KIN CORPORATION;
www.smart_draw.com, PÁGINAS DE INFORMACIÓN DE SMART DRAW
APUNTES TOMADOS EN CLASES DEL V SEMINARIO DE GRADUACIÓN
CISA AUDITORIA.
INGENIERIA DE SOFTWARE, UN ENFOQUE PRÁCTICO DE R. PRESSMAN,
V EDICION.
http://www.uhu.es/eyda.marin/apuntes/gesempre/Tema5IGE.pdf PÁGINA DE
INFORMACIÓN DE VISIÓN GENERAL DE LA ADMINISTRACIÓN DE
PROYECTOS.
131
ANEXOS
ANEXO 1
CRONOGRAMA GENERAL DE ACTIVIDADES
ETAPAS Y ACTIVIDADESDías Comienzo Fin
ANÁLISIS 48 dias
1 Definición de Alcances y Objetivos,
Misión Visión, Metodología y arquitectura
de desarrollo 3 11-12-2007 14-12-2007
2 Levantamiento de Información 10 15-12-2002 25-12-2007
3 Entrevista con Auditores de Campo o
Consultores 7 26-12-2007 02-01-2008
4 Escoger una empresa y Tramitar
Permisos de Acceso 1 03-01-2008 03-01-2008
5 Análisis de Campo aplicada al proyecto
Mediante Entrevista y Observación 6 03-01-2008 09-01-2008
6 Análisis de Recursos Requeridos 3 10-01-2008 13-01-2008
7 Recursos de Software 1 14-01-2008 14-01-2008
8 Recursos de Hardware 1 14-01-2008 14-01-2008
9 Recursos Humano 1 15-01-2008 15-01-2008
10 Análisis de Riesgos del Proyecto 3 16-01-2008 19-01-2008
11 Análisis de Costos Probables 8 20-01-2008 28-01-2008
12 Análisis de Entidades que Participan en
un Proyecto 1 29-01-2008 29-01-2008
DISEÑO 25 dias
13 Diseño de Plantillas de Pantallas 4 30-01-2008 03-02-2008
14 Diseño Lógico de la Base de datos 4 04-02-2008 08-02-2008
15 Diseño del Diagrama de Clases 5 09-02-2008 14-02-2008
16 Diseño del Diagrama de Objetos 8 15-02-2008 23-02-2008
17 Diseño de Casos de uso 3 23-02-2008 26-02-2008
PRIMERA SUSTENTACIÓN 1 27-02-2008 27-02-2008
132
DESARROLLO Y PRUEBAS 81 dias
18 Diseño Físico de la Base de datos en
Base al D. de clase 5 27-02-2008 03-03-2008
19 Diseño de Pantallas Basado en las
Plantillas Aprobadas Por Usuario 5 03-03-2008 08-03-2008
20 Programación de Procedimientos y
Funciones Almacenadas 20 08-03-2008 28-03-2008
SEGUNDA SUSTENTACIÓN 1 28-03-2008 28-03-2008
21 Rediseño de Reportes Específicos 14 29-03-2008 12-04-2008
22 Redefinición de pantallas en base a
nuevos Requerimientos 14 13-04-2008 27-04-2008
23 Elaboración de Manual de Usuario
Impreso y Adjuntos del Código 22 28-04-2008 19-05-2008
IMPLEMENTACIÓN 55 dias
24 Configuración de Equipos Previo a la
Sustentación 1 20-05-2008 20-05-2008
25 Configuración del servidor de Base de
Datos 1 21-05-2008 21-05-2008
26 Configuración de PC Cliente(Ejecutables) 1 22-05-2008 22-05-2008
27 Documentación del Tomo II (MANUAL DE
USUARIO Y TECNICO) 38 23-05-2008 1-07-2008
28 PRUEBAS FINALES 14 02-07-2008 16-07-2008
ÚLTIMA SUSTENTACIÓN 1 29-07-2008
TOTAL 209Días
133
ANEXO 2
ENCUESTA PARA ANÁLISIS DE REQUERIMIENTOS
Fecha: Nombre del Encuestado:
Empresa Cargo: Experiencia(*):
(*)=años como administrador.
ESTUDIO DE MERCADO
Direccionamiento.
Dirigido a Gerentes de proyectos, Consultores, auditores de firmas auditoras o
empresas que tengan formalizado su departamento de auditoria interna.
Objetivo.
Obtener información referente a necesidades de clientes y gerentes de
Proyectos de Auditoria.
Instructivo.
Lea detenidamente cada una de las siguientes preguntas y proceda a
contestar de acuerdo a la opción que ud. considere pertinente al cuadro
respectivo
¿Qué tiene de diferencia un proyecto de auditoria con un proyecto
general?
R:
¿Qué tiene en común un proyecto de auditoria con un proyecto general?
R:
134
Diferencias que podría ud. citar entre el papel de un administrador de
proyectos de auditoria con un administrador de proyectos en general.
1.____________________________________________
2.____________________________________________
3._____________________________________________
4._____________________________________________
Nota.- Si no le alcanza este espacio por favor conteste atrás de la hoja
¿Cómo administra el tiempo un auditor de sistemas en sus proyectos?
R:
¿Qué estándares de administración de proyectos ud. Maneja?
Al momento de asignar tiempo a una tarea de un determinado proyecto
¿Qué método utiliza?
Al momento de asignar un recurso humano a una tarea de un
determinado proyecto ¿Qué método utiliza?
¿Cuál considera ud. que son los problemas críticos que encuentra al no
contar con una aplicación (Software) que le facilite su trabajo de
administrador de proyectos?
SI NO NO
¿Por qué?:______________________________________________________
Empírico Experiencia Matemático
Empírico Experiencia Otros
Revisión Aprobación Cierre o Bloqueo
135
¿Conoce ud. y/o maneja algún software (aplicación) que permita
administrar proyectos de auditoria en sistemas AUDIT TEAM? Nómbrelo
R:
¿Ha trabajado en firmas auditoras externas?
SI NO NO
¿Puede Ud. “sin compromiso” nombrarme alguna o todas esas firmas
auditoras?
R:
¿Estas empresas le ofrecían algún Software que permita administrar los
proyectos, clientes, actividades, recursos asignados y costos?
SI NO NO
¿Qué ventajas “desde su punto de vista” posee comparado con Project
de la Microsoft?
R:
¿Conoce y/o utiliza el modulo Team Schedule de la empresa
PricewaterHouseCooper?.
R:
¿Qué conflictos y/o desventajas encuentra en el uso de dicho software?
R:
¿Qué le agregaría y/o eliminaría a ese software si lo utiliza?
R:
Si tuviera su empresa de auditoria, ¿Cuánto estaría dispuesto a invertir en
una aplicación(Software) que le facilite su trabajo de administración
cumpliendo sus requerimientos en sobretodo al poder manejar múltiples
136
proyectos(Cartera o Snapshot) de varios clientes en una misma sesión de
usuario?.
R:
¿Cómo preferiría financiar el pago?
Pagos mensuales
Pagos por avances
Otros
¿Qué valores agregados quisiera que tenga la aplicación por la que
invertiría su dinero?
Actualizaciones sin Costo
Capacitaciones extras
Otros________
¿Conoce alguna herramienta que permita manejar en una misma sesión
varios proyectos al mismo tiempo?
R:
¿Qué tipo de interfaz preferiría manejar en este tipo de aplicación?
Menú
Combinaciones de teclas
Comandos
Íconos
Fichas
Híbridas
¿Qué seguridades esperaría de este tipo de Aplicación?
Pistas de auditoria (Logs de acceso y ejecución de tareas)
Acceso por perfil de usuario sobretodo a reportes
137
Caducidad y bloqueo de contraseñas por eliminación de usuario
Otros: _____________________________________________
¿Qué tipo de reportes específicos le agradaría que tenga este tipo de
Software?
Conflictos de tareas
Lista de Recurso Humano disponible clasificado por filtros como experiencia y
capacidad.
Seguimiento por Cliente, Por Proyecto
Recursos Disponibles
Comparación entre costo Estimado y Costo real de avance
Lista de Tareas atrasadas con su motivo
Costo de cierre de proyecto
Otros: _____________________________________________________
¿Cómo le gustaría que maneje el progreso del proyecto?
Comparativo Gráfico
Barras de Ghantt
Otros: ___________
Si tuviera la opción de creación de perfiles de usuario, ¿Con qué nombre
le pondría a cada uno y que limitaciones le daría?
Perfiles:
Administrador
Consultor
Otros: ___________
138
Limitaciones
De acceso
De Lectura/Escritura
Otros: ___________
¿Qué otros controles de entrada esperaría de un software de este tipo?
Datos Completos y exactos
Mensajes de error de asignación de Recursos
Conflictos de actividades
Acceso por perfil de usuario
Otros: _______________________________
¿Qué controles de Procesamiento esperaría de un software de este tipo?
Respaldo de planes
Integridad
Control de Errores
Rango de valores
Logs de ejecución
Otros: ____________
¿Qué controles de salida esperaría de un software de este tipo?
Reportes por perfil
Exportación de Reportes
Otros: __________
¿Qué tipo de estructura organizacional de proyecto aplica ud. en su
trabajo de administrador de proyectos de auditoria informática?
De Influencia.- Ud. cumple la función de soporte sin autoridad formal de
administración
139
Pura.- Si posee autoridad formal
De Matriz.- Autoridad es compartida con otros gerentes de proyectos y jefes
departamentales.
¿Alguna sugerencia adicional que daría ud. a quien busque crear una
aplicación de este tipo?
R:
¿Qué se definió con las encuestas?
Existen pocos sistemas de gestión de proyectos orientados a la auditoria en
sistemas aplicados a empresas que cuenta con departamento de auditoria
interna como la cervecería Nacional, Holcin, etc. o firmas Auditoras como
ejemplo Deloitte, la misma consultora PriceWaterHouseCooper, etc.
En el siguiente grafico se detallará el trabajo de un auditor de campo.
140
VALORES AGREGADOS DEL PROYECTO
Se tendrán reportes con filtros, por cliente, por proyectos, etc.
Comparativos de Costos Reales vs. Costo estimado.
Acceso personalizado a la información según el perfil del usuario de la
aplicación
Control de inventarios de Implementos que puedan ser asignados a un Auditor
o consultor de campo para cumplir sus actividades.
141
ANEXO 3
SERVICIOS Y DETALLE DE 3 COMPETIDORES
B-KIN.- Es una aplicación Web donde se debe pagar un valor de $19.00 por
usuario de manera mensual. Su página oficial es:
http://www.b-kin.com/es/software-de-gestion-de-proyectos/B-
kin%20Project%20Monitor/?gclid=CPbonJjD_ZECFQH1PAodX2oU9A
142
143
B-kin Project Monitor Free, software de gestión de proyectos gratis en
www.b-kin.com
B-kin Project Monitor es la herramienta de gestión de proyectos que muchas
empresas utilizan para planificar proyectos, tareas, recursos… Sin embargo,
todavía hay Pymes y empresas de ingeniería que no conocen las bondades del
software online. Por eso nace B-kin Project Monitor Free, la versión gratuita
que muestra las ventajas de la gestión de proyectos online.
Actualmente, uno de los retos más importantes de los responsables de
proyectos es la organización de equipos donde las personas realizan distintas
tareas, con diferentes sistemas informáticos y, en ocasiones, desde
ubicaciones geográficas distintas.
Para corregir las limitaciones técnicas de las herramientas de gestión de
proyectos convencionales, hoy en día existe la solución del software online
(www.b-kin.com).
El software de gestión de proyectos online ofrece las mismas características
que las herramientas de gestión de proyectos convencionales, pero con
ventajas añadidas, perfectamente adaptadas a los tiempos actuales: capacidad
de actualización, disponibilidad inmediata, aprovechamiento de los equipos
informáticos actuales, sin instalaciones, sin limitaciones geográficas, con copias
de seguridad, con precios más asequibles, sin compromisos.
144
Ante esta situación, ¿por qué no se había generalizado el software online para
la gestión de proyectos? Porque el uso de Internet no estaba implantado en
muchas empresas. Hoy en día la mayor parte de ingenierías, consultoras y
demás empresa, por pequeñas que sean, disponen de conexión a Internet.
Servicios online
Con la conexión a Internet realizamos todo tipo de gestiones que ya están
asumidas con naturalidad. La revisión del correo electrónico, las transacciones
financieras con nuestra entidad financiera, la búsqueda de información…
entonces, ¿por qué no incluimos la gestión de proyectos?
La gestión de proyectos online permite monitorizar proyectos, tareas, personas,
perfiles, equipos, grupos de trabajo, costes, compras, entregables… Es decir,
las tareas que hasta ahora podíamos hacer con un software estático y cerrado,
instalado en los sistemas informáticos de la empresa, pero con funciones hasta
ahora difíciles de imaginar, que han supuesto grandes avances en la forma de
gestionar proyectos, con personas distribuidas en diferentes localidades, o que
necesitan colaborar desde distintos puestos y funciones.
Compartir documentación e información en tiempo real, participar en foros,
recibir las actualizaciones deseadas de forma automática, no tener que instalar
ningún programa, aprovechar los sistemas informáticos actuales… una
auténtica revolución que llega gracias a la filosofía del software online.
145
Aunque todo parecen ventajas, ¿por qué cambiar un sistema de gestión de
proyectos que funciona y cuyas limitaciones, a pesar de ser conocidas, están
asumidas por las personas que lo utilizan? Porque otra de las posibilidades que
permite el software online es la adaptabilidad a nuevos tiempos y situaciones.
Es un software vivo que, a la par de Internet, evoluciona para ofrecer nuevos
servicios que en sistemas tradicionales no hay forma de incluir.
B-kin Project Monitor lleva varios años en el mercado ofreciendo el sistema de
gestión de proyectos online que cada día más empresas utilizan para mejorar
su sistema de gestión de proyectos y tareas.
En palabras de Iñigo Escalante, responsable de producto en B-kin, el software
de gestión de proyectos online desea abrirse a todas las empresas. Ya es hora
de que un sistema de este tipo sea conocido y que no sólo las grandes
empresas se beneficien del software online. En www.b-kin.com es muy fácil
registrase y probar el software de gestión de proyectos. Ahora, además, con la
nueva versión B-kin Project Monitor Free. ¡Es gratis!
B-kin Project Monitor dispone de la versión de prueba con 30 días para conocer
todas las características completas.
La versión Free del software de gestión de proyectos tiene limitadas varias
características, pero con la opción de utilizar el software gratis y sin limitación
temporal. Más información en: www.b-kin.com.
146
MICROSOFT PROJECT.- Es una aplicación Stand Alone Tipo ofimática
perteneciente al paquete Microsoft Office Edición Empresarial diseñado por la
Microsoft... Permite Administrar proyectos de manera estática que son
ingresadas y modificadas en un grid. No muestra un comparativo de Costos
reales vs. Ideales por proyecto. Para cada proyecto hay que crear un archivo
nuevo.
147
Muestra el avance del Proyecto mediante gráficas con barras de Gantt, Pert.
Team Schedule
Módulo del paquete team Mate Creado por PricewaterHouseCooper esta en
idioma inglés solamente disponible hasta la última versión.
Grafico 1: Acceso al Sistema
148
Grafico 2: Creación de Proyectos
Gráfico 3: Asignación de Recursos y Actividades
149
Gráfico 4: Ir a Proyectos Creados
4.-COMPARATIVO GENERAL DE TODOS LOS COMPETIDORES
150
ANEXO 4
Diagrama de secuencia ingresar proyecto
Grafica 2.12 Diagrama de secuencia ingresar proyecto
151ADMINISTRACIÓN DE RIESGOS Cuadro 2.11 ANEXO 5
TIPO DE RIESGO DEFINICIÓN AFECTA PROBABILIDAD EFECTO ESTRATEGIA FACTORES
Software Necesidad de adquirir Licencias Corrienteso adicionales requeridas comola del Control Spread
Proyecto baja serio Solicitar a la carrera las licenciasque tienen los permisoscorrespondientes
Demoras en lasautorizaciones
Atrasos de codificaciónsegún lo planificado
Falta de Respaldos de los módulosya codificados
Proyecto baja serio Espejo guardado en otra unidadde almacenamiento Externosi es posible
Deterioro, perdida parcialo total de código fuente yaquemado.
Realizar Manuales de softwarea lo largo del desarrollo
Falta de Mantenimiento deequipos
Mala administraciónde la información
Que los usuarios no tengan los conocimientosbásicos para manejar sistemas GUI, lo cual dificultael tiempo de enseñanza del mismo
Proyecto Baja Tolerable Capacitar al Personal queutilizará el sistema
Falta de ConocimientoInformático
Usuarios se resistan autilizar el software
Producto Media Tolerable Capacitar a Usuarios
Crear interfacesAmigables
Falta de ConocimientoInformático.
Inexperiencia de UsuariosRequerimientos Mala interpretación de alcances y requisitos
pedidos en la tesis.Proyecto baja Serio Constante comunicación
con el tutor del seminarioMala comunicación conTutor del seminario
Modificaciones en etapa final del ciclo(implementación)
Proyecto Media Serio Definir bien el modelo espiral autilizar.
Apuntar Consejos del tribunal
Malas Interpretacionesde Requisitoscambiantes
Hardware Robo de Equipos de Desarrollo ContinuidadProyecto
baja serio Solicitar a la carrera préstamode equipo
Demoras en lasautorizaciones
Que los equipos disponibles no estén enóptimas condiciones de trabajo.
Producto Baja Tolerable RealizarMantenimiento deequipos
Falta de Presupuesto
Daño imprevisto de equipos Proyecto Baja Tolerable Dar MantenimientoMensual a equipos de desarrollo
Falta deMantenimiento
RRHH yOrganizacional
Enfermedad o Problemas de grupo Continuidad baja medio Estar todos capacitados paraafrontar el problema Demora del proyecto
Indisponibilidad de reuniones del grupo Proyecto Baja Tolerable Mantener comunicación porcelular o vía email
Mala comunicación
Redefinición Constante de Procesos que seCumplen en cada actividad del cronograma
Proyecto Media(Espiral) Serio Redefinir o Depurar ActividadesCríticas
Mala Sincronizaciónde Actividades
ESTIMACIÓNMala Estimación del tiempopara la Duración del desarrollo
Proyecto Media Tolerable Redefinir procesos enActividades críticas
Mala Planificación del tiempo
152
GLOSARIO DE TÉRMINOS
INTERFAZ: Forma en que los usuarios pueden comunicarse con una
computadora.
IDE: Entorno de desarrollo integrado.
153
ABREVIATURAS
SECTPA SISTEMA ELECTRÓNICO DE CONTROL DE TIEMPO Y
PROYECTO DE AUDITORIA
DBA ADMINISTRADOR DE BASE DE DATOS (DATABASE
ADMINISTRATOR)
UML LENGUAJE UNIFICADO DE MODELADO (UNIFIED MODELING
LANGUAGE)
GUI INTERFAZ GRÁFICA DE USUARIO (GRAPHICAL USER INTERFACE)
MER MODELO ENTIDAD RELACIÓN
DFD DIAGRAMA DE FLUJO DE DATOS
I
UNIVERSIDAD DE GUAYAQUILFacultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en SistemasComputacionales
“Sistema Electrónico de Control de Tiempo y
Proyecto de Auditoria”
PROYECTO DE GRADOCURSO DE GRADUACION
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
LOZANO OTERO YESSICA JACQUELINEMAYOR FERRUZOLA WALTER DAVIDMOREIRA ESTRADA PEDRO ANTONIO
GUAYAQUIL-ECUADOR
Año: 2008
II
AGRADECIMIENTO
Agradecemos primeramente a Dios, quien
a estado con nosotros en los momentos
que mas nos necesita dándonos fuerzas
para seguir adelante en la vida personal y
profesional de cada uno de este grupo.
Además también a nuestros padres y
familiares que se convierteron en un pilar
fundamental para cualquier meta que
tracemos en nuestras vidas.
Y a todos los catedráticos que nos
aportaron todos sus conocimientos y
experiencias para poder alcanzar este
logro.
III
DEDICATORIA
Dedicamos con todo nuestro esfuerzo
durante toda la carrera universitaria a
nuestras familias que siempre confiaron
en nosotros y acompañaron con éxito
todas las etapas que vivimos para
alcanzar un presente lleno de triunfo y
superación.
IV
TRIBUNAL DE GRADUACIÓN
Presidente del Tribunal 1er Vocal
2do Vocal Secretario
V
DECLARACIÓN EXPRESA
“La autoría de la tesis de grado corresponde exclusivamente al suscrito(s),
perteneciendo a la Universidad de Guayaquil los derechos que generen la
aplicación de la misma”
(Reglamento de Graduación de la Carrera de Ingeniería en sistemas
Computacionales, Art. 26)
Lozano Otero Yessica Jacqueline Mayor Ferruzola Walter DavidC.I.: 0913298600 C.I.: 0920113305
Moreira Estrada Pedro AntonioC.I.:0919389361
VI
RESUMEN
S E C T P A (Sistema Electrónico de Control de Tiempo y Proyecto de
Auditoria) es hacer que el auditor o administrador deje de manejar en papel,
hojas de Excel o en el mejor de los casos Project u otras herramientas
semejantes a Project, sus tareas lo cual en muchos casos, no aportan
soluciones oportunas que incluso producen problemas tales como conflictos,
inconsistencias en la planeación del proyecto y su seguimiento en la línea del
tiempo.
En este sistema, el cual llevará el control de tiempo, la evaluación del
proyecto, con técnicas de diagnóstico y pronóstico que brindan los
elementos necesarios para la toma de decisiones generando Informes de
control y como va el procedimiento de un proyecto de auditoria en una
empresa.
Los proyectos concluidos serán almacenados para futuras consultas, dichos
análisis nos ayudara para proyectos similares. Sus reportes serán exportados
a Excel dando facilidad de portabilidad de reportes.
Con este proyecto se ofrecerá una herramienta de control, que permite la
entrega exitosa de proyectos y además culminar a tiempo y dentro de los
días asignados.
VII
INDICE GENERAL
AGRADECIMIENTO II
DEDICATORIA III
TRIBUNAL DE GRADUACIÓN IV
DECLARACIÓN EXPRESA V
RESUMEN VI
INDICE GENERAL VII
TOMO II
Capítulo I
DISEÑO DEL SISTEMA 1
1.1 diagrama entidad relación 1
1.2. configuración e instalación de visual Basic 6.0 2
1.3 configuración e instalación de Microsoft Access 12
1.4. Paso a paso para ejecutar el proyecto desde el disco duro. 18
1.5 codificación general del sistema 21
1.5.1. Función De Conexión De Usuarios Al Sistema- Logoneo 21
1.5.2. Función Que Verifica El Código Máximo Que Se HaAsignado El Cual Es Automático Al Momento De Crear NuevosUsuarios
21
VIII
1.5.3.‘/*Función Para Actualizar Datos De Usuarios Ya Creados*/ 22
1.5.4.‘/*Función Que Permite Buscar Todos Los Usuarios GuardadosEn La Base En Estado Activo*/
22
1.5.5. ‘/*Función Que Permite Buscar Todos Los Usuarios totalesGuardados En La Base En Estado Activo*/
22
1.5.6.*Función Para Guardar Registro Del Nuevo Usuario*/ 23
1.5.7.‘/*Función Que Permite Buscar Todos Los Usuarios SinImportar Su Estado*/
23
1.5.8 ‘/*Capturar El Código Máximo De Proyectos Que Han SidoCreados*/
24
1.5.9. ‘/*Insertar Nuevo Proyectos*/ 24
1.5.10. ‘/*Captura Todos Los Proyectos Creados Y Que EstánEn Estado Activo */
24
1.5.11. ‘/*Busca Usuario Con El Código Especificado En LaConsulta*/
25
1.5.12. ‘/*Actualiza Todos Los Datos De Un Proyecto Ya Creado*/ 25
1.5.13. ‘/*Busca El Código Máximo De Proveedores Que Ha SidoGuardado*/
26
1.5.14.‘/*Guarda Registro De Un Nuevo Proveedor*/ 26
1.5.15. ‘/*Captura La Lista De Proveedores Disponibles*/ 26
1.5.16. ‘/*Actualiza Datos De Algún Proveedor Ya Ingresado*/ 27
1.5.17. ‘/*Busca El Ultimo Implemento Registrado*/ 27
1.5.18. ‘/*Almacena En La Base Un Nuevo Implemento QuePueda Ser Requerido*/
27
1.5.19. ‘/*Busca Todos Los Implementos Y Los MuestraOrdenados Por Nombre*/
28
IX
1.5.20. ‘/*Permite Actualizar Los Implementos Mas Que Nada EnSu Stock*/
28
1.5.21. ‘/*Asignar Actividades A Un Determinado Proyecto*/ 29
1.5.22. ‘/*Captura El Código Máximo De Eventos Que Hizo UnUsuario En El Sistema*/
29
1.5.23 ‘/*Muestra Toda La Lista De Actividades Que Contiene UnProyecto*/
30
1.5.24. ‘/*Captura La El Código Máximo De Las ActividadesAsignadas A Un Proyecto*/
30
1.5.25. /*actualizar detalles de actividad de un proyecto*/ 30
1.5.26. ‘/*Captura Cual Es La Actividad Máxima */ 31
1.5.27. ‘/*Ingreso De Detalle De Una Nueva Actividad*/ 31
1.5.28. ‘/*Permite Borrar La Especialización Existente De UnUsuario*/
32
1.5.29. ‘/*Muestra La Lista De Proyectos Creados Según Perfil DeUsuario*/
32
1.5.30 ‘/*Guarda La Especialización Del Recurso Humano(Usuario)*/
32
1.5.31 ‘/*Captura Todas Las Áreas De EspecializaciónAlmacenadas Hasta El Momento Para Mostrarlas En El ComboPara Facilidades Del Usuario*/
33
1.5.32. ‘/*Captura La Lista De Todos Los Administradores DeProyectos*/
33
1.5.33. ‘/*Captura La Lista De Todos Los Administradores DeProyecto Que Estén Activos*/
34
1.5.34. ‘/*Evalúa El Costo De Actividades Por Proyecto*/ 34
1.5.35. /*datos de la clave*/ 34
1.5.36 /* Números de proyectos realizados*/ 35
X
1.5.37 /*Ingresar los proyectos de cada usuario*/ 35
1.5.38 /* Eliminar los proyectos de usuarios*/ 35
1.5.39 /* Borrar Disponible*/ 36
1.5.40 /* disponible*/ 36
1.5.41./*Insertar los recursos de actividades*/ 37
1.5.42. /*Borrar recursos de actividades*/ 37
1.5.43/*Buscar los recursos de actividades*/ 37
1.5.44 /*Ingreso de actividades por cada usuario*/ 38
1.5.45 /*Buscar actividades de cada responsable*/ 38
1.5.46 /*horas*/ 39
1.5.47 /*Actividades por cada usuario*/ 39
1.5.48 /* consulta de actividades por cada auditor*/ 39
1.5.49 /*Usuario por cada actividad*/ 40
1.5.50 /* Tiempo de actividades*/ 40
1.5.51 /*Rastros de auditor*/ 40
1.5.52 /* Horas por actividades*/ 41
1.5.53 /*Eliminar actividades por horas*/ 41
1.5.54 /* INHoras actividades*/ 42
1.5.55 /*Reportes de auditor por cada proyecto*/ 42
1.5.56 Código Del Módulo Principal 42
XI
1.5.57. ‘/*Ruta de Reportes*/ 43
1.5.58 ‘/*Conexión A La Base*/ 43
1.5.59. ‘/*Desconexión A La Base*/ 43
1.5.60 ‘/*Exportación De Reportes Desde El Grid A Excel*/ 43
1.5.61 'Función Que Guarda Todos Los Eventos Del Sistema 45
1.6. CODIGO DE PROYECTO 46
1.6.1. *Ingreso De Actividades - Frmactividades 46
1.6.2. Declaración de variable Generales del FRMActividades 48
1.6.3. Buscar Proveedor De Implementos - Frmbuscaprov***/ 54
1.6.4. Frmbuscaproyecto 54
1.6.5 FRMBuscarRecursos 57
1.6.6.FRMBuscarUsuario 58
1..6.7FRMCambiarClave 61
1.6.8 FRMCrtActividades 62
1.6.9 FRMescogerAuditor 63
1.6.10 FRMEscogerProyecto 65
1.6.11 Acceso Al Sistema - Frmlogin 67
1.6.12 *Ventana De Menú Principal – Frmmain 69
1.6.13 FrmModiActividades 71
1.6.14 FRMModiTiempos 74
XII
1.6.15 Mantenimiento De Proveedores-Frmproveedores 75
1.6.16 Mantenimiento De Proyectos-Frmproyectos 78
1.6.17 FRMRastrosAuditoria 82
1.6.18 ‘/**Mantenimiento De Recursos (Implementos) –Frmrecursos**/
82
1.6.19 FRMRepoActAuditor 86
1.6.20 FRMRepActPro 86
1.6.21 FRMRepActCostos 88
1.6.22 FRMRepProyectos 90
1.6.23 FRMRepProAudi 91
1.6.24 FRMRepProyectos 92
1.6.25 FRMRepRastros 92
1.6.26 ‘/*Mantenimiento De Usuarios O RR HH - Frmusuarios*/ 94
Capitulo II:
SISTEMA ELECTRONICO DE CONTROL DE TIEMPO Y
PROYECTO DE AUDITORIA (AUDIT TIME)
100
2.1. Introducción General 101
2.2. Desarrollo Del Sistema 101
2.2.1.navegación de las pantallas 101
XIII
2.3. manual 102
2.3.1. Ventana Principal de Acceso al Sistema 102
2.3.2.- VENTANA PRINCIPAL 103
2.3.3.- Detalle De Opciones Del Menú “Mantenimientos” 104
2.3.3.1.- Mantenimiento de Usuarios 105
2.3.3.2.- Mantenimiento de Proyectos 108
2.3.3.3.- Mantenimiento de Recursos 111
2.3.3.4.- Mantenimiento de Proveedores 114
2.3.4.- Detalle De Opciones Del Menú “Movimientos” 116
2.3.4.1.- Definición y control de Actividades 117
2.3.4.2.- modificación de tiempo de actividades 120
2.3.5.- Detalle De Opciones Del Menú “Reportes E Informes” 123
2.3.5.1.- Reporte de Tiempo Proyectos y Actividades 124
2.3.5.2.- Reportes de control de costos. 126
2.3.5.3.- Reporte General de Proyectos 128
2.3.5.4. Reporte de actividades por auditor. 129
2.3.5.5. Reporte de proyecto por auditor 130
2.3.5.6. Reporte de avance de actividades (grafico) 134
2.3.5.7 rastros de auditoria. 137
2.3.5.8. Usuario. 140
XIV
2.3.6.- Detalle De Opciones Del Menú “Salir” 142
2.3.7. Barras de herramientas adicionales 143
INDICE GRAFICO
CAPITULO I
CUADRO 1.1 2
CUADRO 1.2 3
CUADRO 1.3 3
CUADRO 1.4 4
CUADRO 1.5 4
CUADRO 1.6 5
CUADRO 1.7 5
CUADRO 1.8 5
CUADRO 1.9 6
CUADRO 1.10 6
CUADRO 1.11 7
CUADRO 1.12 7
CUADRO 1.13 8
CUADRO 1.14 8
XV
CUADRO 1.15 9
CUADRO 1.16 9
CUADRO 1.17 10
CUADRO 1.18 10
CUADRO 1.19 11
CUADRO 1.20 11
CUADRO 1.21 13
CUADRO 1.22 13
CUADRO 1.23 14
CUADRO 1.24 14
CUADRO 1.25 15
CUADRO 1.26 15
CUADRO 1.27 16
CUADRO 1.28 16
CUADRO 1.29 17
CAPITULO II
CUADRO 2.1 102
CUADRO 2.2 103
CUADRO 2.3 103
XVI
CUADRO 2.4 104
CUADRO 2.5 104
CUADRO 2.6 105
CUADRO 2.7 106
CUADRO 2.8 107
CUADRO 2.9 107
CUADRO 2.10 108
CUADRO 2.11 109
CUADRO 2.12 110
CUADRO 2.13 110
CUADRO 2.14 111
CUADRO 2.15 111
CUADRO 2.16 113
CUADRO 2.17 113
CUADRO 2.18 114
CUADRO 2.19 114
CUADRO 2.20 115
CUADRO 2.21 116
CUADRO 2.22 116
CUADRO 2.23 117
XVII
CUADRO 2.24 117
CUADRO 2.25 118
CUADRO 2.26 118
CUADRO 2.27 119
CUADRO 2.28 120
CUADRO 2.29 120
CUADRO 2.30 121
CUADRO 2.31 121
CUADRO 2.32 121
CUADRO 2.33 122
CUADRO 2.34 122
CUADRO 2.35 123
CUADRO 2.36 123
CUADRO 2.37 124
CUADRO 2.38 124
CUADRO 2.39 125
CUADRO 2.40 125
CUADRO 2.41 126
CUADRO 2.42 126
CUADRO 2.43 127
XVIII
CUADRO 2.44 127
CUADRO 2.45 128
CUADRO 2.46 128
CUADRO 2.47 129
CUADRO 2.48 129
CUADRO 2.49 129
CUADRO 2.50 130
CUADRO 2.51 130
CUADRO 2.52 130
CUADRO 2.53 131
CUADRO 2.54 131
CUADRO 2.55 131
CUADRO 2.56 132
CUADRO 2.57 132
CUADRO 2.58 133
CUADRO 2.59 133
CUADRO 2.60 134
CUADRO 2.61 134
CUADRO 2.62 134
CUADRO 2.63 135
XIX
CUADRO 2.64 135
CUADRO 2.65 136
CUADRO 2.66 136
CUADRO 2.67 137
CUADRO 2.68 137
CUADRO 2.69 138
CUADRO 2.70 139
CUADRO 2.71 139
CUADRO 2.72 139
CUADRO 2.73 140
CUADRO 2.74 140
CUADRO 2.75 140
CUADRO 2.76 141
CUADRO 2.77 141
CUADRO 2.78 142
CUADRO 2.79 142
CUADRO 2.80 142
CUADRO 2.81 143
1
CAPITULO 1
MANUAL TÉCNICO Y
MANUAL DE USUARIO
DISEÑO DEL SISTEMA
1. DISEÑO
1.1.- Diagrama Entidad Relación
El Diagrama Entidad Relación es una
herramienta para el modelado de datos de
un sistema de información. Estos modelos
2
expresan entidades relevantes para el Sistema Control de Etapas, sus inter-
relaciones y propiedades. (Ver cuadro 1.1)
Cuadro 1.1
1.2.- Configuración E Instalación De Visual Basic 6.0
Su instalación es muy sencilla, primero ingres2amos el instalador de visual
Studio en la que contiene algunos programas pero en este momento se va a
instalar el programa visual Basic 6.0 a continuación:
Luego ingresamos a explorador de Windows y encontramos lo que vamos a
instalar el programa visual Basic 6.0 (ver cuadro 1.2)
3
Cuadro 1.2
Luego de que ya esta en el programa de explorador de Windows y señalado
el programa de Visual procedemos a la instalación de la misma. (Ver cuadro
1.3)
Cuadro 1.3
Aparece la ventana de instalacion de visual Studio 6.0 en la que se va a
realizar paso a paso. (Ver cuadro 1.4)
4
Cuadro 1.4
En estos momentos aparecerá un contrato de licencia de usuario en la cual
presionamos aceptando el contrato y continuar con el siguiente paso. (Ver
cuadro 1.5)
Cuadro 1.5
En el siguiente paso procedemos a ingresar la clave de instalación para este
programa luego aceptamos y continuamos con el siguiente paso. (Ver cuadro
1.6)
5
Cuadro 1.6
Después de ingresar la clave procedemos a personalizar el programa a la
que vamos a utilizar. (Ver cuadro 1.7)
Cuadro 1.7
Elegimos la carpeta a la que se esta instalando para los archivos
correspondientes. (Ver cuadro 1.8)
Cuadro 1.8
6
En estos momentos se inicio la instalación de visual paso a paso (ver
cuadros 1.9 y 1.10)
Cuadro 1.9
Cuadro 1.10
7
Cuadro 1.11
Luego aparece la ventana de visual Studio en la que aparece todo los
programas de instalación en la cual solamente se va a elegir el programa
visual Basic 6.0 (ver cuadro 1.12) (ver cuadro 1.13)
Cuadro 1.12
8
Cuadro1.13
Después que haya elegido solamente visual Basic 6.0 procedemos a la
continuación de la instalación paso a paso. (Ver cuadro 1.14)
Cuadro 1.14
9
También es importante instalar las librerías de visual para que no haya
errores al compilar y que este todo correcto. (Ver cuadro 1.15)
Cuadro 1.15
Cuadro 1.16
Por ultimo aparece la confirmación de que la instalación ha terminado con
éxito paso a paso y comenzar a programar. (Ver cuadro 1.17)
10
Cuadro 1.17
A continuación procedemos a realizar el proyecto desde visual Basic 6.0
paso a paso como muestra en el cuadro 1.18
Cuadro 1.18
11
Cuadro 1.19
Por ultimo aparecerá la ventana de Microsoft visual Basic 6.0 en la que se va
a realizar el proyecto estimado. (Ver cuadro 1.19) (Cuadro 1.20)
Cuadro 1.20
12
1.3.- Configuración E Instalación De Microsoft
Access.
La instalacion de Microsoft access es otro de los requisitos indispensables
para la realización de este proyecto a continuación tenemos como principal
los requisitos del sistema y luego paso a paso la instalacion del Microsoft
access.
Requisitos del sistema
Todas las ediciones de Microsoft Office de la versión 2007 tienen
aproximadamente los mismos requisitos mínimos del sistema.
Procesador Pentium 233 MHz o superior; se recomienda Pentium IV
Sistema
operativo
Microsoft Windows 2007 o Windows XP o versión posterior
(recomendado)
Memoria 64 MB RAM (mínimo); 128 MB RAM (recomendado)
Espacio de
disco
245 MB, incluidos los 115 MB de espacio de disco que deben
estar disponibles en el disco duro que contiene el sistema
operativo. El uso del espacio del disco duro varía según la
configuración. Una instalación local requiere aproximadamente
2 GB de espacio de disco duro durante la instalación;
posteriormente.
Monitor Super VGA (800 x 600) o resolución superior con 256 colores
Unidad de
discoUnidad de CD ROM
Dispositivo Microsoft Mouse, Microsoft IntelliMouse®, o dispositivo
13
señalador señalador compatible
A continuación tenemos paso a paso la instalacion de Microsoft access.
Primero ingresamos el instalador de Microsoft office como muestra en el
cuadro 1.21.
Cuadro 1.21
Luego de que ya esta ingresado el instalador de Microsoft Office se elige la
opcion agregar o quitar funciones (quiere decir que se borra la instalacion ya
realizada con error y nuevamente se instala pero por completo el programa)
Cuadro 1.22
14
A continuación se debe seleccionar las aplicaciones en la que se va a
trabajar en Windows, en este caso se va a instalar todos los programas
incluido Microsoft access. (Ver cuadro 1.23)
Cuadro 1.23
Luego de que ya se eligieron los programas seleccionado incluido el
Microsoft access se comienza a procesar la instalacion paso a paso como
muestra en el cuadro 1.24.
Cuadro 1.24
15
Por ultimo se da en el boton aceptar en la cual se actualizo correctamente
Microsoft office incluido Microsoft access. (Ver cuadro 1.25)
Cuadro 1.25
En estos momentos procedemos desde Windows a ingresar al programa de
Microsoft access paso a paso. (Ver cuadro 1.26)
Cuadro 1.26
16
Esta es la pantalla de Microsoft access para la elaboración de base de datos
dentro del proyecto (ver cuadro 1.27).
Cuadro 1.27
Este es un ejemplo para el programa de auditoria desde Microsoft access.
(Ver cuadro 1.28) (Ver cuadro 1.29)
Cuadro 1.28
17
Cuadro 1.29 EJemplo
18
1.4. Paso a paso para ejecutar el proyecto desde eldisco duro.
Cuadro 1.30
Para poder trabajar desde el disco duro en el momento que el proyecto se
moviliza de maquina en maquina tenemos los siguientes paso.
Primero si el proyecto esta grabado en el pend drive y para poder funcionar
copiamos el archivo ejecutable como vemos en el cuadro 1.30
Cuadro 1.31
19
Ya copiado lo ejecutable desde el pend drive seleccionamos en el disco local
C: opcion archivos comunes (ver cuadro 1.31)
Cuadro 1.32
Luego seleccionamos ODBC (ver cuadro 1.32)
Cuadro 1.33
20
Despues de seleccionar ODBC encontramos la opcion DATA SOURCE y en
esa carpeta pegamos el ejecutable del proyecto copiado desde el pend drive
(ver cuadro 1.33)
Cuadro 1.34
Ya que esta copiado el ejectable en DATA SOURCE procedemos a copiar
todo el archivo desde el pend drive al disco local C: en este caso con el
nombre de AUDITORIA en la que encontramos la base, lo ejecutable, los
iconos y los reportes del proyecto. (Ver cuadro 1.34)
Cuadro 1.35
Para verificar si esta copiado al disco local C: el proyecto completo
procedemos a trabajar el proyecto como vemos en el cuadro 1.35
21
Cuadro 1.36
Damos doble click en PRYAuditoria y aparece el programa de ingreso de
usuario en el control de auditoria (ver cuadro 1.36)
1.5. Codificación General Del Sistema
1.5.1. Funcion De Conexion De Usuarios Al Sistema- Logoneo*/
Function usuario (usr As String, pwd As String) As RecordsetConectar
strSQL = "SELECT * from Tblusuarios where UsLogin='" & usr & "' andUsPass='" & pwd & "'"
Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet usuario = COMAdorst
DesconectarEnd Function
1.5.2. Funcion Que Verifica El Código Máximo Que Se Ha Asignado ElCual Es Automático Al Momento De Crear Nuevos Usuarios*/
Function maxUsuario() As RecordsetConectar
strSQL = "select max(UsCodigo) from tblUsuarios "Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxUsuario = COMAdorst
DesconectarEnd Function
22
1.5.3.‘/*Funcion Para Actualizar Datos De Usuarios Ya Creados*/
Function updateUsuario(cod As Integer, nombre As String, _apellido As String, direcc As String, _telef As String, email As String, _sex As String, _tipo As Integer, titulo As String, _valor As Double, fei As String, _lo As String, pas As String, esta As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update tblusuarios set "strSQL = strSQL + "UsApellidos='" & apellido & "',UsNombres='" & nombre
& "',"strSQL = strSQL + "UsEmail='" & email & "',UsDireccion='" & direcc & "',"strSQL = strSQL + "UsSexo='" & sex & "',UsTelefono='" & telef & "',"strSQL = strSQL + "UsPass='" & pas & "',UsTipo=" & tipo & ","strSQL = strSQL + "UsTitulo='" & titulo & "',UsValorHora=" & valor & ","strSQL = strSQL + "UsEstado='" & esta & "' "strSQL = strSQL + "where UsCodigo= " & cod & ""
COMAdocon.Execute strSQL, nroupdateUsuario = 1DesconectarExit Function
ErrMsg:DesconectarupdateUsuario = 0
End Function
1.5.4.‘/*Función Que Permite Buscar Todos Los Usuarios Guardados En LaBase En Estado Activo*/
Function TodosUsuarios() As RecordsetConectar
strSQL = "select * from tblusuarios where UsEstado = 'A' order byUsApellidos"
COMAdorst.Open strSQL, COMAdoconSet TodosUsuarios = COMAdorst
DesconectarEnd Function
1.5.5. ‘/*Función Que Permite Buscar Todos Los Usuarios totalesGuardados En La Base En Estado Activo*/
Function TodosUsuariosTotal() As RecordsetConectar
23
strSQL = "select * from tblusuarios order by UsApellidos"COMAdorst.Open strSQL, COMAdoconSet TodosUsuariosTotal = COMAdorst
DesconectarEnd Function
1.5.6.*Funcion Para Guardar Registro Del Nuevo Usuario*/
Function insertUsuario(cod As Integer, nombre As String, _apellido As String, direcc As String, _telef As String, email As String, _sex As String, _tipo As Integer, titulo As String, _valor As Double, fei As String, _lo As String, pas As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into tblusuarios values (" & cod & ",'" & lo & "',"strSQL = strSQL + "'" & apellido & "','" & nombre & "','" & email & "',"strSQL = strSQL + "'" & direcc & "','" & sex & "','" & telef & "',"strSQL = strSQL + "'" & pas & "'," & tipo & ",'" & titulo & "'," & valor & ","strSQL = strSQL + "'A','" & fei & "')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertUsuario = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertUsuario = 0
End Function
1.5.7.‘/*Función Que Permite Buscar Todos Los Usuarios Sin ImporterSu Estado*/
Function TodosUsuariosTotal() As RecordsetConectar
strSQL = "select * from tblusuarios order by UsApellidos"COMAdorst.Open strSQL, COMAdoconSet TodosUsuariosTotal = COMAdorst
DesconectarEnd Function
24
1.5.8 ‘/*Capturar El Código Máximo De Proyectos Que Han SidoCreados*/
Function maxProyecto() As RecordsetConectar
strSQL = "select max(PRCodigo) from TblProyectos "Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxProyecto = COMAdorst
DesconectarEnd Function
1.5.9. ‘/*Insertar Nuevo Proyectos*/
Function insertProyecto(cod As Integer, nombre As String, _descri As String, feini As String, _res As Integer, fecrea As String, _uscre As String, femodi As String, _usmodi As String, espe As Integer, _ffin As String, por As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblProyectos values (" & cod & ",'" & nombre & "',"strSQL = strSQL + "'" & descri & "','" & feini & "'," & res & ","strSQL = strSQL + "'" & fecrea & "','" & uscre & "','" & femodi & "',"strSQL = strSQL + "'" & usmodi & "','A'," & espe & ",'" & ffin & "'," & por & ")"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertProyecto = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertProyecto = 0
End Function
1.5.10. ‘/*Captura Todos Los Proyectos Creados Y Que Estan En EstadoActivo */
Function TodosProyectos() As RecordsetConectar
If tipoUS = 1 ThenstrSQL = "select * from tblProyectos where PREstado = 'A' order by
PRNombre"
25
ElsestrSQL = "select * from tblProyectos where PRIdResponsable = " &
codUsu & " and PREstado = 'A' order by PRNombre"End IfCOMAdorst.Open strSQL, COMAdoconSet TodosProyectos = COMAdorst
DesconectarEnd Function
1.5.11. ‘/*Busca Usuario Con El Código Especificado En La Consulta*/
Function UsuarioCod(cod As Integer) As RecordsetConectar
strSQL = "select * from tblusuarios where UsCodigo = " & cod & ""COMAdorst.Open strSQL, COMAdoconSet UsuarioCod = COMAdorst
DesconectarEnd Function
1.5.12. ‘/*Actualiza Todos Los Datos De Un Proyecto Ya Creado*/
Function updateProyecto(cod As Integer, nombre As String, _descri As String, _res As Integer, _femodi As String, usmodi As String, _esta As String, espe As Integer, por As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update TblProyectos set "strSQL = strSQL + "PRNombre='" & nombre & "',"strSQL = strSQL + "PRDescripcion='" & descri & "',"strSQL = strSQL + "PRIdResponsable=" & res & ",PRFechaModi='" &
femodi & "',"strSQL = strSQL + "PRUsModi='" & usmodi & "',PREstado = '" & esta & "',"strSQL = strSQL + "PREspecializacion=" & espe & ","strSQL = strSQL + "PRPorcentaje=" & por & " "strSQL = strSQL + "where PRCodigo= " & cod & ""
COMAdocon.Execute strSQL, nroupdateProyecto = 1DesconectarExit Function
ErrMsg:DesconectarupdateProyecto = 0
End Function
26
1.5.13. ‘/*Busca El Código Máximo De Proveedores Que Ha SidoGuardado*/
Function maxProveedores() As RecordsetConectar
strSQL = "select max(POCod) from tblProveedor"Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxProveedores = COMAdorst
DesconectarEnd Function
1.5.14.‘/*Guarda Registro De Un Nuevo Proveedor*/
Function insertProveedor(cod As Integer, nombre As String, _ruc As String, dir As String, _tel As String, conta As String, _mail As String, feing As String, _using As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblProveedor values (" & cod & ",'" & nombre & "',"strSQL = strSQL + "'" & ruc & "','" & dir & "','" & tel & "',"strSQL = strSQL + "'" & conta & "','" & mail & "','" & feing & "',"strSQL = strSQL + "'" & using & "')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertProveedor = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertProveedor = 0
End Function
1.5.15. ‘/*Captura La Lista De Proveedores Disponibles*/
Function TodosProveedor() As RecordsetConectar
strSQL = "select * from TblProveedor order by PONombre"COMAdorst.Open strSQL, COMAdoconSet TodosProveedor = COMAdorst
Desconectar
27
End Function
1.5.16. ‘/*Actualiza Datos De Algún Proveedor Ya Ingresado*/
Function updateProveedor(cod As Integer, nombre As String, _ruc As String, dir As String, _tel As String, conta As String, _mail As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update TblProveedor set "strSQL = strSQL + "PONombre='" & nombre & "',"strSQL = strSQL + "PORuc='" & ruc & "',"strSQL = strSQL + "PODireccion='" & dir & "',POTelefono='" & tel & "',"strSQL = strSQL + "POContacto='" & conta & "',"strSQL = strSQL + "POmail='" & mail & "' "strSQL = strSQL + "where POCod= " & cod & ""
COMAdocon.Execute strSQL, nroupdateProveedor = 1DesconectarExit Function
ErrMsg:DesconectarupdateProveedor = 0
End Function
1.5.17. ‘/*Busca El Ultimo Implemento Registrado*/
Function maxRecursos() As RecordsetConectar
strSQL = "select max(MaCod) from TblRecursos "Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxRecursos = COMAdorst
DesconectarEnd Function
1.5.18. ‘/*Almacena En La Base Un Nuevo Implemento Que Pueda SerRequerido*/
Function insertRecursos(cod As Integer, nombre As String, _cpro As Integer, stock As Double, _using As String, feing As String, _usmodi As String, femodi As String, _pu As Double, Des As String) As Variant
ConectarOn Error GoTo ErrMsg
28
strSQL = ""strSQL = "insert into TblRecursos values (" & cod & ",'" & nombre & "',"strSQL = strSQL + "" & cpro & "," & stock & ",'" & using & "',"strSQL = strSQL + "'" & feing & "','" & usmodi & "','" & femodi & "'," & pu &
",'" & Des & "'," & stock & ")"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertRecursos = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertRecursos = 0
End Function
1.5.19. ‘/*Busca Todos Los Implementos Y Los Muestra Ordenados PorNombre*/
Function TodosRecursos() As RecordsetConectar
strSQL = "select * from TblRecursos order by MaNombre"COMAdorst.Open strSQL, COMAdoconSet TodosRecursos = COMAdorst
DesconectarEnd Function
Function ProveCod(cod As Integer) As RecordsetConectar
strSQL = "select * from tblproveedor where POCod = " & cod & ""COMAdorst.Open strSQL, COMAdoconSet ProveCod = COMAdorst
DesconectarEnd Function
1.5.20. ‘/*Permite Actualizar Los Implementos Mas Que Nada En SuStock*/
Function updateRecursos(cod As Integer, nombre As String, _cpro As Integer, stock As Double, _usmodi As String, femodi As String, _pu As Double, Des As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update TblRecursos set "strSQL = strSQL + "MaNombre='" & nombre & "',"strSQL = strSQL + "MaCodProve=" & cpro & ","
29
strSQL = strSQL + "MaStock=" & stock & ",MaUsModi='" & usmodi & "',"strSQL = strSQL + "MaFeModi='" & femodi & "',"strSQL = strSQL + "PU=" & pu & ","strSQL = strSQL + "Descripcion='" & Des & "',"strSQL = strSQL + "Disponible=" & stock & " "strSQL = strSQL + "where MaCod= " & cod & ""
COMAdocon.Execute strSQL, nroupdateRecursos = 1DesconectarExit Function
ErrMsg:DesconectarupdateRecursos = 0
End Function
1.5.21. ‘/*Asignar Actividades A Un Determinado Proyecto*/
Function insertEvento(cod As Integer, usu As Integer, _fec As String, Des As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into tbleventos values (" & cod & "," & usu & ","strSQL = strSQL + "'" & fec & "','" & Des & "')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertEvento = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertEvento = 0
End Function
1.5.22. ‘/*Captura El Código Máximo De Eventos Que Hizo Un UsuarioEn El Sistema*/
Function maxEvento() As RecordsetConectar
strSQL = "select max(IdEvento) from TblEventos "Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxEvento = COMAdorst
Desconectar
30
End Function
1.5.23 ‘/*Muestra Toda La Lista De Actividades Que Contiene UnProyecto*/
Function PresentaActividades(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "select a.*, b.UsApellidos,b.UsNombres "strSQL = strSQL + "from Tblactividades a ,tblusuarios b "strSQL = strSQL + "where a.ACCodRes = b.UsCodigo and AcEstado in
('A','I') and "strSQL = strSQL + "AcPro = " & cod & " order by ACOrden"
COMAdorst.Open strSQL, COMAdoconSet PresentaActividades = COMAdorst
DesconectarEnd Function
1.5.24. ‘/*Captura La El Código Máximo De Las Actividades Asignadas AUn Proyecto*/
Function maxActividad(pro As Integer) As RecordsetConectar
strSQL = "select max(AcCod) from TblActividades where AcPro = " & pro& ""
Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxActividad = COMAdorst
DesconectarEnd Function
1.5.25. /*actualizar detalles de actividad de un proyecto*/
Function updateActividad(cod As Integer, pro As Integer, _orden As Integer, Des As String, _finicio As String, ffin As String, _horas As String, estado As String, _using As String, feing As String, _usmodi As String, femodi As String, _di As Integer, res As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update tblActividades set "strSQL = strSQL + "ACDescripcion='" & Des & "',"strSQL = strSQL + "ACCodRes=" & res & ","strSQL = strSQL + "AcFecIni='" & finicio & "',"
31
strSQL = strSQL + "AcFecFin='" & ffin & "',"strSQL = strSQL + "AcHoras=" & horas & ","strSQL = strSQL + "AcEstado='" & estado & "',"strSQL = strSQL + "AcUsModi='" & usmodi & "',"strSQL = strSQL + "AcFecModi='" & femodi & "',"strSQL = strSQL + "AcDias=" & di & " "strSQL = strSQL + "where AcCod= " & cod & " and "strSQL = strSQL + "AcPro= " & pro & ""
COMAdocon.Execute strSQL, nroupdateActividad = 1DesconectarExit Function
ErrMsg:DesconectarupdateActividad = 0
End Function
1.5.26. ‘/*Captura Cual Es La Actividad Máxima */
Function maxOrdenActividad(pro As Integer) As RecordsetConectar
strSQL = "select max(ACOrden) from TblActividades where AcPro = " &pro & ""
Debug.Print strSQLCOMAdorst.Open strSQL, COMAdoconSet maxOrdenActividad = COMAdorst
DesconectarEnd Function
1.5.27. ‘/*Ingreso De Detalle De Una Nueva Actividad*/
Function insertActividad(cod As Integer, pro As Integer, _orden As Integer, Des As String, _finicio As String, ffin As String, _horas As String, estado As String, _using As String, feing As String, _usmodi As String, femodi As String, _di As Integer, res As Integer, _ava As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into tblActividades values (" & cod & "," & pro & ","strSQL = strSQL + "" & orden & ",'" & Des & "'," & res & ",'" & finicio & "',"strSQL = strSQL + "'" & ffin & "','" & horas & "','" & estado & "',"strSQL = strSQL + "'" & using & "','" & feing & "','" & usmodi & "',"strSQL = strSQL + "'" & femodi & "'," & di & "," & ava & ","strSQL = strSQL + "'" & ffin & "',0,0)"
32
Debug.Print strSQLCOMAdocon.Execute strSQL, nroinsertActividad = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertActividad = 0
End Function
1.5.28. ‘/*Permite Borrar La Especialización Existente De Un Usuario*/
Function borraEspe(cod As Integer) As VariantConectar
On Error GoTo ErrMsgCOMAdocon.BeginTransstrSQL = ""strSQL = "delete from TblUsuariosAreas where CodUsuario = " & cod & ""Debug.Print (strSQL)COMAdocon.Execute strSQLCOMAdocon.CommitTransborraEspe = 0DesconectarExit Function
ErrMsg:Debug.Print Err.Description
COMAdocon.RollbackTransDesconectarborraEspe = 1
End Function
1.5.29. ‘/*Muestra La Lista De Proyectos Creados Según Perfil DeUsuario*/
Function TodosProyectosTodos() As RecordsetConectar
If tipoUS = 1 ThenstrSQL = "select * from tblProyectos order by PRNombre"
ElsestrSQL = "select * from tblProyectos where PRIdResponsable = " &
codUsu & " order by PRNombre"End IfCOMAdorst.Open strSQL, COMAdoconSet TodosProyectosTodos = COMAdorst
DesconectarEnd Function
1.5.30 ‘/*Guarda La Especialización Del Recurso Humano (Usuario)*/
33
Function insertEspecializacion(codUsu As Integer, CodArea As Integer) AsVariant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblUsuariosAreas values (" & codUsu & ","strSQL = strSQL + "" & CodArea & ",'A')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertEspecializacion = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertEspecializacion = 0
End Function
1.5.31 ‘/*Captura Todas Las Áreas De Especialización AlmacenadasHasta El Momento Para Mostrarlas En El Combo Para Facilidades DelUsuario*/
Function Especializaciones(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "select * from TblUsuariosAreas "strSQL = strSQL + "where CodUsuario = " & cod & ""COMAdorst.Open strSQL, COMAdoconSet Especializaciones = COMAdorst
DesconectarEnd Function
1.5.32. ‘/*Captura La Lista De Todos Los Administradores DeProyectos*/
Function TodosProyectosRep() As RecordsetConectar
strSQL = "SELECT a.*, b.UsApellidos, b.UsNombres "strSQL = strSQL + "FROM Tblproyectos AS a, tblusuarios AS b "strSQL = strSQL + "Where a.PRIdResponsable = b.UsCodigo and
a.prestado = 'A' order by PRNombre"COMAdorst.Open strSQL, COMAdoconSet TodosProyectosRep = COMAdorst
DesconectarEnd Function
34
1.5.33. ‘/*Captura La Lista De Todos Los Administradores De ProyectoQue Estén Activos*/
Function TodosResponsables(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT distinct a.* from TblUsuarios a, TblUsuariosAreas b "strSQL = strSQL + "Where a.UsCodigo = b.CodUsuario and a.UsEstado =
'A' "If cod <> 0 Then
strSQL = strSQL + "and b.codarea = " & cod & " "End IfstrSQL = strSQL + "order by a.UsApellidos "COMAdorst.Open strSQL, COMAdoconSet TodosResponsables = COMAdorst
DesconectarEnd Function
1.5.34. ‘/*Evalua El Costo De Actividades Por Proyecto*/
Function PresentaActividadesCostos(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "select a.*, b.*"strSQL = strSQL + "from Tblactividades a ,tblusuarios b "strSQL = strSQL + "where a.ACCodRes = b.UsCodigo and "strSQL = strSQL + "AcPro = " & cod & " order by ACOrden"
COMAdorst.Open strSQL, COMAdoconSet PresentaActividadesCostos = COMAdorst
DesconectarEnd Function
1.5.35. /*datos de la clave*/
Function updateClave(cod As Integer, pass As String) As VariantConectarOn Error GoTo ErrMsg
strSQL = "update tblusuarios set "strSQL = strSQL + "UsPass='" & pass & "'"strSQL = strSQL + "where UsCodigo= " & cod & ""
COMAdocon.Execute strSQL, nroupdateClave = 1DesconectarExit Function
ErrMsg:
35
DesconectarupdateClave = 0
End Function
1.5.36 /* Numeros de proyectos realizados*/
Function NumeroProyectos(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT count(*) from TblUsuariosProyectos "strSQL = strSQL + "Where CodUsuario = " & cod & " and EstadoPro = 'A' "
COMAdorst.Open strSQL, COMAdoconSet NumeroProyectos = COMAdorst
DesconectarEnd Function
1.5.37 /*Ingresar los proyectos de cada usuario*/
Function insertUsuarioProyecto(codUsu As Integer, Codpro As Integer) AsVariant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblUsuariosProyectos values (" & codUsu & ","strSQL = strSQL + "" & Codpro & ",'A')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nroinsertUsuarioProyecto = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertUsuarioProyecto = 0
End Function
1.5.38 /* Eliminar los proyectos de usuarios*/
Function updateUsuariosproyecto(codUsu As Integer, Codpro As Integer, _esta As String) As Variant
ConectarOn Error GoTo ErrMsg
36
strSQL = ""strSQL = "delete from tblUsuariosproyectos "strSQL = strSQL + "where CodUsuario= " & codUsu & " and "strSQL = strSQL + "CodProyecto= " & Codpro & ""COMAdocon.Execute strSQL
strSQL = ""strSQL = "insert into TblUsuariosProyectos values (" & codUsu & ","strSQL = strSQL + "" & Codpro & ",'" & esta & "')"
COMAdocon.Execute strSQL, nroupdateUsuariosproyecto = 1DesconectarExit Function
ErrMsg:DesconectarupdateUsuariosproyecto = 0
End Function
1.5.39 /* Borrar Disponible*/
Function updateDisponible(cod As Integer, dis As Integer) As VariantConectarOn Error GoTo ErrMsg
strSQL = "update TblRecursos set "strSQL = strSQL + "Disponible=" & dis & " "strSQL = strSQL + "where MaCod= " & cod & ""
COMAdocon.Execute strSQL, nroupdateDisponible = 1DesconectarExit Function
ErrMsg:DesconectarupdateDisponible = 0
End Function
1.5.40 /* disponible*/
Function Disponible(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT disponible from TblRecursos "strSQL = strSQL + "Where Macod = " & cod & " "
COMAdorst.Open strSQL, COMAdoconSet Disponible = COMAdorst
DesconectarEnd Function
37
1.5.41./*Insertar los recursos de actividades*/
Function insertRecursosActividades(Codpro As Integer, CodAct As Integer, _codRec As Integer, can) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblRecursoActividad values (" & Codpro & ","strSQL = strSQL + "" & CodAct & "," & codRec & ",1,'A')"
COMAdocon.Execute strSQL, nroinsertRecursosActividades = 1DesconectarExit Function
ErrMsg:DesconectarinsertRecursosActividades = 0
End Function
1.5.42. /*Borrar recursos de actividades*/
Function borraRecursosActividades(Codpro As Integer, CodAct As Integer)ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "delete from TblRecursoActividad "strSQL = strSQL + "where CodPro= " & Codpro & " and "strSQL = strSQL + "CodActividad= " & CodAct & ""COMAdocon.Execute strSQL, nroborraRecursosActividades = 2DesconectarExit Function
ErrMsg:DesconectarborraRecursosActividades = 0
End Function
1.5.43/*Buscar los recursos de actividades*/
Function BuscaRecursosActividades(Codpro As Integer, _CodAct As Integer) As Recordset
ConectarstrSQL = ""strSQL = "SELECT a.*,b.* from TblRecursoActividad a, TblRecursos b "strSQL = strSQL + "where a.CodRecurso= b.MaCod and a.CodPro=" &
Codpro & " and "strSQL = strSQL + "a.CodActividad= " & CodAct & ""
COMAdorst.Open strSQL, COMAdocon
38
Set BuscaRecursosActividades = COMAdorstDesconectarEnd Function
1.5.44 /*Ingreso de actividades por cada usuario*/
Function insertUsuarioActividad(CodUs As Integer, Codpro As Integer, _CodAct As Integer, _finicio As String, ffin As String, _horas As String, estado As String) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblUsuariosActividades values (" & CodUs & ","strSQL = strSQL + "" & Codpro & "," & CodAct & ",'" & finicio & "',"strSQL = strSQL + "'" & ffin & "','" & horas & "','" & estado & "')"Debug.Print strSQLCOMAdocon.Execute strSQL, nroinsertUsuarioActividad = 1DesconectarExit Function
ErrMsg:DesconectarDebug.Print Err.Descriptionerror = Err.DescriptioninsertUsuarioActividad = 0
End Function
1.5.45 /*Buscar actividades de cada responsable*/
Function BuscaResponsableActividad(Codpro As Integer, _CodAct As Integer) As Recordset
ConectarstrSQL = ""strSQL = "SELECT a.*,b.MaNombre from TblRecursoActividad a,
TblRecursos b "strSQL = strSQL + "where a.CodRecurso= b.MaCod and a.CodPro=" &
Codpro & " and "strSQL = strSQL + "a.CodActividad= " & CodAct & ""
COMAdorst.Open strSQL, COMAdoconSet BuscaResponsableActividad = COMAdorst
DesconectarEnd Function
1.5.46 /*horas*/
39
Function RevisaHoras(CodUs As Integer, fecini As Date, fecfin As Date) AsRecordsetConectar
strSQL = ""strSQL = "SELECT sum(horadiarias) from TblUsuariosActividades "strSQL = strSQL + "where CodUsuario= " & CodUs & " and "strSQL = strSQL + "Ffin>= #" & fecini & "# and "strSQL = strSQL + "Ffin<= #" & fecini & "#"
COMAdorst.Open strSQL, COMAdoconSet RevisaHoras = COMAdorst
DesconectarEnd Function
1.5.47 /*Actividades por cada usuario*/
Function ActividadesUsuario(cod As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT * from TblUsuariosActividades "strSQL = strSQL + "Where CodUsuario = " & cod & " and Estado = 'A' order
by finicio"
COMAdorst.Open strSQL, COMAdoconSet ActividadesUsuario = COMAdorst
DesconectarEnd Function
1.5.48 /* consulta de actividades por cada auditor*/
Function ConsultaActAuditor(CodAudi As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT b.PRCodigo,b.PRNombre,a.AcCod,a.ACDescripcion,"strSQL = strSQL +
"a.AcFecIni,a.AcFecFin,a.AcHoras,a.AcEstado,a.AcPorcentaje,a.acdias "strSQL = strSQL + "from TblActividades a, TblProyectos b "strSQL = strSQL + "where a.AcPro=b.PRCodigo and a.ACCodRes=" &
CodAudi & " "strSQL = strSQL + "and a.acestado in ('A','I') and b.PREstado = 'A' "strSQL = strSQL + "order by b.PRCodigo, a.ACOrden"
COMAdorst.Open strSQL, COMAdoconSet ConsultaActAuditor = COMAdorst
DesconectarEnd Function
1.5.49 /*Usuario por cada actividad*/
40
Function UsuariosAct() As RecordsetConectar
If tipoUS = 1 ThenstrSQL = "select * from tblusuarios where UsEstado = 'A' order by
UsApellidos"Else
strSQL = "select * from tblusuarios where UsEstado = 'A' and UsCodigo =" & codUsu & " order by UsApellidos"
End IfCOMAdorst.Open strSQL, COMAdoconSet UsuariosAct = COMAdorst
DesconectarEnd Function
1.5.50 /* Tiempo de actividades*/
Function UpTiempoActividad(cod As Integer, pro As Integer, _ffinR As String, diasR As Integer, _horasR As Integer, por As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = "update tblActividades set "strSQL = strSQL + "AcFeFinReal='" & ffinR & "',"strSQL = strSQL + "AcDiasReal=" & diasR & ","strSQL = strSQL + "AcHorasTotReal=" & horasR & ","strSQL = strSQL + "Acporcentaje=" & por & " "strSQL = strSQL + "where AcCod= " & cod & " and "strSQL = strSQL + "AcPro= " & pro & ""
COMAdocon.Execute strSQL, nroUpTiempoActividad = 1DesconectarExit Function
ErrMsg:DesconectarUpTiempoActividad = 0
End Function
1.5.51 /*Rastros de auditor*/
Function RepRastros(desde As String, hasta As String, usu As Integer) AsRecordsetConectar
strSQL = ""strSQL = "SELECT a.fecha,a.descripcion,b.UsApellidos,b.UsNombres "strSQL = strSQL + "from TblEventos a, TblUsuarios b "strSQL = strSQL + "where a.IdUsuario = b.UsCodigo and "
41
strSQL = strSQL + "a.fecha >= #" & desde & " 00:00:00# and a.fecha <= #"& hasta & " 23:59:59# "
If usu <> 0 ThenstrSQL = strSQL + "and a.Idusuario = " & usu & " "
End IfstrSQL = strSQL + "order by a.fecha"
COMAdorst.Open strSQL, COMAdoconSet RepRastros = COMAdorst
DesconectarEnd Function
1.5.52 /* Horas por actividades*/
Function HorasActividades(pro As Integer, act As Integer) As RecordsetConectar
strSQL = ""strSQL = "SELECT sum(Horas) from TblHorasActividades "strSQL = strSQL + "where CodProyecto = " & pro & " and "strSQL = strSQL + "CodActividad = " & act & " "
COMAdorst.Open strSQL, COMAdoconSet HorasActividades = COMAdorst
DesconectarEnd Function
1.5.53 /*Eliminar actividades por horas*/
Function borraHorasActividades(Codpro As Integer, CodAct As Integer, fe AsString)ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "delete from TblHorasActividades "strSQL = strSQL + "where CodProyecto= " & Codpro & " and "strSQL = strSQL + "CodActividad= " & CodAct & " and "strSQL = strSQL + "Fecha= #" & fe & "# "COMAdocon.Execute strSQL, nroborraHorasActividades = 2DesconectarExit Function
ErrMsg:DesconectarborraHorasActividades = 0
End Function
1.5.54 /* INHoras actividades*/
42
Function INHorasAct(Codpro As Integer, CodAct As Integer, _fe As String, horas As Integer) As Variant
ConectarOn Error GoTo ErrMsg
strSQL = ""strSQL = "insert into TblHorasActividades values (" & Codpro & ","strSQL = strSQL + "" & CodAct & ",'" & fe & "'," & horas & ")"
COMAdocon.Execute strSQL, nroINHorasAct = 1DesconectarExit Function
ErrMsg:DesconectarINHorasAct = 0
End Function
1.5.55 /*Reportes de auditor por cada proyecto*/
Function ProyectosAudiRep(cod As Integer) As RecordsetConectar
strSQL = "SELECT a.*, b.UsApellidos, b.UsNombres "strSQL = strSQL + "FROM Tblproyectos AS a, tblusuarios AS b "strSQL = strSQL + "Where a.PRIdResponsable = b.UsCodigo and
a.prestado = 'A' and a.PRIdResponsable = " & cod & " order by PRNombre"COMAdorst.Open strSQL, COMAdoconSet ProyectosAudiRep = COMAdorst
DesconectarEnd Function
1.5.56 Codigo Del Módulo Principal
Option ExplicitPublic COMAdocon As ADODB.ConnectionPublic COMAdorst As ADODB.RecordsetPublic strSQL As StringPublic usuario As StringPublic tipoUS As IntegerPublic codUsu As IntegerPublic claveUS As StringPublic RutaRepor As StringPublic error As StringDim con As New bddDim rst As RecordsetDim strBusq As String
1.5.57. ‘/*Ruta de Reportes*/
Sub Main()
43
Dim f As DateRutaRepor = "C:\AUDITORIA\Reportes\"frmMain.Show
End Sub
1.5.58 ‘/*Conexion A La Base*/
Public Sub Conectar()Set COMAdocon = New ADODB.ConnectionSet COMAdorst = New ADODB.RecordsetCOMAdocon.ConnectionTimeout = 90COMAdocon.Open "FILEDSN=DBAudi"
End Sub
1.5.59. ‘/*Desconexión A La Base*/
Public Sub Desconectar()Set COMAdorst = NothingSet COMAdocon = Nothing
End Sub
1.5.60 ‘/*Exportación De Reportes Desde El Grid A Excel*/
Public Sub copyToExcel(InFlexGrid As MSFlexGrid)Dim r%, c%, Buf$, LstRow%, LstCol%Dim FormatMoney As BooleanDim MyExcel As Excel.ApplicationDim wbExcel As Excel.WorkbookDim shExcel As Excel.WorksheetDim cad As StringDim aux As IntegerOn Error Resume Next
Set MyExcel = GetObject(, "Excel.Application")If Err.Number <> 0 Then
Set MyExcel = CreateObject("Excel.Application")End IfSet wbExcel = MyExcel.Workbooks.AddSet shExcel = wbExcel.Worksheets.AddshExcel.Name = "Libro"shExcel.ActivateLstCol% = 0aux = 0cad = Chr(Asc("A"))For c% = 0 To InFlexGrid.Cols - 1
InFlexGrid.Col = c%LstRow% = 0If c% < 26 Then
44
shExcel.Columns(Chr(Asc("A") + c%)).ColumnWidth =InFlexGrid.ColWidth(c%) / 72
ElseshExcel.Columns(cad + Chr(Asc("A") + aux)).ColumnWidth =InFlexGrid.ColWidth(c%) / 72
End IfFor r% = 0 To InFlexGrid.Rows - 1InFlexGrid.Row = r%Err.ClearBuf$ = InFlexGrid.TextMatrix(r%, c%)If Buf$ <> "" Then
FormatMoney = FalseIf InStr(Buf$, vbCrLf) Then
Do While Right(Buf$, 1) = vbLfBuf$ = Left(Buf$, Len(Buf$) - 1)
LoopIf c% < 26 Then
shExcel.Range(Chr(Asc("A") + c%)).WrapText = TrueElse
shExcel.Range(cad + Chr(Asc("A") + aux)).WrapText = TrueEnd If
ElseIf Format(CDbl(Buf$), 0) = Buf$ ThenIf Err.Number = 0 ThenBuf$ = Str(CDbl(Buf$))FormatMoney = True
End IfEnd IfIf Buf$ <> "" Then
If InFlexGrid.MergeRow(r%) ThenFor LstCol% = c% To 1 Step -1
If InFlexGrid.TextMatrix(r%, LstCol% - 1) <>InFlexGrid.TextMatrix(r%, c%) Then
Exit ForEnd If
NextIf LstCol% <> c% Then
shExcel.Range(Chr(Asc("A") + LstCol%) & (r% + 1), _Chr(Asc("A") + c%) & (r% + 1)).MergeCells = True
shExcel.Range(Chr(Asc("A") + LstCol%) & (r% + 1), _Chr(Asc("A") + c%) & (r% + 1)).BorderAround
End IfEnd IfIf InFlexGrid.MergeCol(c%) And LstRow% <> r% ThenIf InFlexGrid.TextMatrix(LstRow%, c%) = InFlexGrid.TextMatrix(r%,
c%) ThenshExcel.Range(Chr(Asc("A") + c%) & (LstRow% + 1), _
Chr(Asc("A") + c%) & (r% + 1)).MergeCells = TrueshExcel.Range(Chr(Asc("A") + c%) & (LstRow% + 1), _
Chr(Asc("A") + c%) & (r% + 1)).BorderAroundElse
45
LstRow% = r%End If
End IfIf c < 26 Then
shExcel.Range(Chr(Asc("A") + c%) & _(r% + 1)).Font.Color = InFlexGrid.CellForeColor
ElseshExcel.Range((cad + Chr(Asc("A") + aux)) & _
(r% + 1)).Font.Color = InFlexGrid.CellForeColorEnd IfIf r% < InFlexGrid.FixedRows Or c% < InFlexGrid.FixedCols Then
If c < 26 ThenshExcel.Range(Chr(Asc("A") + c%) & _
(r% + 1)).Font.Bold = TrueElse
shExcel.Range((cad + Chr(Asc("A") + aux)) & _(r% + 1)).Font.Bold = True
End IfEnd If
'*****OJO CAMBIOIf c% < 26 Then
If (Mid(Buf$, 3, 1) = "/") ThenBuf$ = Format(Buf$, "yyyy/mm/dd")
End IfshExcel.Range(Chr(Asc("A") + c%) & (r% + 1)).Value = Buf$
ElseshExcel.Range((cad + Chr(Asc("A") + aux)) & (r% + 1)).Value = Buf$
End IfIf FormatMoney Then
shExcel.Range(Chr(Asc("A") + c%) & _(r% + 1)).NumberFormat = "###0;###0;###0;'' "
End IfCStr(Trim(Buf$))'*******************
End IfEnd If
NextIf c% >= 26 Then aux = aux + 1
NextMyExcel.Visible = TrueSet shExcel = NothingSet wbExcel = NothingSet MyExcel = Nothing
End Sub
1.5.61 'Funcion Que Guarda Todos Los Eventos Del Sistema
Public Sub Evento(eve As String)Dim codeve As IntegerDim fe As String
46
Set rst = con.maxEvento()If IsNull(rst.Fields(0)) Thencodeve = 1
Elsecodeve = rst.Fields(0) + 1
End Iffe = NowIf con.insertEvento(codeve, codUsu, fe, Trim(eve)) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd Sub
1.6. CODIGO DE PROYECTO
1.6.1. *Ingreso De Actividades - Frmactividades
Fig.- Form Load del Formulario FRMActividades
Private Sub Form_Load()With FRMCrtActividades
Me.LBLCodPro.Caption = .LBLCodPro.CaptionMe.LBLNombrePro.Caption = .LBLNombrePro.CaptionMe.LBLFechaInicioPRO.Caption = .LBLFechaInicio.CaptionMe.LBLFFinEsti.Caption = .LBLFFinEsti.Caption
End WithMe.MSFlexGrid1.Rows = 1Select Case par
Case 1:Set rst = con.maxActividad(CInt(Me.LBLCodPro.Caption))If IsNull(rst.Fields(0)) Then
Me.LBLCodActividad.Caption = 1Else
Me.LBLCodActividad.Caption = rst.Fields(0) + 1End If
Set rst = con.maxOrdenActividad(CInt(Me.LBLCodPro.Caption))If IsNull(rst.Fields(0)) Then
Me.TXTOrden.Text = 1Else
Me.TXTOrden.Text = rst.Fields(0) + 1End IfMe.CBOEstado.AddItem "ACTIVA"Me.CBOEstado.ListIndex = 0strOper = "insert"Me.DTPFechaIni.Value = Me.LBLFechaInicioPRO.CaptionMe.DTPFechafin.Value = Me.LBLFechaInicioPRO.CaptionMe.LBLDias.Caption = 1
47
Me.TXTHoras.Text = 0Me.CBOAvance.AddItem 0Me.CBOAvance.ListIndex = 0
Case 2:strOper = "update"With FRMCrtActividades
Me.CBOAvance.AddItem 0Me.CBOAvance.AddItem 10Me.CBOAvance.AddItem 20Me.CBOAvance.AddItem 30Me.CBOAvance.AddItem 40Me.CBOAvance.AddItem 50Me.CBOAvance.AddItem 60Me.CBOAvance.AddItem 70Me.CBOAvance.AddItem 80Me.CBOAvance.AddItem 90Me.CBOAvance.AddItem 100Me.TXTDescripcion.Text =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 2)Me.LBLCodActividad.Caption =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 0)Me.TXTOrden.Text =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 1)Me.LBLCodRes.Caption =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 9)Me.LBLNombreRes.Caption =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 5)Me.DTPFechaIni.Value =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 3)Me.DTPFechaIni.Enabled = FalseMe.DTPFechafin.Value =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 4)Me.TXTHoras.Text =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 6)Me.LBLDias.Caption =
.MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 8)
Me.CBOEstado.AddItem "ACTIVA"Me.CBOEstado.AddItem "INICIADA"Me.CBOEstado.AddItem "FINALIZADA"Me.CBOEstado.AddItem "ELIMINADA"'A=Activa I=Iniciada F=FInalizada E=EliminadaSelect Case .MSFlexGrid1.TextMatrix(.MSFlexGrid1.RowSel, 7)
Case "Activa"Me.CBOEstado.ListIndex = 0
Case "Iniciada"Me.CBOEstado.ListIndex = 1
Case "Finalizada"Me.CBOEstado.ListIndex = 2
Case "Eliminada"
48
Me.CBOEstado.ListIndex = 3End SelectCall cargarRecursos
End With
If Me.CBOEstado.Text = "FINALIZADA" ThenMe.CMDGrabar.Enabled = False
End IfCall CalculaHoras
End Select
End Sub
1.6.2. Declaración de variable Generales del FRMActividades
Option ExplicitDim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As StringDim par As Integer
Private Sub CBOAvance_Click()If Me.CBOAvance.Text = 100 Then
Me.CBOEstado.ListIndex = 2End If
End Sub
Private Sub CDMResponsable_Click()FRMBuscaUsuario.mostrar 3
End Sub
Private Sub CMDAñadir_Click()FRMBuscaRecursos.mostrar 2Me.MSFlexGrid1.ColWidth(0) = 0
End Sub
Private Sub cmdCancel_Click()Unload Me
End SubPrivate Sub CMDGrabar_Click()
Dim fini As DateDim ffin As DateDim FPro As DateDim FFinPro As DateDim Inicio As StringDim fin As String
49
Dim Actual As String
fini = Me.DTPFechaIni.Valueffin = Me.DTPFechafin.ValueFPro = Me.LBLFechaInicioPRO.CaptionFFinPro = Me.LBLFFinEsti.Caption
Inicio = Format(fini, "dd/mm/yyyy")fin = Format(ffin, "dd/mm/yyyy")Actual = Format(Date, "dd/mm/yyyy")
If fini < FPro ThenMsgBox " La fecha de Inicio de la Actividad no puede ser Menor a la fecha
de Inicio del Proyecto", vbCriticalMe.DTPFechaIni.SetFocusExit Sub
End If
If ffin > FFinPro ThenMsgBox "La fecha de Fin no puede ser mayor a la Fecha Final Estimada
del Proyecto " & Chr(13) & "Primero debe cambiar en Mantenimiento deProyecto", vbCritical
Me.DTPFechafin.SetFocusExit Sub
End If
If fini > ffin ThenMsgBox " La fecha de Fin no puede ser mayor a la fecha de Inicio",
vbCriticalMe.DTPFechafin.SetFocusExit Sub
End If
If Me.TXTHoras.Text = "" ThenMsgBox " No ha Ingresado Horas Diarias a Trabajar", vbCriticalMe.TXTHoras.SetFocusExit Sub
End If
If Me.TXTDescripcion.Text = "" ThenMsgBox " No ha Ingresado Descripcion de la Actividad", vbCriticalMe.TXTDescripcion.SetFocusExit Sub
End If
If Me.LBLCodRes.Caption = "" ThenMsgBox " No ha Ingresado Responsable de la Actividad", vbCriticalMe.CDMResponsable.SetFocusExit Sub
End If
50
If Me.CBOEstado.Text = "FINALIZADA" ThenIf MsgBox(" Esta Seguro que desea dar por Finalizada la Actividad",
vbYesNo) = vbNo ThenExit Sub
End IfEnd If
If strOper = "insert" ThenIf RevisaHorasResponsable = False Then
MsgBox "El Responsable No puede tener mas de 24 Horas en un diaasignadas....Revisar", vbCritical
Me.TXTHoras.SetFocusExit Sub
End If
If con.insertActividad(CInt(Me.LBLCodActividad.Caption), _CInt(Me.LBLCodPro.Caption), CInt(Me.TXTOrden.Text), _Trim(Me.TXTDescripcion.Text), Inicio, fin, _CInt(Me.TXTHoras.Text), Mid(Me.CBOEstado.Text, 1, 1), _usuario, Actual, "", Actual, CInt(Me.LBLDias.Caption), _CInt(Me.LBLCodRes.Caption), CInt(Me.CBOAvance.Text)) Then
Call GrabaRecursosCall GrabaUsuarioActividadesMsgBox "Actividad ha sido Guardado con Exito", vbInformationCall Evento("INSERT tblActividad")Unload Me
ElseMsgBox "Hubo un error en el Guardado de los Datos...Revisar que
no Exista el LOGIN " & error, vbCriticalEnd If
End If
If strOper = "update" ThenIf con.updateActividad(CInt(Me.LBLCodActividad.Caption), _
CInt(Me.LBLCodPro.Caption), CInt(Me.TXTOrden.Text), _Trim(Me.TXTDescripcion.Text), Inicio, fin, _CInt(Me.TXTHoras.Text), Mid(Me.CBOEstado.Text, 1, 1), _usuario, Actual, usuario, Actual, CInt(Me.LBLDias.Caption), _CInt(Me.LBLCodRes.Caption)) ThenCall GrabaRecursosMsgBox "Actualizacion realizada con Exito", vbInformationCall Evento("UPDATE tblActividad")Unload Me
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
51
End If
End Sub
Private Sub CMDEliminar_Click()Dim dispo As Integer
If Me.MSFlexGrid1.Rows = 1 ThenMsgBox "No hay Recursos asignados", vbCriticalMe.CMDAñadir.SetFocusExit Sub
End IfSet rst =
con.Disponible(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)))If IsNull(rst.Fields(0)) Then
dispo = 0Else
dispo = rst.Fields(0)End If
dispo = dispo + 1If con.updateDisponible(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0),
dispo) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End If
Me.MSFlexGrid1.RemoveItem (Me.MSFlexGrid1.RowSel)End Sub
Private Sub DTPFechafin_Change()Dim Dias As Integer
Dias = DateDiff("d", Me.DTPFechaIni, Me.DTPFechafin)If (Me.DTPFechaIni = Me.DTPFechafin) Then
Dias = 1End IfMe.LBLDias.Caption = DiasCall CalculaHoras
End Sub
Private Sub DTPFechaIni_Change()Dim Dias As Integer
Dias = DateDiff("d", Me.DTPFechaIni, Me.DTPFechafin)If (Me.DTPFechaIni = Me.DTPFechafin) Then
Dias = 1End If
52
Me.LBLDias.Caption = DiasCall CalculaHoras
End Sub
Private Sub TXTHoras_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenIf KeyAscii = 13 Then
If CInt(Me.TXTHoras.Text) < 0 Or CInt(Me.TXTHoras.Text) > 24 ThenMsgBox "Horas no pueden deben ser mayor a 24", vbCriticalMe.TXTHoras.Text = 0Me.TXTHoras.SetFocusExit Sub
End IfCall CalculaHoras
End IfKeyAscii = 0
End IfEnd If
End Sub
Private Sub TXTHoras_LostFocus()If CInt(Me.TXTHoras.Text) < 0 Or CInt(Me.TXTHoras.Text) > 24 Then
MsgBox "Horas no pueden deben ser mayor a 24", vbCriticalMe.TXTHoras.Text = 0Me.TXTHoras.SetFocusExit Sub
End If
Call CalculaHorasEnd Sub
Private Sub TXTOrden_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenKeyAscii = 0
End IfEnd If
End SubPublic Sub CalculaHoras()
Dim ho As Integerho = Me.TXTHoras * CInt(Me.LBLDias.Caption)Me.LBLHorasTotales = ho
End Sub
Public Sub mostrar(param As Integer)par = paramMe.Show vbModal
End Sub
53
Public Sub GrabaRecursos()Dim i As Integer
i = 1
If con.borraRecursosActividades(CInt(Me.LBLCodPro.Caption),CInt(Me.LBLCodActividad.Caption)) Then
End IfWhile i < Me.MSFlexGrid1.Rows
If Not con.insertRecursosActividades(CInt(Me.LBLCodPro.Caption), _CInt(Me.LBLCodActividad.Caption), CInt(Me.MSFlexGrid1.TextMatrix(i,
0)), 1) ThenEnd Ifi = i + 1
WendEnd Sub
Public Sub cargarRecursos()
Me.MSFlexGrid1.Rows = 1Set rst = con.BuscaRecursosActividades(CInt(Me.LBLCodPro.Caption),
CInt(Me.LBLCodActividad.Caption))While Not rst.EOF
MSFlexGrid1.AddItem rst.Fields(2) & Chr(9) & rst.Fields(6)rst.MoveNext
WendMe.MSFlexGrid1.ColWidth(0) = 0
End Sub
1.6.3. Buscar Proveedor De Implementos - Frmbuscaprov***/
Dim con As New bddDim rst As RecordsetDim strOpt As IntegerPrivate Sub Form_Load()
MSFlexGrid1.Rows = 1Set rst = con.TodosProveedor()While Not rst.EOF
MSFlexGrid1.AddItem rst.Fields(0) & _Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6)
rst.MoveNextWendSelect Case strOpt
Case 1, 2:
54
For i = 3 To 6Me.MSFlexGrid1.ColWidth(i) = 0
Next iEnd Select
End SubPublic Sub mostrar(param As Integer)
strOpt = paramMe.Show vbModal
End SubPrivate Sub MSFlexGrid1_DblClick()If MSFlexGrid1.Rows = 1 Then
Unload MeEnd IfSelect Case strOpt
Case 1:FRMProveedores.TXTCodigo.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMProveedores.TXTRazon.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMProveedores.TXTRUC.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMProveedores.TXTDir.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)FRMProveedores.TXTTelefono.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)FRMProveedores.TXTContacto.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5)FRMProveedores.TXTMail.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 6)Case 2:
FRMRecursos.LBLCodProv.Caption =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)
FRMRecursos.LBLNombreProv.Caption =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)
End SelectUnload Me
End Sub1.6.4. Frmbuscaproyecto
Dim con As New bddDim rst As RecordsetDim strOpt As IntegerPrivate Sub Form_Load()Dim i As Integer
MSFlexGrid1.Rows = 1If strOpt = 1 Then
Set rst = con.TodosProyectosTodos()Else
Set rst = con.TodosProyectos()End If
55
While Not rst.EOFMSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(9) & Chr(9) & rst.Fields(10) & _Chr(9) & rst.Fields(11) & Chr(9) & rst.Fields(12) & _Chr(9) & rst.Fields(6) & Chr(9) & rst.Fields(7) & _Chr(9) & rst.Fields(8)
rst.MoveNextWend
End SubPublic Sub mostrar(param As Integer)
strOpt = paramMe.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()If MSFlexGrid1.Rows = 1 Then
Unload MeExit Sub
End IfSelect Case strOpt
Case 1: 'FRMProyectosFRMProyectos.TXTCodigo.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMProyectos.TXTNombre.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMProyectos.TXTDescripcion.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMProyectos.DTPFechaIni.Value =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
FRMProyectos.LBLCodRes.Caption =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5) = "A" ThenFRMProyectos.TXTEstado.Text = 0
End IfIf MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5) = "F" Then
FRMProyectos.TXTEstado.Text = 1End IfIf MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5) = "I" Then
FRMProyectos.TXTEstado.Text = 2End IfFRMProyectos.CBOEspe.ListIndex =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 6)FRMProyectos.DTPFfinEsti.Value =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 7)FRMProyectos.TXTPor.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 8)
56
Case 2: 'ActividadesFRMCrtActividades.LBLCodPro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMCrtActividades.LBLNombrePro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMCrtActividades.LBLDes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMCrtActividades.LBLFechaInicio.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)FRMCrtActividades.LBLFFinEsti.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 7)Set rst =
con.UsuarioCod(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)))FRMCrtActividades.LBLRes.Caption = rst.Fields(2) + " " + rst.Fields(3)
Case 3: 'Reporte Proyectos ActividadesFRMReporteProyectos.LBLCodPro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMReporteProyectos.LBLNombrePro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMReporteProyectos.LBLDes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMReporteProyectos.LBLFechaInicio.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)Set rst =
con.UsuarioCod(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)))FRMReporteProyectos.LBLRes.Caption = rst.Fields(2) + " " +
rst.Fields(3)
Case 4: 'Reporte Actividades CostosFRMRepCostos.LBLCodPro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMRepCostos.LBLNombrePro.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMRepCostos.LBLDes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMRepCostos.LBLFechaInicio.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)FRMRepCostos.LBLPorcentaje.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 8)Set rst =
con.UsuarioCod(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)))FRMRepCostos.LBLRes.Caption = rst.Fields(2) + " " + rst.Fields(3)
Case 5:FRMEscojerproyecto.LBLCod.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMEscojerproyecto.LBLNombre.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)End Select
57
Unload MeEnd Sub
1.6.5FRMBuscarRecursos
Dim con As New bddDim rst As RecordsetDim strOpt As IntegerPrivate Sub Form_Load()Dim i As Integer
MSFlexGrid1.Rows = 1Set rst = con.TodosRecursos()While Not rst.EOF
MSFlexGrid1.AddItem rst.Fields(0) & _Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(7) & Chr(9) & rst.Fields(8) & _Chr(9) & rst.Fields(9) & Chr(9) & rst.Fields(10)
rst.MoveNextWendFor i = 4 To 9
Me.MSFlexGrid1.ColWidth(i) = 0Next i
If strOpt = 2 ThenMe.MSFlexGrid1.ColWidth(2) = 0Me.MSFlexGrid1.ColWidth(3) = 0
End IfEnd Sub
Public Sub mostrar(param As Integer)strOpt = paramMe.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()Dim dispo As Integer
If MSFlexGrid1.Rows = 1 ThenUnload Me
End IfSelect Case strOpt
Case 1:FRMRecursos.TXTCodigo.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMRecursos.TXTNombre.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)
58
FRMRecursos.LBLCodProv.Caption =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)
FRMRecursos.LBLStockActual.Caption =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
FRMRecursos.TXTStock.Text =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
FRMRecursos.TXTPrecio.Text =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 8)
FRMRecursos.TXTDescripcion.Text =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 9)
Case 2:If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 10) = 0 Then
MsgBox “Ya No hay disponible”, vbCriticalExit Sub
End IfFRMActividades.MSFlexGrid1.AddItem
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0) & Chr(9) &MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1) ‘& Chr(9) &MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 10)
dispo = Cint(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 10)) – 1If con.updateDisponible(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0), dispo)ThenElseMsgBox “Hubo un error en el Guardado de los Datos…Revisar que no Exista
el LOGIN “ & error, vbCriticalEnd If
End SelectUnload Me
End Sub
1.6.6 FRMBuscarUsuario
Dim con As New bddDim rst As RecordsetDim strOpt As IntegerPrivate Sub Form_Load()Dim i As Integer
MSFlexGrid1.Rows = 1Select Case strOpt
Case 1:Set rst = con.TodosUsuariosTotal()
Case 2:If FRMProyectos.CBOEspe.ListIndex = 0 Then
Set rst = con.TodosUsuarios()Else
Set rst =con.TodosResponsables(FRMProyectos.CBOEspe.ListIndex)
End IfCase 3, 4:
59
Set rst = con.TodosUsuarios()Case 5, 6:
Set rst = con.UsuariosAct()End Select
While Not rst.EOFMSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(7) & Chr(9) & rst.Fields(8) & _Chr(9) & rst.Fields(9) & Chr(9) & rst.Fields(10) & _Chr(9) & rst.Fields(11) & Chr(9) & rst.Fields(12) & _Chr(9) & rst.Fields(13)
rst.MoveNextWend
For i = 4 To 13Me.MSFlexGrid1.ColWidth(i) = 0
Next iMe.MSFlexGrid1.ColWidth(0) = 0If strOpt = 3 Then
Me.MSFlexGrid1.ColWidth(11) = 1000End If
End SubPublic Sub mostrar(param As Integer)
strOpt = paramMe.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()Dim num As Integer
If MSFlexGrid1.Rows = 1 ThenUnload Me
End IfSelect Case strOpt
Case 1: 'FRMUsuariosFRMUsuarios.TXTCodigo.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMUsuarios.TXTLogin.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1)FRMUsuarios.txtapellido.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2)FRMUsuarios.TXTNombre.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,
3)FRMUsuarios.txtemail.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)FRMUsuarios.txtdirecc.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5)If Trim(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 6)) = "MASCULINO" Then
60
FRMUsuarios.OPTMas.Value = TrueElse
FRMUsuarios.OPTFem.Value = TrueEnd If
FRMUsuarios.txttelef.Text =MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 7)
FRMUsuarios.TXTPass.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,8)
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 9) = 1 ThenFRMUsuarios.OPTAdmi.Value = True
ElseFRMUsuarios.OPTAudi.Value = True
End IfFRMUsuarios.CBOTipo.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 10)FRMUsuarios.TXTCosto.Text =Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 11), "#,###,###.00")
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 12) = "A" ThenFRMUsuarios.CBOEstado.ListIndex = 0
ElseFRMUsuarios.CBOEstado.ListIndex = 1
End IfCase 2: 'FRMProyectos
Set rst =con.NumeroProyectos(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,0)))
num = rst.Fields(0)If num = 2 Then
MsgBox "Este Responsable ya tiene asignado 2 Proyectos" & Chr(13)& "Debe Asignar Otro Responsable", vbCritical
Exit SubEnd IfFRMProyectos.LBLCodRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMProyectos.LBLNombreRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2) + " " +MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
Case 3: 'FRMActividadesFRMActividades.LBLCodRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMActividades.LBLNombreRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2) + " " +MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
Case 4, 5, 6:FRMEscojerAuditor.LBLCod.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)FRMEscojerAuditor.LBLNombre.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2) + " " +MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
61
End Select
Unload MeEnd Sub
1.6.7 FRMCambiarClave
Option Explicit
Dim con As New bddDim rst As Recordset
Private Sub cmdCancel_Click()Unload Me
End Sub
Private Sub CMDGrabar_Click()If Me.TxtClaveAnt.Text <> claveUS Then
MsgBox “Clave Anterior no Coincide”, vbCriticalMe.TxtClaveAnt.SetFocusExit Sub
End IfIf Me.TxtClaveNueva.Text <> Me.TxtClaveNuevaConfir.Text Then
MsgBox “Claves no Coinciden”, vbCriticalMe.TxtClaveNueva.SetFocusExit Sub
End If
If con.updateClave(codUsu, Trim(Me.TxtClaveNueva.Text)) ThenMsgBox “Cambio de Clave Realizado con Exito”, vbInformationCall Evento(“UPDATE tblusuario(Cambio Clave)”)claveUS = Trim(Me.TxtClaveNueva.Text)Unload Me
ElseMsgBox “Hubo un error en la Actualizaciòn”, vbCritical
End IfEnd Sub
Private Sub Form_Load()Me.LBLUsuario.Caption = usuario
End Sub
1.6.8 FRMCrtActividades
Option Explicit
62
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CDMResponsable_Click()FRMBuscaProyecto.mostrar 2If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividadesMe.Frame2.Enabled = True
End IfEnd Sub
Private Sub CMDAñadir_Click()FRMActividades.mostrar 1Call MostrarActividades
End Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub cmdOK_Click()Unload Me
End Sub
Private Sub Command1_Click()Unload Me
End Sub
Private Sub Form_Load()Me.Frame2.Enabled = False
End Sub
Public Sub MostrarActividades()Dim i As IntegerDim esta As String
Me.MSFlexGrid1.Rows = 1Set rst = con.PresentaActividades(CInt(Me.LBLCodPro.Caption))While Not rst.EOF
esta = ""If rst.Fields(8) = "A" Then
esta = "Activa"End IfIf rst.Fields(8) = "I" Then
esta = "Iniciada"End IfMSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(2) & Chr(9) & rst.Fields(3) & _
63
Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(18) & " " & rst.Fields(19) & _Chr(9) & rst.Fields(7) & Chr(9) & esta & _Chr(9) & rst.Fields(13) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(14)
rst.MoveNextWendMe.MSFlexGrid1.ColWidth(0) = 0
End Sub
Private Sub MSFlexGrid1_DblClick()If Me.MSFlexGrid1.Rows = 1 Then
Exit SubEnd If
FRMActividades.mostrar 2Call MostrarActividades
End Sub
1.6.9 FRMescogerAuditor
Dim con As New bddDim rst As RecordsetDim strOpt As IntegerPrivate Sub CDMResponsable_Click()
Select Case strOptCase 1:
FRMBuscaUsuario.mostrar 4Case 2:
FRMBuscaUsuario.mostrar 5Case 3:
FRMBuscaUsuario.mostrar 6End Select
End Sub
Private Sub cmdCancel_Click()Unload Me
End Sub
Private Sub cmdOK_Click()If Me.LBLCod.Caption = "" Then
MsgBox "Debe Ingresar Auditor", vbCriticalMe.cmdOK.SetFocusExit Sub
End If
Select Case strOptCase 1:
With FRMRepActAuditor.LBLAudi.Caption = Me.LBLNombre.Caption
64
.MSFlexGrid1.Rows = 1Set rst = con.ConsultaActAuditor(CInt(Me.LBLCod.Caption))
If rst.EOF = True ThenMsgBox "No tiene Actividades", vbCriticalMe.LBLCod.Caption = ""Me.LBLNombre.Caption = ""Exit Sub
End If
While Not rst.EOF.MSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(7) & Chr(9) & rst.Fields(8)
rst.MoveNextWend
Call Evento("Generacion Reporte Actividades por Auditor").Show 1
End WithCase 2:
With FRMModiTiempos.LBLCodAudi.Caption = Me.LBLCod.Caption.LBLAudi.Caption = Me.LBLNombre.Caption.MSFlexGrid1.Rows = 1Set rst = con.ConsultaActAuditor(CInt(Me.LBLCod.Caption))
If rst.EOF = True ThenMsgBox "No tiene Actividades", vbCriticalMe.LBLCod.Caption = ""Me.LBLNombre.Caption = ""Exit Sub
End If
While Not rst.EOF.MSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(7) & Chr(9) & rst.Fields(8) & _Chr(9) & rst.Fields(9)
rst.MoveNextWend.Show 1
End With
Case 3:With FRMRepProAudi
.LBLAudi.Caption = Me.LBLNombre.Caption.MSFlexGrid1.Rows = 1
65
Set rst = con.ProyectosAudiRep(CInt(Me.LBLCod.Caption))If rst.EOF = True Then
MsgBox "No tiene Proyectos Asignados", vbCriticalMe.LBLCod.Caption = ""Me.LBLNombre.Caption = ""Exit Sub
End If
While Not rst.EOF.MSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & _rst.Fields(13) & " " & rst.Fields(14) & _Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(9) & Chr(9) & rst.Fields(5) & _Chr(9) & rst.Fields(6) & Chr(9) & rst.Fields(7)
rst.MoveNextWendCall Evento("Generacion Reporte Proyectos por Auditor").Show 1
End WithEnd Select
End Sub
Private Sub Form_Load()
Me.LBLCod.Caption = ""Me.LBLNombre.Caption = ""
End Sub
'End SubPublic Sub mostrar(param As Integer)
strOpt = paramMe.Show vbModal
End Sub
1.6.10 FRMEscogerProyecto
Dim con As New bddDim rst As RecordsetDim strOpt As Integer
Private Sub CDMProyecto_Click()Select Case strOpt
66
Case 1:FRMBuscaProyecto.mostrar 5
End Sub
Private Sub cmdCancel_Click()Unload Me
End Sub
Private Sub cmdOK_Click()Dim i As IntegerDim totalH As IntegerDim totalD As IntegerDim esta As String
If Me.LBLCod.Caption = "" ThenMsgBox "Debe Ingresar Proyecto", vbCriticalMe.cmdOK.SetFocus
Exit SubEnd If
Select Case strOptCase 1:
With FRMRepActPrototalH = 0: totalD = 0.MSFlexGrid1.Rows = 1Set rst = con.PresentaActividades(CInt(Me.LBLCod.Caption))
If rst.EOF = True ThenMsgBox " El Proyecto no registra Actividades", vbCriticalMe.LBLCod.Caption = ""Me.LBLNombre.Caption = ""Exit Sub
End If
.LBLPro.Caption = Me.LBLNombre.Caption
.Command1.Enabled = FalseWhile Not rst.EOF
i = CInt(rst.Fields(7)) * CInt(rst.Fields(13))totalH = totalH + itotalD = totalD + CInt(rst.Fields(13))If rst.Fields(8) = "A" Then
esta = "ACTIVA"End IfIf rst.Fields(8) = "I" Then
esta = "INICIADA"End IfIf rst.Fields(8) = "F" Then
esta = "FINALIZADA"End IfIf rst.Fields(8) = "E" Then
67
esta = "ELIMINADA"End If.MSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(2) & Chr(9) & rst.Fields(3) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(18) & " " & rst.Fields(19) & _Chr(9) & rst.Fields(13) & Chr(9) & rst.Fields(7) & _Chr(9) & i & Chr(9) & rst.Fields(14) & Chr(9) & esta 'rst.Fields(8)
rst.MoveNextWend.MSFlexGrid1.AddItem "" & Chr(9) & "" & Chr(9) & "TOTALES " & _
Chr(9) & "" & Chr(9) & "" & Chr(9) & "" & Chr(9) & totalD & _Chr(9) & "" & Chr(9) & totalH
.MSFlexGrid1.ColWidth(0) = 0
.MSFlexGrid1.ColWidth(6) = 0
.MSFlexGrid1.ColWidth(7) = 0
.MSFlexGrid1.ColWidth(8) = 0Call Evento("Generacion Reporte Proyecto(grafico)").Show 1
End WithEnd Select
End Sub
Private Sub Form_Load()
Me.LBLCod.Caption = ""Me.LBLNombre.Caption = ""
End Sub
'End SubPublic Sub mostrar(param As Integer)
strOpt = paramMe.Show vbModal
End Sub
1.6.11 Acceso Al Sistema - Frmlogin
Option ExplicitDim con As New bddDim rst As RecordsetPublic LoginSucceeded As Boolean
Private Sub cmdCancel_Click()'establecer la variable global a false'para indicar un inicio de sesión fallidoLoginSucceeded = False
68
EndEnd Sub
Private Sub cmdOK_Click()'comprobar si la contraseña es correctaIf Trim(txtPassword) <> "" And Trim(txtUserName) <> "" Then
'colocar código aquí para pasar al sub'que llama si la contraseña es correcta'lo más fácil es establecer una variable globalLoginSucceeded = TrueSet rst = con.usuario(txtUserName, txtPassword)If Not rst.EOF Then
'*************************************If rst.Fields(12) = "I" Then
MsgBox "El usuario tiene estado de Inactivo Dbe consultar con eladministrador", vbCritical
Me.txtUserName.SetFocusExit Sub
End If'*************************************usuario = Trim(Me.txtUserName.Text)tipoUS = rst.Fields(9) '1= Administrador 2= AudiutorcodUsu = rst.Fields(0)claveUS = rst.Fields(8)
' Call Evento("INGRESO AL SISTEMA")
Unload MeElse
MsgBox "La contraseña no es válida. Vuelva a intentarlo", , "Inicio desesión"
txtPassword.SetFocusSendKeys "{Home}+{End}"
End IfElse
MsgBox "No a Ingresado los campos. Vuelva a intentarlo", vbCriticaltxtPassword.SetFocusSendKeys "{Home}+{End}"
End IfEnd Sub
Private Sub cmd_cancelar_Click()
End Sub
Private Sub Form_Load()LoginSucceeded = False
End Sub
Private Sub Form_Unload(Cancel As Integer)If Not LoginSucceeded Then
69
EndEnd IfEnd Sub
1.6.12 *Ventana De Menu Principal – Frmmain
Option Explicit
Private Sub actividades_Click()FRMCrtActividades.Show 1
End Sub
Private Sub cerrar_Click()Unload MeMe.Show
End Sub
Private Sub contra_Click()FRMCambiarClave.Show 1
End Sub
Private Sub costos_Click()FRMRepCostos.Show 1
End Sub
Private Sub grafi_Click()FRMEscojerproyecto.mostrar 1
End Sub
Private Sub modtiempo_Click()FRMEscojerAuditor.mostrar 2
End Sub
Private Sub proact_Click()FRMReporteProyectos.Show 1
End Sub
Private Sub proaudi_Click()FRMEscojerAuditor.mostrar 3
End Sub
Private Sub rastros_Click()FRMReprastros.Show 1
End Sub
Private Sub Recursos_Click()FRMRecursos.Show 1
End Sub
Private Sub aterials_Click()
70
End Sub
Private Sub MDIForm_Load()FrmLogin.Show vbModalIf tipoUS = 2 Thenusuarios.Enabled = FalseMe.Toolbar1.Buttons.Item(1).Enabled = Falserepro.Enabled = Falserastros.Enabled = Falserecursos.Enabled = Falseproveedores.Enabled = False
End If
Me.StatusBar1.Panels(2).Width = 1650Me.StatusBar1.Panels(2).Text = “Usuario : “ & usuario
Me.StatusBar1.Panels(3).Width = 1650If tipoUS = 1 Then
Me.StatusBar1.Panels(3).Text = “ADMINISTRADOR”Else
Me.StatusBar1.Panels(3).Text = “”End If
End SubPrivate Sub mnusalir_Click()
EndEnd Sub
Private Sub proveedores_Click()FRMProveedores.Show 1
End Sub
Private Sub proyectos_Click()FRMProyectos.Show 1
End Sub
Private Sub repaudi_Click()FRMEscojerAuditor.mostrar 1
End Sub
Private Sub repcos_Click()FRMRepCostos.Show 1
End Sub
Private Sub repro_Click()FRMRepProyectos.Show 1Call Evento(“Generacion Reporte General de Proyectos”)
End Sub
Private Sub salir_Click()
71
If MsgBox(“Esta seguro de salir del sistema”, vbQuestion + vbYesNo) =vbYes Then EndEnd Sub
Private Sub tiempos_Click()FRMReporteProyectos.Show 1
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)Select Case Button.IndexCase 1
FRMUsuarios.Show 1Case 2
FRMProyectos.Show 1Case 3
FRMCrtActividades.Show 1Case 4
FRMEscojerAuditor.mostrar 2Case 5
FRMEscojerproyecto.mostrar 1Case 8
If MsgBox(“Esta seguro de salir del sistema”, vbQuestion + vbYesNo) =vbYes Then EndEnd SelectEnd Sub
Private Sub usuarios_Click()FRMUsuarios.Show 1
End Sub
1.6.13 FrmModiActividades
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringPrivate Sub LBLFechaFinReal_Change()
End Sub
Private Sub cmdCancel_Click()Unload Me
End Sub
Private Sub CMDGrabar_Click()Dim fini As DateDim ffin As Date
72
Dim Inicio As StringDim fin As StringDim Actual As String
fini = Me.LBLFechaInicio.Captionffin = Me.DTPFechaFinReal.Value
Inicio = Format(fini, "dd/mm/yyyy")fin = Format(ffin, "dd/mm/yyyy")Actual = Format(Date, "dd/mm/yyyy")
If fini > ffin ThenMsgBox " La fecha de Trabajo no puede ser Menor a la fecha de Inicio",
vbCriticalMe.DTPFechaFinReal.SetFocusExit Sub
End If
If Me.TXTHorasTotReal.Text = "" ThenMsgBox " El campo Horas no puede estar vacio", vbCriticalMe.TXTHorasTotReal.SetFocusExit Sub
End IfCall CalculoHoPo
If con.UpTiempoActividad(CInt(Me.LBLCodAct.Caption), _CInt(Me.LBLCodPro.Caption), fin, _CInt(Me.LBLTotales.Caption), _CInt(Me.TXTHorasTotReal.Text), _CInt(Me.LBLProcen.Caption)) Then
MsgBox "Actualizacion realizada con Exito", vbInformationCall UpHoraActividadesCall Evento("UPDATE tblActividad (Tiempos)")
Unload MeElse
MsgBox "Hubo un error en la Actualizaciòn", vbCriticalEnd If
End Sub
Private Sub DTPFechaFinReal_Change()End Sub
Private Sub Label7_Click()
End Sub
Private Sub Form_Load()
73
End Sub
Private Sub TXTHorasTotReal_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenIf KeyAscii <> 13 Then
KeyAscii = 0Else
If CInt(Me.TXTHorasTotReal.Text) < 0 OrCInt(Me.TXTHorasTotReal.Text) > 24 Then
MsgBox "Horas no pueden deben ser mayor a 24", vbCriticalMe.TXTHorasTotReal.Text = 0Me.TXTHorasTotReal.SetFocusExit Sub
End IfCall CalculoHoPoMe.CMDGrabar.SetFocus
End If
End IfEnd If
End Sub
Private Sub UpHoraActividades()If con.borraHorasActividades(CInt(Me.LBLCodPro.Caption), _
CInt(Me.LBLCodAct.Caption), Me.DTPFechaFinReal.Value) Then
End If
If con.INHorasAct(CInt(Me.LBLCodPro.Caption), _CInt(Me.LBLCodAct.Caption), _Me.DTPFechaFinReal.Value, CInt(Me.TXTHorasTotReal.Text))
ThenCall Evento("INSERT HORAS ACTIVIDADES")
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
End Sub
Private Sub CalculoHoPo()Me.LBLTotales = CInt(Me.TXTHorasTotReal.Text) +
CInt(Me.LBLAcumuladas.Caption)Me.LBLProcen.Caption = CInt((CInt(Me.LBLTotales.Caption) * 100) /
CInt(Me.LBLHTotales))End Sub
Private Sub TXTHorasTotReal_LostFocus()
74
If CInt(Me.TXTHorasTotReal.Text) < 0 Or CInt(Me.TXTHorasTotReal.Text)> 24 Then
MsgBox "Horas no pueden deben ser mayor a 24", vbCriticalMe.TXTHorasTotReal.Text = 0Me.TXTHorasTotReal.SetFocusExit Sub
End IfCall CalculoHoPoMe.CMDGrabar.SetFocus
End Sub
1.6.14 FRMModiTiempos
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As StringDim par As Integer
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub MSFlexGrid1_DblClick()If Me.MSFlexGrid1.Rows = 1 Then
Exit SubEnd If
With FRMModiActividades.LBLCodAudi.Caption = Me.LBLCodAudi.Caption.LBLAudi.Caption = Me.LBLAudi.Caption.LBLCodPro.Caption = Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,
0).LBLProyecto.Caption =
Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 1).LBLCodAct.Caption = Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,
2).LBLActividad.Caption =
Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3).LBLFechaInicio.Caption =
Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4).LBLFechaFin.Caption =
Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5).LBLdias.Caption = Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 9).LBLHdiarias.Caption = Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,
6).LBLHTotales.Caption = CInt(.LBLdias.Caption) *
CInt(.LBLHdiarias.Caption)
75
.DTPFechaFinReal.Value =Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 4)
.TXTHorasTotReal.Text = 0Set rst =
con.HorasActividades(CInt(Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)), Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2))
.LBLAcumuladas.Caption = IIf(IsNull(rst.Fields(0)), 0, rst.Fields(0))
.LBLTotales.Caption = CInt(.TXTHorasTotReal.Text) +CInt(.LBLAcumuladas.Caption)
.LBLProcen.Caption = CInt((CInt(.LBLAcumuladas.Caption) * 100) /CInt(.LBLHTotales))
.Show 1End With
Unload MeEnd Sub
1.6.15 Mantenimiento De Proveedores-Frmproveedores
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CMDBuscar_Click()FRMBuscaProv.mostrar 1strOper = "update"
End Sub
Private Sub CMDDeshacer_Click()Call Limpiar
End Sub
Private Sub CMDGrabar_Click()Dim fe As String
If Me.TXTRazon.Text = "" ThenMsgBox "No ha asignado Razon Social ", vbCriticalMe.TXTRazon.SetFocusExit Sub
End If
fe = Format(Date, "dd/mm/yyyy")
If strOper = "insert" ThenIf con.insertProveedor(CInt(Me.TXTCodigo.Text),
Trim(Me.TXTRazon.Text), _
76
Trim(Me.TXTRUC.Text), Trim(Me.TXTDir.Text),Trim(Me.TXTTelefono.Text), _
Trim(Me.TXTContacto.Text), Trim(Me.TXTMail.Text), _fe, usuario) Then
MsgBox "Proveedor ha sido Guardado con Exito", vbInformationCall Evento("INSERT tblproveedor")CMDDeshacer_Click
ElseMsgBox "Hubo un error en el Guardado de los Datos " & error,
vbCriticalEnd If
End If
If strOper = "update" ThenIf con.updateProveedor(CInt(Me.TXTCodigo.Text),
Trim(Me.TXTRazon.Text), _Trim(Me.TXTRUC.Text), Trim(Me.TXTDir.Text),
Trim(Me.TXTTelefono.Text), _Trim(Me.TXTContacto.Text), Trim(Me.TXTMail.Text)) ThenMsgBox "Actualizacion realizada con Exito", vbInformationCall Evento("UPDATE tblproveedor")CMDDeshacer_Click
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End IfEnd If
End Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub Form_Load()Set rst = con.maxProveedores()If IsNull(rst.Fields(0)) ThenMe.TXTCodigo.Text = 1
ElseMe.TXTCodigo.Text = rst.Fields(0) + 1
End IfMe.TXTCodigo.Enabled = FalsestrOper = "insert"
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub TXTContacto_KeyPress(KeyAscii As Integer)
77
If KeyAscii >= 97 And KeyAscii <= 122 ThenKeyAscii = KeyAscii - 32
End If
End Sub
Private Sub TXTDir_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TXTRazon_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TXTRUC_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenKeyAscii = 0
End IfEnd If
End Sub
Private Sub TXTTelefono_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenKeyAscii = 0
End IfEnd If
End Sub
Public Sub Limpiar()Set rst = con.maxProveedores()If IsNull(rst.Fields(0)) ThenMe.TXTCodigo.Text = 1
ElseMe.TXTCodigo.Text = rst.Fields(0) + 1
End IfMe.TXTCodigo.Enabled = FalsestrOper = "insert"
Me.TXTContacto.Text = ""Me.TXTDir.Text = ""Me.TXTMail.Text = ""
78
Me.TXTRazon.Text = ""Me.TXTRUC.Text = ""Me.TXTTelefono.Text = ""
End Sub
1.6.16 Mantenimiento De Proyectos-Frmproyectos
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CDMResponsable_Click()FRMBuscaUsuario.mostrar 2
End Sub
Private Sub CMDBuscar_Click()FRMBuscaProyecto.mostrar 1If Me.TXTNombre.Text <> "" Then
Set rst = con.UsuarioCod(CInt(Me.LBLCodRes.Caption))Me.Picture1.Visible = TrueMe.LBLNombreRes.Caption = rst.Fields(2) + " " + rst.Fields(3)Me.DTPFechaIni.Enabled = FalseMe.DTPFfinEsti.Enabled = FalseMe.CBOEstado.ClearMe.CBOEstado.AddItem "ACTIVO"Me.CBOEstado.AddItem "FINALIZADO"Me.CBOEstado.AddItem "INACTIVO"Me.CBOEstado.ListIndex = CInt(Me.TXTEstado.Text)strOper = "update"If CInt(Me.TXTEstado.Text) = 1 Then
Me.CMDGrabar.Enabled = FalseMe.Picture1.Visible = False
End IfEnd If
End Sub
Private Sub CMDDeshacer_Click()Unload MeMe.Show 1
End Sub
Private Sub CMDGrabar_Click()Dim fe As StringDim Inicio As StringDim fin As StringDim Actual As StringDim fini As Date
79
Dim ffin As Date
fini = Me.DTPFechaIni.Valueffin = Me.DTPFfinEsti.Value
Inicio = Format(fini, "dd/mm/yyyy")fin = Format(ffin, "dd/mm/yyyy")
fe = Format(Date, "dd/mm/yyyy")
If fini > ffin ThenMsgBox " La Fecha de Fin no puede ser Menor a la Fecha de Inicio",
vbCriticalMe.DTPFfinEsti.SetFocusExit Sub
End If
If Me.TXTNombre.Text = "" ThenMsgBox "No ha asignado Nombre ", vbCriticalMe.TXTNombre.SetFocusExit Sub
End If
If Me.LBLCodRes.Caption = "" ThenMsgBox "No ha asignado Responsable", vbCriticalMe.CDMResponsable.SetFocusExit Sub
End If
If Me.TXTPor.Text = "" Or Me.TXTPor.Text = "0" ThenMsgBox "No ha asignado Porcentaje de gastos Administrativos",
vbCriticalMe.TXTPor.SetFocusExit Sub
End If
If strOper = "insert" Then
If con.insertProyecto(CInt(Me.TXTCodigo.Text),Trim(Me.TXTNombre.Text), _
Trim(Me.TXTDescripcion.Text), Inicio, CInt(Me.LBLCodRes.Caption), _fe, usuario, fe, "", CInt(Me.CBOEspe.ListIndex), fin,
CInt(Me.TXTPor.Text)) ThenMsgBox "Proyecto ha sido Guardado con Exito", vbInformationCall Evento("INSERT tblproyecto")Call UsuarioProyectoCMDDeshacer_ClickExit Sub
Else
80
MsgBox "Hubo un error en el Guardado de los Datos " & error,vbCritical
End IfEnd If
If strOper = "update" ThenIf con.updateProyecto(CInt(Me.TXTCodigo.Text),
Trim(Me.TXTNombre.Text), _Trim(Me.TXTDescripcion.Text), CInt(Me.LBLCodRes.Caption), _fe, usuario, Mid(Me.CBOEstado.Text, 1, 1),
CInt(Me.CBOEspe.ListIndex), CInt(Me.TXTPor.Text)) ThenMsgBox "Actualizacion realizada con Exito", vbInformationCall Evento("UPDATE tblproyecto")Call UsuarioProyectoCMDDeshacer_ClickExit Sub
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End IfEnd If
End Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub Form_Load()Set rst = con.maxProyecto()
If IsNull(rst.Fields(0)) ThenMe.TXTCodigo.Text = 1
ElseMe.TXTCodigo.Text = rst.Fields(0) + 1
End IfMe.TXTCodigo.Enabled = FalseMe.DTPFechaIni.Value = DateMe.DTPFfinEsti.Value = DatestrOper = "insert"Me.CBOEstado.AddItem "ACTIVO"Me.CBOEstado.ListIndex = 0Me.CBOEspe.ListIndex = 0
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
End Sub
Private Sub TXTDescripcion_KeyPress(KeyAscii As Integer)
81
If KeyAscii >= 97 And KeyAscii <= 122 ThenKeyAscii = KeyAscii - 32
End IfEnd Sub
Private Sub TXTNombre_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub UsuarioProyecto()
If strOper = "insert" ThenIf con.insertUsuarioProyecto(CInt(Me.LBLCodRes.Caption), _
CInt(Me.TXTCodigo.Text)) ThenElse
MsgBox "ERROR", vbCriticalEnd If
End IfIf strOper = "update" Then
If con.updateUsuariosproyecto(CInt(Me.LBLCodRes.Caption), _CInt(Me.TXTCodigo.Text), Mid(Me.CBOEstado.Text, 1, 1)) Then
ElseMsgBox "ERROR", vbCritical
End IfEnd If
End Sub
Private Sub TXTPor_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenIf KeyAscii = 13 Then
If CInt(Me.TXTPor.Text) < 0 Or CInt(Me.TXTPor.Text) > 12 ThenMsgBox "Procentaje no puede deben ser mayor a 12", vbCriticalMe.TXTPor.Text = 0Me.TXTPor.SetFocusExit Sub
End IfEnd IfKeyAscii = 0
End IfEnd If
End Sub
Private Sub TXTPor_LostFocus()If Me.TXTPor.Text = "" Then
Me.TXTPor = 0
82
End IfIf CInt(Me.TXTPor.Text) < 0 Or CInt(Me.TXTPor.Text) > 12 Then
MsgBox "Procentaje no puede deben ser mayor a 12", vbCriticalMe.TXTPor.Text = 0Me.TXTPor.SetFocusExit Sub
End IfEnd Sub
1.6.17 FRMRastrosAuditoria
Option Explicit
Private Sub Command1_Click()If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()Unload Me
End Sub
Private Sub Form_Load()
End Sub
1.6.18 ‘/**Mantenimiento De Recursos (Implementos) – Frmrecursos**/
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CDMProveedor_Click()FRMBuscaProv.mostrar 2
End Sub
Private Sub CMDBuscar_Click()FRMBuscaRecursos.mostrar 1If Me.TXTNombre.Text <> "" Then
Set rst = con.ProveCod(CInt(Me.LBLCodProv.Caption))Me.LBLNombreProv.Caption = rst.Fields(1)
83
Me.LBLtotal.Caption = Format(Me.LBLStockActual.Caption *Me.TXTPrecio.Text, "#,###,###.00")
strOper = "update"End If
End Sub
Private Sub CMDDeshacer_Click()Call Limpiar
End Sub
Private Sub CMDGrabar_Click()Dim fe As String
If Me.TXTNombre.Text = "" ThenMsgBox "No ha asignado Nombre ", vbCriticalMe.TXTNombre.SetFocusExit Sub
End If
If Me.LBLCodProv.Caption = "" ThenMsgBox "No ha asignado Proveedor", vbCriticalMe.CDMProveedor.SetFocusExit Sub
End If
Call CalcularTotal
If strOper = "insert" Then
If con.insertRecursos(CInt(Me.TXTCodigo.Text),Trim(Me.TXTNombre.Text), _
CInt(Me.LBLCodProv.Caption), CDbl(Me.TXTStock.Text), _usuario, fe, "", fe, CDbl(Me.TXTPrecio.Text),
Trim(Me.TXTDescripcion.Text)) ThenMsgBox "Recurso ha sido Guardado con Exito", vbInformationCall Evento("INSERT tblRecursos")CMDDeshacer_Click
ElseMsgBox "Hubo un error en el Guardado de los Datos " & error,
vbCriticalEnd If
End If
If strOper = "update" ThenIf Me.TXTStock.Text = "" Then
Me.TXTStock.Text = Me.LBLStockActual.CaptionEnd IfIf con.updateRecursos(CInt(Me.TXTCodigo.Text),
Trim(Me.TXTNombre.Text), _
84
CInt(Me.LBLCodProv.Caption), CDbl(Me.TXTStock.Text), _usuario, fe, CDbl(Me.TXTPrecio.Text), Trim(Me.TXTDescripcion.Text))
ThenMsgBox "Actualizacion realizada con Exito", vbInformationCall Evento("UPDATE tblRecursos")CMDDeshacer_Click
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End IfEnd If
End Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub Form_Load()Call Limpiar
End Sub
Private Sub TXTDescripcion_GotFocus()SendKeys "{Home}+{End}"
End Sub
Private Sub TXTDescripcion_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TBLPrecio_Change()
End Sub
Private Sub TXTNombre_GotFocus()SendKeys "{Home}+{End}"
End Sub
Private Sub TXTNombre_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TXTPrecio_GotFocus()SendKeys "{Home}+{End}"
End Sub
85
Private Sub TXTPrecio_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii <> 46 ThenIf KeyAscii = 13 ThenCall CalcularTotal
End IfIf KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0End If
End IfEnd If
End Sub
Private Sub TXTStock_GotFocus()SendKeys "{Home}+{End}"
End Sub
Private Sub TXTStock_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii <> 46 ThenIf KeyAscii = 13 Then
Call CalcularTotalMe.CMDGrabar.SetFocus
End IfIf KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0End If
End IfEnd If
End Sub
Public Sub CalcularTotal()Me.LBLtotal.Caption = Format(Me.TXTStock.Text * Me.TXTPrecio.Text,
"#,###,###.00")Me.CMDGrabar.SetFocus
End Sub
Private Sub Limpiar()Set rst = con.maxRecursos()If IsNull(rst.Fields(0)) ThenMe.TXTCodigo.Text = 1
ElseMe.TXTCodigo.Text = rst.Fields(0) + 1
End IfMe.TXTCodigo.Enabled = FalseMe.TXTNombre.Text = ""Me.TXTDescripcion.Text = ""Me.LBLCodProv.Caption = ""
86
Me.LBLNombreProv.Caption = ""Me.LBLtotal.Caption = 0Me.LBLStockActual.Caption = "0"Me.TXTStock.Text = 0Me.TXTPrecio.Text = 0
strOper = "insert"End Sub
1.6.19 FRMRepoActAuditor
Private Sub Command1_Click()If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()Unload Me
End Sub
Private Sub Form_Load()
End Sub
1.6.20 FRMRepActPro
Option Explicit
Private Sub Imprimir_MsChart(titulo As String, _MsChart As MsChart, _escala As Single)
With MsChart' elimina los datos del clipboardClipboard.Clear
' copia la imagen del mschart al portapapeles.EditCopy
' sila imagen es válidaIf Clipboard.GetFormat(vbCFBitmap) Then
'scale mode
87
Printer.ScaleMode = vbTwips.Parent.ScaleMode = vbTwips
' tituloPrinter.Font.Size = 10Printer.FontName = "Verdana"
Printer.Print vbNullStringPrinter.Print tituloPrinter.Print vbNullString
' dibuja la imagenPrinter.PaintPicture Clipboard.GetData(), 100, 500, _
.Width * escala, .Height * escala, 0, 0
Printer.EndDoc ' envía el trabajo a la impresoraEnd If
End With
MsgBox " Impresion OK", vbInformationEnd Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub Command1_Click()Call Imprimir_MsChart("Gráfico de ejemplo", Me.Chart, 1.2)
End Sub
Private Sub Command2_Click()Dim i As IntegerDim j As IntegerDim por As Integer
Me.Chart.Visible = TrueMe.Chart.TitleText = Trim(Me.LBLPro.Caption)j = Me.MSFlexGrid1.Rows - 2
With Me.Chart.DataGrid.RowCount = j' Establecemos las Etiquetas de las ColumnasFor i = 1 To j
por = CInt(Me.MSFlexGrid1.TextMatrix(i, 9)).RowLabel(i, 1) = Trim(Me.MSFlexGrid1.TextMatrix(i, 2))
.SetData i, 1, por, 0Next i
End With
88
Me.Command1.Enabled = True
End Sub
1.6.21 FRMRepActCostos
Option ExplicitDim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CDMResponsable_Click()FRMBuscaProyecto.mostrar 4If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividadesCall Evento("Generacion Reporte Costos Actividades")
End IfEnd Sub
Public Sub MostrarActividades()Dim i As IntegerDim totalC As Double
Dim esta As StringDim total As DoubleDim cpro As IntegerDim cact As IntegerDim TRecurso As DoubleDim TRecursoPro As DoubleDim TGastoAdm As DoubleDim TGastoAdmPro As DoubleDim TCostoAct As DoubleDim TCostoActPRO As Double
totalC = 0: total = 0TRecursoPro = 0: TGastoAdmPro = 0: TCostoActPRO = 0Me.MSFlexGrid1.Rows = 1Set rst = con.PresentaActividadesCostos(CInt(Me.LBLCodPro.Caption))While Not rst.EOF
i = CInt(rst.Fields(7)) * CInt(rst.Fields(13))totalC = i * CDbl(rst.Fields(29))total = total + totalCMSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(2) & Chr(9) & rst.Fields(3) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(20) & " " & rst.Fields(21) & _Chr(9) & rst.Fields(13) & Chr(9) & rst.Fields(7) & _
89
Chr(9) & i & Chr(9) & rst.Fields(29) & Chr(9) & _Format(totalC, "#,###,###.00") 'rst.Fields(8)
rst.MoveNextWendMe.MSFlexGrid1.AddItem "" & Chr(9) & "" & Chr(9) & "TOTALES " & _
Chr(9) & "" & Chr(9) & "" & Chr(9) & "" & Chr(9) & "" & _Chr(9) & "" & Chr(9) & "" & Chr(9) & "" & Chr(9) & _Format(total, "#,###,###.00")
Me.MSFlexGrid1.ColWidth(0) = 0
'COSTOS DE RECURSOScpro = CInt(Me.LBLCodPro.Caption)For i = 1 To Me.MSFlexGrid1.Rows - 2
cact = Me.MSFlexGrid1.TextMatrix(i, 0)TRecurso = 0TCostoAct = 0Me.MSFlexGrid2.Rows = 1Set rst = con.BuscaRecursosActividades(cpro, cact)While Not rst.EOF
Me.MSFlexGrid2.AddItem rst.Fields(2) & Chr(9) & rst.Fields(6) &Chr(9) & rst.Fields(13)
TRecurso = TRecurso + CDbl(rst.Fields(13))rst.MoveNext
WendMe.MSFlexGrid1.TextMatrix(i, 11) = Format(TRecurso, "#,###,###.00")TRecursoPro = TRecursoPro + TRecursoTGastoAdm = (TRecursoPro + CDbl(Me.MSFlexGrid1.TextMatrix(i, 10)))
* (CInt(Me.LBLPorcentaje.Caption) / 100)Me.MSFlexGrid1.TextMatrix(i, 12) = Format(TGastoAdm,
"#,###,###.00")TGastoAdmPro = TGastoAdmPro + TGastoAdmTCostoAct = TRecurso + TGastoAdm +
CDbl(Me.MSFlexGrid1.TextMatrix(i, 10))Me.MSFlexGrid1.TextMatrix(i, 13) = Format(TCostoAct, "#,###,###.00")TCostoActPRO = TCostoActPRO + TCostoAct
Next iMe.MSFlexGrid1.TextMatrix(i, 11) = Format(TRecursoPro, "#,###,###.00")Me.MSFlexGrid1.TextMatrix(i, 12) = Format(TGastoAdmPro,
"#,###,###.00")Me.MSFlexGrid1.TextMatrix(i, 13) = Format(TCostoActPRO,
"#,###,###.00")End Sub
Private Sub Command1_Click()If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1
90
Me.MousePointer = 0End If
End Sub
Private Sub Command2_Click()Unload Me
End SubPrivate Sub FRMCostos_DragDrop(Source As Control, X As Single, Y AsSingle)
End Sub
1.6.22 FRMRepProyectos
Option ExplicitDim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CDMResponsable_Click()FRMBuscaProyecto.mostrar 3If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividadesCall Evento("Generacion Reporte Tiempos Actividades")
End IfEnd Sub
Public Sub MostrarActividades()Dim i As IntegerDim totalH As IntegerDim totalD As IntegerDim esta As String'Dim total As Integer
totalH = 0: totalD = 0Me.MSFlexGrid1.Rows = 1Set rst = con.PresentaActividades(CInt(Me.LBLCodPro.Caption))While Not rst.EOF
i = CInt(rst.Fields(7)) * CInt(rst.Fields(13))totalH = totalH + itotalD = totalD + CInt(rst.Fields(13))If rst.Fields(8) = "A" Then
esta = "ACTIVA"End IfIf rst.Fields(8) = "I" Then
esta = "INICIADA"End IfIf rst.Fields(8) = "F" Then
91
esta = "FINALIZADA"End IfIf rst.Fields(8) = "E" Thenesta = "ELIMINADA"
End IfMSFlexGrid1.AddItem rst.Fields(0) & _
Chr(9) & rst.Fields(2) & Chr(9) & rst.Fields(3) & _Chr(9) & rst.Fields(5) & Chr(9) & rst.Fields(6) & _Chr(9) & rst.Fields(18) & " " & rst.Fields(19) & _Chr(9) & rst.Fields(13) & Chr(9) & rst.Fields(7) & _Chr(9) & i & Chr(9) & rst.Fields(14) & Chr(9) & esta 'rst.Fields(8)
rst.MoveNextWendMe.MSFlexGrid1.AddItem "" & Chr(9) & "" & Chr(9) & "TOTALES " & _
Chr(9) & "" & Chr(9) & "" & Chr(9) & "" & Chr(9) & totalD & _Chr(9) & "" & Chr(9) & totalH
Me.MSFlexGrid1.ColWidth(0) = 0End Sub
Private Sub Command1_Click()If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()Unload Me
End Sub
Private Sub Form_Load()
End Sub
1.6.23 FRMRepProAudi
Option ExplicitPrivate Sub Command1_Click()
If Me.MSFlexGrid1.Rows = 1 ThenMsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1Me.MousePointer = 0
End If
92
End Sub
Private Sub Command2_Click()Unload Me
End Sub
1.6.24 FRMRepProyectos
Dim con As New bddDim rst As RecordsetDim strOpt As Integer
Private Sub Command1_Click()If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"Else
Me.MousePointer = 11copyToExcel Me.MSFlexGrid1Me.MousePointer = 0
End IfEnd Sub
Private Sub Command2_Click()Unload Me
End Sub
Private Sub Form_Load()Dim i As Integer
MSFlexGrid1.Rows = 1Set rst = con.TodosProyectosRep()While Not rst.EOF
MSFlexGrid1.AddItem rst.Fields(0) & _Chr(9) & rst.Fields(1) & Chr(9) & rst.Fields(2) & _Chr(9) & rst.Fields(3) & Chr(9) & _rst.Fields(13) & " " & rst.Fields(14) & _Chr(9) & rst.Fields(4) & _Chr(9) & rst.Fields(9) & Chr(9) & rst.Fields(5) & _Chr(9) & rst.Fields(6) & Chr(9) & rst.Fields(7)
rst.MoveNextWendMe.MSFlexGrid1.ColWidth(0) = 0
End Sub
1.6.25 FRMRepRastros
Dim con As New bdd
93
Dim rst As RecordsetDim strOpt As Integer
Private Sub CMDAceptar_Click()Dim desde As StringDim hasta As StringDim i As IntegerDim num As Integer
If Me.CBOFdesde <= Me.CBOFhasta Thendesde = Format(Me.CBOFdesde.Value, "mm/dd/yyyy")hasta = Format(Me.CBOFhasta.Value, "mm/dd/yyyy")num = Me.CBOusuario.ListIndex
Set rst = con.RepRastros(desde, hasta, num)If rst.EOF = True Then
MsgBox "No se encontraron datos", vbInformationExit Sub
ElseMe.ProgressBar1.Max = 100000i = 1With FRMRastrosAuditoria
.LBLDesde.Caption = Me.CBOFdesde.Value
.LBLHasta.Caption = Me.CBOFhasta.Value
.LBLAudi.Caption = Me.CBOusuario.Text
.MSFlexGrid1.Rows = 1While Not rst.EOF
.MSFlexGrid1.AddItem Trim(rst.Fields(0)) & Chr(9) & _Trim(rst.Fields(2)) & " " & rst.Fields(3) & Chr(9) & _rst.Fields(1)
rst.MoveNext
Me.ProgressBar1.Value = ii = i + 1
WendCall Evento("Generacion Reporte Rastros de Auditoria").Show 1End With
End IfElse
MsgBox "Rango de fechas incorrecto.", vbInformationMe.CBOFdesde.Value = DateMe.CBOFhasta.Value = Date
End If
End Sub
Private Sub CMDCancelar_Click()Unload Me
94
End Sub
Private Sub Form_Load()Me.CBOFdesde.Value = DateMe.CBOFhasta.Value = DateSet rst = con.TodosUsuariosTotal()Me.CBOusuario.AddItem "TODOS"While Not rst.EOF
Me.CBOusuario.AddItem Trim(rst.Fields(2)) + " " + Trim(rst.Fields(3))'Me.CBOusuario.ItemData = rst.Fields(0)rst.MoveNext
WendCBOusuario.ListIndex = 0
End Sub
1.6.26 ‘/***Mantenimiento De Usuarios O Rrhh - Frmusuarios*******/
Option Explicit
Dim con As New bddDim rst As RecordsetPublic strBusq As StringDim strOper As String
Private Sub CMDBuscar_Click()Me.CBOEstado.ClearMe.CBOEstado.AddItem "ACTIVO"Me.CBOEstado.AddItem "INACTIVO"FRMBuscaUsuario.mostrar 1If Me.txtapellido.Text <> "" Then
' Me.Label3.Visible = TrueMe.Picture1.Visible = TruestrOper = "update"Me.TXTLogin.Enabled = FalseCall PresentaEspe
End IfEnd Sub
Private Sub CMDDeshacer_Click()Unload MeMe.Show 1
End Sub
Private Sub CMDGrabar_Click()Dim fe As StringDim sexo As StringDim tipo As Integer
' fe = Format(Date, "mm/dd/yyyy")
95
fe = Format(Date, "dd/mm/yyyy")If Me.txtapellido.Text = "" Then
MsgBox "No ha asignado Apellido ", vbCriticalMe.txtapellido.SetFocusExit Sub
End If
If Me.TXTLogin.Text = "" ThenMsgBox "No ha asignado Login al usuario", vbCriticalMe.TXTLogin.SetFocusExit Sub
End IfIf Me.TXTPass.Text = "" Then
MsgBox "No ha asignado Password al usuario", vbCriticalMe.TXTPass.SetFocusExit Sub
End If
If (Me.OPTMas.Value = True) Thensexo = "MASCULINO"
Elsesexo = "FEMENINO"
End If
If (Me.OPTAudi.Value = True) Thentipo = 2
Elsetipo = 1
End If
If Me.TXTCosto.Text = "" ThenMe.TXTCosto.Text = 0
End If
If strOper = "insert" ThenIf con.insertUsuario(CInt(Me.TXTCodigo.Text), Trim(Me.txtnombre.Text),
_Trim(Me.txtapellido.Text), Trim(Me.txtdirecc.Text),
Trim(Me.txttelef.Text), _Trim(Me.txtemail.Text), sexo, tipo, Me.CBOTipo.Text,
CDbl(Me.TXTCosto.Text), _fe, Trim(Me.TXTLogin.Text), Trim(Me.TXTPass.Text)) Then
MsgBox "Usuario ha sido Guardado con Exito", vbInformationCall Insertar_EspeCall Evento("INSERT tblusuario")CMDDeshacer_ClickExit Sub
ElseMsgBox "Hubo un error en el Guardado de los Datos...Revisar que no
Exista el LOGIN " & error, vbCritical
96
End IfEnd If
If strOper = "update" ThenIf con.updateUsuario(CInt(Me.TXTCodigo.Text),
Trim(Me.txtnombre.Text), _Trim(Me.txtapellido.Text), Trim(Me.txtdirecc.Text),
Trim(Me.txttelef.Text), _Trim(Me.txtemail.Text), sexo, tipo, Me.CBOTipo.Text,
CDbl(Me.TXTCosto.Text), _fe, Trim(Me.TXTLogin.Text), Trim(Me.TXTPass.Text), _Mid(Me.CBOEstado.Text, 1, 1)) ThenMsgBox "Actualizacion realizada con Exito", vbInformationCall Insertar_EspeCall Evento("UPDATE tblusuario")CMDDeshacer_ClickExit Sub
ElseMsgBox "Hubo un error en la Actualizaciòn", vbCritical
End IfEnd If
End Sub
Private Sub CMDSalir_Click()Unload Me
End Sub
Private Sub Form_Load()Set rst = con.maxUsuario()
If IsNull(rst.Fields(0)) ThenMe.TXTCodigo.Text = 1
ElseMe.TXTCodigo.Text = rst.Fields(0) + 1
End IfMe.TXTCodigo.Enabled = FalseMe.CBOEstado.AddItem "ACTIVO"Me.CBOEstado.ListIndex = 0Me.CBOTipo.ListIndex = 0strOper = "insert"
End Sub
Private Sub Form_Unload(Cancel As Integer)Unload Me
End Sub
Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single)
97
End Sub
Private Sub txtapellido_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TXTCosto_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii <> 46 ThenIf KeyAscii = 13 ThenMe.TXTLogin.SetFocus
End IfIf KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0End If
End IfEnd If
End Sub
Private Sub TXTCosto_LostFocus()Me.TXTCosto.Text = Format(Me.TXTCosto.Text, "#,###,###.00")
End Sub
Private Sub txtdirecc_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub TXTNombre_KeyPress(KeyAscii As Integer)If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32End If
End Sub
Private Sub txttelef_KeyPress(KeyAscii As Integer)If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 ThenKeyAscii = 0
End IfEnd If
End Sub
Private Sub Insertar_Espe()
98
con.borraEspe (Me.TXTCodigo.Text)
If Me.Check1.Value = 1 ThenIf con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 1) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check2.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 2) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check3.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 3) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check4.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 4) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check5.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 5) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check6.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 6) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check7.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 7) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
99
End IfEnd IfIf Me.Check8.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 8) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check9.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 9) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check10.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 10) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd IfIf Me.Check11.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 11) ThenElse
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que noExista el LOGIN " & error, vbCritical
End IfEnd If
End Sub
Private Sub PresentaEspe()Me.Check1.Value = 0: Me.Check2.Value = 0Me.Check3.Value = 0: Me.Check4.Value = 0Me.Check5.Value = 0: Me.Check6.Value = 0Me.Check7.Value = 0: Me.Check8.Value = 0Me.Check9.Value = 0: Me.Check10.Value = 0Me.Check11.Value = 0Set rst = con.Especializaciones(CInt(Me.TXTCodigo))While Not rst.EOF
If rst.Fields(1) = 1 Then Me.Check1.Value = 1If rst.Fields(1) = 2 Then Me.Check2.Value = 1If rst.Fields(1) = 3 Then Me.Check3.Value = 1If rst.Fields(1) = 4 Then Me.Check4.Value = 1If rst.Fields(1) = 5 Then Me.Check5.Value = 1If rst.Fields(1) = 6 Then Me.Check6.Value = 1If rst.Fields(1) = 7 Then Me.Check7.Value = 1If rst.Fields(1) = 8 Then Me.Check8.Value = 1
100
If rst.Fields(1) = 9 Then Me.Check9.Value = 1If rst.Fields(1) = 10 Then Me.Check10.Value = 1If rst.Fields(1) = 11 Then Me.Check11.Value = 1
rst.MoveNextWend
End Sub
100
CAPITULO 2
MANUAL DE USUARIO
SISTEMA ELECTRÓNICO DE
CONTROL DE TIEMPOS Y
PROYECTOS DE AUDITORIA
AUDIT-TIME
101
2.1 INTRODUCCIÓN GENERAL
El presente Manual de Usuario del sistema electrónico de Control de Tiempo
y Proyectos de Auditoria, puntualiza cada una de las funcionalidades del
sistema, lo que permitirá al usuario tener una guía detallada del uso
adecuado de la aplicación.
2.2.- DESARROLLO DEL SISTEMA
2.2.1 NAVEGACIÓN DE LAS PANTALLAS
Es el flujo de las pantallas, como se muestra al usuario el funcionamiento del
sistema AUDI-TIME. Cada sub-capitulo muestra los errores y opciones de
pantalla.
ORIGEN DESTINO
Mantenimiento Mantenimiento De Usuarios
Mantenimiento Mantenimiento De Proyectos
Mantenimiento Mantenimiento De Recursos
Mantenimiento Mantenimiento De Proveedores
Movimientos Definición Y Control De Actividades
Movimientos Control De Costos
Movimientos Registros De Tiempos
Reportes E Informes Reporte De Tiempos Proyectos Y
Actividades
Reportes E Informes Reporte General De Proyectos
Grafico 2.1
102
2.3.- MANUAL
2.3.1. Ventana Principal de Acceso al Sistema
Cuadro 2.1
Existen 2 Tipos de Usuario: Administrador de Proyectos y Auditores
generales.
En ella deberás de Ingresar tu nombre de usuario y tu respectiva
contraseña. (ver cuadro 2.1).
La primera vez que se ingrese al sistema el usuario deberá ser un
administrador quien por defecto ingresará con admin y su contraseña
12345. Este usuario será encargado de crear Cuentas a nuevos
usuarios futuros administradores de proyectos y auditores o
consultores a su cargo.
Una vez ambos datos correctamente el usuario deberá dar clic en el
botón ACEPTAR
Si la contraseña o Login están mal ingresadas el sistema enviará
mensaje de error como muestra la siguiente ventana (ver cuadro 2.2)
103
Cuadro 2.2
Si algún dato no es ingresado enviará el siguiente mensaje (ver cuadro 2.3)
Cuadro 2.3
2.3.2.- VENTANA PRINCIPAL
Una vez que el usuario haya ingresado al sistema le mostrará la ventana
principal, Indicando en la parte baja el nombre del usuario y la fecha del
sistema
104
Cuadro 2.4
La ventana Principal se divide en 5 Menús principales:
MANTENIMIENTOS, MOVIMIENTOS, REPORTES E INFORMES, USUARIO
Y SALIR (ver cuadro 2.4).
Los cuales pueden ser accesados también utilizando las teclas CRTL
combinando con la tecla respectivamente enunciadas.
2.3.3.- DETALLE DE OPCIONES DEL MENÚ “MANTENIMIENTOS”
Cuadro 2.5
105
En este Menú el usuario tendrá disponible las siguientes opciones:
Mantenimiento de Usuarios, Mantenimiento de Proyectos, Ya hablaremos de
cada una al detalle:
2.3.3.1.- Mantenimiento de Usuarios
Cuadro 2.6
Esta Opción de este menú puede ser accesada combinando
directamente las Teclas CTRL + U como muestra en el cuadro 2.6.
A esta opción solo tiene acceso los usuarios que tengan privilegios de
administrador de proyectos caso contrario estará deshabilitada.
Permite Dar Mantenimiento a los usuarios del sistema.- crear,
modificar, eliminar Usuarios los cuales también son implícitamente
considerados Recursos Humanos.
Cuadro 2.7
106
CREACION.-El código es automático, es decir, el sistema lo asigna
secuencialmente cada vez que se cree un nuevo usuario y no puede ser
modificado. Esto se lo hace para tener una bitácora de usuarios que han sido
ingresados al sistema incluyendo los que están en estado inactivo (ver cuadro
2.7).
Solo “El administrador de proyectos” se encargará de Asignar el User y
Password y demás datos como del tipo de usuario (administrador o
auditor).
Una vez ingresado los datos Correctos mas importantes(Apellidos,
nombre, costo por hora, Tipo de Usuario, User y Password), se debe
dar clic en el botón Guardar( ),
El sistema enviará un mensaje que indica que el proceso se hizo con
éxito si no hay ningún problema.
Cuadro 2.8
MODIFICACIÓN.- Si se desea modificar una cuenta de un usuario existente:
Dar clic en el botón de BUSCAR ( ) para así poder Seleccionar el
usuario que se desea modificar.
107
Una vez que dio clic mostrará solo la lista de usuarios que han sido
registrados hasta el momento y que se encuentran en estado activo (
ver cuadro 2.8).
Cuadro 2.9
Para acceder al detalle de determinado usuario para hacer
modificaciones tales como cambiarlo de estado activo a inactivo
(eliminar usuario) o viceversa se debe de dar doble clic en el registro
correspondiente, cambiar datos o password. NO SE PUEDE CAMBIAR
EL USER (ver cuadro 2.9)
Botón deshacer ( ) nos Permite Limpiar todas las cajas de Texto y se
utiliza para ingresar una nueva Cuenta de Usuario
Botón salir ( ) nos Permite Cerrar la Ventana actual en este Caso de
Mantenimiento de Usuarios.
108
2.3.3.2.- Mantenimiento de Proyectos
Cuadro 2.10
Esta Opción de este menú puede ser accesada combinando
directamente las Teclas CTRL + P como muestra en el cuadro 2.10.
Permite: Crear, Modificar, Eliminar Proyectos
Permite Dar Mantenimiento a los Diferentes Proyectos.- crear,
modificar, eliminar Proyectos. Solo tiene acceso los usuarios que
tengan privilegios de administrador de proyectos caso contrario estará
deshabilitada.
Cuadro 2.11
CREACION.-El código es automático, es decir, el sistema lo asigna
secuencialmente cada vez que se cree un nuevo proyecto y no puede ser
modificado. Esto se lo hace para tener una bitácora. Se detallará Nombre,
descripción donde debe incluir el cliente y tipo de Consultoría o auditoria
109
aplicada, fecha estimada de Inició, especialización de la auditoria,
Responsable (administrador), y el estado del proyecto (ver cuadro 2.11).
Solo “El administrador de proyectos” se podrá crear nuevos Proyectos.
Una vez ingresado los datos Correctos se debe dar clic en el botón de
Guardar( ),
El sistema enviará un mensaje que indica que el proceso se hizo con
éxito si no hay ningún problema.
MODIFICACIÓN.- Si se desea modificar un proyecto ya registrado:
Dar clic en el botón de BUSCAR ( ) para así poder Seleccionar el
proyecto que se desea modificar.
Una vez que dio clic mostrará solo la lista de proyectos que han sido
registrados hasta el momento y que se encuentran en estado activo.
Entre los datos mostrados serán: el Nombre del proyecto, descripción,
Fecha estimada de Inicio, Código del administrador (responsable) y el
estado del proyecto.
Cuadro 2.12
110
Para acceder al detalle de determinado proyecto para hacer
modificaciones tales como cambiarlo de estadoactivo a inactivo
(eliminar proyecto) o viceversa se debe de dar doble clic en el registro
correspondiente, cambiar datos o password. NO SE PUEDE CAMBIAR
LA FECHA DE INICIO.(ver cuadro 2.13)
Cuadro 2.13
Botón Deshacer ( ) nos Permite Limpiar todas las cajas de Texto y se
utiliza para ingresar un nuevo Proyecto.
Botón salir ( ) nos Permite Cerrar la Ventana actual en este Caso de
Mantenimiento de Proyectos.
2.3.3.3.- Mantenimiento de Recursos
Cuadro 2.14
111
Esta Opción de este menú puede ser accesada combinando
directamente las Teclas CTRL + R como muestra el cuadro 2.14
Permite: Crear, Modificar, Eliminar implementos que serán asignados
para las actividades de cada auditor de campo.
A esta opción solo tiene acceso los usuarios que tengan privilegios de
administrador de proyectos caso contrario estará deshabilitada.
Cuadro 2.15
CREACION.-El código es automático, es decir, el sistema lo asigna
secuencialmente cada vez que se cree un nuevo Implemento y no puede ser
modificado. Esto se lo hace para tener una bitácora. Se detallará Nombre,
datos del Proveedor el cual se lo Asignará Buscándolo (Dando Clic en botón
), Nuevo stock, stock actual, Precio Unitario, Total) (ver cuadro 2.15).
Solo “El administrador de proyectos” se podrá ingresar o actualizar los
implementos (Recursos).
Una vez ingresado los datos Correctos se debe dar clic en el botón de
Guardar( ),
El sistema enviará un mensaje que indica que el proceso se hizo con
éxito si no hay ningún problema.
112
MODIFICACIÓN.- Si se desea modificar un proyecto ya registrado:
Dar clic en el botón de BUSCAR ( ) para así poder Seleccionar el
recurso (Implemento) que se desea modificar.
Una vez que dio clic mostrará solo la lista de recursos(Implementos)
que han sido registrados hasta el momento y que se encuentran en
estado activo. Entre
los datos mostrados serán: Código del implemento, descripción,
Código del Proveedor, Stock Máximo.
Cuadro 2.16
Para acceder al detalle de determinado proyecto para hacer
modificaciones tales como cambiarlo de Stock se debe de dar doble
clic en el registro correspondiente, NO SE PUEDE CAMBIAR EL
CODIGO, STOCK ACTUAL del implemento pero si el proveedor y
nuevo stock y precio unitario. (ver cuadro 2.17).
Cuadro 2.17
113
Botón deshacer ( ) nos Permite Limpiar todas las cajas de Texto y se
utiliza para ingresar un nuevo implemento (recurso).
Botón salir ( ) nos Permite Cerrar la Ventana actual en este Caso de
Mantenimiento de recursos (Implementos).
2.3.3.4.- Mantenimiento de Proveedores
Cuadro 2.18
Esta Opción de este menú puede ser accesada combinando
directamente las Teclas CTRL + R como muestra en el cuadro 2.18.
Permite: Crear, Modificar, Eliminar Proveedores de Implementos
(Recursos).
A esta opción solo tiene acceso los usuarios que tengan privilegios de
administrador de proyectos caso contrario estará deshabilitada.
Cuadro 2.19
114
CREACION.-El código es automático, es decir, el sistema lo asigna
secuencialmente cada vez que se cree un nuevo Implemento y no puede ser
modificado. Esto se lo hace para tener una bitácora. Se detallará Nombre,
datos del Proveedor el cual se lo Asignará Buscándolo (Dando Clic en
botón ), Nuevo stock, stock actual, Precio Unitario, Total) (cuadro 2.19)
Solo “El administrador de proyectos” se podrá ingresar o actualizar los
implementos (Recursos).
Una vez ingresado los datos Correctos se debe dar clic en el botón de
Guardar( ),
El sistema enviará un mensaje que indica que el proceso se hizo con
éxito si no hay ningún problema.
MODIFICACIÓN.- Si se desea modificar un proyecto ya registrado:
Dar clic en el botón de BUSCAR ( ) para así poder Seleccionar el
recurso (Implemento) que se desea modificar.
Una vez que dio clic mostrará solo la lista de recursos (Implementos)
que han sido registrados hasta el momento y que se encuentran en
estado activo. Entre
los datos mostrados serán: Código del implemento, descripción,
Código del Proveedor, Stock Máximo.
115
Cuadro 2.20
Para acceder al detalle de determinado proyecto para hacer
modificaciones tales como cambiarlo de Stock se debe de dar doble
clic en el registro correspondiente, NO SE PUEDE CAMBIAR EL
CODIGO, STOCK ACTUAL del implemento pero si el proveedor y
nuevo stock y precio unitario.( ver cuadro 2.21).
Cuadro 2.21
Botón Deshacer ( ) nos Permite Limpiar todas las cajas de Texto y se
utiliza para ingresar un nuevo Proveedor de Implementos (Proveedor de
Recursos).
Botón Salir ( ) nos Permite Cerrar la Ventana actual en este Caso de
Mantenimiento de Proveedores de recursos (Proveedor de Implementos).
116
2.3.4.- DETALLE DE OPCIONES DEL MENÚ “MOVIMIENTOS”
Cuadro 2.22
2.3.4.1.- Definición y control de Actividades
Cuadro 2.23
Esta Opción de este menú puede ser accesada combinando
directamente las Teclas CTRL + F1 como muestra en el cuadro 2.23.
Permite: Crear, Modificar, Eliminar actividades de un proyecto
A esta opción solo tiene acceso los usuarios que tengan privilegios de
administrador de proyectos caso contrario estará deshabilitada.
Cuadro 2.24
117
CREACION Y MODIFICACIÓN DE ACTIVIDAD.-
Dar clic en el Botón de Buscar Proyecto ( ).- Mostrará la lista de
Proyectos al cual está asignado el usuario administrador de proyectos
que se logoneó (ver cuadro 2.24).
Cuadro 2.25
Dar doble clic en el proyecto el cual se desea realizar el cambio
(creación, modificación o eliminación de actividades) (ver cuadro 2.25).
Mostrará la Lista de actividades que tiene hasta ese momento el
proyecto (ver cuadro 2.26).
Cuadro 2.26
118
Si deseo hacer modificaciones en alguna actividad se deberá dar doble
clic sobre la misma.
Cuadro 2.27
Si se desea agregar una nueva actividad se deberá dar clic en el botón
Añadir nueva actividad ( ); donde me mostrará la ventana de
Inserción de nuevas actividades.
El código de actividad es automático, es decir, el sistema lo asigna
secuencialmente cada vez que se cree una nueva actividad. No
pueden ser modificados (Código, Proyecto). Solo pueden modificarse
los campos orden, descripción, Responsable, fecha Fin, Horas Diarias,
estado, Porcentaje de avance (ESTE CAMPO SERÁ MODIFICADO
POR LOS AUDITORES DE CAMPO para indicar cuanto han avanzado
en su actividad).
119
Una vez ingresado los datos Correctos, se debe dar clic en el botón
Guardar( ),
El sistema enviará un mensaje que indica que el proceso se hizo con
éxito si no hay ningún problema (ver cuadro 2.28).
Cuadro 2.28
Botón Listo ( ) Se da clic en el mismo una vez que ya se terminó de
realizar las operaciones con las actividades.
Botón Salir ( ) nos Permite Cerrar la Ventana actual en este Caso de
Definición y control de actividades.
2.3.4.2.- modificación de tiempo de actividades
Cuadro 2.29
120
Esta Opción de este menú puede ser accesada combinando directamente las
Teclas CTRL + F2 como muestra la gráfica (cuadro 2.29). Permite: modificar
el tiempo de actividades de cada uno de los usuarios.
Cuadro 2.30
Abrimos el cuadro de dialogo modificación de tiempo de actividades y
encontramos la ventana AUDITOR presionando BUSCAR PROYECTO (
) (ver cuadro 2.30) y vemos a continuación lo siguiente (ver cuadro 2.31).
Cuadro 2.31
Aparece una lista de BUSQUEDA DE USUARIO ingresado a la base de datos
y para modificar damos doble click a cualquiera de los usuarios para
modificar.
Cuadro 2.32
121
En el cuadro 2.32 aparece unos de los usuarios elegido para proceder a
modificar como se muestra en el siguiente paso.
Cuadro 2.33
En el cuadro 2.33 tenemos listo para la modificación de tiempo de actividades
por parte del auditor elegido y para modificar las actividades damos doble
click en el registro deseado a continuación
.
Cuadro 2.34
Ya después que se ha dado doble click en122 unos de los registros deseados
como aparece en el cuadro 2.34 procedemos a ver y modificar el tiempo de
actividades.
122
Cuadro 2.35
Luego de que se modifico el registro deseado procedemos a grabar y la
actualización se ha realizado con éxito y no con errores. (Ver cuadro 2.35)
Y cerramos la ventana de registros ya actualizado.
2.3.5.- DETALLE DE OPCIONES DEL MENÚ “REPORTES E INFORMES”
Cuadro 2.36
Esta Opción de este menú Permite: Mostrar tiempo de proyecto y actividades,
control de costos, reporte general entre otros (ver cuadro 2.36).
123
2.3.5.1.- Reporte de Tiempo Proyectos y Actividades
Cuadro 2.37
Permite: Mostrar el reporte de los tiempos totales actuales de un
proyecto el cual puede ser exportado a Excel mediante el botón ( )
(ver cuadro 2.38).
Cuadro 2.38
Para buscar un proyecto específico se debe dar clic en botón buscar
proyecto ( ) (ver cuadro 2.38) luego dar doble clic en el que se desea
verificar. Y mostrará así la lista de actividades con sus tiempos totales
y demás datos importantes.
124
Cuadro 2.39
A continuación aparece en la búsqueda de proyecto y damos doble click
en el registro deseado. ( ver cuadro 2.39)
Cuadro 2.40
En este me mostrará Fechas de Inicio y Fin de actividad, Auditor de campo o
consultor al cual se le asigno la actividad (Responsable), Días que fueron
asignados a la actividad, Horas diarias que trabaja, horas totales, porcentaje
de avance de cada actividad y el estado de la misma (Activo, Inactiva o
finalizada). Sumatoria de Días Totales y Horas Totales (ver cuadro 2.40).
Para salir de este formulario de reporte se debe dar clic en ( ).
125
2.3.5.2.- Reportes de control de costos.
Cuadro 2.41
La opción de este menú puede ser accesada combinando directamente las
Teclas CTRL + F11 como muestra la gráfica (Ver cuadro 2.41).
Permite ver el reporte de los costos por cada proyecto, la descripción, los
responsables, la fecha de inicio y los costos de actividades (ver cuadro 2.42).
Cuadro 2.42
Primero damos clic en buscar proyecto ( ) encontramos lo siguiente (ver
cuadro 2.42).
126
Cuadro 2.43
Aparece la tabla de búsqueda de los proyectos realizados hasta el momento
con sus respectivas descripciones y fechas de inicio, para elegir un proyecto
realizado en los registros de control damos clic 2 veces sobre el registro
deseado a continuación (ver cuadro 2.43).
Cuadro 2.44
Elegimos un reporte realizado para saber si esta completo o hay algún
inconveniente en el control por cada proyecto y los costos de las actividades
(ver cuadro 2.44).
127
Y además para ver por completo el reporte de cada proyecto se lo puede ver
Microsoft Excel ( ) y se encuentra por completo todas las descripciones,
tiempo, responsables entre otras.
Si no hay algún problema damos click en el botón cancelar ( ).
2.3.5.3.- Reporte General de Proyectos
Cuadro 2.45
Permite: Mostrar la lista de todos los proyectos que tiene actualmente la
empresa el cual puede ser exportado a Excel mediante el botón ( ).
Cuadro 2.46
Para salir de este formulario de reporte se debe dar clic en ( ).
128
2.3.5.4. Reporte de actividades por auditor.
Cuadro 2.47
Permite Mostrar los reportes de actividades de cada uno de los auditores, en
el cuadro 2.48 vemos el cuadro de reporte auditor damos un click en buscar
proyecto a continuación:
Cuadro 2.48
Cuadro 2.49
En el cuadro 2.49 aparece la búsqueda de todos los usuarios que tiene
actualmente en la empresa y damos doble click sobre el registro deseado en
estos momentos.
129
Cuadro 2.50
Elegimos un auditor ya registrado (ver cuadro 2.50) y a continuación damos
un click en el botón ( ).
Cuadro 2.51
Vemos el reporte de actividad por parte del auditor registrado de todos lo que
tiene actualmente la empresa el cual puede ser exportado a Excel mediante
el botón ( ) (ver cuadro 2.51).
Si no hay algún problema de los reportes damos click en el botón cancelar
( ).
2.3.5.5. Reporte de proyecto por auditor
Cuadro 2.52
130
Permite Mostrar los reportes de los proyectos por cada auditor, en el cuadro
2.53 vemos el cuadro de reporte auditor damos un click en buscar proyecto a
continuación
Cuadro 2.53
En el cuadro 2.54 aparece la búsqueda de todos los usuarios que tiene
actualmente en la empresa y damos doble click sobre el registro deseado en
estos momentos
Cuadro 2.54
Cuadro 2.55
131
Luego que se eligió un auditor damos un click en el botón ( ) (ver cuadro
2.55) y aparece de la siguiente manera.
Cuadro 2.56
En este cuadro (cuadro 2.56) aparece una observación que significa que el
auditor no tiene el proyecto asignado y para no dar marcha atrás damos un
clik en el botón aceptar y volvemos a la búsqueda de otro auditor. (Ver cuadro
2.57)
Cuadro 2.57
Al volver nuevamente a la búsqueda de usuario elegimos un nuevo auditor
como vemos en el cuadro 2.57 y nuevamente damos un click en el botón
( ) y aparecerá el proyecto auditado.
132
Cuadro 2.58
En el cuadro 2.58 aparece el listado de los proyectos realizados por el auditor
o auditora y para ver mas detalles damos un click en el botón de Microsoft
Excel
Cuadro 2.59
133
En el cuadro 2.59 aparece más amplio el reporte de la lista realizados por el
auditor en el programa de Microsoft Excel.
Si no hay algún problema de los reportes damos click en el botón cancelar
( ).
2.3.5.6. Reporte de avance de actividades (grafico)
Cuadro 2.60
En esta parte del sistema de control nos Permite Mostrar los reportes de
avance de actividades es decir gráficamente (ver cuadro 2.60).
Cuadro 2.61
En el cuadro 2.61 vemos el cuadro de reporte de proyecto realizado en la
empresa la cual damos un click en buscar proyecto a continuación
Cuadro 2.62
134
A continuación aparece la tabla de búsqueda de proyecto con todos lo que se
ha realizado en la empresa y para elegir uno damos doble click en cualquier
registro deseado para ver la grafica de los reportes de actividades (ver cuadro
2.62).
Cuadro 2.63
Ya elegimos un proyecto realizado procedemos a ver la grafica de el reporte
realizado en este proyecto elegido. (Ver cuadro 2.63)
Cuadro 2.64
A continuación en el cuadro 2.64 aparece todas las actividades realizadas
luego de haber seleccionado en la búsqueda de proyectos.
135
Cuadro 2.65
En el cuadro 2.65 luego que ya estaba elegido el proyecto seleccionado a
continuación vemos gráficamente como va con los reportes de actividades de
este proyecto seleccionado por el auditor.
Cuadro 2.66
136
Para poder presentar externamente procedemos a imprimir la grafica de los
reportes de actividades para presentar a cada uno de los presentes. (ver
cuadro 2.66)
Nota: al dar un click en la opción imprimir debemos ver si esta conectado el
cpu a la impresora de lo contrario aparecerá un mensaje que dice que la
impresora esta fuera de conexión.
2.3.5.7 rastros de auditoria.
Cuadro 2.67
Mostrar todas las acciones de cada uno de los usuarios que están registrado
en el software por ejemplo: actualizar, eliminar, etc.
Cuadro 2.68
137
En el cuadro 2.68 vemos a todos los usuarios registrados hasta la fecha
elegimos cualquier usuario y vemos a continuación el resultad.
Cuadro 2.69
En el cuadro 2.69 en estos momentos se Eligio a un usuario registrado en el
software y además vemos el rango de fecha hasta hoy.
Cuadro 2.70
si sale un mensaje de observación quiere decir que el usuario que se eligió en
el rastro de auditoria no se han encontrado los datos ingresados en el
software (ver cuadro 2.70)
138
Cuadro 2.71
A continuación volvemos a elegir a otro usuario que tenga los datos
registrados en el software incluyendo los rangos de fechas de pago como
vemos en el cuadro 2.71
Cuadro 2.72
En el reporte (ver cuadro 2.72) vemos el cuadro del usuario registrado en los
rastros de auditoria contiene el nombre del auditor elegido en el reporte, la
fecha desde cuando inicio y hasta la fecha de hoy además tenemos los
eventos registrados en el software.
139
2.3.5.8. Usuario.
Cuadro 2.73
En esta parte nos permite realizar dos opciones ya sea cambiar de
contraseña al proyecto y cerrar la sesión del proyecto realizado. (Ver cuadro
2.73).
Cuadro 2.74
En la opción cambiar contraseña se debe a que cada usuario en la que se
esta elaborando el proyecto puede cambiar de contraseña de la anterior a
una nueva clave en la que nadie puede dar la nueva contraseña ya que la
contraseña es personal. (Ver cuadro 2.74).
Cuadro 2.75
En el cuadro 2.75 vemos como se hace para cambiar la contraseña
140
Cuadro 2.76
Si la clave anterior no coincide saldrá un mensaje de error advirtiendo que
tiene que colocar la contraseña correcta ante de modificar por una nueva
clave en el sistema (ver cuadro 2.76).
Cuadro 2.77
En cambio para la opción cerrar sesión se realiza primero salir del proyecto
de control realizado e ingresado por parte de todos los usuarios y luego
podemos ingresar cualquiera de los usuarios registrados con sus respectivas
contraseñas para seguir ingresando mas datos depende del usuario este
trabajando en sus respectivos sistema de proceso. (Ver cuadro 2.77 y 2.78).
141
Cuadro 2.78
En el cuadro 2.78 tenemos el acceso al sistema de control de auditoria en la
que se puede ingresar el usuario registrado con su respectiva contraseña
2.3.6.- DETALLE DE OPCIONES DEL MENÚ “SALIR”
Cuadro 2.79
En esta y ultima parte nos Permite salir totalmente del sistema
Cuadro 2.80
En esta parte nos dice que si esta seguro de salir del sistema y existe dos
opciones para el SI es continuar con el procedimiento del sistema y para el
NO terminar con el procedimiento del sistema. (Ver cuadro 2.80)
142
2.3.7. Barras de herramientas adicionales.
Cuadro 2.81
En el cuadro 2.81 vemos la barrar de herramienta en la que contiene los
botones de usuario o RRHH, control de proyecto, control de actividades,
tiempo, las graficas y el botón de salida. Estos son los botones principales en
la que se puede acceder directamente al usuario sin pasar tiempo en ingresar
a la barra de menú y elegir cualquier menú paso a paso.