UNIVERSIDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/UAM1608.pdf · son principalmente pago...
Transcript of UNIVERSIDAD AUTONOMA METROPOLITANA …148.206.53.84/tesiuami/UAM1608.pdf · son principalmente pago...
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA
DIVISION DE CIENCIAS BASICAS E INGENIERIA
LICENCIATURA EN COMPUTACION
PROYECTO TERMINAL DE INVESTIGACION
SISTEMA DESARROLLADO PARA EL DEPARTAMENTO DE VINCULACION CON EL SECTOR PRODUCTIVO DEL CBTIS No. 6
22 de Marzo de 1999.
ASESOR: (\
MIRIAM CRUZ BALBUENA
1
INDICE
INTRODUCCI~N ............................................................................ 3
DESCRIPCIóN DEL PROYECTO .....................................................
DESARROLLO DEL PROYECTO .................................................... 4
ENTREVISTAS ................................................................................. 5
MODELADO DEL SISTEMA ............................................................. 6
MODELO ENTIDAD-RELACIÓN .................................................... 16
DICCIONARIO DE DATOS ............................................................. 17
MANUAL DE USUARIO
CODIGO FUENTE
................................................... 20
................................................... 26
2
Las escuelas tienen diferentes departamentos, los cuales a su vez realizan
funciones específicas. Estas funciones reciben el nombre de procesos, por ejemplo :
Proceso de inscripción de un alumno a la escuela, a la biblioteca, a actividades deportivas,
etc. Pero pueden involucrar no sólo a los alumnos sino a las personas que trabajan ahí,
como son los profesores, personal administrativo y personal en general, que en este caso
son principalmente pago de nómina, inscripción a cursos de actualización, etc.
Los procesos al cabo de un tiempo se pueden automatizar y es ahí donde se tiene
la necesidad de organizar, de forma óptima la información y tener acceso a ella sin
necesidad de tomar días para buscarla.
El equipo de cómputo con el software adecuado, puede optimizar el acceso a la
información, así como ahorrar horas-hombre de trabajo en buscar la información.
Nosotros en particular como profesionales en Computación estamos preparados
para resolver los problemas de Desarrollo en sistemas que satisfagan las necesidades de
automatización de esos procesos.
Como recién egresados tenemos que realizar un proyecto de investigación en áreas
donde sean útiles, así que decidimos hacerlo para una institución educativa pública, la
institución que acepto el proyecto no tenía ningún sistema que automatizara eficazmente
su información, por lo que se desarrolló completamente un sistema para sus actuales
necesidades.
Este proyecto sirvió para que reafirmaramos nuestros conocimientos en Análisis y
Diseño, así como para darnos cuenta de algunas fallas , para corregirlas. Así como la
satisfacción de que nuestro trabajo será realmente usado.
3
DESCRIPCIóN DEL PROYECTO.
El objetivo de este proyecto es la de automatizar el departamento de vinculación, para manejar la información de los alumnos, profesores,empresas, así como las actividades relacionadas con éstas de una manera automática. El sistema debe tener la capacidad de manejar eficientemente, todo tipo de consultas y reportes, en cuanto a los alumnos egresados, profesores y actividades, altas, bajas y modificaciones.
El sistema debe de proporcionar las siguientes características:
0 Seguridad: La información solo debe ser manejada por la persona o personas
0 Confiabilidad: El sistema debe de proporcional información verídica Funcionalidad: Debe de cumplir con los requisitos establecidos al inicio del
a cargo.
proyecto.
Este también proporcionara un subsistema de ayuda en línea y una barra de mensajes que indicaran las hc iones disponibles a ejecutar y el como hacerlo, todo esto con el fin de hacer mas fácil su manejo.
DESARROLLODELPROYECTO
El desarrollo de un sistema de computación implica varias etapas y diversos especialistas para cada una de estas, siendo el establecimiento de los tiempos de termino posterior al análisis, sin embargo, en este caso los tiempos se ajustaran al tiempo establecido por la universidad para la conclusión de un proyecto terminal para C.B.I.
La gráfica de Gant sig. muestra los tiempos para el desarrollo de este proyecto:
ACTIVIDAD
Investigación y estudio de l a s herramientas
Entrevistas con usuarios
Análisis y Requerimientos de prueba
Diseiio y programación
Pruebas
Documentación
Generación de Manuales
Generación del Reporte
Presentación
Instalación y pruebas del usuario
Liberación del sistema
"
TIEMPO MESES
O 1 2 3 4 5 6
m - I
4
ENTREVISTAS
El primer paso en el desarrollo del proyecto son las entrevistas con los usuarios. El sistema a modelar debe cumplir en lo mejor posible las especificaciones dadas.
De estas se estableció lo siguiente para el departamento de Vinculación con el sector productivo.
Un alumno puede tener derecho a estar registrado desde el cuarto trimestre en adelante en bolsa de trabajo. Para las demás actividades dependerá del grado de conocimiento necesario, para tomar la actividad. En caso de no existir restricciones, queda a cargo del encargado del departamento, establecer los requisitos.
Un egresado puede tener derecho a estar registrado, si lo hizo cuando todavía era alumno o se registro para la bolsa de trabajo.
Un profesor está registrado, para poder tomar la actividad dependerá de la especialidad y el tipo de materias que imparte.
Las empresas son dadas de alta por la SEP, la cual manda al plantel, un archivo conteniendo las empresas, con las que tiene convenio.
Las actividades son dadas principalmente por las empresas como asistencia a conferencias, visitas a instalaciones, cursos de actualización a tomar en el plantel de parte de los empleados de la empresa, propuestas de trabajo, estadías de profesores en las instalaciones de una empresa.
Registro, bajas y modificaciones de información Alumnos
0 Egresados Profesores Empresas Actividades (Cursos, Visitas, Estadias, Conferencias, Propuestas de trabajo) Enviados y Aceptados (alumnos y egreasados
Consulta y reporte Empresa por giro. Actividad por Especialidad y por trimestre. Alumnos por Especialidad
0 Alumnos egresados por Especialidad
únicamente reportes Alumnos Egresados Profesores Enviados y Aceptados por Actividad
5
MODELADO DEL SISTEMA
El siguiente paso es el modelado del sistema que se desea. Un sistema de proceso
La herramienta que utilizamos para describir la transformación de entradas a de datos involucra tanto datos como el proceso.
salidas de un diagrama de flujo de datos.
Los diagramas de flujos de datos consisten en procesos, agregados de datos, flujos y terminadores:
0 Los procesos se representan por medio de círculos o “burbujas”, en el diagrama. Representan las diversas funciones individuales que el sistema lleva a cabo. Las funciones transforman entradas en salidas.
0 Losflujos se muestran por medio de flechas curvas. Son las conexiones entre los procesos(funciones del sistema) y representan la información que dichos procesos requieren come entrada o la información que generan coma salida.
0 Los agregados de datos se representan por medio de dos líneas paralelas o mediante una elipse. Muestran colecciones (o agregados) de datos que el sistema debe recordar por un periodo de tiempo.
Los terminadores muestran las entidades externas con las que el sistema se comunica.
A continuación se muestran los diagramas de flujos de datos, y agrupación por la tabla con la que tienen que ver, para este sistema.
6
Bajas
Cambios
W
Especialidad usque& - poresp
Altas
Bajas
Especialidad
Egresndos
8
Altas
Bajas
Cambios
/u Cambios
\
Bajas
,-b fz!$:3* X activid E ' nwado/aceptado
Bajas
,-b e$:&) Enviado/Aceptados
Bajas
fW Cambios
9
A continuación se muestra el diagrama de flujo que quedó al agrupar.
\ Busqueda por Giro
Empresa
,Busqueda Actividad por Especlalldad
Altas
Rep. Actividades Trimestrales
Busqueda Alumno \ por Especialidad
I Actividades
I Empresa
\ por Especialidad Busqueda Egresados
I Empresa
/ Reporte Egresados
10
\ Busqueda de Trabajadores
Por Clave
Bajas "O Trabajadores
A b i o s f
+ - " 4"-
I Trabajadores
I Empresa
/ Reporte Profesores
eporte envlacep por Actividad
A continuación una vista de las mostradas anteriormente con las relaciones que existen entre ellas, que son más visibles al ponerlas todas en un mismo conjunto.
Para tener una mejor visión del sistema, es necesario desglosar cada burbuja de tal forma que la función que cada proceso realiza sea perceptible. Se muestran a continuación la “explosión” de cada una de ellas.
12
Explosio'n de cada Esfera
Actividades
Bajas Especialidad
Cambios L v L
I Actividades
- Trimestre\
Reportes
Especialidad /
Env/Acep
Matricula
Actividad
m. EnvIAcep.
P
Inf. EnvIAcep
13
Trabajadores
Clave Busqueda Trabajadores
Inf Trabajadores -
Inf. Empleado Reportes
14
Alumnos
Especialidad O Cambios
Busqueda
Alumnos
Bk ( Egresadc Busque?- A
Egresados
\ Especialidad O
O Cambios
Cambios
Bajas
Egresados
Inf. Egresados
Inf. Egresados
15
MODELO ENTIDAD-RELACIóN
Estos diagramas aunque útiles, solo resaltan un aspecto principal de un sistema: sus funciones.
Necesitamos conocer a detalle la información que debe contener el sistema, y no solo eso, sino también la relación que existe entre los agregados de información. Para esto necesitamos lo que se conoce como diagrama de entidad-relacion.
En este punto podemos ya obtener, entidades y las relaciones entre ellas, a este diagrama se le llama de entidad relación. También podemos obtener la información que contiene cada una de las entidades. Las lineas significan uno a muchos.
EMPRESAS I/ ALUMNOS
"
7T "
ACTIVIDADES \I I I
ENV /ACEP
1.L "
"
EMPLEADOS 1 EGRESADOS - I
Diagrama de Entidad-Relación
Lista de entidades:
EMPRESAS
Num Empresa Nombre Direccion Giro Telefono Contacto Tel-Contacto
ACTIWDADES
Actividad Empresa Tpo-Act Nombre Responsable Especialidad No alumnos Fecha Observaciones Trimestre
ALUMNOS
Matricula Nombre Direccion Telefono Especialidad Grado k P 0
16
EGRESADOS EMPLEADOS EW-ACEP
Matricula Nombre Direccion Telefono Especialidad Estudio-actuales Institucion Trabajo Tel-trabajo
Clave Clave Inscripcion Nombre Matricula Direccion Clave-Actividad Telefono Promedio Materias-impartidas Observaciones
Estatus
DICCIONARIO DE DATOS
El diccionario de datos es importante para conocer como que tipo de información va a contener cada dato, a continuación se presenta esta herramienta para el proyecto desarrollado.
A continuación se presenta el diccionario de datos para cada una de las entidades.
ALUMNO
MTRICULA 8{0-9}8 NOMBRE : nombre + segundo nombre + apellido paterno + apellido materno
nombre: 3 { caracter legal} 1 O segundo nombre: nombre + (segundo nombre) apellido paterno: 3 { caracter legal} 15 apellido materno: 3 { caracter legal} 15 caracter legal: { [A-Z] I [a-z]}
DZRECCZbN : (tipo de calle) + nombre de calle + numero + colonia + [delegacion I municipio] + estado tipo calle [Av I Bldv ] nombre de calle: {[A-Z] I [a-z]} numero: {[O-9]} + (1[A-Z] 1 I bis) colonia: 3{[A-Z] I [a-z]} delegación o municipio: 3 { [A-Z] I [a-z]} 15 estado: 5 { [A-Z] I [a-z]} 10
TEL&FONO : 7 { [O-9]} 15 ESPECLALIDAD : 4{ [TEC-92] I [TCM-92] I [TCN-921 I [TLC-92]}6 GRADO : 8 { 4-6) 1 GRUPO : {[A-Z] I [a-z] I [O-9]}
17
EGRESADOS
MATRICULA NOMBRE DIRECCION TELEFONO ESPECIALIDAD ESTUDIOS ACTUALES : 3 { [Caracter legal]} 50 RVSTITUCIÓN : 3 { [Caracter legal]} 50 TRABAJO : 3 { [Caracter legal]} 50 TEL-TRABAJO: 7{[0-9]}15
EMPLEADOS
CLAVE: 8{[0-9]}5 NOMBRE DIRECCION TELEFONO MATERIAS IMPARTIDAS : Material + Materia2 + Materia3 + Materia4 + Materia5
Materia: 3 { [Caracter legal]} 15
ACTIVIDADES
ACTIVIDAD : 8{[0-9]}5 EMPRESA 8{ [O-915 TPO-ACT : {[VI I [PI I [CI I [Al I [El) 1 NOMBRE : [Tipo de Actividad] + [Nombre de Actividad]
Tipo de Actividad: { [ Visitas] 1 [Propuestas] I [Cursos] I [Estadías] I [Conferencias] } Nombre de Actividad: 3 { [Caracter legal]} 3 5
RESPONSABLE : (Titulo) + nombre + segundo nombre + apellido paterno + apellido materno
ESPECIALIDAD : Título : [Lic] I [Profl I [Ing]
NO-ALUMNOS : S{ [O-91) FECHA : [O-311 / [l-121 / 1998-1 OBSERVACIONES : 3 { [Caracter legal]}25 TRIMESTRE : [ 1-41 I [99]
18
EMPRESAS
NUM EMPRESA : 8 { [O-91) 5 NOMBRE : [Nombre de la Empresa] I [Razón Social]
Nombre de la Empresa : 3 { [Caracter legal]} 50 DIRECCION
TELEFONO CONTACTO : Nombre del contacto
materno
GIRO : S { [O-9]}2
Nombre del contacto : nombre + segundo nombre + apellido paterno + apellido
TEL-CONTA CTO : 7 { [ 0-91 } 1 5
EW-ACEP
CLAVE INSCRIPCIóN : S { [O-9]} MATN¿%JLA : 8{[0-9]}5 CLAVE-ACTIVIDAD : S { [O-9]}5 PROMEDIO : { [O-91 . [O-9]} OBSERVACIONES : 3 { [Caracter legal]} ESTATUS : {[E] I [A]}
19
MANUAL DE USUARIO DEL SISTEMA VINCULA
Para instalar el sistema Vincula, se deben tener los discos de instalación, que son proporcionados junto con este manual. Primero se debe ejecutar la instrucción a:\setup.exe del disco #1, después aparecerá una pantalla que nos irá guiando para hacer la instalación de la aplicación, la cual nos pedirá que introduzcamos los otros dos discos.
La pantalla principal del sistema tiene un menú que tiene las siguientes opciones :
0 Mantenimiento de Catalogos Consultas
0 Reportes 0 Ayuda
La pantalla de inicio se ve como la siguiente :
Cada una de las opciones del menú tienen a su vez, submenús desplegables verticalmente. Las opciones de cada uno de ellos se describen mas adelante.
20
Mantenimiento de Catalogos :
El menú Catálogos tiene las siguientes opciones :
o Actividades o Alumnos o Egresados 0 Profesores 0 Empresas o Enviado/Aceptado
La pantalla con el menú desplegable es la siguiente :
21
Cada catálogo se manipula a través de una pantalla, la cual tiene barras de texto y botones. A continuación se describirá el procedimiento para usarlos.
0 Las barras de texto son de color blanco y verde. La de color verde es la clave sobre la cual se harán las búsquedas para accesar la información una vez que haya sido dada de alta, y por lo tanto debe ser única. La de color blanco es para introducir la mayoría de la información, ya que es la descripción. Hay varias maneras de pasar de una a otra, una es cuando se esta introduciendo el texto por primera vez se oprime <Enter> con esta tecla se interpreta que ya no se va introducir nada en esa barra de texto, otra es usar el tabulador o el ratón. Es importante notar que no puede dejarse un texto en blanco, ya que aparecerá un mensaje de error, al hacer cualquier operación (alta, modificación).
o Los botones hacen la operación, que indica la leyenda que tienen cada uno que son (Limpia, Agregar, Buscar, Salir). Mas adelante se describen las operaciones que hacen cada uno de ellos.
El catálogo de alumnos se muestra a continuación :
La descripción de las operaciones que se realizan en los catálogos se describen a la par que se muestran las pantallas.
22
A continuación se muestra la pantalla del catálogo de Empleados :
El botón de limpiar se usa cuando se quiere borrar todos los textos por lo general se usa en las altas. Para dar de alta se llenan las cajas de textos y se oprime el botón de agregar. A continuación se muestra la pantalla del catálogo de alumnos egresados :
23
Para modificaciones y bajas se busca el registro, tecleando el criterio de búsqueda, se oprime el botón buscar si lo encontró se muestra una pantalla como la de catalogo de empresas que es la siguiente :
En caso de no encontrarlo muestra una ventana con el mensaje de que no lo encontró y se oprime aceptar, puede ser que el error haya sido al teclear la clave o que el registro no se encuentre en el catálogo.
24
A continuación se muestra la pantalla del catálogo de actividades :
En esta pantalla se puede modificar o borrar el registro actual. Ya sea que se modifique el registro o se borre, después de realizar la operación regresa a la pantalla anterior. Para modificar un registro se teclea los campos a ser cambiados menos la clave que aparece inhabilitada en color gris, a continuación se oprime el botón de modificar. Para el caso de borrar el registro, aparece una ventana con el mensaje de confirmación de borrado con las opciones de Sí, No y Cancelar.
A continuación se muestra la pantalla del catálogo de enviados / aceptados
25
Todas las ventanas tienen las mismas opciones con excepción, del catalogo de EnviadoMceptado que varia en que no tiene opción de buscar. Esta pantalla tiene un control en la parte de abajo que tiene flechas en dos direcciones, éste sirve para moverse a través del catalogo registro por registro.
Consultas :
El menú Consultas tiene las siguientes opciones :
Alumnos por Especialidad Alumnos Egresados por Especialidad Empresas por Giro Actividades por Especialidad
La pantalla del menú de consultas se muestra a continuación :
26
Todas las consultas tienen una ventana a través de la cual se procesa la consulta. Esta pantalla es de la siguiente forma :
La consulta de Empresa por Giro varía un poco, ya que se tiene que elegir entre varios giros o ramas comerciales. A continuación como es la pantalla.
27
La consulta se presenta en una ventana, que ya está lista para imprimir, si es que se requiere, o solamente para verse en pantalla. A continuación se muestra la pantalla.
CENTRO DE BACHILLERATO TECNO' DE SERVICIOS No. 6
DEPARTAMENTO DE VINCULACION C O K
REPORTE DE ALUMNOS POR E I _
Reportes :
El menú Reportes tiene las siguientes opciones :
0 Actividades por Trimestre 0 Alumnos Egresados
Profesores 0 Enviados /Aceptados
28
Algunos reportes se procesan a través de una ventana parecidas al módulo de consultas y otras no requieren de criterio de búsqueda, así que se hacen directamente. A continuación la pantalla de reportes de actividades por trimestre.
El resultado de la consulta es un reporte, se presenta en una ventana que ya está lista para imprimir, si es que se requiere, o solamente para verse en pantalla. La pantalla se pede maximizar y se obtiene la siguiente :
CENTRO DE BACHILLERATO TECNOLbGICO Y DE SERVICIOS ##6.
DEPARTAIMENTO DE VINCULACIbN CON EL SECTOR PRODUCTrV €
REPORTE DE ACTIVIDADES POR TRIMESTRE ;: .
T l U i u E ~ R E 2.
i L e, ~
ACTWIDADES.NOMBRE EMPRESAS.NOMBRE RESPONSABLE FECHA ESPECIALIDAD OBSERV
$¶da w
LUCES S.A. DE C. V. 1 2 m . m wo-23 JHTHIHJ
WDndrr S.A. M.
2 LUCES S.A. DE C. V.
a m 4 m IEC-92 -
29
Ayuda :
Este menu tiene solo una opción : Acerca
La pantalla que muestra contiene información acerca del sistema, como es versión, autor,
AYUDA ENLINEA DEL SISTEMA VINCULA
Esta aplicación contiene una ayuda en linea, que permite saber los detalles del sistema, sobre todo a lo que se refiere descripción de los campos de cada catalógo, asi como el contenido de cada campo, etc.
30
La ayuda se invoca a traves de F1, y la pantalla es como la que aparece a
k w d a
Como se puede observar la pantalla tiene las mismas opciones del menú principal de la aplicación. Cada opción esta en un color verde y al pasar el ratón en esas áreas, se observa un indicador con la forma de una mano, que indica que se puede dar un click para pasar a otra pantalla.
31
Al seleccionar la opción de Actividades, aparece la pantalla que se muestra a continuación :
El catalogo de actividades contiene :
...."......... Clave de &~&ja.&Ffúmero de actividad
dad legable cuando se selecciona una opción menú desplegable
Las opciones son : Tipo de Actividad Caractcr desplegado
cursos C Conferencias F Practicas A Estadias E Propuestas P Visitas V
I Resgo:;s.b!e.ResponsabIe o encargado de impartir la actividad.
32
Al regresar a la pantalla principal y seleccionar la opción de Consultas, obtenemos la siguiente pantalla :
I Este menú contiene los siguientes submenús :
Alumnos por Especiahdad Alurnnos E,qesados por Especialtdad Empresas por &o Actividades por Especiahdad
Todas las consultas se muestra una pantalla donde se teclea el criterio de la consulta. La consulta de Empresas por Giro es un poco diferente ya que sólo se selecciona el Giro de una tabla dando un click del rat&, cuando se selecciona cambia de color. En los dos casos las consultas, se generan en una ventana que tambiCn puede ser usada para imprimir el resultado de la consulta.
Así se pueden elegir los temas a mostar , ya sea regresando a la pantalla que muestre la descripción que se esta buscando.
33
CODIGO FUENTE MAS IMPORTANTE DE VINCULA
'RUTINAS DEL MODULO GL0BAL.BAS
Global DB As Database Global gCurrentTb1-ALUMNOS As Recordset Global gCurrentTb1-EGRESADOS As Recordset Global gCurrentTb1-EMPLEADOS As Recordset Global gCurrentTb1-EMPRESAS As Recordset Global gCurrentTb1-ENVACEP As Recordset Global gCurrentTb1-ACTIVIDADES As Recordset
Function Valida-Fecha(NumDia, NumMes, N W o As Integer) As Boolean
Dim Bisiesto As Double Dim Bisiesto2 As Integer Dim NumeroDiasXMes As Integer
Select Case NumMes 'Evalúa Mes Case Is = 1, 3, 5, 7, 8, 10, 12: NumeroDiasXMes = 3 1 'Enero Marzo Mayo Julio
Case Is = 2 'Febrero(Bisiest0 o no) Agosto Octubre Diciembre
Bisiesto = N W o / 4 Bisiesto2 = Int(Bisiest0) If Bisiesto = Bisiesto2 Then
NumeroDiasXMes = 29 Else
NumeroDiasXMes = 28 End If
Case Is = 4, 6, 9, 11: NumeroDiasXMes = 30 'Abril Junio Septiembre
Case Else 'Otros valores, Error sin medida
End Select 'MsgBox ("Mes=" + Str(NumMes) + " Dias=" + Str(NumDia) + > " +
Str(NumeroDiasXMes)) If (NumDia > NumeroDiasXMes) Then
Noviembre
MsgBox "Error, No hay mes relacionado"
Valida-Fecha = False MsgBox ("El numero de Dias no corresponden con el mes" + Chr(l3) +
"Intentelo Nuevamente") Else
End If Valida-Fecha = True
End Function
34
Function EXISTE-ACT(Arg As String) Dim T As String
EXISTE-ACT = False If Not gCurrentTb1-ACTIVIDADES.EOF Then gCurrentTb1-ACTIVIDADES.MoveFirst
End If While Not gCurrentTb1-ACTIVIDADES.EOF
T = gCurrentTbl-ACTIVIDADES("ACTIVn>AD") If Arg = T Then
End If gCurrentTb1-ACTIVIDADES.MoveNext
EXISTE-ACT = True
Wend End Function
Function EXISTE-ALUMNO(Mat As String) Dim T As String
EXISTE-ALUMNO = False
If Not gCurrentTb1-ALUMNOS.EOF Then gCurrentTb1-ALUMNOS.MoveFirst
End If While Not gCurrentTb1-ALUMNOS.EOF
T = gCurrentTb1-ALUMNOS("MATRICULA") If Mat = T Then
End If gCurrentTb1-ALUMNOS.MoveNext
EXISTE-ALUMNO = True
Wend End Function
Function EXISTE-EGRESADO(Matricu1a As String) Dim T As String
EXISTE-EGRESADO = False
If Not gCurrentTb1-EGRESADOS.EOF Then gCurrentTb1-EGRESADOS.MoveFirst
End If While Not gCurrentTbl-EGRESADOS.EOF
T = gCurrentTbl-EGRESADOS('W"ARICULA") If Matricula = T Then
End If gCurrentTb1-EGRESADOS.MoveNext
EXISTE-EGRESADO = True
Wend End Function
35
Function EXISTE-EMP(ArgEmp As String) Dim T As String
EXISTE-EMP = False
If Not gCurrentTb1-EMPRESAS.EOF Then gCurrentTb1-EMPRESAS.MoveFirst
End If While Not gCurrentTb1-EMPRESAS.EOF
T = gCurrentTb1-EMPRESAS("NIJ"Eh4PRESA") If ArgEmp = T Then
End If gCurrentTb1-EMPRESAS.MoveNext
EXISTE-EMP = True
Wend
End Function
Function EXISTE-PROF(NumProf As String) Dim T As String
EXISTE-PROF = False
If Not gCurrentTb1-EMPLEADOS.EOF Then gCurrentTb1-EMPLEADOS.MoveFirst
End If While Not gCurrentTb1-EMPLEADOS.EOF
T = gCurrentTb1-EMPLEADOS("CLAW3") If NumProf = T Then
End If gCurrentTb1-EMPLEADOS.MoveNext
EXISTE-PROF = True
Wend
End Function
36
'FORMA CATALOGO DE ACTIVIDADES
Private Sub AGREGA-ACTIVIDAD()
gCurrentTb1-ACTIVIDADES.AddNew gCurrentTbl-ACTIVIDADES("ACTIVPDAD") = mskCveAct.Text gCurrentTb1-ACTIVIDADES("EMFRESA") = mskCvEmp.Text gCurrentTbl-ACTIVIDADES("TP0-ACT") = 1blTpoA.Caption gCurrentTbl-ACTIVIDADES("NOMBRE") = txtNomAct.Text gCurrentTb1-ACTIVIDADES("RESP0NSABLE") = txtResp.Text gCurrentTb1-ACTIVIDADES("N0-ALUMNOS") = mskNoA1.Text gCurrentTb1-ACTIVIDADES("FECHA") = mskFec.Text gCurrentTb1-ACTIVIDADES("ESPECIAL,IDAD") = mskEspAct.Text gCurrentTbl-ACTIVIDADES("TRIMESTRE") = mskTrim.Text gCurrentTb1-ACTIVIDADES("OBSERVACI0NES") = txtObs.Text gCurrentTb1-ACTIVIDADES.Update
End Sub
Private Function DESCOMP_FECHA() Dim NumDia, NumMes, N W o As Integer
NumDia = Trim$(Mid(mskFec.Text, 1,2)) NumMes = Trim$(Mid(mskFec.Text, 4,2)) NumAño = Trim$(Mid(mskFec.Text, 7,2))
If Valida-FechaVumDia, NumMes, NumAiio) Then
Else
End If
DESCOMF-FECHA = True
DESCOMI-FECHA = False
End Function
Private Sub FormLoad()
cboTpoAct.AddItem "Curso" cboTpoAct.AddItem "Conferencia" cboTpoAct.AddItem "Estadias" cboTpoAct.AddItem "Practicas" cboTpoAct.AddItem "Propuestas" cboTpoAct.AddItem "Visitas"
End Sub
37
Private Sub cboTpoAct-Click()
If cboTpoAct.Text = "Curso" Then
End If If cboTpoAct.Text = "Conferencia" Then
End If If cboTpoAct.Text = "Estadias" Then
End If If cboTpoAct.Text = "Practicas" Then
End If If cboTpoAct.Text = "Propuestas" Then
End If If cboTpoAct.Text = "Visitas" Then
End If
1blTpoA.Caption = "C"
1blTpoA.Caption = "F"
1blTpoA.Caption = "E"
IblTpoACaption = "A"
1blTpoA.Caption = "Pll
1blTpoA.Caption = "V"
End Sub
Private Sub cmdAddAct-Click() Dim M As Integer
If CHECA-TEXT Then If Not EXISTE-ACT(mskCveAct.Text) And EXISTE-EMP(mskCvEmp.Text) Then
If DESCOMP-FECHA Then AGREGA-ACTIVIDAD
Else M = MsgBox("La fecha es incorrecta,el registro no se dio de alta", vbOKOnly)
End If
M = MsgBox("La actividad existe o la empresa no existe,el registro no se dio de Else
alta", vbOKOnly) End If cmdClAct.SetFocus SendKeys "-", True
M = MsgBox("PARA DAR DE ALTA UN REGISTR0,NINGUN TEXTO DEBE Else
ESTAR VACIO", vbOKOnly) End If
End Sub
38
Private Sub cmdBorAct-Click() Dim M As Integer M = MsgBox("i ESTA SEGURO DE BORRAR EL REGISTRO ?'I, vbYesNoCance1) If M = 6 Then gCurrentTb1-ACTIVIDADES.Delete gCurrentTb1-ACTIVIDADES.MovePrevious
End If cmdBuscAct.Visible = True cmdModAct.Visible = False cmdBorAct.Visible = False cmdAddAct.Visible = True cmdClAct.Enabled = True mskCveAct.Enabled = True cmdClAct.SetFocus SendKeys "-", True
End Sub
Private Sub cmdBuscAct-Click() Dim Enc, T As Integer Enc = O gCurrentTb1-ACTIV1DADES.MoveFirst Do Until Enc = 1 Or gCurrentTb1-ACTIVIDADES.EOF
If Not mskCveAct.Text = gCurrentTb1-ACTIVIDADES("ACTIV1DAD") Then
Else
End If
If Enc Then
gCurrentTb1-ACTIVIDADES.MoveNext
Enc = 1
Loop
mskCvEmp.Text = gCurrentTbl-ACTIVIDADES("EMPRESA") 1blTpoA.Caption = gCurrentTbl-ACTIVIDADES("TP0-ACT") txtNomAct.Text = gCurrentTbl-ACTIVIDADES("NOMBRE") txtResp.Text = gCurrentTb1-ACTIVIDADES("RESP0NSABLE") mskNoA1.Text = Format$(Str$(gCurrentTbl-ACTIVIDADES("NO-ALUMNOS")),
mskFec.Text = Format$(gCurrentTbl-ACTIVDADES("FECHA"), "dcUmm/yy") mskEspAct.Text = gCurrentTb1-ACTIVIDADES("ESPECL4LIDAD") mskTrim.Text = gCurrentTb1-ACTIVIDADES("TRIMESTRE") txt0bs.Text = gCurrentTb1-ACTIVIDADES("OBSERVAC1ONES") cmdBuscAct.Visible = False cmdModAct.Visible = True cmdBorAct.Visible = True cmdAddAct.Visible = False cmdClAct.Enabled = False mskCveAct.Enabled = False mskCvEmp.Enabled = False cboTpoAct.SetFocus
T = MsgBox("E1 registro no se encontró, verifique la clave e intente nuevamente", Else
vbOKOnly)
39
mskCveAct.SetFocus End If
End Sub
Private Sub cmdModAct-Click() Dim M As Integer
If CHECA-TEXT Then If DESCOMP_FECHA Then gCurrentTb1-ACTIVIDADES.Edit gCurrentTbl-ACTIVIDADES("TPO-ACT") = 1blTpoA.Caption gCurrentTbl-ACTIVIDADES("NOMBRE") = txtNomAct.Text gCurrentTb1-ACTIVIDADES("RESP0NSABLE") = txtResp.Text gCurrentTbl-ACTIVIDADES("NO_ALUMNOS") = mskNoA1.Text gCurrentTb1-ACTIVIDADES("FECHA") = mskFec.Text gCurrentTb1-ACTIVIDADES("ESPECL4LIDAD") = mskEspAct.Text gCurrentTb1-ACTIVIDADES("TRIMESTRl3") = mskTrim.Text gCurrentTb1-ACTIVIDADES("OBSERVAC1ONES") = txtObs.Text gCurrentTb1-ACTIVIDADES.Update
M = MsgBox("La fecha es incorrecta , el registro no se modificó", vbOKOnly) Else
End If
M = MsgBox("N0 SE MODIFICO ESTE REGISTR0,NINGUN TEXTO DEBE Else
ESTAR VACIO", vbOKOnly) End If
cmdBuscAct.Visible = True cmdModAct.Visible = False cmdBorAct.Visible = False cmdAddAct.Visible = True cmdClAct.Enabled = True mskCveAct.Enabled = True mskCvEmp.Enabled = True cmdClAct.SetFocus SendKeys "-", True
End Sub
40
'FORMA CONSULTA DE ACTIVIDAD X ESPECULIDAD.
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-ESPE() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXESPE", "SELECT ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI DADES.NO ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI
ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.ESPECIALIDAD = & Trim$(UCase$(mskCEspAct.Text)) & 'It AND ACTIVIDADES.EMFRESA =
EMPRESAS.NUM-EMPRESA")
DADES.TRÍ~ESTRE,ACTIVIDADES.OBSERVACIONES FROM
Set gCurrentRS = DB.OpenRecordset("ACTXESPE", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACTPOR-ESPE = False
CONS-ACT-POR-ESPE = True
End Function
Private Sub cmdCnsAct-Click() Dim M As Integer
DB.DeleteQueryDef (I'ACTXESPEI')
If Not CONS-ACT-POR-ESPE() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", vbOKOnly) mskCEspAct.SetFocus
Else
REP-ACT-ESP.Action = O
End If End Sub
41
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-ESPE() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXESPE", "SELECT ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI DADES.NO~ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI DADES.TRIMESTRE,ACTIVIDADES.OBSERVACIONES FROM ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.ESPECIALIDAD = "' & Trim$(UCase$(mskCEspAct.Text)) & "' AND ACTIVIDADES.EMPRESA = Eh4l'RESAS.NLJ"EMPRESA")
Set gCurrentRS = DB.OpenRecordset("ACTXESPE", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACT-POR-ESPE = False
CONS-ACT-POR-ESPE = True
End Function
42
' FORMA CONSULTA POR GIRO
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset Dim TabGiros As QueryDef Dim TabTemp As Recordset
Private Sub Cns-Giro() Dim ColInd As Integer, ColCont As Integer Dim RowInd As Integer, RowCont As Integer
On Error Resume Next Set TabGiros = DB.CreateQueryDef("GIROEMP", "SELECT * FROM GIROS') Set TabTemp = DB.OpenRecordset("GIROEMP", dbOpenSnapshot)
TabTemp.MoveLast RowCont = TabTemp.RecordCount TabTemp.MoveFirst
grdGiro.Cols = 2 grdGiro.Rows = RowCont + 1
grdGiro.ColWidth(0) = TextWidth("CLAVE") grdGiro.ColWidth( 1) = TextWidth("DESCRIPC1ON") * 3
grdGiro.Co1 = O grdGiro.Row = O For ColInd = O To 1
grdGiro.Co1 = ColInd grdGiro.Text = TabTemp(ColInd).Name
Next
RowInd = O Do Until TabTemp.EOF
For ColInd = O To 1 grdGiro.Co1 = CoIInd grdGiro.Row = RowInd + 1 grdGiro.Text = TabTemp(Co1Ind)
Next
TabTemp.MoveNext RowInd = RowInd + 1
Loop grdGiro.Co1 = 1 grdGiro.Row = O
End Sub
43
Private Function CONS-EMP-POR-GIRO() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("EMPRXGIRO", "SELECT EMPRESAS.*,GIROS.DESCRIPCION FROM EMPRESAS,GIROS Where EMPRESAS.GIRO = GIROS.NO GIRO And EMPRESAS.GIRO = & Trim$(grdGiro.Text) & ""')
SecgCurrentRS = DB.OpenRecordset("EMPRXGIRO", dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-EMP-POR-GIRO = False
CONS-EMP-POR-GIRO = True
End Function
Private Sub cmdCnsGiro-Click() Dim M As Integer
DB.DeleteQueryDef (IIEMPRXGIRO")
If Not CONS-EMP-POR-GIRO() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", vbOKOnly) grdGiro.SetFocus
Else
REP-EMP-GIRO.Action = O
End If
End Sub
44
Private Sub Fom-Load() DB.DeleteQueryDef ("GIROEMP") Cns-Giro
End Sub
Private Sub grdGiro-Click() Dim i As Integer
i = grdGiro.SelStartRow With grdGiro
.Row = i End With
grdGiro.Co1 = O If i = O Then
End If End Sub
grdGiro.Row = 1
'FORMA REPORTE DE ACTIVIDADES POR TRIMESTRE
Option Explicit
Dim gCurrentQueryDef As QueryDef Dim gCurrentRS As Recordset
Private Function CONS-ACTPOR-TRIM() As Boolean Dim TotalRegistros As Integer
On Error Resume Next
Set gCurrentQueryDef = DB.CreateQueryDef("ACTXTRIM", "SELECT ACTIVIDADES.NOMBRE,EMPRESAS.NOMBRE,ACTIVIDADES.RESPONSABLE,ACTIVI DADES.NO_ALUMNOS,ACTIVIDADES.FECHA,ACTIVIDADES.ESPECIALIDAD,ACTIVI DADES.TRIMESTRE,ACTIVIDADES.OBSERVACIONES FROM ACTIVIDADES,EMPRESAS WHERE ACTIVIDADES.TRIMESTRE = "' & Trim$(UCase$(txTrim.Text)) & AND ACTIVIDADES.EMPRESA=EMPRESAS.NIJ"EMPRESA ORDER BY TPO-ACT")
111
Set gCurrentRS = DB.OpenRecordset("ACTXTRI"', dbOpenSnapshot)
TotalRegistros = gCurrentRS.RecordCount
If TotalRegistros <= O Then
Else
End If
CONS-ACT-POR-TRIM = False
CONS-ACT-POR-TRIM = True
End Function
45
Private Sub cmdAcTrim-Click() Dim M As Integer
DB.DeleteQueryDef (IIACTXTRIM")
If Not CONS-ACT-POR-TRIM() Then
M = MsgBox("N0 HAY REGISTROS CON ESTA CLAVE...", VbOKOnly) txTrim.SetFocus
Else
REP-ACT-TRIM.Action = O
End If
End Sub
46