UNIVERSIDAD AUTONOMA METROPOLITANA / División de Ciencias Básicas e Ingeniería
Iztapalapa
Casa abierta al tiempo
4' Licenciatura en Computación
PRESENTA:
PROYECTO DE TITULACI~N s'
" PSICOMÉTRICA MOSS "
Elaborado por:
Francisco Vera Mendoza Marcos Fco. Palomino Lara.
Matricula. 91324628 Matricula. 9222 1 108
Asesor:
M en C. Jorge Lo* Moreno.
México.,D.F., Marzo de 1998. --
PsicoMétrica Q
Moss 1 .O Contenido
Contenido Págína
Capitulo 1 . Introducción
Marco teórico . Planteamiento del proyecto . Objetivos . Herramientas de desarrollo .
Capitulo 2 . Inttoduccicjn ai MOSS
MOSS de adaptabilidad . Calificación de la prueba MOSS .
Capitulo 3 . Desarrollo de la prueba MOSS
Análisis y diseño . Implementación
Bitácora de actividades . Problemas presentados y su solución
Capitulo 4 . Resultados
Capitulo 5 . Condusiona
Bibliografía
Anexo A . Diagrama de Contexto . Diagrama de flujo de datos . Diagrama de entidad - relación
Diagrama transición de estados . Anexo B .
Estructura de datos
Principales procedimientos y funciones .
.......... 2
.......... 2
.......... 3
.......... 4 ..... 4
.......... 5
.......... 5
.......... 6
.......... 8
.......... 8
.......... 10
.......... 11
.......... 13
.......... 15
.......... 17
.......... 18
Página I
PsicoMétrica @
Moss 1 .O Introducción
Capítulo
Introducción
Marco teórico Pocas veces los proyectos de investigación de la Licenciatura en Computación se enfocan a la resolución de problemas reales en otras áreas del conocimiento. Este proyecto es parte de una familia de proyectos que se han venido generando especialmente para tratar de entrar en soluciones informáticas en el área de la Psicología Industrial en base a la necesidad urgente de generar proyectos termi- nales de calidad para los estudiantes de las licenciaturas en Computación e Inge- niería Electrónica y a partir de la experiencia y relaciones con la industria de cómputo del Ing. Jorge Lozano Moreno, Profesor responsable del proyecto.
En el área de Reclutamiento y Selección de toda gran empresa comunmente se requiere de la aplicación de técnicas procedimentales y confiables para la con- tratación de sus recursos humanos, estas técnicas son lo que comúnmente se conoce como Exámenes Psicométricos. Normalmente los exámenes psico- métricos requieren un buen conocimiento de diversas técnicas de entrevista y evaluación, interpretación de gráficos y generación de documentos que definen características, conductas y comportamientos de la persona. Sin embargo, es ha- bitual que en nuestro país estos exámenes se apliquen por medios totalmente manuales: aplicación de grandes cuestionarios, calificación en base a diversos criterios, graficación de diversas escalas medidas, interpretación de gráficos y fi- nalmente: generación de reportes de evaluación.
En esto encontramos un terreno fértil, pues la mayoría de las tareas que realiza un reclutador se pueden mejorar substancialmente si se implanta el uso de mé- todos automatizados, a través del uso de la computadora personal, que además
Página 2 m
PsicoMétrica @
Moss 1.0 Introducción
se ha vuelto una herramienta habitual en toda área de recursos humanos, así, se encuentra que contamos con un área donde tenemos :
usuarios reales
proyectos viables
proyectos de aplicación inmediata
La idea es obtener un producto que implante la solución de alguna Prueba Psi- cométrica, que se habrá de agregar a la batería existente actualmente, que se ob- tuvo con otros 5 proyectos.
C P I
Cleaver
0 16FT
0 LG
Teman
Planteamiento del Proyecto A menudo las empresas tratan de contar con el personal idóneo, sin embargo resulta dificil elegir a la persona correcta para cada puesto. En muchas ocasiones se puede contar con empleados ejemplares, que con el tiempo van ascendiendo de nivel hasta ocupar puestos estratégicos para la empresa, pero, no es igual de- sempeñar un cargo en el cual una sola persona es la encargada de su propio tra- bajo, a un puesto en el que se deba coordinar a una serie de personas a su cargo.
Aigunas de las preguntas del personal de recursos humanos serían: <Sabrá ma- nejar a los empleados?, <Tendrá las características de un líder?, italvez sea un buen empleado pero no un buen supervisor!. Para tratar de responder a estas preguntas los psicólogos se basan en pruebas que tratan de ubicar al individuo dentro de un rango de liderazgo.
Por esta razón se decidió implementar un nuevo módulo a la batería de pruebas existentes. con el fin de conocer cual es el nivel de liderazgo del individuo en estudio. La prueba psicológica que se implemento fue “MOSS”, esta prueba se enfoca al análisis de liderazgo, consta de 30 preguntas las cuales involucran al in- dividuo en situaciones de decisión especifica, cada pregunta tiene cuatro posibles respuestas de las cuales solo una es la correcta.
Página 3
PsicoMétrica Moss 1 .O
introducción
Objetivos Los objetivos del proyecto son:
0 Generar una aplicación de utilidad general en un área de proyectos intere- sante, que permita la obtención de aplicaciones reales para el medio mexica- no.
0 Desarrollar aplicaciones en ambientes gráficos, utilizando técnicas de pro- gramación orientada a eventos y/o orientada a objetos.
0 Programar e implantar un sistema en Windows 95 usando Visual Basic 4.0 de 32 bits.
0 Obtener un producto terminado al 100%, siguiendo alguna metodología de Ingeniería de Software( Yourdon ), de manera que el sistema incluya un pro- ducto terminado y aprobado. Documentación técnica y de usuario, sistema de instalación, ayuda en línea, protección contra piratería, manejo de contra- señas, diseño gráfico de los iconos, pantallas, etc.
0 Preparar un proyecto de primer nivel con miras a participar en concursos de software nacionales, tratando de traer reconocimientos hacia la universidad.
0 Obtener un modulo más para el sistema PsicoMétrica.
Herramientas de desarrollo Conforme al objetivo de desarrollar una aplicación viable dentro del ámbito in- dustrial, se eligió el ambiente de desarrollo mas comercial: Windows 95. Así co- mo una de las herramientas de desarrollo orientadas al RAD de mayor uso hoy en día: Microsoft Visual Basic.
Para la generación de los reportes hemos aprovechado la interfaz de Word con Visual Basic, para generar los reportes en formato RTF. P c h t Text Format), dejando reportes de primera calidad tipográfica, y dejando el documento en ma- nos de psicólogo, para que lo manipule como desee dentro de Word.
Página 4
PsicoMétrica Q
Moss 1 .O Introducción al MOSS
Cap ít u lo
Introducción al MOSS
MOSS : Es una prueba que evalúa la Adaptabilidad y Juicio Social de una perso- na. Esto se logra a través de una serie de preguntas las cuales involucran al indi- viduo en situaciones de decisión especifica, cada pregunta tiene cuatro posibles respuestas de las cuales solo una es la correcta.
MOSS de Adaptabilidad
Es una prueba que tiene como objetivo primordial detectar hasta que grado una persona tiene habilidad para manejar las relaciones interpersonales, esto lo po- demos evaluar por medio de los siguientes aspectos:
0 Habilidad en Supervisión.
0 Capacidad de evaluar problemas.
0 Capacidad de tomar decisiones.
Habilidad para establecer relaciones.
0 Sentido común y tacto para tratar personal.
rn Phglna 6
Psicohiétrica 8
Moss 1 .o Introducción al MOSS
Intervalo de respuestas correctas Nivel de Juicio Social I
Calificación de la Prueba MOSS
El Nivel deJztibo Social de una persona se interpreta a través de la siguiente escala:
D e 8 a l l
De 12 a 18
Pobre
Medio
D e l a 7 I Deficiente I I
De 19 a 23
De 24 a 30
Bueno
Superior
La tabla 2.1 muestra los cinco niveles de juicio social que puede obtener una persona de acuerdo al número de respuestas correctas.
Para determinar el porcentaje en cuanto a las Relaciones Hztmanas se necesita tener la prueba resuelta, sin omitir ninguna pregunta, una vez completada la prueba se procede a la calificación, la cual consiste en asignar un porcentaje a cada una de las respuestas contestadas correctamente, para cada una de las aptitudes se to- man diferentes porcentajes como lo muestran las siguientes tablas:
Habilidad en supervisión
Número de pregunta
Porcentaje
Capacidad de evaluar problemas
Número de pregunta
Porcentaje
2 3 16 18 24 30
17 34 50 67 84 100%
7 9 12 14 19 21 26 27
13 25 38 50 63 75 88 100%
Página 6 m
PsicoMétrica Q
Moss 1.0 Introducción ai MOSS
Capacidad de tomar decisiones
Número de pregunta
Porcentaje
4 6 20 23 29
20 40 60 80 100°/o
Habilidad para establecer relaciones
Número de pregunta 1 10 11 13 25
Porcentaje 20 40 60 80 100%
Sentido común y tacto para tratar personal
Número de pregunta 5 8 15 17 22 28
Porcentaje 17 34 50 67 84 100%
rn Página 7
PsicoMétnca Moss 1 .O
Desarrollo de la Prueba MOSS
Cap ít u lo
Desarrollo de la Prueba MOSS
Análisis y Diseño Dentro de la etapa de Análisis y Diseño del sistema MOSS 1.0 utilizamos la metodología de Yourdon, por lo que fue necesario modelar el sistema a partir de los siguientes diagramas:
0 Diagrama de Contexto.
0 Diagrama de Flujo de Datos.
0 Diagrama de Entidad - Relación
0 Diagrama de Transición de Estados.
Estos Diagramas aparecen en el Anexo de este Informe y se dará a continuación una breve descripción de cada uno de ellos.
Diagrama de Contexto
El diagrama A.l. presenta en forma general las entidades y dispositivos de alma- cenamiento que hteractúan con el sistema. Este es un primer acercamiento el cual nos proporciona la siguiente información: de la entidad empleado obtene- mos su información personal y sus repuestas de la prueba MOSS, la cual se en- cuentra representada dentro del diagrama por medio de un circulo, la entidad aplicador es el encargado obtener reportes y gráficas de las pruebas para que posteriormente puede hacer análisis con base a los resultados obtenidos.
m Página 8
PslcoMétrlca
Moss 1 .O Desarrollo de la Prueba MOSS
Diagrama de Flujo de Datos
El diagrama de flujo de datos A.2. nos muestra mas detalladamente la composi- ción interna de algunos procesos del sistema.
Para resolver una prueba es necesario capturar los datos del empleado y contes- tar la prueba. Con los resultados obtenidos el aplicador puede generar su reporte y gráfica correspondiente.
El diagrama de flujo de datos A.3. nos describe los pasos para evaluar las re- puestas de la prueba, como son validar la clave de acceso de aplicador, seleccio- nar el empleado a evaluar junto con sus respuestas para finalmente procesar di- chas respuetas.
Por ultimo el diagrama de flujo de datos A.4 se encarga de generar los resulta- dos de la prueba para que con ellos se puedan generar: la gráfica y el reporte lo- cal o en formato RFT.
Diagrama de Entidad relación
Debido a que el sistema no comprende el entorno general de la administración de recursos humanos; el cual involucra un manejo más completo de la informa- ción de empleados y aspirantes, para promociones y vacantes respectivamente.
El sistema solo incluye un almacenamiento de empleados y de respuestas de la prueba MOSS, no incluimos el almacenamiento de los resultados de la prueba.
No interactuamos con un historial de trabajo de empleados, solicitantes y de aplicadores de la prueba, en el Diagrama de Entidad Relación AS.
Diagrama de Transición de Estados
En base a los diagramas anteriores se elaboró el Diagrama de Transición de Es- tados A.6. el cual muestra la manera en que interactúan las entidades antes seña- ladas con el sistema, además de señalar más específicamente el flujo de informa- ción, el cual al ingresar a cada uno de los procesos, genera una salida correspon- diente al evento o información que se obtiene.
Página 9 m
PsicoMétrica @
Moss 1 .O Desarrollo de la Prueba MOSS
Implementación La fase de implementar cada uno de los procesos se detalla a continuación:
0 Tomando como base la información compuesta de preguntas, tabulaciones, normas, tiempos predeterminados y valores asociados al MOSS, se utilizaron registros y arreglos de registros del tipo adecuado para almacenar en memoria las preguntas los datos personales y respuestas del empleado, las respuestas de las pruebas para la obtención de la gráfica de barras. Se definieron las fun- ciones y los procedimientos necesarios para manipular dicha información en los aspectos de: validación, graficación manipulación de archivos para limpiar, guardar y recuperar información, así como los procedimientos que efectúan las manipulaciones de estos datos para que operen correctamente en la apli- cación MOSS. (ver Anexo B)
0 El siguiente paso fue la elaboración de una interfaz sencilla y amigable para el usuario.
1. Manejo de menú y barra de herramientas (fue necesario realizar el diseño de los iconos asociados a los botones de la barra).
2. Ventana de captura de la prueba la cual consta de dos partes. Un área para el llenado de los datos personales del empleado y otra para la resolución de la prueba.
3. Ventana en la cual se despliega gráficamente los resultados de la prueba MOSS.
4. Reporte de la prueba ya sea en pantalla o en archivo.
5. Cajas de dialogo para cambio de contraseña, definir directorios de Wordpad y Word, importar pruebas, abrir y recuperar prue- bas, definir rangos de evaiuación para las Relaciones Humanas.
6. Se realizaron los procedimientos y funciones que dan soporte al sistema, otra tarea importante fue el manejo de las llamadas a las funciones N I , las cuales permiten manipular funciones que pertenecen al sistema de Windows.
7. La etapa final y como complemento de la creación del sistema consistió en realizar los discos de instalación.
Página 10
PsicoMétrica * Moss 1 .O Desarrollo de la Prueba MOSS
Bitácora de actividades De acuerdo al calendario de planeación del desarrollo del sistema se tienen los siguientes puntos:
0 Investigación y estudio de la herramienta
Se decidió utilizar una herramientíi de programación orientada eventos conocida como Visual Basic 4.0, al cual ofrece una gran versatilidad para la realización de una interfaz de usuario amigable en ambiente Windows. Se ocuparon aproxima- damente 6 semanas.
Análisis de requerimientos de la prueba
En esta fase se desglosaron los objetivos y requerimientos de la prueba, como son:
1. Definición de la prueba misma: cQué mide?.
2. Las partes que la constituyen: tipos de preguntas.
3. La información que se desea obtener: rangos, calificaciones, etc.
4. Los medios para obtener dicha información: ventanas, archivos, etc.
5. Búsqueda de información para la generación de calificaciones, de rangos, etc.
Para la realización de esta etapa se ocuparon aproximadamente 4 semanas.
Diseño y programación.
1. Elaboración de los diagramas de flujo de datos, de entidad - relación y
2. Interfaz con el usuario: llenado de datos personales, presentación de pre- guntas y validación.
3. Interfaz con el aplicador: visualización de gráficas, calificación de la prue- ba, elaboración del reporte, manipulación de archivos, generación de pruebas nuevas dentro e un mismo archivo.
transición de estados.
4. Almacenamiento de información.
Captura.
Tomando como base que la prueba la constituyen tanto sus preguntas como la evaluación de estas, fue necesario capturar toda la documentación necesaria. Además se tuvo que implementar un sistema para la captación de información proveniente de éste, al momento de contestar la prueba. Para la realización de este proceso se llevó un tiempo aproximado de 4 semanas.
Página 11
PsicoMétrica Moss 1 .O
Desarrollo de la Prueba MOSS
Seguridad.
Medio de protección del sistema desde el momento de inicio de su ejecución como en el transcurso de su utilización se tomaron en cuenta los siguientes as- pectos.
1. Definición de un método de verificación de Hardware que permita la eje-
2. Uso de una contraseña por parte del aplicador para el manejo confiable
3. Elaboración de mensajes para la prevención del manejo erróneo del sis-
cución del sistema.
de la información.
tema
Grafkación
Para elaborar la gráfica de la prueba las respuestas son previamente calificadas de una manera transparente para el usuario. Se muestra el porcentaje obtenido en cada Relación Humana, el número de respuestas correctas y el nivel de Juicio Social.
0 Generación del Reporte
Como complemento ideal para el aplicador se encuentra la fase de reporte , la cual permite, de una manera muy sencilla tener un panorama particular del em- pleado en cuanto a su nivel de liderazgo.
El reporte se puede obtener de diferentes maneras, ya sea hacia pantalla o archi- vo, y para dos procesadores de texto como: Wordpad y Word. También se cuenta con una opción alternativa que es le reporte local, que nos permite la transportación del texto hacia algún otro procesador de palabras. Lo anterior tiene como principal ventaja que el aplicador pueda modificar dicha información de acuerdo a su criterio y a la entrevista con el usuario, con el objetivo de reali- zar un reporte final completo y más particularizado.
0 Instalación
La fase de instalación comprende los siguientes pasos:
1.
2.
3.
Inicio de la instalación desde un disco que posee ciertas características es- peciales, las cuales permiten que dicha instalación se lleve acabo única- mente con este disco.
Solicitud de la información referente a la unidad en la que se instalará el sistema. Se lleva acabo la copia de archivos en el directorio que el usuario a definido, así como en el directorio “System” de Windows
Finalmente se graba la información personal del usuario (password para el sistema) en el archivo moss.ini, que pantizará el correcto fünciona- miento del sistema.
Página 12
PsicoMétrlca Moss 1 .O
Desarrollo de la Prueba MOSS
0 Documentación
En el transcurso del análisis, diseño y programación del sistema se fue elabo- rando la documentación correspondiente en cada una de fases mencionadas.
0 Ayudaenlínea
Se elaboró el archivo de ayuda ayumoss.hlp que muestra los diferentes temas de mayor y principal interés para el usuario, con el cual se puede resolver dudas acerca del funcionamiento del sistema
0 Manual de usuario
Para tener una consulta más detallada acerca del sistema y de cada una de las funciones de sus componentes se elaboró un manual que contiene un apéndice y una serie de capítulos que se describen a continuación:
Apéndice: compendio de órdenes del menú principal de MOSS.
Capitulo 1: Introducción a Psicométrica.
Capitulo 2: Introducción al MOSS.
Capitulo 3: Instalación de MOSS.
Capitulo 4: Uso del sistema.
Capitulo 5: Gráfica.
Capitulo 6: Reportes.
Capitulo 7: Ayuda.
Pruebasfinales
Se llevaron acabo diversas pruebas que sometieron al sistema a diferentes cir- cunstancias tanto de operación por parte del usuario final, cuidando que no se rompiera la lógica de operación debido a las manipulaciones que el usuario pu- diera realizar, como de software del ambiente Windows, buscando el ambiente suficiente y necesario para el correcto funcionamiento de la prueba MOSS.
Problemas presentados y su solución Básicamente nos enfrentamos a dos problemas: en la exportación del reporte en formato RTF y en la construcción de la ayuda en línea.
El primer problema consistió en que la anterior versión de Windows 95 (Windows 3.11) se hacia uso de la función SendKey de Visual Basic para la ma- nipulación de aplicaciones bajo Windows como son: Write y Word, sin embargo
Página 13
MA
PsicoMétrica 8
Moss 1.0 Desarrollo de la Prueba MOSS
en Windows 95 no causa el mismo efecto, ejemplo: cuando la aplicación Word ya esta abierta y se quiere mandar un reporte desde el sistema MOSS lo co- rrecto es que se active Word para desplegar el reporte, pero no se cumple este Último paso. E s por esto que optamos por abrir la aplicación Word cada vez que sea necesario.
El segundo problema se presentó en la construcción de la ayuda en línea. Cuan- do ya teníamos casi por completo el archivo de ayuda, este se daño por el virus CAP que detectamos tiempo después y entre ese lapso de tiempo h e imposible generar el archivo de ayuda.
Página 14 m
Capítulo
Resu I tados
Tomando como meta cubrir los objetivos propuestos a iniciar el proyecto MOSS, se llegó a obtener un producto final terminado en todas sus etapas, que son:
0 La obtención de una prueba Psicométrica por medio de computadora que mide y evalúa el Juicio Social y las relaciones interpersonales del individuo en estudio.
0 Tener una aplicación interesante y de utilidad específicamente en el área de selección de personal, que permite la resolución de problemas reales en el medio industrial mexicano.
0 Una aplicación en ambiente gráfico, utilizando técnicas de programación orientada a eventos con la hehamienta Visual Basic 4.0.
Desarrollo de una herramienta aplicativa a partir del análisis de los requeri- mientos, como fue la generación de un ambiente gráfico amigable para el usuario, hasta la producción y puesta en marcha de la misma con una fase de instalación de software totalmente personalizada, pasando por la documenta- ción técnica y de usuario indispensables para el correcto manejo y explota- ción de la prueba.
0 Finalmente, contar con una aplicación en ambiente Windows que @iza de manera extrema todos los procesos que cualquier Psicólogo experimentado cubriría en un tiempo mucho mayor que con la aplicación MOSS, además de ser capaz de:
Página 15 m
PsicoMétrica Q
Moss 1 .O Resultados
1. Presentar un ambiente amigable e informativo del cómo iniciar y con- testar la prueba MOSS, considerando que se trata de un usuario que des- conoce por completo su manejo y parámetros que mide.
2. Proveer de una gama de accesos ripidos por medio de una barra de he- rramientas, para la realización fácil y rápida de ciertos procesos que se ocupan con mayor frecuencia tales como: la generación e impresión de reportes y gráficas, así como el manejo de archivos.
3. Poder almacenar en un sólo archivo más de una prueba, esto con la fina- lidad de tener una mejor organización en el manejo de información co- rrespondiente a un grupo de evaluados que pueden tener algunas caracte- rísticas en común, ejemplo la solicitud de un puesto en especial.
4. Tener la ventaja de poder manejar los reportes de la prueba en cualquiera de los dos procesadores de palabras (YVordPad y Word), los cuales per- miten realizar todas las modificaciones tanto de eliminación y agregado de información como de cambios en el formato de párrafos o el tipo y tamaño de letra.
Página 16 m
PsicoMétrica @
Moss 1 .o Conclusiones
Capítulo
Conclusiones
El desarrollo de aplicaciones reales nos permite introducirnos al mercado actual que viene desarrollándose desde hace algunos años y que no habíamos tenido la oportunidad de ingresar a este, pudimos constatar que las aplicaciones informá- ticas tienen un amplio campo de trabajo no solo en el área científica sino tam- bién en el ámbito industrial.
Obtuvimos los conocimientos teórico prácticos necesarios para el desarrollo de un producto comercial, que incluye el conocimiento de una herramienta de programación, análisis y diseño de sistemas, programación, elaboración de ayuda en línea y manuales.
En el caso particular del sistema que desarrollamos, el cual se encuentra dentro del campo de la Psicología Industrial, comprobamos que la aplicación MOSS es una buena herramienta para ayudar en el trabajo tedioso en la selección de per- sonal del departamento de recursos humanos, pudiendo agilizar y controlar de manera más efectiva el flujo de información.
Página 17 rn
PoicoMétrica Moss 1 .O Bibliografía
Bi bl i og rafía 0 Titulo: Programmer’s Guide o f Visual Basic 4.0
Autor: Microsoft.
Editorial: Microsoft.
0 Titulo: Language Reference o f Visual Basic 4.0
Autor: Microsoft.
Editorial: Microsoft.
0 Titulo: Professional Features Book 1 o f Visual Basic 4.0
Autor: Microsoft.
Editorial: Micro s o ft .
Página 18 m
Anexo
A Anexo tLA''
Diagrama de Contexto.
Diagrama de flujo de datos,
Diagrama de entidad = relación,
Diagrama de transición de estados,
APLICADOR n
Datos del Ernp I eado
EMPLEADO
Datos de empleado + Identificación del Respuestas prueba MOSS Ap I i cador
Resul tados Prueba MOSS
Prueba MOSS
EMPLEADOS RESPUESTAS DE PRUEBA MOSS
Respuestas Prueba MOSS
Diagrama Al : Diagrama de Contexto.
b REPORTE DE RESULTADOS Resultados FORMATO RTF Prueba MOSS
APLICADOR
Diagrama A2: Diagrama de f l u j o de Datos
( 3 ) 3 RESPUESTAS
REPORTE DE RESULTADOS FORMATO RFT
APL I CADOR
Respuesta de Validación
Resultados Prueba MOSS
RESPUESTA DE
Identificación del Ap I i cador
Habi I i tar Procesar
Resultados Prueba MOSS
EMPLEADOS
I
RESPUESTAS DE PRUEBA MOSS
Respuestas Prueba MOSS
RESPUESTA DE
Ernp I eado
Diagrama A3: Evaluar Respuetas.
( 3 . 4 ) 4R RESPUESTAS DEL EMPLEADO
Resultados Gráficos
Habi I i tar Procesar
Reporte de Resultados Loca I
b APLICADOR
Reporte de Resultados Formato RTF
4
Resul tados Prueba MOSS
REPORTE DE RESULTADOS FORMATO RFT
Diagrama A4: Procesar repuestas del empleado.
DER MOSS
Empleado Respuestas
- L
Nombre Sexo Ocupación Edad
Nombre Fecha
Diagrama A5 : Diagrama de Entidad Relación.
fn i enza
ibi I i tar lnsul ta
INICIO
Comienza I Habi I i tar Captura
v CAPTURAR DATOS DE EMPLEADO
Datos Capturados
Habi I i tar Prueba
PRUEBA MOSS Prueba Conc I ui d:
Habi I i tar s i g. Purebi
Prueba Resue I ta
Habilitar Consulta
I
VAL I DAR IDENTIFICACION DEL APLICADOR
I Ident i f i cac íon val ida
SELECCIONAR EMPLEADO
Emp I eado se I ecc i onado I I ~~
Habi I i tar Carga de respuestas
CARGAR RESPUESTAS DE
EMPLEADO
Respuestas de Empleado!
i Habi I i tar Procesar respuestas
GENERAR RESULTADOS
Resultados Obtenidos
Procesar Reportes
GENERAR REPORTE GENERAR REPORTE
Habilitar Selección de Emp I eado
Reporte Gráfico generado
Habi I i tar sig. Prueba
Reporte Loca I generado
Habi I i tar sig. Prueba
GENERAR REPORTE
Reporte Fto. RTF. generado
Habi I i tar sig. Prueba
I Diagrama A6: Diagrama de transición de Estados.
Anexo
B Anexo “B”
Estructura de datos-
Procedimientos y funciones-
Estructura de Datos para almacenar la pruebas
Tipo Empleado version: Cadena de 10 caracteres nombre: Cadena de 40 caracteres edad: Como entero sexo: Cadena de 1 caracter ocupacion: Cadena de 30 caracteres fecha: Cadena de 9 caracteres RESPUESTAS: Arreglo de ( 1 a 30) como entero
Fin Tipo
Procedimientos y funciones
'*El modulo mndyuda hace referencia a caL- una de las *
Private Sub Mnuayuda-Click (Index As Integer) '* opciones del menú Ayuda del sistema Moss *
Dim ayu As Integer
Select Case Index case 1
case3 ayu = WinHelpA(moss.hWnd, AppPath + "\ayumoss.hlp", &H3, CLng(0))
Screen.MousePointer = 11 Acerca.Show 1
End Select End Sub
'*El modulo mnuGenerar hace referencia a cada una de las *
Private Sub mnuGenerar-Click (Index As Integer) Dim Msg As String, i As Integer
'* opciones del menú Generar del sistema Moss *
Select Case Index 'Generar gráfíca case 1 IfForms.Count > 1 Then
If Existe-forma("grafíca") Then grañca.Show: GoTo continua
End If End If Fori= 1To30 If resp_emp(i) = O Then
Msg = "iNo se puede generar la gráfica!'' + nl Msg = Msg + "Necesita la prueba terminada" MsgBox Msg, 48, "Moss 1.0": Exit Sub
End If Next i Screen.MousePointer = 11 grafica. Show
case 3
IfForms.Count > 1 Then If Existe-fom("Rephcal") Then
RepLocal.Show: GoTo continua End If
End If Fori= 1To30
If resp-emp(i) = O Then Msg = I'iNo se puede generar el reporte !I* + ni Msg = Msg + "Necesita la prueba terminada" MsgBox Msg, 48, "Moss 1.0" Exit Sub
End If Next i Screen.MousePointer = 11 Tiporep.Show 1
continua: End Select End Sub
'*El modulo mnuopciones hace referencia a cada tina de las *
Private Sub MnuOpciones-Click (Index As Integer) Select Case Index
'* opciones del menú Opciones del sistema Moss *
Case 1 'Definir texto del reporte Screen.MousePointer = 11 Textorep.Show 1
Screen.MousePointer = 11 Rangos.Show 1
Screen.MousePointer = 11 DirWord.Show 1
Case 6 'Cambiar contraseña Tip = 2 Screen.MousePointer = 11 Clave.Show 1
Case 2 'Definir rangos
Case 4 Deñnir ruta de Wordpad
End Select End Sub
'*El modulo mnuPruebas hace referencia a cada una de las *
Private Sub MnuPruebas-Click (Index As Integer) '* opciones del menú Pruebas del sistema Moss *
Dim seleccionado As String, Msg As String, totqru As Integer Dim arch-rem As String, tot-imp As Integer
Select Case Index Nueva prueba
Case1 Screen.MousePointer = 11 If Forms. Count > 1 Then
If Existe-forma("Pnieba") Then Unload Prueba If Not descargajrueba Then
End If Screen.MousePointer = O: Exit Sub
End If Prueba.Show: Cargarhestos 'Llena combo de puestos
Presentaqrueba 1 : moss.CommonDialog1 .FileName = "" archivoqrueba = 'I1'
'Recupera prueba case 2
If Deq-dialogo( 1) Then If moss.CommonDialog1.FileName O '"' Then
If FileL,en(moss.CommonDialog 1 .FileName) = O Then Msg = "El archivo MsgBox Msg, 48, "MOSS 1.0": moss.CommonDialog1.FileName = archivoqrueba
Screen.MousePointer = 11 arch-rem = moss.CommonDialog1 .FileName: moss.CommonDialog1 .FileName = archivoqrueba IfForms.Count > 1 Then
+ moss.CommonDialog1.FileName + "' esta vacio"
Else
if Exiuste-forma("Prueba") Then Unload Prueba If Not descargaqrueba Then
End If If Existe-forma("grañCa") Then Unload grafka If Existe-forma("RepLocai") Then Unload RepLocal
Screen.MousePointer = O: Exit Sub
End If moss.CommonDialog1 .FileName = arch-rean Rempera.Show 1
End If End If
End If Guarda prueba
case3 If Not Campos-validos Then Exit Sub If moss.CommonDialog1 .FileName = "" Then
If Deq-dialogo(2) Then If moss.CommonDialog1 .FileName 0 "" Then
Guardar-como "guardar como", True archivoqrueba = moss.CommonDialog1 .FileName
End if End If
Guardar-como 'guardar", True Else
End If 'Guarda como case4
If Not Campos-vaüdos Then Exit Sub If Deq-dialogo(2) Then Ifmoss.CommonDialog1.FileName O ''I' Then
Guarda-como "guarda como", True archivoqrueba = moss.CommonDialog1 .FileName
End If
'Importar pruebas case 5
End If
moss.CommonDialog1 .FileName = "" If Dew-dialogo(3) Then If moss.CommonDialog1 .FileName O "" Then If FileLen(moss.CommonDialog1 .FileName) = O Then
Msg = "El archivo "' + moss.CommonDialog1.FileName + "' esta vacio" MsgBox Msg, 48, "Moss 1.0" moss.CommonDialog1 .FileName = archivoqrueba
Screen.MousePointer = 1 1 : tot-imp = O Else
If Impomqruebas(moss. CommonDialog 1 .FileName, tot-imp) Then Msg = "Pruebas capturadas: 'I & tot-imp & Chr$( 10) & 'I ¿Desea guardarlas?" IfMsgBox@ísg, 36, "Moss 1.0") = 6 Then 'Selección "Si" moss.CommonDialog1.FileName = archivoqrueba If moss.CommonDialog1 .FileName = "" Then
If Desp-dialogo(2) Then If moss.CommonDialog1 .FileName C. Then
archivoqrueba = moss. CommonDialogl .FileName Copiaqruebas tot-imp Guardar-como "guardar como", False
End If
moss.CommonDialog1 .FileName = archivoqrueba Else
End If
Copiaqruebas tot-imp Guardar-como "guardar", False
Else
End If
moss.CommonDialog1.FileName = archivoqrueba Else
End If
moss. CommonDialogl .FileName = archivo-prueba Else
End If Screen.MousePointer = O
End If End If
moss.CommonDialog1 .FileName = archivoqrueba Else
End If
Case 6 'Limpia pruebas
Nombre") Then Exit Sub If Pmeba.Nombre.ListCount = O And (Prueba.Nombre.Text 0 'It' Or Prueba.Nombre.Text 0 "Sin
IfMsgBox("¿Confirma la eliminación de las pruebas?", 36, "Moss 1.0") = 6 Then If Limpiaqruebas(totqru) Then
MsgBox "Pruebas borradas: 'I & totqru & I* I*, 48, "MOSS 1.0" Pmeba.Nombre. Clear PmebasTot = O: PruebasIdx = O Presentaqrueba 3
End If End If
If mnd?ruebas(7).Caption = "Cambiar a &modo Supervisor" Then case 7
Tip = 3 Clave.Show 1
Modo-Moss "usuario" mnuPruebas(7).Caption = "Cambiar a &modo Supervisor" modosuper = False
Else
End If
Imprime-ca
Unload moss
Case 9 'Imprimir
case 1 1 'Salir
End Select End Sub
'*El modulo mnuventana hace referencia a cada una de las * '* opciones del menú Ventana del sistema Moss Private Sub mnuVentana-Click (Index As Integer)
*
Select Case Index Case 1
Case2
case 3
Case 4
End Select
moss.Arrange O 'CASCADE
moss.Arrange 1 'TILE-HORIZONTAL
moss. Arrange 2 'TILE-VERTICAL
moss.Arrange 3 'ARRANGE-ICONS
End Sub
'* Llena el arreglo de preguntas con el texto del archivo pregmoss * Private Sub Preguntas-moss () Dim archivo As String, i As Integer, linea As String
archivo = AppPath + "\pregmoss.íxt" 'archivo de preguntas On Error GoTo ñn Open archivo For Input Lock Read As #1 Len = 32767 Line Input #1, linea If Trim$(linea) = "kguntas para la prueba MOSS" Then 'Verifica archivo i = 1 Do While Not EOF( 1) Line Input #1, linea If Trim$(linea) O "" Then
'Carga las preguntas del archivo al arreglo
Questions(i) = Trim$(linea) i = i + l
End If LOOP
Else: GoTo fin End If Close #1 Exit Sub
MsgBox 'I Error en el archivio de preguntas de la prueba MOSS" fín:
End Sub
' *Llena el arreglo de repuestas con el texto del archivo respmos * Private Sub Respuestas-moss 0 Dim archivo As String, i As Integer, j As Integer, linea As String
archivo = AppPath + "bespmoss.txt" ' archivo de respuestas On Error GoTo ñn Open archivo For Input Lock Read As #1 Len = 32767 ' archivo Line Input #1, linea IfTrim$(linea) = "Respuestas para la prueba MOSS" Then
i = 1 Do While Not EOF( 1)
Line Input #1, linea If Trim$(iinea) O "" Then
'Carga las preguntas del archivo al m e g o
Forj = 1 To4 If Not EOF( 1) Then
,
Line Input #1, linea respuesta& j) = Trim$(linea)
End If Next j
End If
Else: GOTO fin End If Close #1 Exit Sub
MsgBox "Error en el archovo de respuestas de la prueba MOSS"
i = i + l
LOOP
ñn:
End Sub
'*Llena la lista de Relaciones Humanas (Adaptabilidad) * '* con sus respectivos rangos los cuales son personalizados *
Private Function Presenta-rangos (archivo As String) '*por el usuario. *
Dim reg As Rel-Humanas, i As Integer, num As Integer
Presenta-rangos = False On Error GOTO hqresenta num = FreeFile Open archivo For Random Access Read Lock Read As #num Len = Len(ranusu) If FileLen(archiv0) = O Then Exit Function 'Introduce los rangos de Relaciones Humanas en un arreglo temporal For i= 1To5
Get # n u i, reg Relaciones(i) = reg
Next i Close #num Presenta-rangos = True idxrel = 1 Carga-rangos
finqresenta: Exit Function End Function
'*Llena la lista de Relaciones Humanas ' *y presenta el texto asociado para cada una de estas. * '* Este texto es personalizado por el usuario y es utilizado *
Private Function Presenta-texto (archivo As String, num-re1 As Integer, nom-nivel As String)
*
'* en la generación del reporte. *
Dim reg As Rel-Humanas, i As Integer, Msg As String, num As Integer Dim linea As String
Presenta-texto = False On Error GOTO fin-arch num = FreeFile Open archivo For Input Access Read Lock Read As #num Len = 32767 If FileLen(archiv0) = O Then Exit Function 'Introduce texto de Relaciones Humanas Do Until EOF(num)
Line Input #nun, linea
If Trim$(linea) = Trim$(Rel-Hum.List(num-re1 - 1)) Then Do While Not EOF(num)
Line Input hum, linea If Trim$(linea) = nom-nivel Then
Carga-texto (num): GoTo cont End If
LOOP End If
LOOP
Close h u m Presenta-texto = True
fin-arch: Exit Function End Function
a n t :
'* Reporte-local, presenta el reporte de la persona que * '* resolvío la prueba dentro de la aplicaci6n Moss, * '* utilizando los textos definidos previamente '* en el modulo Texto del reporte.
* *
Sub Reporte-local (tipo-reporte) Dim SexoL As String, i As Integer, Texto As String
Screen.MousePointer = 11 'Se asigna el texto según niveles reporte-moss = '"' If tipo-reporte = O Then 'Breve
F o r i = 1 T o 5
Next i
If Not Presenta-texto(AppPath + "\Textosrh.M") Then
reporte-moss = reporte-moss + nombres(i - 1) & 'I & Caliñcaciones(i - 1) & ' I % & nl + ni
Else
MsgBox "No se puede accesar el archivo: "*' + AppPath + "\Textosrh.txt" + '11111, 48, "Moss 1.0" reporte-moss = reporte-moss + nl + nl
End If End If RepL0cal.Textorep = datos() & "CALIFICACION DEL, MOSS" & nl & nl & nivel-moss(1) & reporte-moss RepLocai.Show Screen.MousePointer = O End Sub
'* Reporte- Word, presenta el reporte de la persona que * '* resolvío la prueba en la el editor de texto Word, * '* utilizando los textos definidos previamente '* en el modulo Texto del reporte.
* *
Private Sub Reporte-Word @a As Integer, report As Integer) Dim Num-file As Integer, archivo As String, Texto As String, i As Integer Dim Msg As String Screen.MousePointer = 1 1 : reporte-moss = "" If report = O Then 'Breve
For i= 1 T o 5
Next i
'Se asigna el texto según niveles If Not Presenta-texto2(AppPath + "\Textosrh.txt") Then
reporte-moss = repofle-moss & titulo3(nombres(i - I) & 'I " & Calificaciones(i - 1) & "%")
Else
MsgBox "No se puede accesar el archivo: 'I" + AppPath + "\Textosrh.txt" + 111"1, 48, "Moss 1.0" End If
End If
If pa = 2 Then 'Pantalla
Else 'Archivo archivo = AppPath + "mrtes\" + Trim$(Prueba.Nombre.Text) + ".doc"
Graba-Archivo archivo, 6 If archivo = ''" Then
End If Screen.MousePointer = O: Exit Sub
End If On Error GOTO fin-rep Num-ñle = FreeFile Open archivo For Output As #Num-file Print #Num-file, REPHeader(Format!$(Prueba.Nombre.Text)) Print #Num-file, titulol("DAT0S PERSONALES") Print #Num-ñle, datoswo Print #Num-ñle, titulol("CALIFICACI0N DEL MOSS") Print #Num-ñle, nivel-moss(0) Print #Num-file, reporte-moss Print #Num-file, FinREP Close #Num-file If pa = 2 Then 'Pantalla
WordPantalla archivo End If Screen.MousePointer = O: Exit Sub fb-rep: IfErr= 70 Then
Msg = "Acceso denegado de: "" + archivo + ""." Msg = Msg + ni + "El archivo puede estar abierto." MsgBox Msg, 48, "Moss 1.0"
End If Screen.MousePointer = O: Exit Sub End Sub
'* Reporte- WordPad, presenta el reporte de la persona que * '* resolví0 la prueba dentro del editor de WordPad, * '* utilizando los textos definidos previamente '* en el modulo Texto del reporte.
* *
Private Sub Reporte-WordPad (pa As Integer, report As Integer) Dim Num-file As Integer, archivo As String, i As Integer, Msg As String Screen.MousePointer = 1 1 : reporte-moss = "" If report = O Then 'Breve
Fori= 1To5
Next i
'Se asigna el texto según niveles if Not Presenta_text02(AppPath + "\Textosrh.txt") Then
End If
reporte-moss = reporte-moss & titulo3(nombres(i - 1) & I' 'I & Calificaciones(i - 1) & "YO")
Else
MsgBox "No se puede accesar el archivo: "" + AppPath + "\Textosrh.txt" + 111"', 48, "Moss 1.0"
End If
If pa = O Then 'Pantalla
Else 'Archivo archivo = AppPath + "beportes\" + Trim$(Pmeba.Nombre.Text) + ".doc"
Graba-Archivo archivo, 4 If archivo = '"' Then
End If Screen.MousePointer = O: Exit Sub
End If On Error GOTO fin-rep Nun-file = FreeFile Open archivo For Output As #Nun-file Print #Nun-file, REPHeader(Format$(Prueba.Nombre. Text)) Print #Nun-file, titulol("DAT0S PERSONALES") Print #Nun-file, datomo Print #Num-ñle, titulol("CALIFICACI0N DEL MOSS") Print #Num-fíle, nivel-moss(0) Print #Num-ñle, reporte-moss Print #Nun-fíle, FinREP Close #Num-file If pa = O Then 'Pantalla
End If Screen.MousePointer = O: Exit Sub
ifErr = 70 Then
WordPadPantalla archivo
ñn_rep:
Msg = "Acceso denegado de: "" + archivo + ''''.'' Msg = Msg + nl + "El archivo puede estar abierto." MsgBox Msg, 48, "Moss 1.0"
End If Screen.MousePointer = O: Exit Sub End Sub
' * Califica la prueba de acuerdo con, * ' * la tabla de calificación de la prueba Moss * Sub califica-moss (acumula, Hab-sup, Capqrb, Cap-clec, Hab-rel, Sent-com)
Dim resp-correct As Variant Dim i As Integer
resp-correct = Array( ARREGLO CON LAS RESPUETAS CORRECTAS)
Fori= 1To30 Select Case i Case 2,3, 18,24 'Habilidad en supervisión If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-cnrrect(i) Then
acumula = acumula + 1: Hab-sup = Hab-sup + 17
Case 16,30
acumula = acumula + 1: Hab-sup = Hab-sup + 16
Case 7, 12, 19,26 'Capacidad de evaluar problemas
acumula = acumula + 1: Capqrb = Capqrb + 13
Case 9, 14,21,27
acumula = acumula + 1: Capqrb = Capqrb + 12
Case 4,6,20,23,29 'Capacidad de evaluar problemas
acumula = acumula + 1: Cap-dec = Cap-dec + 20 End If
If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-correct(i) Then
End If
If resp-emp(i) = resp-correct(i) Then
End If End Select
Next i End Sub
Case 1, 10, 11, 13,25 'Habilidad para establecer relaciones
acumula = acumula + 1: Hab-re1 = Hab-re1 + 20
Case 5,8, 17,22 'Sentido común y tacto para tratar personal
acumula = acumula + 1: Sent-com = Sent-com + 17
Case 15,28
acumula = acumula + 1: Sent-com = Sent-corn + 16
'* La funcibn Importaqruebas, importa pruebas que se * '* encuentran en formato texto de acuerdo con un formato *
Function Importaqruebas (Arch-Imp, tot-imp) '* de captura previamente establecido *
Dim pos As Integer, i As Integer, Msg As String, fecha, res Dim archivo As String, linea As String, j As Integer
ReDim Arreglo-Aux( 1 To MAX-PRUEBA) As Empleado Importaqruebas = False On Error GoTo fin-arch Open Arch-Imp For Input Lock Read As #1 Len = 32767
tot-imp = O: Line Input #1, linea IfTrim$(linea) = "Captura automática de la prueba MOSS" Then
i = 1 Do Until EOF( 1) If i > MAX-PRUEBA Then
MAX-PRUEBA = MAX-PRUEBA + 15 ReDim Preserve Arre&o-Aux( 1 To MAX-PRUEBA) As Empleado
End If Line Input # 1, linea If Trim$(linea) O "" Then
Arreglo-Aux(i).Nombre = Trim$(Mid(linea, 2,40)) IfVal(Mid(linea, 45,2)) > O Then
Else
End If IfMid(linea, 50, 1) = "MI' Or Mid(linea, 50, 1) = "F" Then
Else
End If Arreglo-Aux(i).ocupacion = Trim$(Mid(linea, 54,30)) res = DatePart("m", Mid(linea, 88, 9)) Arreglo-Aux(i).fecha = Mid(linea, 88, 9)
Arreglo-Aux(i).edad = Val(Mid(linea, 45, 2))
GoTo fin-arch
Arreglo-Aux(i).sexo = Mid(linea, 50, 1)
GoTo fin-arch
End If Line Input #1, linea If Trim$(linea) o "*' Then
pos=2
For j = 1 To 30 If Val(Mid(linea, pos, 2)) = O Then GOTO fin-arch Ifj = 6 And Val(Mid(linea, pos, 2)) > 2 Then GOTO fin-arch Arre@o-Aux(i).RESPUESTAS~) = Val(Mid(linea, pos, 2)) pos=pos+3
Next j End If i = i + l
LOOP tot-imp = i - 1: Impomqruebas = True
GoTo fin-arch Else
End If Close # 1 : Exit Function
fin-arch: MsgBox "!Error al importar las pruebas! 'I, 48, "Moss 1.0" On Error Resume Next Close #1: Screen.MousePointer = O End Function
'*De acuerdo a los rangos establecidos en el modulo '*Definir rangos, se asignan los niveles Bajo, Medio o Alto * '* en los textos determinados para la generación del reporte. * Sub niveles-moss () 'De a d o a los porcentajes se determina el nivel Dim i As Integer, num As Integer, Calificaciones As Variant 'Introduce los rangos de Relaciones Humanas If Not rangos-moss(AppPath + "\rangos.txt") Then
End If
*
MsgBox "No se puede accesar el archivo: "" + AppPath + "\rangos.txt" + '''''', 48, "Moss 1.0"
acumula = O Hab-sup = O: Capgrb = O: Cap-dec = O: Hab-rel= O: Sent-com = O califica-moss acumula, Hab-sup, Capqrb, Cap-dec, Hab-rel, Sent-com 'Asigna los niveles a las Relaciones Humanas ReDim Niveles( 1 To 5 ) W c a c i o n e s = hy(Hab-sup, Capjrb, Cap-dec, Hab-rei, Sent-cam) F o r i = 1 T o 5
If Calificaciones(i - 1) >= O And Calificaciones(i - 1) < Relaciones(i).nivel-medioi Then
ElseIf Calificaciones(i - 1) > Relaciones(i).nivel-bajo And Calificaciones(i - 1) < Relaciones(i).nivel-alto Niveles@ = "Bajo"
Then Niveles(i) = "Medio"
Niveles(i) = "Alto" Else
End If Next i
End Sub
* Para cada una de las preguntas, se presenta de * *forma visual la resolución de la prueba Moss *
Sub Pregunta-respuestas (numjreg As Integer) Dim i As Integer
Prueba.Preguntas.Text = Questions(numqreg) 'Carga preguntas For i= 1 T o 4
Prueba.Resp(i). Caption = respuesta(numqreg, i) 'Carga respuestas Next i
'Marca una de las cuatro respuestas o las limpia del anterior If resp-emp(nmjreg) O O Then
Else Prueba.Resp(resp-emp(nmjreg)). Value = True
Fori= 1To4 'Si no contestado limpia
Next i End If Prueba.contador.Text = numqreg Ifnumqreg = 1 Then
Else
End If If n u j r e g = 30 Then
Else
End If If numqreg = 6 Then
Prueba.Resp(i).Value = False
'Contador de pregunta 'Valida anterior
Prueba.anterior.Enab1ed = False: Prueba.anterior.TabStop = False
Prueba.anterior.Enabled = True: Prueba.anterior.TabStop = True
Prueba.Siguiente.Enab1ed = False: Prueba. Siguiente.'TabStop = False
Prueba. Siguiente.Enabled = True: Prueba.Siguiente.TabStop = True
'Presenta opciones pregunta 6 Prueba.Resp(3).Visible = False: Prueba.Resp(3).TabStop = False Prueba.Resp(4).Visible = False: Prueba.Resp(4).TabStop = False
Prueba.Resp(3).Visible = True: Prueba.Resp(3).TabStop = True Prueba.Resp(4).Visible = True: Pnieba.Resp(4).TabStop = True
Else
End If End Sub
'* Se presenta la prueba en pantalla de acuerdo *
Sub Presentagrueba (ind As Integer) '* a los diferntees casos. *
Dim i As Integer, j As Integer, Porcent As Integer ReDim Preserve Pruebas( 1 To MAX-PRUEBA) As Empleado
On Error GOTO finqresenta Screen.MousePointer = 11 Select Case ind Case 1 'NuevaPrueba
PruebasTot = 1: PruebasIdx = 1 Prueba.Nombre = "Sin Nombre": Prueba.fecha.Text = Format$(Now, "dd-mmm-yy") Prueba.eúad.Text = "20": Prueba.sexo(O).Value = True Prueba.ocupacion.Text = '"'
Fori=lTo30 resp-emp(i) = O 'Respuestas del empleado Prueba.Comp(i).Caption = "Xi': Prueba.Comp(i).ForeColor = &HFF&
Next i
*Llena los datos generales del empleado Prueba.Nombre.Text = RTrim$(Pniebas(PruebasIdx).Nombre) Prueba.edad.Text = Str$(Pruebas(PruebasIdx).edad) If UCase$(Pruebas(PniebasIdx).sexo) = "M" Then
Else
End If Prueba.ocupacion.Texi = RTrim$(Pruebas(PruebasIdx).ocupacion)
case 2
Prueba.sexo(O).Value = True
Pruebasexo( l).Value = True
Prueba.fecha.Text = Pruebas(PruebasIdx).fecha
Fori= 1To30 resp-emp(i) = Pruebas(PruebasIdx).RESPUESTAS(i) If resp-emp(i) O O Then Porcent = Porcent + 1 Prueba.ProgressBar1 .Value = Porcent Prueba.Comp(i).ForeColor = &HFFOOOO: Prueba.Comp(i).Caption = i
Prueba.Comp(i).ForeColor = &HFF& Else
End If Next i Prueba.HScroll1 .Value = 1
Prueba.Nombre = "Sin Nombre": Prueba.fecha.Text = Format$(Now, "dd-mmm-yy") Prueba.edad.Text = "20": Prueba.sexo(O).Value = 'True Prueba.mpacion.Text = ""
Case 3 'Nueva prueba dentro de la forma prueba
Fori= 1To30 resp-emp(i) = O 'Respuestas del empleado Prueba.Comp(i).Caption = "X'? Prueba.Comp(i).ForeColor = &€IFF&
Next i Pmeba.HScroll1 .Value = 1 Prueba.ProgressBarl.Value = O PruebasTot = PruebasTot + 1 : PruebasIdx = PruebasTot
Fori= 1To30 case4
resp-emp(i) = O 'Respuestas del empleado Prueba.Comp(i).Caption = '*Xi': Prueba.Comp(i).ForeColor = &HFF&
Next i Prueba.HScrolil.Value = 1 Prueba.ProgressBar1.Value = O
Fori= 1To30 case 5
resp-emp(i) = O 'Respuestas del empleado Prueba.Comp(i).Caption = "Xi': Prueba.Comp(i).ForeColor = &HFF&
Next i Prueba.ProgressBar1.Vaiue = O
'Llena los datos generales del empleado Prueba.edad.Text = Str$(Pruebas(PruebasIdx).edad) If UCase$(Pruebas(PruebasIdx).sexo) = "Mf Then
Else
End If Pruebamupacion. Text = RTnm$(Pruebas(PruebasIdx).ocupacion) Prueba.fecha.Text = Pruebas(PruebasIdx).fecha
Prueba.sexo(O).Value = True
Prueba.sexo(l).Value = True
Fori= 1To30 resp-emp(i) = Pruebas(PruebasIdx).F¿ESPUESTAS(i) Ifresp-emp(i) 0 O Then Porcent = Porcent + 1 Prueba.ProgressBar1 .Value = Porcent Prueba.Comp(i).ForeColor = &HFFOOOO: Prueba.Comp(i).Caption = i
End If Next i Prueba.HScrolll.Value = 1
,
End Select numero = 1 Pregunta_respuestas (1) Prueba.Nombre. SelStart = O: Prueba.Nombre.SelLength = Len(Prueba.Nombre.Text) Prueba.Nombre. SetFocus nombre-actual = Prueba.Nombre: cambiado = False Screen.MousePointer = O: Exit Sub
Screen.MousePointer = O: MsgF3ox La prueba no se pudo cargar ñnqresenta:
End Sub
'* Carga la clave de autorización de uso del sistema * '* así como la del cambio de modo Sub Cargarclave (1 Dim i%, Contraseña$, IpFileNameS, lpAppName$, lpKeyName$, lPDefadt$, lPReturnStnng$ Dim encontrado&, Size&, Valid&, Msg As String Dim Company$, user$, Compania$, Usuario$, Numbers, NumeroAuth$, mmero$, fecha$
*
'Obtener el Número de Autorización lpFileName$ = AppPath + "Unoss.ini" lpAppName$ = TONTRASEÑAII lpKeyName$ = "Autorizacion": lpDefault$ = "'? lpReturnString$ = Space$(l5): Size& =
Len(lpReturnString$)
Valid& = GePrivateProñleStringA(lpAppName$, lpKeyName$, lpDefault$, lpReturnString$, Size&,
Number$ = Trim$(Left$(lpReturnString$, Size&)) If Valid& = O Then GoTo Copia-No-Autorizada IfRight$(Number$, 1) < Chr$(33) Or Right$(Number$, 1) > Chr$(255) Then
Else
End If 'Obtener la Compañia lpFileName$ = AppPath + "Unoss.ini" lpAppName$ = i i ~ ~ ~ ~ ~ Ñ ~ i i IpKeyName$ = "Compañia": lpDefault$ = "": lpReturnString$ = Space$(SO): Size& =
Valid& = GetPrivateProfileStringA(lpAppName$, lpKeyName$, lpDefault$, lpReturnString$, Size&,
Company$ = Trim$(Left$(lpReturnString$, Size&)) encontrad& = Valid& 'Obtener el Usuario lpKeyName$ = "Usuario": lpDefault$ = "": lpReturnSiring$ = Space$(SO): Size& = Len(lpReturnString$) Valid& = GetPrivateProfileStringA(lpAppName$, lpKeyName$, lpDefault$, IpReturnStringS, Size&,
user$ = Trim$(Left$(lpReturnString$, Size&))
IpFileNameS)
NumeroAuth = Left$(Number$, Len(Number) - 1)
NumeroAuth = Number$
Len(lpReturnString$)
lpFileName$)
lpFileName$)
Ifencontradoa O O And Valid& O O Then IfRight$(Company$, 1) < Chr$(33) Or Right$(Company$, 1) > Chr$(255) Then
Else
End If IfRight$(user$, 1) < Chr$(33) Or Right$(user$, 1) :> Chr$(255) Then
Else
Compania$ = Left$(Company$, Len(Company) - 1)
Compania$ = Company$
Usuario$ = Left$(user$, Len(user$) - 1)
Usuario$ = user$ End If
'Version Demo: obtener la fecha lpAppName$ = "DEMO" lpKeyName$ = "Fecha": lpDefault$ = "? lpRetumString$ = Space$(SO): Size& = Len(lpReturnString$) Valid& = GetPrivateProfileStringA(lpAppName$, lpKeyName$, lpDefault$, lpReturnString$, Size&,
fecha$ = Trim$(Left$(lpReturnString$, Size&)) If Valid& o O Then
lpFileName$)
IfRigñt$(fecha$, 1) < Chr$(33) Or Right$(fecha$, 1) > Chr$(255) Then
End If fecha$ = encripta(Left$(fecha$, Len(fecha$) - 1))
End If
'Version Demo numero$ = CalculaNumero(Compania$ + fecha$, Usuario$ + fecha$)
'Version Comercial 'numero$ = CalculaNumero(Compania$, Usuario$)
If numero$ o NumeroAuth$ Then
End If
GOTO Copia-No-Autorizada
GoTo Copia-No-Autorizada
Else
End If
Version Demo: obtener numero de accesos 'If ObtenerNumAcasos(fecha$) = False Then
'End If &To Copia-No-Autorizada
ClaveGR = ""
'Obtener la Contraseña IpFileName$ = AppPath + "\moss.ini lpAppName$ = **CONTRASEÑA~~ lpKeyName$ = "Password": lpDefault$ = "": lpRetuniString$ = Space$(lO): Size& =
Valid& = GetPrivateProfileStringA(lpAppName$, IpKeyNames, lpDefault$, lpReturnString$, Size&,
ContraSeña$ = Trim$(Left$(lpReturnString$, Size&)) encontrado& = Valid&
Len(lpReturnSíring$)
lpFileName$)
Ifencontrado& 0 O Then IfRight$(ContraSeña$, 1) < Chr$(33) Or Right$(ContraSeña$, 1) > Chr$(255) Then
Else
End If 'Entra en modo usuario Modo-Moss iiusuario"
ClaveGR =
Msg = "No ha sido definida la ContraSeña" + Chr( 13) + Chr( 10) Msg = Msg + "Si no la define no se podrá continuar con la ejecución de Moss 1.0" + Chr(l3) + Chr(l0) Msg = Msg + "Vuelva a instalar Moss 1.0 para definir la ContraSeña."
ClaveGR = encripta(Left$(ContraSeña$, Len(ContraSeña) - 1))
ClaveGR = encripta(ContraSeña$)
Else
MsgBox Msg, 16, "Moss 1.0" End
End If Exit Sub
Copia-No-Autorizada: Msg = "Copia no Autorizada de Moss 1 .O" + Chr( 13) + Chr( 10) Msg = Msg + "No se puede continuar con la ejecución." + Chr( 13) + Chr( 10) Msg = Msg + "Si desea una copia autorizada comuniquese a:" + Chr(l3) + Chr( IO) Msg = Msg + "Ventas: 6584778" + Chr( 13) + Chr(l0) Msg = Msg + "Soporte Técnico: 658-3705" + Chr(l3) + Chr(l0) Msg = Msg + "e-mail: [email protected]. mx" MsgBox Msg, 16, "Moss 1.0" End
End Sub
'* Se despliengan las dijerentes cajas de dialogo '* usadaspor windows para abrir y guardar archivos .* Function Desp-dialogo (Caso As Integer)
On Error GoTo ñn-dialogo Const OFN-HIDEREADONLY = &H4& Const OFN-PATHMüSTEXIST = &HSOO& Const OFN-EXTDIF = &H400& Desp-dialogo = True Select Case Caso
Abrir prueba Moss
moss.CommonDialog1 .DiaiogTitle = "Abrir" moss.CommonDialog1 .InitDir = App.Path moss.CommonDialog1.Filter = "Moss (*.mos)l*.moslTodos los archivos (*.*)I*.*" moss.CommonDialog1 .nags = OFN-HIDEREADONLY Or OFN-PATHMUSTEXIST Or
moss.CommonDialog1 .ShowOpen Saivar prueba Moss
moss.CommonDialog1 .DialogTitle = "Guardar como" moss.CommonDialog1 .InitDir = App.Path moss. CommonDiaiog 1 .Filter = "Moss (* .mos)l* .mos" moss.CommonDialog1 .DefadtExt = ".mos" moss. CommonDiaiog 1 .Flags = OFN-HIDEREADONLY Or OFN-PATHMüSTEXIST Or
moss.CommonDiaiog1. ShowSave
*
case 1
Om-EXTDIF
Case 2
OFN-EXTDIF
'Abrir archivo Texto Case 3
moss. CommonDiaiog 1 .DiaiogTitle = "Importar pruebas" moss.CommonDiaiog1.InitDir = App.Path moss.CommonDialog1 .Filter = "Texto (*.txt)l*.txtlTodos los archivos ( * . * ) I * . *" moss.CommonDialog1 .Flags = OFN-HIDEREADONLY Or OFN-PATHMUSTEXIST Or
moss.CommonDialog1. ShowOpen
moss.CommonDialog1 .DialogTitie = "Guardar como" moss.CommonDialog1 .InitDir = AppPath + Yreportes" moss.CommonDialog1 .FileName = Trim$(Prueba.Nombre.Text) moss.CommonDiaiog1 .Filter = "Archivos WordPad DOC (*.doc)l*.doc" moss. CommonDialog 1 .DefaultExt = 'I. doc"
OFN-EXTDIF
Case 4 'Guardar Como, archivo WordPad
moss.CommonDialog1 .Flags = OFN-HIDEREADONLY Or Om-PATHMUSTEXIST Or
moss.CommonDialog1. ShowSave
moss. CommonDialog 1 .DialogTitie = "Limpiar pruebas" moss.CommonDialog1.IniíDir = App.Path moss. CommonDialog 1 .Filter = "Moss (*.mos)l* .mos" moss.CommonDialog1 .Flags = OFN-HIDEREADONLY Or OFN-PATHMUSTEXIST Or
moss.CommonDiaiog1. ShowOpen Case 6 'Guardar Como, archivo Word moss.CommonDialog1.DialogTitle = "Guardar como" moss.CommonDialog1 .InitDir = AppPath + Yreportes" moss. CommonDialogl .FileName = Trim$(Prueba.Nombre.Text) moss.CommonDialog1.Filter = "Archivos Word DOC (*.doc)l*.doc" moss.CommonDialog1 .DefaultExt = ".doc" moss. CommonDialog 1 .Flags = OFN-HIDEREADONLY Or OFN-PATHMUSTEXIST Or
moss.CommonDialog1. ShowSave
OFN-EXTDIF
Case 5 'Limpiar pruebas Moss
OFW-EXTDIF
OFN-EXTDIF
End Select Exit Function
fin-dialogo: If Err = 32755 Then
End If End Function
Err.Clear: Deq-dialogo = False: Exit Function