LOZANO OTERO YESSICA JACQUELINE MAYOR FERRUZOLA

Anuncio
I
UNIVERSIDAD DE GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas
Computacionales
“Sistema Electrónico de Control de Tiempo y
Proyecto de Auditoria”
PROYECTO DE GRADO
CURSO DE GRADUACION
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
LOZANO OTERO YESSICA JACQUELINE
MAYOR FERRUZOLA WALTER DAVID
MOREIRA 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
2do Vocal
1er 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
C.I.: 0913298600
Mayor Ferruzola Walter David
C.I.: 0920113305
Moreira Estrada Pedro Antonio
C.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
24
al proyecto
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
34
tiempo.
2.10.Diagrama De Secuencias
2.10.1.- Diagrama de interacción de avances
2.11.Riesgos
34
35
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
38
desarrollo
2.11.5.-Indisponibilidad de reuniones del grupo y Enfermedad o
38
Problemas de grupo
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
39
tesis
2.11.8.- Usuarios se resistan a utilizar el software
39
2.11.9.- Que los usuarios no tengan los conocimientos básicos
39
para manejar sistemas GUI, lo cual dificulta el tiempo de
enseñanza del mismo
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
41
cada actividad del cronograma
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
42
necesidades y expectativas del tutor y/o tribunal
2.11.18.- Tener que realizar cambios en los diálogos de entrada,
42
diseño de la base de datos, acceso a la base de datos, objetos
para adaptarlos a una nueva estructura
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
Capitulo III:
45
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
3.9.1. Menú Principal
51
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
124
Proyecto
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 III
CUADRO 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
Cantidad
de Días
Total(Dias)
ANÁLISIS
Definición de Alcances y Objetivos, Misión Visión,
Metodología y arquitectura de desarrollo
Levantamiento de Información
Entrevista con Auditores de Campo o
Consultores
Escoger una empresa y Tramitar
Permisos de Acceso
Análisis de Campo aplicada al
proyecto Mediante Entrevista y
Observación
Análisis de Recursos Requeridos
Recursos de Software
Recursos de Hardware
Recursos Humano
Análisis de Riesgos del Proyecto
Análisis de Costos Probables
Análisis de Entidades que Participan en un
Proyecto
3
10
7
1
6
3
1
1
1
3
8
1
48
DISEÑO
Diseño de Plantillas de Pantallas
Diseño Lógico de la Base de datos
Diseño del Diagrama de Clases
Diseño del Diagrama de Objetos
Diseño de Casos de uso
PRIMERA SUSTENTACIÓN
4
4
5
8
3
1
DESARROLLO Y PRUEBAS
Diseño Físico de la Base de datos en Base al D.
de clase
Diseño de Pantallas Basado en las Plantillas
Aprobadas Por Usuario
Programación de Procedimientos y Funciones
5
5
20
25
13
Almacenadas
SEGUNDA SUSTENTACIÓN
Rediseño de Reportes Específicos
Redefinición de pantallas en base a nuevos
Requerimientos
Elaboración de Manual de Usuario Impreso y
Adjuntos del Código
1
14
14
22
81
IMPLEMENTACIÓN
Configuración de Equipos Previo a la
Sustentación
Configuración del servidor de Base de
Datos
Configuración de PC Cliente(Ejecutables)
Documentación del Tomo II (MANUAL DE
USUARIO Y TECNICO)
1
1
1
38
PRUEBAS FINALES
14
ÚLTIMA SUSTENTACIÓN
1
TOTAL
Tabla 1.1. Cronograma de Actividades
Para verificar el cronograma detallado remitirse al Anexo 1
55
209Días
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
F
FORTALEZAS
O
ASPECTOS NEGATIVOS
D
OPORTUNIDADES DEBILIDADES
INTERNAS
EXTERNAS
INTERNAS
A
AMENAZAS
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
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.
Proyecto
Actividades
Responsable
Administrador
Reportes
Cuadro 2.10 CASOS DE USO
24
2.7.2.- Descripción y referencia a los requerimientos consignados al
proyecto
Proyecto
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.
Actividades
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.
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.
Responsable
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.
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.
Reportes
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.
27
De Casos: Actividades.
INGRESO_PROYECTO
PROYECTO
MODIFICACION_PROYEC
TO
ELIMICACION_PROYECT
O
Cuadro 2.15 proyectos
SUBCASOS 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.
INGRESO_ACTIVID
ADES
CalculoAvanceProye
cto
ACTIVIDADES
MODIFICACION_ACTIVID
ADES
CalculoAvanceEtapa
ELIMICACION_ATIVID
ADES
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.
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
Ingreso_Responsa
bles
RESPONSABLES
Modificacion_Resp
onsable
Elimicacion_Respo
nsable
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
31
Actores: Responsable
Función: Permitir eliminar el sistemas
Descripción: El Responsable elimina todas las actividades del sistema
responsable.
De Casos: Actividades
PROYECTO_REPORTES
REPORTES
ACTIVIDADES _REPORTES
RESPONSABLES_REPORTES
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
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.
PROYECTOS
ACTIVIDADES
RRHH
RESPONSABLE
S
REPORTES
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.
35
2.10.1.- Diagrama de interacción de avances
Proyec
to
Select
proyec
Activida
des
Costo
actividad
es
Costo
proyec
Captura select()
Lista=capturaDatos ()
Ingrese
Usuari
o
e=crearActividades (listaProyecto)
p=CreaProyecto(listaProyecto)
Ccap=CreaCalculoAvanceProyecto(lista)
Ap=CalculoAvanceProyecto(Proyecto)
M=CreaMovimiento(lista)
Grabamovimiento(lista,ca,e,p)
ActualizaPro
yecto(ap)
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 las
expectativas el Proyecto
al tribunal
ALTO
Definiciones de estándares de
integración antes de hacer
pruebas del sistema.
36
Que el proyecto no se
culmine en el tiempo
establecido
MEDIO
Establecer prorrogas de tiempo
para establecer lo faltante
Que
el
Hardware
presente averías a último
momento
MEDIO
Realizar respaldo de versiones
necesario del sistema para la
obtención rápida de la información
Se afecte con cambios a
la base
de datos a
ultimo momento
ALTO
Establecer políticas de entrega de
informaron del
sistema y
seguridades de la base de datos
Que existan nuevos
requerimientos
a
ultimo momento
ALTO
Definir hasta donde son los
alcances y si hay mas
requerimientos que haya un
producto
con una nueva
versió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
Cantidad
1
1
1
1
Equipos
Valor
Unitario
Valor Total
Licencia Visual Basic 6.0
$ 498
Computadores Pentium IV, 1Gb MB RAM $ 800
(con periféricos incluidos) HD 80GB, Veloc.
2.4 GHZ
licencia Windows XP
$ 1.400
Licencia de Office 2003 (Para access ,word y $ 109.99
excel)
Total $ 2.807.99
Cuadro 2.22 Análisis De Factibilidad De Costos
46
CAPITULO 3
DISEÑ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ÓN
4.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: TBLACTIVIDADES
Propiedades
DateCreated: 20/07/2008 17:04:15
GUID:
DefaultView:
{guid {90793292-81F9-4494-
Hoja de datos
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
AcCod
Entero
Tamaño
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-
2
35119DB06DB8}}
OrdinalPosition:
0
Required:
Falso
SourceField:
AcCod
SourceTable:
TblActividades
AcPro
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
2
{guid {5014210C-1361-4834-A7BF-0AF92D50743B}}
OrdinalPosition:
2
Required:
Falso
SourceField:
ACOrden
SourceTable:
TblActividades
ACDescripcion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
50
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
2
GUID: {guid {C399A72A-8DFB-4BEA-827A-148ED5F2F6F3}}
OrdinalPosition:
4
Required:
Falso
SourceField:
ACCodRes
SourceTable:
TblActividades
AcFecIni
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
8
60
DataUpdatable:
GUID:
Falso
{guid {79607E55-2F06-4E03-A7BB-085F7CAA989C}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
5
Required:
Falso
SourceField:
AcFecIni
SourceTable:
TblActividades
AcFecFin
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
GUID:
8
{guid {6B988942-8CE0-4BA0-A739-737654587D04}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
6
Required:
Falso
SourceField:
AcFecFin
SourceTable:
TblActividades
AcHoras
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
2
61
DisplayControl:
Cuadro de texto
GUID: {guid {EBF186B5-D810-46A1-8C63-06E73126E979}}
OrdinalPosition:
7
Required:
Falso
SourceField:
AcHoras
SourceTable:
TblActividades
AcEstado
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
1
Description: A=Activa I=Iniciada F=FInalizada E=Eliminada
DisplayControl:
GUID:
Cuadro de texto
{guid {59A9CA1A-2396-47D8-AA12-57FB653920DF}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
8
Required:
Falso
SourceField:
AcEstado
SourceTable:
TblActividades
UnicodeCompression:
Verdadero
AcUsIngreso
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
50
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
50
{guid {2BC88B45-A0ED-448F-BAC8-6C4415D3FB7E}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
10
Required:
Falso
SourceField:
AcFecIngreso
SourceTable:
TblActividades
UnicodeCompression:
Verdadero
AcUsModi
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
50
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
50
GUID: {guid {11CF1D53-8DB9-454D-8B0F-45915B1681A7}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
12
Required:
Falso
SourceField:
AcFecModi
SourceTable:
TblActividades
UnicodeCompression:
AcDias
AllowZeroLength:
Verdadero
Entero
Falso
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
2
{guid {0598D307-CF5B-4558-92BE-163F77FB9C3D}}
OrdinalPosition:
14
Required:
Falso
SourceField:
AcPorcentaje
SourceTable:
TblActividades
AcFeFinReal
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
8
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
2
{guid {3A9F1F44-0E50-4D42-A83E-34752B0D530E}}
OrdinalPosition:
16
Required:
Falso
SourceField:
AcDiasReal
SourceTable:
TblActividades
AcHorasTotReal
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
2
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
TblActividades
UsCodigo
ACCodRes
Attributes:
No forzado
RelationshipType:
Indeterminado
Índices de tabla
Nombre
Número de campos
PrimaryKey
2
Clustered:
Falso
DistinctCount:
23
Foreign:
Falso
IgnoreNulls:
Falso
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
Propiedades
DateCreated:
GUID:
27/07/2008 12:38:54 DefaultView:
Hoja de datos
{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
ArCod
Entero largo
AllowZeroLength:
Falso
Tamaño
4
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
3825
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
50
{guid {2CCA5F13-C247-44A9-9881-18D92F7B5CF6}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
1
Required:
Falso
SourceField:
ArDescrpicion
SourceTable:
TblAreas
UnicodeCompression:
Verdadero
69
Relaciones
TblUsuariosAreasTblAreas
TblUsuariosAreas
TblAreas
CodArea
ArCod
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,
70
actualizar datos, Eliminar datos
4.4. TABLA: TBLEVENTOS
Propiedades
DateCreated:
GUID:
20/07/2008 15:18:55 DefaultView:
{guid {3D305C5E-643A-
Hoja de datos
LastUpdated: 20/07/2008 15:35:15
4D92-BF72NameMap:
Datos binarios largos
Orientation:
De izquieda a derecha
Updatable:
Verdadero
OrderByOn: Falso
RecordCount:
221
Columnas
Nombre
Tipo
IdEvento
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
1
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
Tamaño
2
GUID: {guid {1E08DE1A-1EED-4A42-A9D4-5647CDF9DA7A}}
OrdinalPosition:
0
Required:
Falso
SourceField:
IdEvento
SourceTable:
TblEventos
IdUsuario
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
2850
DataUpdatable:
Falso
8
GUID: {guid {A84ABDB7-D447-4C68-BEB2-9B8D688F4220}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
2
Required:
Falso
SourceField:
Fecha
SourceTable:
TblEventos
Descripcion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
100
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
PrimaryKey
Ascendente
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
Propiedades
DateCreated: 08/09/2008 16:57:44
GUID:
DefaultView:
Hoja de datos
{guid {D3C5C177-275F- LastUpdated: 08/09/2008 17:02:31
45A3-B269-18BA226834BA}}
NameMap:
Datos binarios largos
OrderByOn:
Orientation:
De izquieda a derecha
RecordCount: 14
Updatable:
Falso
Verdadero
Columnas
Nombre
Tipo
CodProyecto
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
Tamaño
2
{guid {BF936A31-78B7-4EEF-BDBB-1EAC65316342}}
OrdinalPosition:
0
Required:
Falso
SourceField:
CodProyecto
SourceTable:
TblHorasActividades
CodActividad
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
8
GUID: {guid {123B25B6-C7C9-42C9-A30A-ECB1FDA3DC0C}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
2
Required:
Falso
SourceField:
Fecha
SourceTable:
TblHorasActividades
Horas
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
2
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
Propiedades
DateCreated: 17/07/2008 19:28:19
GUID:
DefaultView:
{guid {13241C65-9628-41D9-
Hoja de datos
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
POCod
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
2
{guid {136995CB-81E5-43EE-A1CB-00F2A8BB0C05}}
OrdinalPosition:
0
Required:
Falso
SourceField:
POCod
SourceTable:
TblProveedor
PONombre
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
Tamaño
100
{guid {670784BB-F715-4BD5-9E15-B4C9F5601EB8}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
1
Required:
Falso
SourceField:
PONombre
SourceTable:
TblProveedor
78
UnicodeCompression:
Verdadero
PORuc
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
15
{guid {19E260C5-D864-4E43-86D6-5346F5318D26}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
2
Required:
Falso
SourceField:
PORuc
SourceTable:
TblProveedor
UnicodeCompression:
Verdadero
PODireccion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
100
GUID: {guid {971B09A7-5D1E-46A6-AE3E-7CDC517E5DD8}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
3
Required:
Falso
79
SourceField:
PODireccion
SourceTable:
TblProveedor
UnicodeCompression:
Verdadero
POTelefono
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
15
GUID: {guid {5D90076C-F7FC-4991-9D93-610888297F68}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
4
Required:
Falso
SourceField:
POTelefono
SourceTable:
TblProveedor
UnicodeCompression:
Verdadero
POContacto
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
20
{guid {3421A34B-0D9A-46E5-A543-C86E6E4BA1B6}}
IMEMode:
IMESentenceMode:
0
3
80
OrdinalPosition:
5
Required:
Falso
SourceField:
POContacto
SourceTable:
TblProveedor
UnicodeCompression:
Verdadero
POmail
Texto
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
GUID:
20
{guid {4C92A0A5-56BD-4317-B6A2-CEFF54504647}}
IMEMode:
IMESentenceMode:
0
3
8
81
OrdinalPosition:
7
Required:
Falso
SourceField:
POFechaIng
SourceTable:
TblProveedor
POUSIngreso
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
20
{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
Propiedades
DateCreated: 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
PRCodigo
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
Tamaño
2
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
2235
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
GUID:
50
{guid {31F2066B-9229-4151-8DE4-07E84BD2B966}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
1
Required:
Falso
SourceField:
PRNombre
SourceTable:
TblProyectos
UnicodeCompression:
Verdadero
PRDescripcion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
100
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
8
GUID: {guid {04A71982-97D3-4090-AE87-A0BE25100C7C}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
3
Required:
Falso
SourceField:
PRFechaInicio
SourceTable:
TblProyectos
PRIdResponsable
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
GUID:
8
{guid {B5F80199-E9D8-463A-9A24-852E77B5EA36}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
5
Required:
Falso
SourceField:
PRFechaCreacion
SourceTable:
TblProyectos
PRUsCreacion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
20
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
8
GUID: {guid {D5A94375-700E-42AA-8F67-6E6567B9508D}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
7
Required:
Falso
SourceField:
PRFechaModi
SourceTable:
TblProyectos
PRUsModi
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
20
87
GUID: {guid {CDF0ADD1-5997-4158-B92D-35C258E1D916}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
8
Required:
Falso
SourceField:
PRUsModi
SourceTable:
TblProyectos
UnicodeCompression:
Falso
PREstado
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
1
GUID: {guid {0666BAD8-97B6-42DC-9C15-90E998AAA192}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
9
Required:
Falso
SourceField:
PREstado
SourceTable:
TblProyectos
UnicodeCompression:
Verdadero
PREspecializacion
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
GUID:
8
{guid {FBF2E2B1-2524-48C1-BB04-7C54F3FD1941}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
11
Required:
Falso
SourceField:
PRFechaFin
SourceTable:
TblProyectos
PRPorcentaje
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
2
89
GUID: {guid {F0FCE927-D7CC-463C-8E4C-2A98AB890FA7}}
OrdinalPosition:
12
Required:
Falso
SourceField:
PRPorcentaje
SourceTable:
TblProyectos
Relaciones
TblProyectosTblActividades
TblProyectos
TblActividades
PRCodigo
AcPro
Attributes:
No forzado
RelationshipType: Uno a varios
TblUsuariosTblProyectos
TblUsuarios
TblProyectos
UsLogin
PRIdResponsable
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
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
Propiedades
DateCreated: 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:
Updatable:
15
Verdadero
Columnas
Nombre
Tipo
CodPro
Entero largo
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
Tamaño
4
GUID: {guid {DA0E2F2A-8F99-46FC-9FE0-AF6BB0AF7260}}
OrdinalPosition:
0
Required:
Falso
SourceField:
CodPro
SourceTable:
TblRecursoActividad
CodActividad
Entero largo
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
4
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
4
GUID: {guid {3ABF6C53-1E4A-4598-B699-4A2012ED6672}}
OrdinalPosition:
2
Required:
Falso
SourceField:
CodRecurso
SourceTable:
TblRecursoActividad
Cantidad
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
2
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
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
1
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
Propiedades
DateCreated:
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
MaCod
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
Tamaño
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
2
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
20
GUID: {guid {03ED2484-B218-4FFF-A5E6-06AE9FD05413}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
4
Required:
Falso
SourceField:
MaUsIngreso
SourceTable:
TblRecursos
UnicodeCompression:
MaFeIngreso
AllowZeroLength:
Verdadero
Fecha/Hora
Falso
8
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
20
GUID: {guid {0C04CB79-7902-4244-B276-B5767947DE6B}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
6
Required:
Falso
SourceField:
MaUsModi
SourceTable:
TblRecursos
UnicodeCompression:
Verdadero
MaFeModi
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
8
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
8
GUID: {guid {F74F3A06-2CEC-47E8-AB92-D8CACC07199D}}
OrdinalPosition:
8
Required:
Falso
SourceField:
PU
SourceTable:
TblRecursos
Descripcion
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
50
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
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
2
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
Propiedades
DateCreated:
16/07/2008 17:02:10 DefaultView:
GUID: {guid {1C32044B-7777-44F7-
Hoja de datos
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
UsCodigo
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
Tamaño
2
GUID: {guid {54A60C61-9FEF-4E5D-A045-CF692A4D94A8}}
OrdinalPosition:
0
Required:
Falso
SourceField:
UsCodigo
SourceTable:
TblUsuarios
UsLogin
Texto
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
20
102
UnicodeCompression:
Verdadero
UsApellidos
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
1875
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
50
GUID: {guid {04DF1A46-56F0-48A8-9CAE-29061679C8DC}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
2
Required:
Falso
SourceField:
UsApellidos
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsNombres
Texto
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
50
103
SourceField:
UsNombres
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsEmail
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
100
GUID: {guid {EBB82676-7A05-4F2F-87AC-0BDF8B5CA670}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
4
Required:
Falso
SourceField:
UsEmail
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsDireccion
Texto
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:
IMESentenceMode:
0
3
50
104
OrdinalPosition:
5
Required:
Falso
SourceField:
UsDireccion
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsSexo
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
50
GUID: {guid {C6F49CC7-77E5-4D5E-AE4F-A34D9A068BD4}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
6
Required:
Falso
SourceField:
UsSexo
SourceTable:
TblUsuarios
UnicodeCompression:
Falso
UsTelefono
Texto
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
50
105
IMESentenceMode:
3
OrdinalPosition:
7
Required:
Falso
SourceField:
UsTelefono
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsPass
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
20
GUID: {guid {011A4DD4-D99C-447C-8951-D48A2D3FF34D}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
8
Required:
Falso
SourceField:
UsPass
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsTipo
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
Description:
1= Administrador 2= auditor
1
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
50
GUID: {guid {E61DAC86-2457-41AE-9F45-9E20AEE1E202}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
10
Required:
Falso
SourceField:
UsTitulo
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsValorHora
Doble
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
8
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
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DisplayControl:
Cuadro de texto
1
GUID: {guid {CA4B3B21-7485-4C50-B82C-4BC3A5E5103E}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
12
Required:
Falso
SourceField:
UsEstado
SourceTable:
TblUsuarios
UnicodeCompression:
Verdadero
UsFecIngreso
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
8
108
GUID: {guid {85E7A3AC-913F-411A-ACA1-A69B43AF2143}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
13
Required:
Falso
SourceField:
UsFecIngreso
SourceTable:
TblUsuarios
Relaciones
TblUsuariosTblActividades
TblUsuarios
TblActividades
UsCodigo
Attributes:
ACCodRes
No forzado
RelationshipType: Indeterminado
TblUsuariosTblProyectos
TblUsuarios
TblProyectos
UsLogin
PRIdResponsable
Attributes:
No forzado
RelationshipType: Uno a varios
TblUsuariosTblUsuariosAreas
TblUsuarios
UsCodigo
TblUsuariosAreas
109
CodUsuario
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
110
4.11. TABLA: TBLUSUARIOSACTIVIDADES
Propiedades
DateCreated:
GUID:
13/08/2008 17:25:28 DefaultView:
Hoja de datos
{guid {3B6B4253-FAEF-4506- LastUpdated: 20/08/2008 12:13:22
BF87-3DAF6F641AF1}}
NameMap:
Datos binarios largos
Orientation:
De izquieda a derecha
Updatable:
Verdadero
OrderByOn: Falso
RecordCount:
11
Columnas
Nombre
Tipo
CodUsuario
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
Tamaño
2
{guid {507A5752-68F1-4C08-BF76-0E79E6C3610E}}
OrdinalPosition:
0
Required:
Falso
SourceField:
CodUsuario
SourceTable:
TblUsuariosActividades
CodPro
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
2
GUID: {guid {00C82C5F-FCD9-427B-ADA3-9D3B7D2633BF}}
OrdinalPosition:
2
Required:
Falso
SourceField:
CodActividad
SourceTable:
TblUsuariosActividades
FInicio
Fecha/Hora
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
8
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
GUID:
8
{guid {9542802F-BCA3-4397-8BCA-9FCF78B492D5}}
IMEMode:
0
IMESentenceMode:
3
OrdinalPosition:
4
Required:
Falso
SourceField:
FFin
SourceTable:
TblUsuariosActividades
HoraDiarias
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
2
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
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,
1
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
Propiedades
DateCreated:
27/07/2008 12:45:30 DefaultView:
GUID: {guid {AD2654C3-F065-4712-
Hoja de datos
LastUpdated: 28/07/2008 12:50:48
B467-B5AA7D2BA27C}}
NameMap:
Datos binarios largos
Orientation:
De izquieda a derecha
Updatable:
Verdadero
OrderByOn: Falso
RecordCount: 28
Columnas
Nombre
Tipo
CodUsuario
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
Tamaño
GUID: {guid {7E01DCAD-932C-49E5-91D4-C79B941E0446}}
OrdinalPosition:
0
Required:
Falso
SourceField:
CodUsuario
2
115
SourceTable:
TblUsuariosAreas
CodArea
Entero
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
GUID:
2
{guid {789A9B63-DD6A-4943-B5B5-3EBD17480DE8}}
OrdinalPosition:
1
Required:
Falso
SourceField:
CodArea
SourceTable:
TblUsuariosAreas
Estado
Texto
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
1
116
UnicodeCompression:
Verdadero
Relaciones
TblUsuariosAreasTblAreas
TblUsuariosAreas
TblAreas
CodArea
ArCod
Attributes: No forzado
RelationshipType: Indeterminado
TblUsuariosTblUsuariosAreas
TblUsuarios
TblUsuariosAreas
UsCodigo
CodUsuario
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
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
Propiedades
DateCreated:
12/08/2008 17:24:18 DefaultView:
GUID: {guid {8955CAD4-86E9-4792-
Hoja de datos
LastUpdated: 12/08/2008 17:27:05
B6DB-47A453919DAE}}
NameMap:
Datos binarios largos
Orientation:
De izquieda a derecha
Updatable:
Verdadero
OrderByOn: Falso
RecordCount:
5
Columnas
Nombre
Tipo
CodUsuario
Entero
AllowZeroLength:
Falso
Tamaño
2
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
AllowZeroLength:
Falso
Attributes:
Tamaño fijo
CollatingOrder:
3082
ColumnHidden:
Falso
ColumnOrder:
Predeterminado
ColumnWidth:
Predeterminado
DataUpdatable:
Falso
DecimalPlaces:
Automático
DisplayControl:
Cuadro de texto
2
GUID: {guid {1C8F7803-3906-4FBC-82C7-2123A14B1FB1}}
OrdinalPosition:
1
Required:
Falso
SourceField:
CodProyecto
SourceTable:
TblUsuariosProyectos
EstadoPro
Texto
AllowZeroLength:
Verdadero
Attributes:
Longitud variable
CollatingOrder:
3082
ColumnHidden:
Falso
1
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
permite una comparación
paso
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
RESULTADO
ESPERADO
RESULTADO
OBTENIDO
Se Selecciona
Visualiza la Pantalla
mantenimientos
mantenimiento
de
del Menú
Proyecto
Principal
COMENTARIO
OK
El usuario
visualiza los
mantenimientos
de proyecto.
OK
El usuario
visualiza los
movimientos de
un proyecto
OK
El usuario
visualiza los
reportes e
informes del
proyecto
Se Selecciona
usuarios Visualiza la Pantalla de
del Menú usuarios de un proyecto
Principal
OK
el proyecto
visualiza los
datos de usuario
de un proyecto
se selecciona
visualiza la pantalla de
RRHH del
RRHH de proyecto
menú principal
OK
Se selecciona
control de visualiza la pantalla del
proyecto del control de los proyectos
menú principal
OK
Se selecciona
Visualiza la pantalla de
control de
control de actividades
actividades del
del proyecto.
menú principal
OK
Se Selecciona
Visualiza la
movimientos
movimientos
del Menú
proyecto
Principal
Pantalla
de
Se Selecciona
los reportes e Visualiza la Pantalla de
informes reportes e informe del
del Menú proyecto
Principal
Tabla 5.1
122
5.3.-
DESARROLLO
DE
PRUEBAS
OPCIÓN
MANTENIMIENTO DE PROYECTOS
ESCENARIO
RESULTADO ESPERADO
Se selecciona
la opción Visualizar
la
Pantalla
mantenimiento mantenimiento de proyecto
de proyecto
Se selecciona
Visualiza la Pantalla de los
mantenimiento
mantenimientos de usuario
de usuario
También puede
seleccionar el
Visualiza la pantalla de los
mantenimiento
mantenimientos de recurso
de recurso del
proyecto
se selecciona
Se actualice la pantalla con
los
los mantenimientos de
mantenimientos
proveedores
de proveedores
Tabla 5.2
RESULTADO
OBTENIDO
COMENTARIO
OK
El usuario
visualiza todos los
mantenimientos
del proyecto
OK
El usuario
visualiza todos los
mantenimiento de
usuario
seleccionado
OK
El usuario
visualiza todas los
recursos de
proyecto
OK
el usuario
visualizo los
mantenimientos
de proveedores
123
5.4.-
DESARROLLO
DE
PRUEBAS
DE
OPCIÓN
MOVIMIENTOS DE PROYECTO.
ESCENARIO
RESULTADO
ESPERADO
RESULTADO
OBTENIDO
COMENTARIO
Se selecciona
la opción
Visualizar la pantalla
de
movimiento de proyecto
movimientos
de proyecto
OK
El usuario
visualiza los
movimientos de
proyecto
Se selecciona
la opción Visualiza la Pantalla de
definición de definición de Proyectos
actividades
OK
visualiza la
definición de
actividades
OK
El usuario
visualiza el control
de actividades del
proyecto
OK
El usuario
visualiza todas las
modificaciones de
tiempo de
actividades del
proyecto
Se selecciona Visualiza la pantalla de
el control de control de actividades de
actividades proyecto
También puede
seleccionar la Visualiza la pantalla
modificación de tiempo de actividades de
tiempo de proyecto
actividades
Tabla 5.3
124
5.5.-
DESARROLLO
DE
PRUEBAS
DE
OPCIÓN
REPORTES E INFORMES DEL PROYECTO.
ESCENARIO
RESULTADO ESPERADO
Se selecciona
la opción
Visualizar la pantalla de
reportes e
reportes de proyecto
informes del
proyecto
Se selecciona
la opción Visualiza la Pantalla
reportes de reportes de tiempo de
tiempo de Proyectos
proyecto
Se selecciona
la opción
Visualiza la pantalla Control
control de
de costos de proyecto
costos de
proyecto
se selecciona
Visualiza la pantalla de los
los reportes
reportes generales del
generales del
proyecto
proyecto
Puede
seleccionar los
Visualiza la pantalla de
reportes de
actividades de auditoria
actividades por
auditoria
se selecciona
los reportes de visualiza la pantalla de los
proyecto por proyectos por auditoria
auditoria
RESULTADO
OBTENIDO
OK
El usuario
visualiza los
reportes del
proyecto
OK
Aparece la lista
de todos los
reportes de
tiempo del
proyectos
OK
El usuario
visualiza todo los
controles de
costos de
proyecto
OK
El usuario
visualiza los
reportes
generales de los
proyectos
OK
El usuario
visualiza las
actividades de
auditoria
OK
el usuario
visualiza los
reportes de
proyectos de
auditoria.
puede
seleccionar los
reportes de
actividades
graficas de
proyecto
visualiza la pantalla de los
reportes de actividades de
manera grafica de proyecto
OK
Se selecciona
los rastros de
auditoria del
proyecto
visualiza la pantalla de los
reportes de rastros de
auditoria de proyecto
OK
Tabla 5.4
COMENTARIO
125
5.6.-
DESARROLLO
DE
PRUEBAS
DE
OPCIÓN
USUARIO DEL PROYECTO.
ESCENARIO
RESULTADO
ESPERADO
RESULTADO
OBTENIDO
COMENTARIO
Se selecciona la
Visualizar la
opción
pantalla de usuario
usuario de
del proyecto
proyecto
OK
usuario
visualizado del
proyecto
Se selecciona la
cambio obligado
opción cambiar
de contraseña
contraseña
OK
aparece nueva
contraseña del
usuario
Se selecciona visualiza la opción
cerrar sesión de de cerrar sesión
proyecto de 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
complejidad
más
de
efectivamente
sus
la
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;
[email protected].
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 ACTIVIDADES
ANÁLISIS
1
Días
Comienzo
Fin
48 dias
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
7
26-12-2007
02-01-2008
1
03-01-2008
03-01-2008
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
1
29-01-2008
29-01-2008
Consultores
4
Escoger una empresa y Tramitar
Permisos de Acceso
5
Análisis de Campo aplicada al proyecto
12 Análisis de Entidades que Participan en
un Proyecto
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
1
27-02-2008
27-02-2008
PRIMERA SUSTENTACIÓN
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
5
03-03-2008
08-03-2008
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
14
13-04-2008
27-04-2008
22
28-04-2008
19-05-2008
1
20-05-2008
20-05-2008
1
21-05-2008
21-05-2008
1
22-05-2008
22-05-2008
38
23-05-2008
1-07-2008
14
02-07-2008
16-07-2008
1
29-07-2008
19 Diseño de Pantallas Basado en las
Plantillas Aprobadas Por Usuario
20 Programación de Procedimientos y
22 Redefinición de pantallas en base a
nuevos Requerimientos
23 Elaboración de Manual de Usuario
Impreso y Adjuntos del Código
IMPLEMENTACIÓN
55 dias
24 Configuración de Equipos Previo a la
Sustentación
25 Configuración del servidor de Base de
Datos
26 Configuración de PC Cliente(Ejecutables)
27 Documentación del Tomo II (MANUAL DE
USUARIO Y TECNICO)
28 PRUEBAS FINALES
ÚLTIMA SUSTENTACIÓN
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?
Revisión
Aprobación
Cierre o Bloqueo
Al momento de asignar tiempo a una tarea de un determinado proyecto
¿Qué método utiliza?
Empírico
Experiencia
Matemático
Al momento de asignar un recurso humano a una tarea de un
determinado proyecto ¿Qué método utiliza?
Empírico
Experiencia
Otros
¿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
¿Por qué?:______________________________________________________
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
¿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
¿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/Bkin%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
151
ADMINISTRACIÓN DE RIESGOS Cuadro 2.11
TIPO DE RIESGO
Software
DEFINICIÓN
AFECTA
PROBABILIDAD EFECTO
Necesidad de adquirir Licencias Corrientes
o adicionales requeridas como
la del Control Spread
Proyecto
baja
serio
Falta de Respaldos de los módulos
ya codificados
Proyecto
baja
serio
ANEXO 5
ESTRATEGIA
Solicitar a la carrera las licencias Demoras en las
que tienen los permisos
autorizaciones
correspondientes
Atrasos de codificación
según lo planificado
Espejo guardado en otra unidad Deterioro, perdida parcial
de almacenamiento Externo
o total de código fuente ya
si es posible
quemado.
Realizar Manuales de software
a lo largo del desarrollo
Que los usuarios no tengan los conocimientos
Proyecto
básicos para manejar sistemas GUI, lo cual dificulta
el tiempo de enseñanza del mismo
Usuarios se resistan a
Producto
utilizar el software
Requerimientos
Mala interpretación de alcances y requisitos
pedidos en la tesis.
Modificaciones en etapa final del ciclo
(implementación)
Baja
Tolerable Capacitar al Personal que
utilizará el sistema
Media
Tolerable Capacitar a Usuarios
Proyecto
baja
Serio
Proyecto
Media
Serio
FACTORES
Crear interfaces
Amigables
Constante comunicación
con el tutor del seminario
Definir bien el modelo espiral a
utilizar.
Falta de Mantenimiento de
equipos
Mala administración
de la información
Falta de Conocimiento
Informático
Falta de Conocimiento
Informático.
Inexperiencia de Usuarios
Mala comunicación con
Tutor del seminario
Malas Interpretaciones
de Requisitos
cambiantes
Apuntar Consejos del tribunal
Hardware
RRHH y
Organizacional
ESTIMACIÓN
Robo de Equipos de Desarrollo
Continuidad baja
Proyecto
serio
Que los equipos disponibles no estén en
óptimas condiciones de trabajo.
Producto
Baja
Daño imprevisto de equipos
Proyecto
Baja
Tolerable Realizar
Falta de Presupuesto
Mantenimiento de
equipos
Tolerable Dar Mantenimiento
Falta de
Mensual a equipos de desarrollo Mantenimiento
Enfermedad o Problemas de grupo
Continuidad baja
Indisponibilidad de reuniones del grupo
Proyecto
Baja
Redefinición Constante de Procesos que se
Cumplen en cada actividad del cronograma
Mala Estimación del tiempo
para la Duración del desarrollo
Proyecto
Media(Espiral)
Proyecto
Media
medio
Solicitar a la carrera préstamo
de equipo
Estar todos capacitados para
afrontar el problema
Tolerable Mantener comunicación por
celular o vía email
Serio
Redefinir o Depurar Actividades
Críticas
Tolerable Redefinir procesos en
Actividades críticas
Demoras en las
autorizaciones
Demora del proyecto
Mala comunicación
Mala Sincronización
de Actividades
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 GUAYAQUIL
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas
Computacionales
“Sistema Electrónico de Control de Tiempo y
Proyecto de Auditoria”
PROYECTO DE GRADO
CURSO DE GRADUACION
Previo a la Obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
Autores:
LOZANO OTERO YESSICA JACQUELINE
MAYOR FERRUZOLA WALTER DAVID
MOREIRA 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
2do Vocal
1er 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
C.I.: 0913298600
Mayor Ferruzola Walter David
C.I.: 0920113305
Moreira Estrada Pedro Antonio
C.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 Ha
Asignado El Cual Es Automático Al Momento De Crear Nuevos
Usuarios
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 Guardados
En La Base En Estado Activo*/
22
1.5.5. ‘/*Función Que Permite Buscar Todos Los Usuarios totales
Guardados 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 Sin
Importar Su Estado*/
23
1.5.8 ‘/*Capturar El Código Máximo De Proyectos Que Han Sido
Creados*/
24
1.5.9. ‘/*Insertar Nuevo Proyectos*/
24
1.5.10. ‘/*Captura Todos Los Proyectos Creados Y Que Están
En Estado Activo */
24
1.5.11. ‘/*Busca Usuario Con El Código Especificado En La
Consulta*/
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 Sido
Guardado*/
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 Que
Pueda Ser Requerido*/
27
1.5.19. ‘/*Busca Todos Los Implementos Y Los Muestra
Ordenados Por Nombre*/
28
IX
1.5.20. ‘/*Permite Actualizar Los Implementos Mas Que Nada En
Su Stock*/
1.5.21. ‘/*Asignar Actividades A Un Determinado Proyecto*/
28
1.5.22. ‘/*Captura El Código Máximo De Eventos Que Hizo Un
Usuario En El Sistema*/
29
1.5.23 ‘/*Muestra Toda La Lista De Actividades Que Contiene Un
Proyecto*/
30
1.5.24. ‘/*Captura La El
30
Código Máximo De Las Actividades
29
Asignadas A Un Proyecto*/
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 Un
Usuario*/
32
1.5.29. ‘/*Muestra La Lista De Proyectos Creados Según Perfil De
Usuario*/
32
1.5.30 ‘/*Guarda La Especialización Del Recurso Humano
(Usuario)*/
32
‘/*Captura Todas Las Áreas De Especialización
Almacenadas Hasta El Momento Para Mostrarlas En El Combo
Para Facilidades Del Usuario*/
1.5.32. ‘/*Captura La Lista De Todos Los Administradores De
Proyectos*/
33
1.5.33. ‘/*Captura La Lista De Todos Los Administradores De
Proyecto 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
1.5.31
33
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
100
PROYECTO DE AUDITORIA (AUDIT TIME)
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 interrelaciones 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
Microsoft Windows 2007 o Windows XP o versión posterior
operativo
(recomendado)
Memoria
64 MB RAM (mínimo); 128 MB RAM (recomendado)
245 MB, incluidos los 115 MB de espacio de disco que deben
estar disponibles en el disco duro que contiene el sistema
Espacio
de operativo. El uso del espacio del disco duro varía según la
disco
configuración. Una instalación local requiere aproximadamente
2 GB de espacio de disco duro durante la instalación;
posteriormente.
Monitor
Unidad
Super VGA (800 x 600) o resolución superior con 256 colores
de
Unidad de CD ROM
disco
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 el
disco 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 Recordset
Conectar
strSQL = "SELECT * from Tblusuarios where UsLogin='" & usr & "' and
UsPass='" & pwd & "'"
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set usuario = COMAdorst
Desconectar
End Function
1.5.2. Funcion Que Verifica El Código Máximo Que Se Ha Asignado El
Cual Es Automático Al Momento De Crear Nuevos Usuarios*/
Function maxUsuario() As Recordset
Conectar
strSQL = "select max(UsCodigo) from tblUsuarios "
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxUsuario = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
updateUsuario = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateUsuario = 0
End Function
1.5.4.‘/*Función Que Permite Buscar Todos Los Usuarios Guardados En La
Base En Estado Activo*/
Function TodosUsuarios() As Recordset
Conectar
strSQL = "select * from tblusuarios where UsEstado = 'A' order by
UsApellidos"
COMAdorst.Open strSQL, COMAdocon
Set TodosUsuarios = COMAdorst
Desconectar
End Function
1.5.5. ‘/*Función Que Permite Buscar Todos Los Usuarios totales
Guardados En La Base En Estado Activo*/
Function TodosUsuariosTotal() As Recordset
Conectar
23
strSQL = "select * from tblusuarios order by UsApellidos"
COMAdorst.Open strSQL, COMAdocon
Set TodosUsuariosTotal = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
insertUsuario = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertUsuario = 0
End Function
1.5.7.‘/*Función Que Permite Buscar Todos Los Usuarios Sin Importer
Su Estado*/
Function TodosUsuariosTotal() As Recordset
Conectar
strSQL = "select * from tblusuarios order by UsApellidos"
COMAdorst.Open strSQL, COMAdocon
Set TodosUsuariosTotal = COMAdorst
Desconectar
End Function
24
1.5.8 ‘/*Capturar El Código Máximo De Proyectos Que Han Sido
Creados*/
Function maxProyecto() As Recordset
Conectar
strSQL = "select max(PRCodigo) from TblProyectos "
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxProyecto = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
insertProyecto = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertProyecto = 0
End Function
1.5.10. ‘/*Captura Todos Los Proyectos Creados Y Que Estan En Estado
Activo */
Function TodosProyectos() As Recordset
Conectar
If tipoUS = 1 Then
strSQL = "select * from tblProyectos where PREstado = 'A' order by
PRNombre"
25
Else
strSQL = "select * from tblProyectos where PRIdResponsable = " &
codUsu & " and PREstado = 'A' order by PRNombre"
End If
COMAdorst.Open strSQL, COMAdocon
Set TodosProyectos = COMAdorst
Desconectar
End Function
1.5.11. ‘/*Busca Usuario Con El Código Especificado En La Consulta*/
Function UsuarioCod(cod As Integer) As Recordset
Conectar
strSQL = "select * from tblusuarios where UsCodigo = " & cod & ""
COMAdorst.Open strSQL, COMAdocon
Set UsuarioCod = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
updateProyecto = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateProyecto = 0
End Function
26
1.5.13. ‘/*Busca El Código Máximo De Proveedores Que Ha Sido
Guardado*/
Function maxProveedores() As Recordset
Conectar
strSQL = "select max(POCod) from tblProveedor"
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxProveedores = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
insertProveedor = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertProveedor = 0
End Function
1.5.15. ‘/*Captura La Lista De Proveedores Disponibles*/
Function TodosProveedor() As Recordset
Conectar
strSQL = "select * from TblProveedor order by PONombre"
COMAdorst.Open strSQL, COMAdocon
Set 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
Conectar
On 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, nro
updateProveedor = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateProveedor = 0
End Function
1.5.17. ‘/*Busca El Ultimo Implemento Registrado*/
Function maxRecursos() As Recordset
Conectar
strSQL = "select max(MaCod) from TblRecursos "
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxRecursos = COMAdorst
Desconectar
End Function
1.5.18. ‘/*Almacena En La Base Un Nuevo Implemento Que Pueda Ser
Requerido*/
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
Conectar
On 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, nro
insertRecursos = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertRecursos = 0
End Function
1.5.19. ‘/*Busca Todos Los Implementos Y Los Muestra Ordenados Por
Nombre*/
Function TodosRecursos() As Recordset
Conectar
strSQL = "select * from TblRecursos order by MaNombre"
COMAdorst.Open strSQL, COMAdocon
Set TodosRecursos = COMAdorst
Desconectar
End Function
Function ProveCod(cod As Integer) As Recordset
Conectar
strSQL = "select * from tblproveedor where POCod = " & cod & ""
COMAdorst.Open strSQL, COMAdocon
Set ProveCod = COMAdorst
Desconectar
End Function
1.5.20. ‘/*Permite Actualizar Los Implementos Mas Que Nada En Su
Stock*/
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
Conectar
On 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, nro
updateRecursos = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateRecursos = 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
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into tbleventos values (" & cod & "," & usu & ","
strSQL = strSQL + "'" & fec & "','" & Des & "')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nro
insertEvento = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertEvento = 0
End Function
1.5.22. ‘/*Captura El Código Máximo De Eventos Que Hizo Un Usuario
En El Sistema*/
Function maxEvento() As Recordset
Conectar
strSQL = "select max(IdEvento) from TblEventos "
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxEvento = COMAdorst
Desconectar
30
End Function
1.5.23 ‘/*Muestra Toda La Lista De Actividades Que Contiene Un
Proyecto*/
Function PresentaActividades(cod As Integer) As Recordset
Conectar
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, COMAdocon
Set PresentaActividades = COMAdorst
Desconectar
End Function
1.5.24. ‘/*Captura La El Código Máximo De Las Actividades Asignadas A
Un Proyecto*/
Function maxActividad(pro As Integer) As Recordset
Conectar
strSQL = "select max(AcCod) from TblActividades where AcPro = " & pro
& ""
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxActividad = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
updateActividad = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateActividad = 0
End Function
1.5.26. ‘/*Captura Cual Es La Actividad Máxima */
Function maxOrdenActividad(pro As Integer) As Recordset
Conectar
strSQL = "select max(ACOrden) from TblActividades where AcPro = " &
pro & ""
Debug.Print strSQL
COMAdorst.Open strSQL, COMAdocon
Set maxOrdenActividad = COMAdorst
Desconectar
End 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
Conectar
On 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 strSQL
COMAdocon.Execute strSQL, nro
insertActividad = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertActividad = 0
End Function
1.5.28. ‘/*Permite Borrar La Especialización Existente De Un Usuario*/
Function borraEspe(cod As Integer) As Variant
Conectar
On Error GoTo ErrMsg
COMAdocon.BeginTrans
strSQL = ""
strSQL = "delete from TblUsuariosAreas where CodUsuario = " & cod & ""
Debug.Print (strSQL)
COMAdocon.Execute strSQL
COMAdocon.CommitTrans
borraEspe = 0
Desconectar
Exit Function
ErrMsg:
Debug.Print Err.Description
COMAdocon.RollbackTrans
Desconectar
borraEspe = 1
End Function
1.5.29. ‘/*Muestra La Lista De Proyectos Creados Según Perfil De
Usuario*/
Function TodosProyectosTodos() As Recordset
Conectar
If tipoUS = 1 Then
strSQL = "select * from tblProyectos order by PRNombre"
Else
strSQL = "select * from tblProyectos where PRIdResponsable = " &
codUsu & " order by PRNombre"
End If
COMAdorst.Open strSQL, COMAdocon
Set TodosProyectosTodos = COMAdorst
Desconectar
End Function
1.5.30 ‘/*Guarda La Especialización Del Recurso Humano (Usuario)*/
33
Function insertEspecializacion(codUsu As Integer, CodArea As Integer) As
Variant
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into TblUsuariosAreas values (" & codUsu & ","
strSQL = strSQL + "" & CodArea & ",'A')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nro
insertEspecializacion = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertEspecializacion = 0
End Function
1.5.31 ‘/*Captura Todas Las Áreas De Especialización Almacenadas
Hasta El Momento Para Mostrarlas En El Combo Para Facilidades Del
Usuario*/
Function Especializaciones(cod As Integer) As Recordset
Conectar
strSQL = ""
strSQL = "select * from TblUsuariosAreas "
strSQL = strSQL + "where CodUsuario = " & cod & ""
COMAdorst.Open strSQL, COMAdocon
Set Especializaciones = COMAdorst
Desconectar
End Function
1.5.32. ‘/*Captura La Lista De Todos Los
Proyectos*/
Administradores De
Function TodosProyectosRep() As Recordset
Conectar
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, COMAdocon
Set TodosProyectosRep = COMAdorst
Desconectar
End Function
34
1.5.33. ‘/*Captura La Lista De Todos Los Administradores De Proyecto
Que Estén Activos*/
Function TodosResponsables(cod As Integer) As Recordset
Conectar
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 If
strSQL = strSQL + "order by a.UsApellidos "
COMAdorst.Open strSQL, COMAdocon
Set TodosResponsables = COMAdorst
Desconectar
End Function
1.5.34. ‘/*Evalua El Costo De Actividades Por Proyecto*/
Function PresentaActividadesCostos(cod As Integer) As Recordset
Conectar
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, COMAdocon
Set PresentaActividadesCostos = COMAdorst
Desconectar
End Function
1.5.35. /*datos de la clave*/
Function updateClave(cod As Integer, pass As String) As Variant
Conectar
On Error GoTo ErrMsg
strSQL = "update tblusuarios set "
strSQL = strSQL + "UsPass='" & pass & "'"
strSQL = strSQL + "where UsCodigo= " & cod & ""
COMAdocon.Execute strSQL, nro
updateClave = 1
Desconectar
Exit Function
ErrMsg:
35
Desconectar
updateClave = 0
End Function
1.5.36 /* Numeros de proyectos realizados*/
Function NumeroProyectos(cod As Integer) As Recordset
Conectar
strSQL = ""
strSQL = "SELECT count(*) from TblUsuariosProyectos "
strSQL = strSQL + "Where CodUsuario = " & cod & " and EstadoPro = 'A' "
COMAdorst.Open strSQL, COMAdocon
Set NumeroProyectos = COMAdorst
Desconectar
End Function
1.5.37 /*Ingresar los proyectos de cada usuario*/
Function insertUsuarioProyecto(codUsu As Integer, Codpro As Integer) As
Variant
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into TblUsuariosProyectos values (" & codUsu & ","
strSQL = strSQL + "" & Codpro & ",'A')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nro
insertUsuarioProyecto = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertUsuarioProyecto = 0
End Function
1.5.38 /* Eliminar los proyectos de usuarios*/
Function updateUsuariosproyecto(codUsu As Integer, Codpro As Integer, _
esta As String) As Variant
Conectar
On 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, nro
updateUsuariosproyecto = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateUsuariosproyecto = 0
End Function
1.5.39 /* Borrar Disponible*/
Function updateDisponible(cod As Integer, dis As Integer) As Variant
Conectar
On Error GoTo ErrMsg
strSQL = "update TblRecursos set "
strSQL = strSQL + "Disponible=" & dis & " "
strSQL = strSQL + "where MaCod= " & cod & ""
COMAdocon.Execute strSQL, nro
updateDisponible = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
updateDisponible = 0
End Function
1.5.40 /* disponible*/
Function Disponible(cod As Integer) As Recordset
Conectar
strSQL = ""
strSQL = "SELECT disponible from TblRecursos "
strSQL = strSQL + "Where Macod = " & cod & " "
COMAdorst.Open strSQL, COMAdocon
Set Disponible = COMAdorst
Desconectar
End Function
37
1.5.41./*Insertar los recursos de actividades*/
Function insertRecursosActividades(Codpro As Integer, CodAct As Integer, _
codRec As Integer, can) As Variant
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into TblRecursoActividad values (" & Codpro & ","
strSQL = strSQL + "" & CodAct & "," & codRec & ",1,'A')"
COMAdocon.Execute strSQL, nro
insertRecursosActividades = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
insertRecursosActividades = 0
End Function
1.5.42. /*Borrar recursos de actividades*/
Function borraRecursosActividades(Codpro As Integer, CodAct As Integer)
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "delete from TblRecursoActividad "
strSQL = strSQL + "where CodPro= " & Codpro & " and "
strSQL = strSQL + "CodActividad= " & CodAct & ""
COMAdocon.Execute strSQL, nro
borraRecursosActividades = 2
Desconectar
Exit Function
ErrMsg:
Desconectar
borraRecursosActividades = 0
End Function
1.5.43/*Buscar los recursos de actividades*/
Function BuscaRecursosActividades(Codpro As Integer, _
CodAct As Integer) As Recordset
Conectar
strSQL = ""
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 = COMAdorst
Desconectar
End 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
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into TblUsuariosActividades values (" & CodUs & ","
strSQL = strSQL + "" & Codpro & "," & CodAct & ",'" & finicio & "',"
strSQL = strSQL + "'" & ffin & "','" & horas & "','" & estado & "')"
Debug.Print strSQL
COMAdocon.Execute strSQL, nro
insertUsuarioActividad = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
Debug.Print Err.Description
error = Err.Description
insertUsuarioActividad = 0
End Function
1.5.45 /*Buscar actividades de cada responsable*/
Function BuscaResponsableActividad(Codpro As Integer, _
CodAct As Integer) As Recordset
Conectar
strSQL = ""
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, COMAdocon
Set BuscaResponsableActividad = COMAdorst
Desconectar
End Function
1.5.46 /*horas*/
39
Function RevisaHoras(CodUs As Integer, fecini As Date, fecfin As Date) As
Recordset
Conectar
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, COMAdocon
Set RevisaHoras = COMAdorst
Desconectar
End Function
1.5.47 /*Actividades por cada usuario*/
Function ActividadesUsuario(cod As Integer) As Recordset
Conectar
strSQL = ""
strSQL = "SELECT * from TblUsuariosActividades "
strSQL = strSQL + "Where CodUsuario = " & cod & " and Estado = 'A' order
by finicio"
COMAdorst.Open strSQL, COMAdocon
Set ActividadesUsuario = COMAdorst
Desconectar
End Function
1.5.48 /* consulta de actividades por cada auditor*/
Function ConsultaActAuditor(CodAudi As Integer) As Recordset
Conectar
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, COMAdocon
Set ConsultaActAuditor = COMAdorst
Desconectar
End Function
1.5.49 /*Usuario por cada actividad*/
40
Function UsuariosAct() As Recordset
Conectar
If tipoUS = 1 Then
strSQL = "select * from tblusuarios where UsEstado = 'A' order by
UsApellidos"
Else
strSQL = "select * from tblusuarios where UsEstado = 'A' and UsCodigo =
" & codUsu & " order by UsApellidos"
End If
COMAdorst.Open strSQL, COMAdocon
Set UsuariosAct = COMAdorst
Desconectar
End 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
Conectar
On 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, nro
UpTiempoActividad = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
UpTiempoActividad = 0
End Function
1.5.51 /*Rastros de auditor*/
Function RepRastros(desde As String, hasta As String, usu As Integer) As
Recordset
Conectar
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 Then
strSQL = strSQL + "and a.Idusuario = " & usu & " "
End If
strSQL = strSQL + "order by a.fecha"
COMAdorst.Open strSQL, COMAdocon
Set RepRastros = COMAdorst
Desconectar
End Function
1.5.52 /* Horas por actividades*/
Function HorasActividades(pro As Integer, act As Integer) As Recordset
Conectar
strSQL = ""
strSQL = "SELECT sum(Horas) from TblHorasActividades "
strSQL = strSQL + "where CodProyecto = " & pro & " and "
strSQL = strSQL + "CodActividad = " & act & " "
COMAdorst.Open strSQL, COMAdocon
Set HorasActividades = COMAdorst
Desconectar
End Function
1.5.53 /*Eliminar actividades por horas*/
Function borraHorasActividades(Codpro As Integer, CodAct As Integer, fe As
String)
Conectar
On 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, nro
borraHorasActividades = 2
Desconectar
Exit Function
ErrMsg:
Desconectar
borraHorasActividades = 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
Conectar
On Error GoTo ErrMsg
strSQL = ""
strSQL = "insert into TblHorasActividades values (" & Codpro & ","
strSQL = strSQL + "" & CodAct & ",'" & fe & "'," & horas & ")"
COMAdocon.Execute strSQL, nro
INHorasAct = 1
Desconectar
Exit Function
ErrMsg:
Desconectar
INHorasAct = 0
End Function
1.5.55 /*Reportes de auditor por cada proyecto*/
Function ProyectosAudiRep(cod As Integer) As Recordset
Conectar
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, COMAdocon
Set ProyectosAudiRep = COMAdorst
Desconectar
End Function
1.5.56 Codigo Del Módulo Principal
Option Explicit
Public COMAdocon As ADODB.Connection
Public COMAdorst As ADODB.Recordset
Public strSQL As String
Public usuario As String
Public tipoUS As Integer
Public codUsu As Integer
Public claveUS As String
Public RutaRepor As String
Public error As String
Dim con As New bdd
Dim rst As Recordset
Dim strBusq As String
1.5.57. ‘/*Ruta de Reportes*/
Sub Main()
43
Dim f As Date
RutaRepor = "C:\AUDITORIA\Reportes\"
frmMain.Show
End Sub
1.5.58 ‘/*Conexion A La Base*/
Public Sub Conectar()
Set COMAdocon = New ADODB.Connection
Set COMAdorst = New ADODB.Recordset
COMAdocon.ConnectionTimeout = 90
COMAdocon.Open "FILEDSN=DBAudi"
End Sub
1.5.59. ‘/*Desconexión A La Base*/
Public Sub Desconectar()
Set COMAdorst = Nothing
Set 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 Boolean
Dim MyExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim shExcel As Excel.Worksheet
Dim cad As String
Dim aux As Integer
On Error Resume Next
Set MyExcel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set MyExcel = CreateObject("Excel.Application")
End If
Set wbExcel = MyExcel.Workbooks.Add
Set shExcel = wbExcel.Worksheets.Add
shExcel.Name = "Libro"
shExcel.Activate
LstCol% = 0
aux = 0
cad = Chr(Asc("A"))
For c% = 0 To InFlexGrid.Cols - 1
InFlexGrid.Col = c%
LstRow% = 0
If c% < 26 Then
44
shExcel.Columns(Chr(Asc("A") + c%)).ColumnWidth =
InFlexGrid.ColWidth(c%) / 72
Else
shExcel.Columns(cad + Chr(Asc("A") + aux)).ColumnWidth =
InFlexGrid.ColWidth(c%) / 72
End If
For r% = 0 To InFlexGrid.Rows - 1
InFlexGrid.Row = r%
Err.Clear
Buf$ = InFlexGrid.TextMatrix(r%, c%)
If Buf$ <> "" Then
FormatMoney = False
If InStr(Buf$, vbCrLf) Then
Do While Right(Buf$, 1) = vbLf
Buf$ = Left(Buf$, Len(Buf$) - 1)
Loop
If c% < 26 Then
shExcel.Range(Chr(Asc("A") + c%)).WrapText = True
Else
shExcel.Range(cad + Chr(Asc("A") + aux)).WrapText = True
End If
ElseIf Format(CDbl(Buf$), 0) = Buf$ Then
If Err.Number = 0 Then
Buf$ = Str(CDbl(Buf$))
FormatMoney = True
End If
End If
If Buf$ <> "" Then
If InFlexGrid.MergeRow(r%) Then
For LstCol% = c% To 1 Step -1
If InFlexGrid.TextMatrix(r%, LstCol% - 1) <>
InFlexGrid.TextMatrix(r%, c%) Then
Exit For
End If
Next
If 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 If
End If
If InFlexGrid.MergeCol(c%) And LstRow% <> r% Then
If InFlexGrid.TextMatrix(LstRow%, c%) = InFlexGrid.TextMatrix(r%,
c%) Then
shExcel.Range(Chr(Asc("A") + c%) & (LstRow% + 1), _
Chr(Asc("A") + c%) & (r% + 1)).MergeCells = True
shExcel.Range(Chr(Asc("A") + c%) & (LstRow% + 1), _
Chr(Asc("A") + c%) & (r% + 1)).BorderAround
Else
45
LstRow% = r%
End If
End If
If c < 26 Then
shExcel.Range(Chr(Asc("A") + c%) & _
(r% + 1)).Font.Color = InFlexGrid.CellForeColor
Else
shExcel.Range((cad + Chr(Asc("A") + aux)) & _
(r% + 1)).Font.Color = InFlexGrid.CellForeColor
End If
If r% < InFlexGrid.FixedRows Or c% < InFlexGrid.FixedCols Then
If c < 26 Then
shExcel.Range(Chr(Asc("A") + c%) & _
(r% + 1)).Font.Bold = True
Else
shExcel.Range((cad + Chr(Asc("A") + aux)) & _
(r% + 1)).Font.Bold = True
End If
End If
'*****OJO CAMBIO
If c% < 26 Then
If (Mid(Buf$, 3, 1) = "/") Then
Buf$ = Format(Buf$, "yyyy/mm/dd")
End If
shExcel.Range(Chr(Asc("A") + c%) & (r% + 1)).Value = Buf$
Else
shExcel.Range((cad + Chr(Asc("A") + aux)) & (r% + 1)).Value = Buf$
End If
If FormatMoney Then
shExcel.Range(Chr(Asc("A") + c%) & _
(r% + 1)).NumberFormat = "###0;###0;###0;'' "
End If
CStr(Trim(Buf$))
'*******************
End If
End If
Next
If c% >= 26 Then aux = aux + 1
Next
MyExcel.Visible = True
Set shExcel = Nothing
Set wbExcel = Nothing
Set MyExcel = Nothing
End Sub
1.5.61 'Funcion Que Guarda Todos Los Eventos Del Sistema
Public Sub Evento(eve As String)
Dim codeve As Integer
Dim fe As String
46
Set rst = con.maxEvento()
If IsNull(rst.Fields(0)) Then
codeve = 1
Else
codeve = rst.Fields(0) + 1
End If
fe = Now
If con.insertEvento(codeve, codUsu, fe, Trim(eve)) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que no
Exista el LOGIN " & error, vbCritical
End If
End 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.Caption
Me.LBLNombrePro.Caption = .LBLNombrePro.Caption
Me.LBLFechaInicioPRO.Caption = .LBLFechaInicio.Caption
Me.LBLFFinEsti.Caption = .LBLFFinEsti.Caption
End With
Me.MSFlexGrid1.Rows = 1
Select Case par
Case 1:
Set rst = con.maxActividad(CInt(Me.LBLCodPro.Caption))
If IsNull(rst.Fields(0)) Then
Me.LBLCodActividad.Caption = 1
Else
Me.LBLCodActividad.Caption = rst.Fields(0) + 1
End If
Set rst = con.maxOrdenActividad(CInt(Me.LBLCodPro.Caption))
If IsNull(rst.Fields(0)) Then
Me.TXTOrden.Text = 1
Else
Me.TXTOrden.Text = rst.Fields(0) + 1
End If
Me.CBOEstado.AddItem "ACTIVA"
Me.CBOEstado.ListIndex = 0
strOper = "insert"
Me.DTPFechaIni.Value = Me.LBLFechaInicioPRO.Caption
Me.DTPFechafin.Value = Me.LBLFechaInicioPRO.Caption
Me.LBLDias.Caption = 1
47
Me.TXTHoras.Text = 0
Me.CBOAvance.AddItem 0
Me.CBOAvance.ListIndex = 0
Case 2:
strOper = "update"
With FRMCrtActividades
Me.CBOAvance.AddItem 0
Me.CBOAvance.AddItem 10
Me.CBOAvance.AddItem 20
Me.CBOAvance.AddItem 30
Me.CBOAvance.AddItem 40
Me.CBOAvance.AddItem 50
Me.CBOAvance.AddItem 60
Me.CBOAvance.AddItem 70
Me.CBOAvance.AddItem 80
Me.CBOAvance.AddItem 90
Me.CBOAvance.AddItem 100
Me.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 = False
Me.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=Eliminada
Select 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 = 3
End Select
Call cargarRecursos
End With
If Me.CBOEstado.Text = "FINALIZADA" Then
Me.CMDGrabar.Enabled = False
End If
Call CalculaHoras
End Select
End Sub
1.6.2. Declaración de variable Generales del FRMActividades
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Dim par As Integer
Private Sub CBOAvance_Click()
If Me.CBOAvance.Text = 100 Then
Me.CBOEstado.ListIndex = 2
End If
End Sub
Private Sub CDMResponsable_Click()
FRMBuscaUsuario.mostrar 3
End Sub
Private Sub CMDAñadir_Click()
FRMBuscaRecursos.mostrar 2
Me.MSFlexGrid1.ColWidth(0) = 0
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub CMDGrabar_Click()
Dim fini As Date
Dim ffin As Date
Dim FPro As Date
Dim FFinPro As Date
Dim Inicio As String
Dim fin As String
49
Dim Actual As String
fini = Me.DTPFechaIni.Value
ffin = Me.DTPFechafin.Value
FPro = Me.LBLFechaInicioPRO.Caption
FFinPro = Me.LBLFFinEsti.Caption
Inicio = Format(fini, "dd/mm/yyyy")
fin = Format(ffin, "dd/mm/yyyy")
Actual = Format(Date, "dd/mm/yyyy")
If fini < FPro Then
MsgBox " La fecha de Inicio de la Actividad no puede ser Menor a la fecha
de Inicio del Proyecto", vbCritical
Me.DTPFechaIni.SetFocus
Exit Sub
End If
If ffin > FFinPro Then
MsgBox "La fecha de Fin no puede ser mayor a la Fecha Final Estimada
del Proyecto " & Chr(13) & "Primero debe cambiar en Mantenimiento de
Proyecto", vbCritical
Me.DTPFechafin.SetFocus
Exit Sub
End If
If fini > ffin Then
MsgBox " La fecha de Fin no puede ser mayor a la fecha de Inicio",
vbCritical
Me.DTPFechafin.SetFocus
Exit Sub
End If
If Me.TXTHoras.Text = "" Then
MsgBox " No ha Ingresado Horas Diarias a Trabajar", vbCritical
Me.TXTHoras.SetFocus
Exit Sub
End If
If Me.TXTDescripcion.Text = "" Then
MsgBox " No ha Ingresado Descripcion de la Actividad", vbCritical
Me.TXTDescripcion.SetFocus
Exit Sub
End If
If Me.LBLCodRes.Caption = "" Then
MsgBox " No ha Ingresado Responsable de la Actividad", vbCritical
Me.CDMResponsable.SetFocus
Exit Sub
End If
50
If Me.CBOEstado.Text = "FINALIZADA" Then
If MsgBox(" Esta Seguro que desea dar por Finalizada la Actividad",
vbYesNo) = vbNo Then
Exit Sub
End If
End If
If strOper = "insert" Then
If RevisaHorasResponsable = False Then
MsgBox "El Responsable No puede tener mas de 24 Horas en un dia
asignadas....Revisar", vbCritical
Me.TXTHoras.SetFocus
Exit 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 GrabaRecursos
Call GrabaUsuarioActividades
MsgBox "Actividad ha sido Guardado con Exito", vbInformation
Call Evento("INSERT tblActividad")
Unload Me
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que
no Exista el LOGIN " & error, vbCritical
End If
End If
If strOper = "update" Then
If 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)) Then
Call GrabaRecursos
MsgBox "Actualizacion realizada con Exito", vbInformation
Call Evento("UPDATE tblActividad")
Unload Me
Else
MsgBox "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 Then
MsgBox "No hay Recursos asignados", vbCritical
Me.CMDAñadir.SetFocus
Exit Sub
End If
Set rst =
con.Disponible(CInt(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)))
If IsNull(rst.Fields(0)) Then
dispo = 0
Else
dispo = rst.Fields(0)
End If
dispo = dispo + 1
If con.updateDisponible(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0),
dispo) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que no
Exista 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 = 1
End If
Me.LBLDias.Caption = Dias
Call 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 = 1
End If
52
Me.LBLDias.Caption = Dias
Call CalculaHoras
End Sub
Private Sub TXTHoras_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii = 13 Then
If CInt(Me.TXTHoras.Text) < 0 Or CInt(Me.TXTHoras.Text) > 24 Then
MsgBox "Horas no pueden deben ser mayor a 24", vbCritical
Me.TXTHoras.Text = 0
Me.TXTHoras.SetFocus
Exit Sub
End If
Call CalculaHoras
End If
KeyAscii = 0
End If
End 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", vbCritical
Me.TXTHoras.Text = 0
Me.TXTHoras.SetFocus
Exit Sub
End If
Call CalculaHoras
End Sub
Private Sub TXTOrden_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End Sub
Public Sub CalculaHoras()
Dim ho As Integer
ho = Me.TXTHoras * CInt(Me.LBLDias.Caption)
Me.LBLHorasTotales = ho
End Sub
Public Sub mostrar(param As Integer)
par = param
Me.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 If
While i < Me.MSFlexGrid1.Rows
If Not con.insertRecursosActividades(CInt(Me.LBLCodPro.Caption), _
CInt(Me.LBLCodActividad.Caption), CInt(Me.MSFlexGrid1.TextMatrix(i,
0)), 1) Then
End If
i=i+1
Wend
End Sub
Public Sub cargarRecursos()
Me.MSFlexGrid1.Rows = 1
Set 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
Wend
Me.MSFlexGrid1.ColWidth(0) = 0
End Sub
1.6.3. Buscar Proveedor De Implementos - Frmbuscaprov***/
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub Form_Load()
MSFlexGrid1.Rows = 1
Set 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.MoveNext
Wend
Select Case strOpt
Case 1, 2:
54
For i = 3 To 6
Me.MSFlexGrid1.ColWidth(i) = 0
Next i
End Select
End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()
If MSFlexGrid1.Rows = 1 Then
Unload Me
End If
Select 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 Select
Unload Me
End Sub
1.6.4. Frmbuscaproyecto
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub Form_Load()
Dim i As Integer
MSFlexGrid1.Rows = 1
If strOpt = 1 Then
Set rst = con.TodosProyectosTodos()
Else
Set rst = con.TodosProyectos()
End If
55
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(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.MoveNext
Wend
End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()
If MSFlexGrid1.Rows = 1 Then
Unload Me
Exit Sub
End If
Select Case strOpt
Case 1: 'FRMProyectos
FRMProyectos.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" Then
FRMProyectos.TXTEstado.Text = 0
End If
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5) = "F" Then
FRMProyectos.TXTEstado.Text = 1
End If
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 5) = "I" Then
FRMProyectos.TXTEstado.Text = 2
End If
FRMProyectos.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: 'Actividades
FRMCrtActividades.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 Actividades
FRMReporteProyectos.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 Costos
FRMRepCostos.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 Me
End Sub
1.6.5FRMBuscarRecursos
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub Form_Load()
Dim i As Integer
MSFlexGrid1.Rows = 1
Set 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.MoveNext
Wend
For i = 4 To 9
Me.MSFlexGrid1.ColWidth(i) = 0
Next i
If strOpt = 2 Then
Me.MSFlexGrid1.ColWidth(2) = 0
Me.MSFlexGrid1.ColWidth(3) = 0
End If
End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()
Dim dispo As Integer
If MSFlexGrid1.Rows = 1 Then
Unload Me
End If
Select 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”, vbCritical
Exit Sub
End If
FRMActividades.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)) – 1
If con.updateDisponible(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0), dispo)
Then
Else
MsgBox “Hubo un error en el Guardado de los Datos…Revisar que no Exista
el LOGIN “ & error, vbCritical
End If
End Select
Unload Me
End Sub
1.6.6 FRMBuscarUsuario
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub Form_Load()
Dim i As Integer
MSFlexGrid1.Rows = 1
Select 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 If
Case 3, 4:
=
59
Set rst = con.TodosUsuarios()
Case 5, 6:
Set rst = con.UsuariosAct()
End Select
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) & _
Chr(9) & rst.Fields(11) & Chr(9) & rst.Fields(12) & _
Chr(9) & rst.Fields(13)
rst.MoveNext
Wend
For i = 4 To 13
Me.MSFlexGrid1.ColWidth(i) = 0
Next i
Me.MSFlexGrid1.ColWidth(0) = 0
If strOpt = 3 Then
Me.MSFlexGrid1.ColWidth(11) = 1000
End If
End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
Private Sub MSFlexGrid1_DblClick()
Dim num As Integer
If MSFlexGrid1.Rows = 1 Then
Unload Me
End If
Select Case strOpt
Case 1: 'FRMUsuarios
FRMUsuarios.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 = True
Else
FRMUsuarios.OPTFem.Value = True
End If
FRMUsuarios.txttelef.Text =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 7)
FRMUsuarios.TXTPass.Text = MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel,
8)
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 9) = 1 Then
FRMUsuarios.OPTAdmi.Value = True
Else
FRMUsuarios.OPTAudi.Value = True
End If
FRMUsuarios.CBOTipo.Text
=
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 10)
FRMUsuarios.TXTCosto.Text =
Format(MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 11), "#,###,###.00")
If MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 12) = "A" Then
FRMUsuarios.CBOEstado.ListIndex = 0
Else
FRMUsuarios.CBOEstado.ListIndex = 1
End If
Case 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 Sub
End If
FRMProyectos.LBLCodRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 0)
FRMProyectos.LBLNombreRes.Caption =
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 2) + " " +
MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSel, 3)
Case 3: 'FRMActividades
FRMActividades.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 Me
End Sub
1.6.7 FRMCambiarClave
Option Explicit
Dim con As New bdd
Dim 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”, vbCritical
Me.TxtClaveAnt.SetFocus
Exit Sub
End If
If Me.TxtClaveNueva.Text <> Me.TxtClaveNuevaConfir.Text Then
MsgBox “Claves no Coinciden”, vbCritical
Me.TxtClaveNueva.SetFocus
Exit Sub
End If
If con.updateClave(codUsu, Trim(Me.TxtClaveNueva.Text)) Then
MsgBox “Cambio de Clave Realizado con Exito”, vbInformation
Call Evento(“UPDATE tblusuario(Cambio Clave)”)
claveUS = Trim(Me.TxtClaveNueva.Text)
Unload Me
Else
MsgBox “Hubo un error en la Actualizaciòn”, vbCritical
End If
End Sub
Private Sub Form_Load()
Me.LBLUsuario.Caption = usuario
End Sub
1.6.8 FRMCrtActividades
Option Explicit
62
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CDMResponsable_Click()
FRMBuscaProyecto.mostrar 2
If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividades
Me.Frame2.Enabled = True
End If
End Sub
Private Sub CMDAñadir_Click()
FRMActividades.mostrar 1
Call 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 Integer
Dim esta As String
Me.MSFlexGrid1.Rows = 1
Set rst = con.PresentaActividades(CInt(Me.LBLCodPro.Caption))
While Not rst.EOF
esta = ""
If rst.Fields(8) = "A" Then
esta = "Activa"
End If
If rst.Fields(8) = "I" Then
esta = "Iniciada"
End If
MSFlexGrid1.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.MoveNext
Wend
Me.MSFlexGrid1.ColWidth(0) = 0
End Sub
Private Sub MSFlexGrid1_DblClick()
If Me.MSFlexGrid1.Rows = 1 Then
Exit Sub
End If
FRMActividades.mostrar 2
Call MostrarActividades
End Sub
1.6.9 FRMescogerAuditor
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub CDMResponsable_Click()
Select Case strOpt
Case 1:
FRMBuscaUsuario.mostrar 4
Case 2:
FRMBuscaUsuario.mostrar 5
Case 3:
FRMBuscaUsuario.mostrar 6
End Select
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
If Me.LBLCod.Caption = "" Then
MsgBox "Debe Ingresar Auditor", vbCritical
Me.cmdOK.SetFocus
Exit Sub
End If
Select Case strOpt
Case 1:
With FRMRepActAuditor
.LBLAudi.Caption = Me.LBLNombre.Caption
64
.MSFlexGrid1.Rows = 1
Set rst = con.ConsultaActAuditor(CInt(Me.LBLCod.Caption))
If rst.EOF = True Then
MsgBox "No tiene Actividades", vbCritical
Me.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.MoveNext
Wend
Call Evento("Generacion Reporte Actividades por Auditor")
.Show 1
End With
Case 2:
With FRMModiTiempos
.LBLCodAudi.Caption = Me.LBLCod.Caption
.LBLAudi.Caption = Me.LBLNombre.Caption
.MSFlexGrid1.Rows = 1
Set rst = con.ConsultaActAuditor(CInt(Me.LBLCod.Caption))
If rst.EOF = True Then
MsgBox "No tiene Actividades", vbCritical
Me.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.MoveNext
Wend
.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", vbCritical
Me.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.MoveNext
Wend
Call Evento("Generacion Reporte Proyectos por Auditor")
.Show 1
End With
End Select
End Sub
Private Sub Form_Load()
Me.LBLCod.Caption = ""
Me.LBLNombre.Caption = ""
End Sub
'End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
1.6.10 FRMEscogerProyecto
Dim con As New bdd
Dim rst As Recordset
Dim 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 Integer
Dim totalH As Integer
Dim totalD As Integer
Dim esta As String
If Me.LBLCod.Caption = "" Then
MsgBox "Debe Ingresar Proyecto", vbCritical
Me.cmdOK.SetFocus
Exit Sub
End If
Select Case strOpt
Case 1:
With FRMRepActPro
totalH = 0: totalD = 0
.MSFlexGrid1.Rows = 1
Set rst = con.PresentaActividades(CInt(Me.LBLCod.Caption))
If rst.EOF = True Then
MsgBox " El Proyecto no registra Actividades", vbCritical
Me.LBLCod.Caption = ""
Me.LBLNombre.Caption = ""
Exit Sub
End If
.LBLPro.Caption = Me.LBLNombre.Caption
.Command1.Enabled = False
While Not rst.EOF
i = CInt(rst.Fields(7)) * CInt(rst.Fields(13))
totalH = totalH + i
totalD = totalD + CInt(rst.Fields(13))
If rst.Fields(8) = "A" Then
esta = "ACTIVA"
End If
If rst.Fields(8) = "I" Then
esta = "INICIADA"
End If
If rst.Fields(8) = "F" Then
esta = "FINALIZADA"
End If
If 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.MoveNext
Wend
.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) = 0
Call Evento("Generacion Reporte Proyecto(grafico)")
.Show 1
End With
End Select
End Sub
Private Sub Form_Load()
Me.LBLCod.Caption = ""
Me.LBLNombre.Caption = ""
End Sub
'End Sub
Public Sub mostrar(param As Integer)
strOpt = param
Me.Show vbModal
End Sub
1.6.11 Acceso Al Sistema - Frmlogin
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public LoginSucceeded As Boolean
Private Sub cmdCancel_Click()
'establecer la variable global a false
'para indicar un inicio de sesión fallido
LoginSucceeded = False
68
End
End Sub
Private Sub cmdOK_Click()
'comprobar si la contraseña es correcta
If 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 global
LoginSucceeded = True
Set 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 el
administrador", vbCritical
Me.txtUserName.SetFocus
Exit Sub
End If
'*************************************
usuario = Trim(Me.txtUserName.Text)
tipoUS = rst.Fields(9) '1= Administrador 2= Audiutor
codUsu = rst.Fields(0)
claveUS = rst.Fields(8)
'
Call Evento("INGRESO AL SISTEMA")
Unload Me
Else
MsgBox "La contraseña no es válida. Vuelva a intentarlo", , "Inicio de
sesión"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
Else
MsgBox "No a Ingresado los campos. Vuelva a intentarlo", vbCritical
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
End 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
End
End If
End 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 Me
Me.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 vbModal
If tipoUS = 2 Then
usuarios.Enabled = False
Me.Toolbar1.Buttons.Item(1).Enabled = False
repro.Enabled = False
rastros.Enabled = False
recursos.Enabled = False
proveedores.Enabled = False
End If
Me.StatusBar1.Panels(2).Width = 1650
Me.StatusBar1.Panels(2).Text = “Usuario : “ & usuario
Me.StatusBar1.Panels(3).Width = 1650
If tipoUS = 1 Then
Me.StatusBar1.Panels(3).Text = “ADMINISTRADOR”
Else
Me.StatusBar1.Panels(3).Text = “”
End If
End Sub
Private Sub mnusalir_Click()
End
End 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 1
Call 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 End
End Sub
Private Sub tiempos_Click()
FRMReporteProyectos.Show 1
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
FRMUsuarios.Show 1
Case 2
FRMProyectos.Show 1
Case 3
FRMCrtActividades.Show 1
Case 4
FRMEscojerAuditor.mostrar 2
Case 5
FRMEscojerproyecto.mostrar 1
Case 8
If MsgBox(“Esta seguro de salir del sistema”, vbQuestion + vbYesNo) =
vbYes Then End
End Select
End Sub
Private Sub usuarios_Click()
FRMUsuarios.Show 1
End Sub
1.6.13 FrmModiActividades
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Private Sub LBLFechaFinReal_Change()
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub
Private Sub CMDGrabar_Click()
Dim fini As Date
Dim ffin As Date
72
Dim Inicio As String
Dim fin As String
Dim Actual As String
fini = Me.LBLFechaInicio.Caption
ffin = Me.DTPFechaFinReal.Value
Inicio = Format(fini, "dd/mm/yyyy")
fin = Format(ffin, "dd/mm/yyyy")
Actual = Format(Date, "dd/mm/yyyy")
If fini > ffin Then
MsgBox " La fecha de Trabajo no puede ser Menor a la fecha de Inicio",
vbCritical
Me.DTPFechaFinReal.SetFocus
Exit Sub
End If
If Me.TXTHorasTotReal.Text = "" Then
MsgBox " El campo Horas no puede estar vacio", vbCritical
Me.TXTHorasTotReal.SetFocus
Exit Sub
End If
Call 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", vbInformation
Call UpHoraActividades
Call Evento("UPDATE tblActividad (Tiempos)")
Unload Me
Else
MsgBox "Hubo un error en la Actualizaciòn", vbCritical
End 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 Then
If KeyAscii <> 13 Then
KeyAscii = 0
Else
If
CInt(Me.TXTHorasTotReal.Text)
<
0
CInt(Me.TXTHorasTotReal.Text) > 24 Then
MsgBox "Horas no pueden deben ser mayor a 24", vbCritical
Me.TXTHorasTotReal.Text = 0
Me.TXTHorasTotReal.SetFocus
Exit Sub
End If
Call CalculoHoPo
Me.CMDGrabar.SetFocus
End If
Or
End If
End 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))
Then
Call Evento("INSERT HORAS ACTIVIDADES")
Else
MsgBox "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", vbCritical
Me.TXTHorasTotReal.Text = 0
Me.TXTHorasTotReal.SetFocus
Exit Sub
End If
Call CalculoHoPo
Me.CMDGrabar.SetFocus
End Sub
1.6.14 FRMModiTiempos
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Dim 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 Sub
End 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 = 0
Set rst =
con.HorasActividades(CInt(Me.MSFlexGrid1.TextMatrix(MSFlexGrid1.RowSe
l, 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 1
End With
Unload Me
End Sub
1.6.15 Mantenimiento De Proveedores-Frmproveedores
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CMDBuscar_Click()
FRMBuscaProv.mostrar 1
strOper = "update"
End Sub
Private Sub CMDDeshacer_Click()
Call Limpiar
End Sub
Private Sub CMDGrabar_Click()
Dim fe As String
If Me.TXTRazon.Text = "" Then
MsgBox "No ha asignado Razon Social ", vbCritical
Me.TXTRazon.SetFocus
Exit Sub
End If
fe = Format(Date, "dd/mm/yyyy")
If strOper = "insert" Then
If
Trim(Me.TXTRazon.Text), _
con.insertProveedor(CInt(Me.TXTCodigo.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", vbInformation
Call Evento("INSERT tblproveedor")
CMDDeshacer_Click
Else
MsgBox "Hubo un error en el Guardado de los Datos " & error,
vbCritical
End If
End If
If strOper = "update" Then
If
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)) Then
MsgBox "Actualizacion realizada con Exito", vbInformation
Call Evento("UPDATE tblproveedor")
CMDDeshacer_Click
Else
MsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
End If
End Sub
Private Sub CMDSalir_Click()
Unload Me
End Sub
Private Sub Form_Load()
Set rst = con.maxProveedores()
If IsNull(rst.Fields(0)) Then
Me.TXTCodigo.Text = 1
Else
Me.TXTCodigo.Text = rst.Fields(0) + 1
End If
Me.TXTCodigo.Enabled = False
strOper = "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 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub TXTDir_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub TXTRazon_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub TXTRUC_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End Sub
Private Sub TXTTelefono_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End Sub
Public Sub Limpiar()
Set rst = con.maxProveedores()
If IsNull(rst.Fields(0)) Then
Me.TXTCodigo.Text = 1
Else
Me.TXTCodigo.Text = rst.Fields(0) + 1
End If
Me.TXTCodigo.Enabled = False
strOper = "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 bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CDMResponsable_Click()
FRMBuscaUsuario.mostrar 2
End Sub
Private Sub CMDBuscar_Click()
FRMBuscaProyecto.mostrar 1
If Me.TXTNombre.Text <> "" Then
Set rst = con.UsuarioCod(CInt(Me.LBLCodRes.Caption))
Me.Picture1.Visible = True
Me.LBLNombreRes.Caption = rst.Fields(2) + " " + rst.Fields(3)
Me.DTPFechaIni.Enabled = False
Me.DTPFfinEsti.Enabled = False
Me.CBOEstado.Clear
Me.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 = False
Me.Picture1.Visible = False
End If
End If
End Sub
Private Sub CMDDeshacer_Click()
Unload Me
Me.Show 1
End Sub
Private Sub CMDGrabar_Click()
Dim fe As String
Dim Inicio As String
Dim fin As String
Dim Actual As String
Dim fini As Date
79
Dim ffin As Date
fini = Me.DTPFechaIni.Value
ffin = Me.DTPFfinEsti.Value
Inicio = Format(fini, "dd/mm/yyyy")
fin = Format(ffin, "dd/mm/yyyy")
fe = Format(Date, "dd/mm/yyyy")
If fini > ffin Then
MsgBox " La Fecha de Fin no puede ser Menor a la Fecha de Inicio",
vbCritical
Me.DTPFfinEsti.SetFocus
Exit Sub
End If
If Me.TXTNombre.Text = "" Then
MsgBox "No ha asignado Nombre ", vbCritical
Me.TXTNombre.SetFocus
Exit Sub
End If
If Me.LBLCodRes.Caption = "" Then
MsgBox "No ha asignado Responsable", vbCritical
Me.CDMResponsable.SetFocus
Exit Sub
End If
If Me.TXTPor.Text = "" Or Me.TXTPor.Text = "0" Then
MsgBox "No ha asignado Porcentaje de gastos Administrativos",
vbCritical
Me.TXTPor.SetFocus
Exit 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)) Then
MsgBox "Proyecto ha sido Guardado con Exito", vbInformation
Call Evento("INSERT tblproyecto")
Call UsuarioProyecto
CMDDeshacer_Click
Exit Sub
Else
80
MsgBox "Hubo un error en el Guardado de los Datos " & error,
vbCritical
End If
End If
If strOper = "update" Then
If
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)) Then
MsgBox "Actualizacion realizada con Exito", vbInformation
Call Evento("UPDATE tblproyecto")
Call UsuarioProyecto
CMDDeshacer_Click
Exit Sub
Else
MsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
End If
End Sub
Private Sub CMDSalir_Click()
Unload Me
End Sub
Private Sub Form_Load()
Set rst = con.maxProyecto()
If IsNull(rst.Fields(0)) Then
Me.TXTCodigo.Text = 1
Else
Me.TXTCodigo.Text = rst.Fields(0) + 1
End If
Me.TXTCodigo.Enabled = False
Me.DTPFechaIni.Value = Date
Me.DTPFfinEsti.Value = Date
strOper = "insert"
Me.CBOEstado.AddItem "ACTIVO"
Me.CBOEstado.ListIndex = 0
Me.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 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub TXTNombre_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub UsuarioProyecto()
If strOper = "insert" Then
If con.insertUsuarioProyecto(CInt(Me.LBLCodRes.Caption), _
CInt(Me.TXTCodigo.Text)) Then
Else
MsgBox "ERROR", vbCritical
End If
End If
If strOper = "update" Then
If con.updateUsuariosproyecto(CInt(Me.LBLCodRes.Caption), _
CInt(Me.TXTCodigo.Text), Mid(Me.CBOEstado.Text, 1, 1)) Then
Else
MsgBox "ERROR", vbCritical
End If
End If
End Sub
Private Sub TXTPor_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
If KeyAscii = 13 Then
If CInt(Me.TXTPor.Text) < 0 Or CInt(Me.TXTPor.Text) > 12 Then
MsgBox "Procentaje no puede deben ser mayor a 12", vbCritical
Me.TXTPor.Text = 0
Me.TXTPor.SetFocus
Exit Sub
End If
End If
KeyAscii = 0
End If
End If
End Sub
Private Sub TXTPor_LostFocus()
If Me.TXTPor.Text = "" Then
Me.TXTPor = 0
82
End If
If CInt(Me.TXTPor.Text) < 0 Or CInt(Me.TXTPor.Text) > 12 Then
MsgBox "Procentaje no puede deben ser mayor a 12", vbCritical
Me.TXTPor.Text = 0
Me.TXTPor.SetFocus
Exit Sub
End If
End 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 = 11
copyToExcel Me.MSFlexGrid1
Me.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 bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CDMProveedor_Click()
FRMBuscaProv.mostrar 2
End Sub
Private Sub CMDBuscar_Click()
FRMBuscaRecursos.mostrar 1
If 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 = "" Then
MsgBox "No ha asignado Nombre ", vbCritical
Me.TXTNombre.SetFocus
Exit Sub
End If
If Me.LBLCodProv.Caption = "" Then
MsgBox "No ha asignado Proveedor", vbCritical
Me.CDMProveedor.SetFocus
Exit 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)) Then
MsgBox "Recurso ha sido Guardado con Exito", vbInformation
Call Evento("INSERT tblRecursos")
CMDDeshacer_Click
Else
MsgBox "Hubo un error en el Guardado de los Datos " & error,
vbCritical
End If
End If
If strOper = "update" Then
If Me.TXTStock.Text = "" Then
Me.TXTStock.Text = Me.LBLStockActual.Caption
End If
If
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))
Then
MsgBox "Actualizacion realizada con Exito", vbInformation
Call Evento("UPDATE tblRecursos")
CMDDeshacer_Click
Else
MsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
End 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 - 32
End 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 - 32
End 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 Then
If KeyAscii = 13 Then
Call CalcularTotal
End If
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End 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 Then
If KeyAscii = 13 Then
Call CalcularTotal
Me.CMDGrabar.SetFocus
End If
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End 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)) Then
Me.TXTCodigo.Text = 1
Else
Me.TXTCodigo.Text = rst.Fields(0) + 1
End If
Me.TXTCodigo.Enabled = False
Me.TXTNombre.Text = ""
Me.TXTDescripcion.Text = ""
Me.LBLCodProv.Caption = ""
86
Me.LBLNombreProv.Caption = ""
Me.LBLtotal.Caption = 0
Me.LBLStockActual.Caption = "0"
Me.TXTStock.Text = 0
Me.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 = 11
copyToExcel Me.MSFlexGrid1
Me.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 clipboard
Clipboard.Clear
' copia la imagen del mschart al portapapeles
.EditCopy
' sila imagen es válida
If Clipboard.GetFormat(vbCFBitmap) Then
'scale mode
87
Printer.ScaleMode = vbTwips
.Parent.ScaleMode = vbTwips
' titulo
Printer.Font.Size = 10
Printer.FontName = "Verdana"
Printer.Print vbNullString
Printer.Print titulo
Printer.Print vbNullString
' dibuja la imagen
Printer.PaintPicture Clipboard.GetData(), 100, 500, _
.Width * escala, .Height * escala, 0, 0
Printer.EndDoc ' envía el trabajo a la impresora
End If
End With
MsgBox " Impresion OK", vbInformation
End 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 Integer
Dim j As Integer
Dim por As Integer
Me.Chart.Visible = True
Me.Chart.TitleText = Trim(Me.LBLPro.Caption)
j = Me.MSFlexGrid1.Rows - 2
With Me.Chart.DataGrid
.RowCount = j
' Establecemos las Etiquetas de las Columnas
For i = 1 To j
por = CInt(Me.MSFlexGrid1.TextMatrix(i, 9))
.RowLabel(i, 1) = Trim(Me.MSFlexGrid1.TextMatrix(i, 2))
.SetData i, 1, por, 0
Next i
End With
88
Me.Command1.Enabled = True
End Sub
1.6.21 FRMRepActCostos
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CDMResponsable_Click()
FRMBuscaProyecto.mostrar 4
If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividades
Call Evento("Generacion Reporte Costos Actividades")
End If
End Sub
Public Sub MostrarActividades()
Dim i As Integer
Dim totalC As Double
Dim esta As String
Dim total As Double
Dim cpro As Integer
Dim cact As Integer
Dim TRecurso As Double
Dim TRecursoPro As Double
Dim TGastoAdm As Double
Dim TGastoAdmPro As Double
Dim TCostoAct As Double
Dim TCostoActPRO As Double
totalC = 0: total = 0
TRecursoPro = 0: TGastoAdmPro = 0: TCostoActPRO = 0
Me.MSFlexGrid1.Rows = 1
Set 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 + totalC
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(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.MoveNext
Wend
Me.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 RECURSOS
cpro = CInt(Me.LBLCodPro.Caption)
For i = 1 To Me.MSFlexGrid1.Rows - 2
cact = Me.MSFlexGrid1.TextMatrix(i, 0)
TRecurso = 0
TCostoAct = 0
Me.MSFlexGrid2.Rows = 1
Set 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
Wend
Me.MSFlexGrid1.TextMatrix(i, 11) = Format(TRecurso, "#,###,###.00")
TRecursoPro = TRecursoPro + TRecurso
TGastoAdm = (TRecursoPro + CDbl(Me.MSFlexGrid1.TextMatrix(i, 10)))
* (CInt(Me.LBLPorcentaje.Caption) / 100)
Me.MSFlexGrid1.TextMatrix(i,
12)
=
Format(TGastoAdm,
"#,###,###.00")
TGastoAdmPro = TGastoAdmPro + TGastoAdm
TCostoAct
=
TRecurso
+
TGastoAdm
+
CDbl(Me.MSFlexGrid1.TextMatrix(i, 10))
Me.MSFlexGrid1.TextMatrix(i, 13) = Format(TCostoAct, "#,###,###.00")
TCostoActPRO = TCostoActPRO + TCostoAct
Next i
Me.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 = 11
copyToExcel Me.MSFlexGrid1
90
Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub FRMCostos_DragDrop(Source As Control, X As Single, Y As
Single)
End Sub
1.6.22 FRMRepProyectos
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CDMResponsable_Click()
FRMBuscaProyecto.mostrar 3
If Me.LBLCodPro.Caption <> "" Then
Call MostrarActividades
Call Evento("Generacion Reporte Tiempos Actividades")
End If
End Sub
Public Sub MostrarActividades()
Dim i As Integer
Dim totalH As Integer
Dim totalD As Integer
Dim esta As String
'Dim total As Integer
totalH = 0: totalD = 0
Me.MSFlexGrid1.Rows = 1
Set rst = con.PresentaActividades(CInt(Me.LBLCodPro.Caption))
While Not rst.EOF
i = CInt(rst.Fields(7)) * CInt(rst.Fields(13))
totalH = totalH + i
totalD = totalD + CInt(rst.Fields(13))
If rst.Fields(8) = "A" Then
esta = "ACTIVA"
End If
If rst.Fields(8) = "I" Then
esta = "INICIADA"
End If
If rst.Fields(8) = "F" Then
91
esta = "FINALIZADA"
End If
If rst.Fields(8) = "E" Then
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.MoveNext
Wend
Me.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) = 0
End Sub
Private Sub Command1_Click()
If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"
Else
Me.MousePointer = 11
copyToExcel Me.MSFlexGrid1
Me.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 Explicit
Private Sub Command1_Click()
If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"
Else
Me.MousePointer = 11
copyToExcel Me.MSFlexGrid1
Me.MousePointer = 0
End If
92
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
1.6.24 FRMRepProyectos
Dim con As New bdd
Dim rst As Recordset
Dim strOpt As Integer
Private Sub Command1_Click()
If Me.MSFlexGrid1.Rows = 1 Then
MsgBox " No se existen registros para Exportar"
Else
Me.MousePointer = 11
copyToExcel Me.MSFlexGrid1
Me.MousePointer = 0
End If
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Form_Load()
Dim i As Integer
MSFlexGrid1.Rows = 1
Set 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.MoveNext
Wend
Me.MSFlexGrid1.ColWidth(0) = 0
End Sub
1.6.25 FRMRepRastros
Dim con As New bdd
93
Dim rst As Recordset
Dim strOpt As Integer
Private Sub CMDAceptar_Click()
Dim desde As String
Dim hasta As String
Dim i As Integer
Dim num As Integer
If Me.CBOFdesde <= Me.CBOFhasta Then
desde = 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", vbInformation
Exit Sub
Else
Me.ProgressBar1.Max = 100000
i=1
With FRMRastrosAuditoria
.LBLDesde.Caption = Me.CBOFdesde.Value
.LBLHasta.Caption = Me.CBOFhasta.Value
.LBLAudi.Caption = Me.CBOusuario.Text
.MSFlexGrid1.Rows = 1
While 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 = i
i=i+1
Wend
Call Evento("Generacion Reporte Rastros de Auditoria")
.Show 1
End With
End If
Else
MsgBox "Rango de fechas incorrecto.", vbInformation
Me.CBOFdesde.Value = Date
Me.CBOFhasta.Value = Date
End If
End Sub
Private Sub CMDCancelar_Click()
Unload Me
94
End Sub
Private Sub Form_Load()
Me.CBOFdesde.Value = Date
Me.CBOFhasta.Value = Date
Set 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
Wend
CBOusuario.ListIndex = 0
End Sub
1.6.26 ‘/***Mantenimiento De Usuarios O Rrhh - Frmusuarios*******/
Option Explicit
Dim con As New bdd
Dim rst As Recordset
Public strBusq As String
Dim strOper As String
Private Sub CMDBuscar_Click()
Me.CBOEstado.Clear
Me.CBOEstado.AddItem "ACTIVO"
Me.CBOEstado.AddItem "INACTIVO"
FRMBuscaUsuario.mostrar 1
If Me.txtapellido.Text <> "" Then
'
Me.Label3.Visible = True
Me.Picture1.Visible = True
strOper = "update"
Me.TXTLogin.Enabled = False
Call PresentaEspe
End If
End Sub
Private Sub CMDDeshacer_Click()
Unload Me
Me.Show 1
End Sub
Private Sub CMDGrabar_Click()
Dim fe As String
Dim sexo As String
Dim 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 ", vbCritical
Me.txtapellido.SetFocus
Exit Sub
End If
If Me.TXTLogin.Text = "" Then
MsgBox "No ha asignado Login al usuario", vbCritical
Me.TXTLogin.SetFocus
Exit Sub
End If
If Me.TXTPass.Text = "" Then
MsgBox "No ha asignado Password al usuario", vbCritical
Me.TXTPass.SetFocus
Exit Sub
End If
If (Me.OPTMas.Value = True) Then
sexo = "MASCULINO"
Else
sexo = "FEMENINO"
End If
If (Me.OPTAudi.Value = True) Then
tipo = 2
Else
tipo = 1
End If
If Me.TXTCosto.Text = "" Then
Me.TXTCosto.Text = 0
End If
If strOper = "insert" Then
If 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", vbInformation
Call Insertar_Espe
Call Evento("INSERT tblusuario")
CMDDeshacer_Click
Exit Sub
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar que no
Exista el LOGIN " & error, vbCritical
96
End If
End If
If strOper = "update" Then
If
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)) Then
MsgBox "Actualizacion realizada con Exito", vbInformation
Call Insertar_Espe
Call Evento("UPDATE tblusuario")
CMDDeshacer_Click
Exit Sub
Else
MsgBox "Hubo un error en la Actualizaciòn", vbCritical
End If
End If
End Sub
Private Sub CMDSalir_Click()
Unload Me
End Sub
Private Sub Form_Load()
Set rst = con.maxUsuario()
If IsNull(rst.Fields(0)) Then
Me.TXTCodigo.Text = 1
Else
Me.TXTCodigo.Text = rst.Fields(0) + 1
End If
Me.TXTCodigo.Enabled = False
Me.CBOEstado.AddItem "ACTIVO"
Me.CBOEstado.ListIndex = 0
Me.CBOTipo.ListIndex = 0
strOper = "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 - 32
End If
End Sub
Private Sub TXTCosto_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii <> 46 Then
If KeyAscii = 13 Then
Me.TXTLogin.SetFocus
End If
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End 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 - 32
End If
End Sub
Private Sub TXTNombre_KeyPress(KeyAscii As Integer)
If KeyAscii >= 97 And KeyAscii <= 122 Then
KeyAscii = KeyAscii - 32
End If
End Sub
Private Sub txttelef_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 Then
If KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
End If
End If
End Sub
Private Sub Insertar_Espe()
98
con.borraEspe (Me.TXTCodigo.Text)
If Me.Check1.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 1) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check2.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 2) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check3.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 3) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check4.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 4) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check5.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 5) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check6.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 6) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check7.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 7) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
que no
que no
que no
que no
que no
que no
que no
99
End If
End If
If Me.Check8.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 8) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check9.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 9) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check10.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 10) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
If Me.Check11.Value = 1 Then
If con.insertEspecializacion(CInt(Me.TXTCodigo.Text), 11) Then
Else
MsgBox "Hubo un error en el Guardado de los Datos...Revisar
Exista el LOGIN " & error, vbCritical
End If
End If
End Sub
Private Sub PresentaEspe()
Me.Check1.Value = 0: Me.Check2.Value = 0
Me.Check3.Value = 0: Me.Check4.Value = 0
Me.Check5.Value = 0: Me.Check6.Value = 0
Me.Check7.Value = 0: Me.Check8.Value = 0
Me.Check9.Value = 0: Me.Check10.Value = 0
Me.Check11.Value = 0
Set rst = con.Especializaciones(CInt(Me.TXTCodigo))
While Not rst.EOF
If rst.Fields(1) = 1 Then Me.Check1.Value = 1
If rst.Fields(1) = 2 Then Me.Check2.Value = 1
If rst.Fields(1) = 3 Then Me.Check3.Value = 1
If rst.Fields(1) = 4 Then Me.Check4.Value = 1
If rst.Fields(1) = 5 Then Me.Check5.Value = 1
If rst.Fields(1) = 6 Then Me.Check6.Value = 1
If rst.Fields(1) = 7 Then Me.Check7.Value = 1
If rst.Fields(1) = 8 Then Me.Check8.Value = 1
que no
que no
que no
que no
100
If rst.Fields(1) = 9 Then Me.Check9.Value = 1
If rst.Fields(1) = 10 Then Me.Check10.Value = 1
If rst.Fields(1) = 11 Then Me.Check11.Value = 1
rst.MoveNext
Wend
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
Actividades
Reportes E Informes
Reporte General De Proyectos
Grafico 2.1
Y
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 (
usuario que se desea modificar.
) para así poder Seleccionar el
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 (
cuadro 2.42).
) encontramos lo siguiente (ver
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.
Descargar