ingeniero en sistemas...

212
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “Desarrollo de una Herramienta CAAT LUPA 1.0” Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autores: DANNY HUANCAYO ROMULO RODRIGUEZ PEDRO VELEZ GUAYAQUIL-ECUADOR Año: 2008

Upload: ngomien

Post on 21-Sep-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en SistemasComputacionales

“Desarrollo de una Herramienta CAAT LUPA 1.0”

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autores:

DANNY HUANCAYO

ROMULO RODRIGUEZ

PEDRO VELEZ

GUAYAQUIL-ECUADOR

Año: 2008

AGRADECIMIENTO

EN PRIMER LUGAR

QUIEREMOS AGRADECER A

DIOS POR HABERNOS DADO

LA VIDA Y LA CAPACIDAD

PARA LOGRAR NUESTRAS

METAS.

A NUESTROS PADRES QUE

SON PILARES

FUNDAMENTALES, GRACIAS

POR SU APOYO, SU AMOR Y

LA PACIENCIA QUE NOS

BRINDARON PARA LOGRAR

ESTE OBJETIVO.

DEDICATORIA

ESTE TRABAJO QUE CON

TANTO ESFUERZO QUE LO

HEMOS REALIZADO SE LO

QUIEREMOS DEDICAR EN

PRIMIER LUGAR A DIOS,

DESPUES A NUESTROS

PADRES QUE SIEMPRE

ESTUVIERON A NUESTRO

LADO APOYANDONOS Y

ACONSEJANDONOS CADA

DIA, A NUESTROS

COMPAÑEROS YA QUE CON

ELLOS ME APOYÉ CADA DIA

CUANDO CREIA QUE NO

PODIA.

TRIBUNAL DE GRADUACIÓN

Presidente – Tribunal 1er. Vocal

2do. Vocal Secretario

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)

Vélez Duque Pedro Iván

Huancayo López Danny

Rodríguez Quintana Rómulo Eduardo

RESUMEN

La herramienta CAAT’s fue desarrollada para proveer unimportante aporte a los auditores que desconocen que hay enel mercado herramientas que realizar operación propias de suactividad y por ende se diseño e implemento un software quepuedan realizar pruebas y recolección de evidencia de datosalmacenados en cualquier Base de Datos y realizaroperaciones especificas como operaciones en columnasvirtuales, filtros de consulta, además de estratificación dedatos, duplicidad de registros y salto de secuencia y ademacuenta con un una extensión de archivos especifica y puedeser utilizar solo por la aplicación. Esta aplicación fue diseñadausando la arquitectura cliente/servidor de plataforma .Netespecíficamente Visual Basic como herramienta de desarrolloy complementariamente Spread Windows Forms para podervisualizar los datos y API de Windows que me permitanrealizar la operación de importación de datos. Para poderrealizar interactuar con el software debemos crear un cliente,luego una base de datos, luego importamos un archivo o basede datos donde iremos mostrando las tablas, campos einformación contenida ya sea que este en el equipo local ytambién en un ambiente de red. Para el desarrollo de nuestraaplicación hemos considerado los siguientes requerimientosde tales opciones que deben brindar la aplicación que estetenga como Sistema Operativo Windows XP o posterior ybases de datos y archivos compatibles para las pruebas.

INDICE GENERAL

AGRADECIMIENTO IDEDICATORIA IITRIBUNAL DE GRADUACIÓN VIIDECLARACIÓN EXPRESA VIIIRESUMEN IXINDICE GENERAL X

INDICE DE CONTENIDO

PARTE ICAPÍTULO 1

INTRODUCCIÓN 11.1 ANTECEDENTES 21.2 PROBLEMÁTICA 31.3 SOLUCIÓN DE LA PROBLEMÁTICA 31.4 MISIÓN 41.5 VISIÓN 41.6 OBJETIVOS GENERALES 51.7 OBJETIVOS ESPECÍFICOS 51.8 ALCANCES 61.9 VENTAJAS 71.10 DESVENTAJAS 71.11 METODOLOGIA DE DESARROLLO DEL PROYECTO 8 1.11.1 MODELO DE DESARROLLO 8 1.11.2 METODOLOGIA 91.12 ARQUITECTURA 111.13 RECURSOS 12

1.13.1 HUMANO 121.13.2 HARDWARE 121.13.3 SOFTWARE 13

1.14 PROCESO DE PLANIFICAICON Y CRONOGRAMA 131.14.1 CRONOGRAMA DE ACTIVIDADES 15

1.14.2 METODOS DE ESTIMACION 16

CAPITULO II: ANALISIS 192.1. LEVANTAMIENTO DE INFORMACION 20 2.1.1 INVESTIGACION DE LA COMPETENCIA 202.2. ANALISIS DE REQUERIMIENTOS 28 2.2.1 ANALSIS DE RECURSOS HUMANOS 282.3. ESTUDIO DE FACTIBILIDAD 282.4. ANALISIS DE ORIENTADO A OBJETO 30

2.4.1. DEFINICIOON DE USUARIO DEL SISTEMA 30 2.4.2 ESPECIFICACIONES DE LOS REQUISITOS DEL SISTEMA 30 2.4.3. DIAGRAMA OBJETO RELACION 31 2.4.4 DIAGRAMA DE CASO DE USO 32 2.4.4.1 DIAGRAMA GENERAL DEL SISTEMA 33

2.4.4.2 DIAGRAMA DE MENU 34 2.4.4.3 DIAGRAMA DE BARRAS DE HERRAMIENTAS 352.4.4.4 DIAGRAMA DE EXPLORADOR DE DATOS 362.4.4.5 DIAGRAMA DE VENTANA DE TABLAS IMPORTADAS 37

2.4.5 DIAGRAMA DE FLUJO DE OBJETOS DEL SISTEMA 38 2.4.5.1 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 2 39 2.4.5.2 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 3 40 2.4.6 DIAGRAMA DE SECUENCIA 41 2.4.7 DIAGRAMAS DE TRANSICION DE ESTADO 42

CAPITULO IIIDISEÑO 443.1. DISEÑO ARQUITECTONICO DEL SISTEMA 453.1.1 DESCRIPCION DEL DISEÑO ARQUITECTONICO DEL SISTEMA 463.2 DISEÑO DE DATOS 47

3.2.1 IMPORTACION DE DATOS 473.2.2 OPERACIONES A REALIZAR CON DATOS IMPORTADOS 473.2.3 EMISION DE REPORTES 47

3.3 DISEÑO DE LA INTERFAZ 483.3.1 MENU PRINCIPAL 483.3.2 ARCHIVO CONEXIÓN 49

3.3.3 BREVE DESCRIPCION DE LOS MODULOS 55

CAPITULO IVDESARROLLO DEL SISTEMA 564.1. ARCHIVO 574.2. IDENTIFICACION DE ESCENARIOS 574.3 SELECCIÓN DE CLASES Y OBJETOS USANDO LOS REQUISITOS BÁSICOS COMO GUÍAS.

63

4.3.CONFIGURACION DEL SISTEMA LUPA 1.0 654.3.1. INSTALACION DEL SISTEMA OPERATIVO WINDOWS XP 65

4.4. CONFIGURACION DEL ODBC DE LAS BASES DE DATOS 654.5. INSTALACION DE LUPA 1.0 65

CAPITULO VRECOMENDACIONES Y CONCLUSIONES 665.1 RECOMENDACIONES 67

5.1.1. HARDWARE 675.1.2. SOFTWARE 67

5.2. CONCLUSIONES 68

INDICE DE FIGURAS

FIGURA 1 8FIGURA 2 11FIGURA 3 15FIGURA 4 16FIGURA 5 22FIGURA 6 22FIGURA 7 23FIGURA 8 23FIGURA 9 24FIGURA 10 24FIGURA 11 25FIGURA 12 26FIGURA 13 31FIGURA 14 33FIGURA 15 34FIGURA 16 35FIGURA 17 36FIGURA 18 37FIGURA 19 38FIGURA 20 39FIGURA 21 40FIGURA 22 41FIGURA 23 42FIGURA 24 42FIGURA 25 43FIGURA 26 45FIGURA 27 48

FIGURA 28 48FIGURA 29 49FIGURA 30 49FIGURA 31 50FIGURA 32 50FIGURA 33 51FIGURA 34 51FIGURA 35 52FIGURA 36 52FIGURA 37 53FIGURA 38 53FIGURA 39 54FIGURA 40 54FIGURA 41 55

INDICE DE TABLAS

TABLA 1 17TABLA 2 17TABLA 3 18

TABLA 4 29TABLA 5 58TABLA 6 59TABLA 7 60TABLA 8 61TABLA 9 62TABLA 10 63TABLA 11 63TABLA 12 64TABLA 13 64TABLA 14 64

CAPITULO 1

INTRODUCCION

Esta herramienta de Investigación de

Archivos para auditores, contables e

investigadores fácil llevar a cabo

análisis complejos de datos,

extracciones de elementos poco

usuales, muestras de auditoria,

transacciones duplicadas y muchas

más funciones usando la interfaz de

Windows intuitivo diseñado de forma

especial.

Se ha diseñado desde un principio

como un software de Windows con

atención considerable hacia la

sencillez y la intuitividad de la

interface del usuario.

1

1.1 ANTECEDENTES

Analizar los datos de muchas maneras y permite la extracción, muestreo y

manipulación de datos para identificar errores, problemas, asuntos

específicos y tendencias.

A más de eso por medio de la tecnología, en el Ecuador no existe una

herramienta que realice las tareas de análisis y de importación de datos y

operaciones que ayuden a resolver problemas de obtención de evidencias

de auditoria.

SAS No. 94 dice que en una organización que usa Tecnologías de

Información IT, se puede ver afectada en uno de los siguientes cinco

componentes del control interno: El ambiente de control, evaluación de

riesgos, actividades de control, información, comunicación y monitoreo

además de la forma en que se inicializan, registran, procesan y reporta las

transacciones.

La norma SAP 1009 denominada CAATs plantea la importancia de su uso

en auditorias en un entorno de sistemas de información por computadora.

¿QUE SON CAAT’S? (Computer Assisted Audit Techniques)

SAP 1009 los define como programas de computador y datos que el

auditor usa como parte de los procedimientos de auditoria para procesar

datos de significancia en un sistema de información.

SAP 1009 describe los procedimientos de auditoria en que pueden ser

usados las CAATs:

LA CLASIFICACION DE CAAT’S

Básicos: Procesadores de Texto, Planilla de calculo, Presentaciones,

Productos Adobe, Software de Prod. Personal,

Intermedio: ACL, IDEA, Producto Method ware: Ranking Advisor, Proaudi

Advisor, COBIT, Advisor, Audit Builder, Otros Extractores y analizadores

de archivo

Complejos: SQL, Quero, Dataentry, Dump, Trace, Debugger, Mapping,

Otros Utilitario del S.O.

CISC UNIVERSIDAD DE GUAYAQUIL

Altamente Complejos: SCAN (RNA), Otro SW. (IA).

1.2 PROBLEMÁTICA

En la actualidad se experimenta ineficiencia a la hora de obtener

información fiable en cuanto a informes que entrega la gerencia para el

elaboración de recolección de evidencia en marco de una auditoria.

Otros de los problemas es el desconocimiento de herramientas CAATS en

el mercado local, ya que es muy importante en cuanto a analizar,

manipular y procesar información para quienes realizan estas

operaciones.

1.3 SOLUCIÓN A LA PROBLEMÁTICA

La respuesta en gran parte de la solución de esta problemática, es un

dispositivo independiente, es esta CAAT, con la implementación de este

sistema se podrá llevar un mejor control a los problemas mencionados.

Esta dirigido para usuarios que como mínimo, tengan conocimiento básico

de una hoja de calculo como MS Excel.

Descrita la problemática existente nosotros decidimos implementar una

aplicación con una interfaz amigable, en el cual se puede extraer

información de cualquier base de datos tendrá un mejor control de las

acciones de los usuarios conectados a esta, de los recursos físicos y

CISC UNIVERSIDAD DE GUAYAQUIL

también los servicios que requiera el usuario en el momento de un

proceso de análisis.

1.4 MISIÓN

Contribuir con una herramienta de software que permita tener

conocimientos técnicos administrativos y flexibilidad ampliada en los

recursos de almacenamiento con una extensión de archivos propias, así

como el estudio donde se realizara la implantación del mismo, de esta

manera poder tener una estimación de costo que conllevaría hacerlo,

establecer controles por medio del usuario para poder administrar,

manipular, exportar cada uno de los recursos que requiera la organización

en este tipo de implementación”.

Dar a los auditores y/o clientes la mejor información en cuanto a los datos

y operaciones propias de una hoja de cálculo proporciona y tener su

propia extensión de archivo.

1.5 VISIÓN

Construir una herramienta que brindara una mejor calidad de información

y que sea fiable para los auditores para que presten buen servicio de

análisis de evidencia y como consecuencia obtener favorables ganancias.

Será un sistema dinámico, innovador y confiable en cuanto a la

información que este contenga .para la optimización y administración de

tareas de prueba, procurando de esta manera la accesibilidad de

impresiones en beneficio para todos los usuarios que lo requieran.

CISC UNIVERSIDAD DE GUAYAQUIL

1.6 OBJETIVO GENERAL.

"El propósito del uso programas de computadora usados por el auditor,

como parte de sus procedimientos de auditoria, para procesar datos de

importancia de auditoria del sistema de contabilidad y otros.

Independientemente de la fuente de los programas, el auditor deberá

verificar su validez para fines de auditoria antes de su uso".

1.7 OBJETIVOS ESPECÍFICOS.

1. Software diseñado para poder realizar un estudio de los datos para

elaborar tareas con cualquier tipo de archivo.

2. Realizar actividades de los datos como operaciones de auditoria sobre

los extraídos.

3. Almacenar los resultados con un tipo de archivo especifico no

convencional

4. Cumplir con la aplicación los estándares de programación y

planeacion.

5. Elaborar una herramienta capaz de suplir con características similares

al de una convencional junto a operaciones de auditoria propias como

complementarias.

6. Ubicar este sistema posteriormente en el mercado.

CISC UNIVERSIDAD DE GUAYAQUIL

1.8 ALCANCE

Utilización de una Interfaz amigable: Como menús, sub-menús, barras de

herramientas para un manejo optimo-operacional de accesos directos.

Capacidad de importar archivos (incluyendo files de la base de datos):

Acceder al asistente de importación, crear definiciones para un archivo

ASCII de longitud fija, guardar la definición, importar bases de datos al

sistema, seleccionar un campo de cantidad de control numérico para la

base de datos.

Capacidad de manejar su propio formato de archivos:

Capacidad de realizar con los datos las siguientes operaciones:

A. Detección de salto de secuencia: Comprobar que exista continuidad entre

los registros especificados.

B. Detección de registros duplicados: Probar la valides de registros y los

números de registros duplicados.

C. Capacidad de adicionar columnas para hacer operaciones matemáticas

básicas tales como: Suma, Resta, Multiplicación y División.

D. Capacidad de mostrar aleatoriamente (n) registros sobre una tabla

determinada, seleccionar una muestra de elementos para pruebas.

E. Muestreo aleatorio estratificado de (n) registros sobre una tabla

cualquiera.

CISC UNIVERSIDAD DE GUAYAQUIL

F. Unir tablas mediante la operación JOIN: Obteniendo información más

específica.

G. Agrega bases de datos (Unir dos o mas archivos como si fueran partes).

1.9 VENTAJAS

1. Reducir costo de papelería, tornee y recursos que se requiera para

el uso de la impresión por parte del usuario.

2. Administrar eficientemente los datos en cuanto a su importación y

análisis.

3. Tener un control total sobre la aplicación e independiente de

aquellas que estén en el equipo.

4. Facilidad de uso, ya que es un sistema que incluye mecanismo

para hacerlo, además de que trabaja en plataforma Microsoft es

portable.

5. Cuotas de administración, de trabajos y páginas.

6. Es de fácil integración y administración.

7. Instalación y configuración de orígenes de datos ODBC.

1.10 DESVENTAJAS

1. Según las políticas establecidas en la organización, en el límite de

la asignación de una CAAT.

2. Presupuesto bajo para la adquisición de recursos físicos,

requeridos para la implementación del Sistema.

CISC UNIVERSIDAD DE GUAYAQUIL

3. No se ha pronosticado el impacto de un Software CAAT según la

auditoria elaborada ya que en algunas no lo implementan.

1.11 METODOLOGÍA DE DESARROLLO DEL PROYECTO

1.11.1 MODELO DE DESARROLLO

La Herramienta para ejecutar pruebas asistidas por computadora utilizara

el modelo de desarrollo espiral, debido que es un modelo de proceso de

software evolutivo y que se adquiere a la reingeniería, características que

permite regresar algunas de sus fases análisis, diseño, implementación o

integración.

Para todo proyecto de software se deben estimar errores en las fases

previas razón por lo cual se utiliza este modelo que es muy eficiente.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 1

Este modelo está compuesto de Análisis, Diseño, Implementación,

Implantación y Evolución.

1.11.2 METODOLOGÍA

Para el proyecto “Herramienta CAATS LUPA 1.0” se ha escogido la

metodología basada en Orientados a Objetos de tres capas por lo que

significa que el sistema se organiza como una colección de objetos que

interactúan entre si y que contienen tanto estructuras de datos como un

comportamiento.

Usaremos diagramas de caso de uso, pues para ello se definirán los

actores quienes intervienen o interactúan con el sistema.

Permite interactuar este modelo con las clases, entidades relevantes, al

problema que se va resolver (objeto de negocio), interfaz grafica

CISC UNIVERSIDAD DE GUAYAQUIL

Modelo de Análisis

(composición visual) y operaciones, atributos, relaciones y

comportamientos asociados con ellas (reglas de negocio).

En cuanto a la forma de trabajar en nuestro grupo es el siguiente.

1.11.2.1 FUENTES POSIBLES DE CONSULTA INVESTIGACIÓN

PRELIMINAR.

Consultas Bibliográficas.

Consultas por Internet.

Consultas a Profesionales.

Ámbito de estudio.

Uso del software IDEA para Windows versión 3, que fue proporcionado

por el Profesor Ing. Omar Palomeque para obtener información sobre

este tipo de software.

1.11.2.2 ANÁLISIS

Levantamiento de la información

Análisis de los Requerimientos

Análisis de recursos humanos

Análisis de los Recursos Hardware y Software

Estudio de factibilidad

Análisis costo beneficio

CISC UNIVERSIDAD DE GUAYAQUIL

Factibilidad técnica

Factibilidad económica

Factibilidad operacional..

Análisis del Proceso Actual

1.11.2.3 DISEÑO

Diagramas de Secuencia

Diseño de la Interfaz de Usuario (Prototipo)

1.11.2.4 IMPLEMENTACIÓN Y DESARROLLO

Conexión a la Base de Datos

Lógica del Negocio

Interfaz Gráfica del Usuario

Pruebas / Depuración.

1.11.2.5 IMPLANTACIÓN

Elementos físicos

Control / Evolución

1.11.2.6 CONCLUSIÓN Y RECOMENDACIÓN.

1.12 Arquitectura

El software será desarrollado con una arquitectura de tres capas Cliente-

Servidor, es un modelo para el desarrollo de sistemas de información en el

que las operaciones se dividen en procesos independientes que cooperan

entre sí para intercambiar información, servicios o recursos, por lo que en

CISC UNIVERSIDAD DE GUAYAQUIL

esta arquitectura la capacidad de proceso está dividida entre el servidor y

un cliente.

A continuación se va a distinguir las tres capas en la que se enfocara

nuestro proyecto.

Interfaz de usuario.

Manejador de Base de Datos.

Reglas del Negocio o Procesador de Aplicaciones.

Este tipo de arquitectura tres capas se la detallan a continuación, para

dejar en claro de que manera se la utilizara en el Sistema. Y como nos

ayuda a la compresión del sistema.

Figura 2AUDITOR APLICACION

La aplicación debe acceder a la base de datos que se va a realizar el

análisis mediante una función de la API (Interface de Aplicación del

CISC UNIVERSIDAD DE GUAYAQUIL

AUDITOR

APLICACIONIMPORTACION DE ARCHIVOS/BASE DE DATOS

Programa), la cual es el conjunto de rutinas para la gestión de

importación de datos.

Las funciones de API son:

Importa los datos a través del asistente de importación para

archivos o bases de datos.

Guardar la definición de registro que se ha creado.

Seleccionar una muestra de elementos para pruebas.

1.13 DETALLES DE RECURSOS REQUERIDOS A UTILIZAR EN ELPROYECTO.

1.13.1 HUMANO

3 programadores con reuniones periódicas y tutorías con el profesor en

cuanto el desarrollo por etapas del proyecto y que interviene son:

PEDRO VELEZ

DANNY HUANCAYO

ROMULO RODRIGUEZ.

1.13.2 HARDWARE

COMPUTADORA

PROCESADOR PENTIUM IV 2.8 GHZ,

MEMORIA 5!2 MB,

DISCO DURO 80 GB,

BUS DE DATOS DE 800

2 GIGA DE MEMORIA CACHE

MEMORIA RAM DE 1 GB

MONITOR DE 17’’

4 PUERTOS USB

UNIDAD DE DVD/CD-ROM

CISC UNIVERSIDAD DE GUAYAQUIL

1.13.3 SOFTWARE

En cuanto al desarrollo este sistema se requiere el siguiente el software:

VISUAL BASIC.NET: Ofrece un interfaz de desarrollo agradable y brinda

mayores posibilidades de manipular las bases de datos de SQL

WINDOWS XP PROFESIONAL SERVICE PACK 2, Para los usuarios que

utilice esta aplicación.

Para realizar las pruebas de auditorias se utilizan varias bases de datos y

archivos con gran cantidad de información.

En cuanto al licenciamiento se indica que se utiliza es en convenio que

tiene la carrera (CISC) mantiene con Microsoft

1.14 PROCESO DE PLANEACIÓN Y CRONOGRAMA

Permite desarrollar y mantener un esquema de trabajo para completar la

necesidad para la cual el proyecto será creado, teniendo así una

planificación especifica y detallada de cada una de las actividades que se

van a realizar durante el proceso de realización del sistema.

-Determinar la estructura (esquema), el contenido y la forma de acceso a

los datos, archivos o bases de datos.

- Definir los tipos de situaciones a ser analizadas

- Definir los procedimientos que se van a seguir.

- Definir los requerimientos de salida o reportes.

- Identificar el personal de auditoria y de sistemas que participaran en el

diseño y aplicación de la CAAT.

- Calcular los estimados de costos y beneficios.

- Participar en todas las fases relacionadas con el CAAT, para garantizar

su control y documentación.

- Definir actividades y recursos y determinar su disponibilidad.

CISC UNIVERSIDAD DE GUAYAQUIL

- Aplicación de la CAAT.

- Evaluar los resultados.

Es importante resaltar que las CAATs se apoyan en programas de

computador, los cuales deben ser desarrollados usando las metodologías

de ingeniería de software. Es responsabilidad del auditor garantizar el

control sobre estos programas, mal haría en confiar la recolección de

evidencia a una herramienta o técnica que funciona errónea o

deficientemente. Por lo anterior es su deber participar en todas las fases

del desarrollo (determinación de requerimientos, diseño, construcción,

prueba e implantación). Debe el auditor mantener bajo su vigilancia estas

aplicaciones para evitar que sufran modificaciones no autorizadas.

CISC UNIVERSIDAD DE GUAYAQUIL

16

1.14.1 CRONOGRAMA DE ACTIVIDADES

TAREA DURACION COMIENZO FIN SUCESORA PREDECESORAINICIO 0 días 06/12/2007 06/12/2007 2 Análisis de Requisitos 8 días 07/12/2007 20/12/2007 3,4 1Identificar y definir el trabajo a realizar 2 días 21/12/2007 25/12/2007 4 2Desarrollo del plan de proyecto 1 día 25/12/2007 26/12/2007 7 2,3Determinar los recursos necesarios 1 día 31/12/2007 01/01/2008 6 7Elaboración del presupuesto 1 día 01/01/2008 02/01/2008 8 5Instalación de equipos de computación, programas y SO 2 días 26/12/2007 31/12/2007 5 4Dividir el trabajo en deberes a los programadores 2 días 02/01/2008 07/01/2008 9 6Levantamiento y Análisis de la Información Recogida 2 días 07/01/2008 09/01/2008 10,11 8Definición de Tablas. 2 días 09/01/2008 14/01/2008 11 9Diseño del Software de los módulos 15 días 14/01/2008 07/02/2008 12 9,10Codificación de los programas de los módulos. 30 días 08/02/2008 01/04/2008 13 11Pruebas de los programas de los módulos. 5 días 01/04/2008 09/04/2008 15,16,14 12Integración de todos los módulos 5 días 09/04/2008 17/04/2008 15,16 13Implementación, Pruebas, Correcciones 5 días 18/04/2008 28/04/2008 16 13,14FINAL 10 días 28/04/2008 14/05/2008 13,14,15Figura 3

CISC UNIVERSIDAD DE GUAYAQUIL

1.14.2 Métodos de estimación basados en la funcionalidad del sistema

1.14.2.1 El Método Puntos por Función1. Entradas externas.

Usuarios

2. Salidas externas. Archivos de datos Ecuaciones Definiciones de vista/informes. Definiciones importadas

3. Consultas externas.

Reportes de:

Historial de operaciones de datos Estadísticas Resultado

4. Archivos lógicos internos. Archivos de datos Ecuaciones Definiciones de vista/informes. Definiciones importadas

5. Archivos de interfaces externas.

Vista de Base de datos activa. Vista de Historial Activa Vista de estadística de Campo Activa Vista de Resultado de Prueba Activa Barra de Herramientas de Base de Datos

1.14.2.2 Punto de Función

Figura 4

CISC UNIVERSIDAD DE GUAYAQUIL

Auditor Herramienta CAAT

Archivos Internos

Archivos Externos

Entradas

Salidas

1.14.2.3 TECNICAS PARA ESTIMAR EL TIEMPO Y RECURSO

HUMANO

FACTOR DE PONDERACION PARAMETRO DE MEDICION CUENTA SIMPLE MEDIA COMPLEJA SUMFC1 Numero de entrada de usuarios 1 1*3 3 *4 0 *6 0 32 Numero de Salida de usuarios 4 4*4 8 *5 0 *7 0 163 Numero de Consulta 3 3*3 9 *4 0 *6 0 94 Numero de archivo 4 4*7 28 *10 0 *15 0 285 Numero de Interpretes Internos 5 5*5 25 *7 0 *10 0 25

SUMFC 81Tabla 1

MODELO COCOMOParámetros ValoresSUMFC 81Punto de Función FA=(0,01XSUMFC)+0,65 FA=(0,01*81)+0,65 FA 1.46Punto de Función Ajustado PFA=SUMFC*FA PFA=81*1,46 PFA 118.26Líneas de Código ESTIMACION DE ESFUERZO REQUERIDO LENGUAJE: VISUAL BASIC.NET /HTML 32ESFUERZO=LDC=PFA*PROMEDIO DE LENGUAJELDC=118,26*40 LDC= 4730,4 LDC=4730,4/1000 KLDC=LDC (MILES DE LINEAS DE CODIGO) 4,7304MODELO BASICOKM/PERSONAS PARA PROYECTO

CAPACIDAD DEL PROGRAMADOR=ALTA 0.90

CAPACIDAD DE LA BASE DE DATOS=BAJO 0.94

EXPERIENCIA DE LA APLICACIÓN = ALTO 0.91PRACTICAS DE PROGRAMACION MODERNA=ALTO 0.91

KM=3.2*(KLDC)1.05

KM 16,4

KM*ATRIBUTOS KLM=3.2*(KLDC)1.05 *(CAP DEL PROGRAMADOR)*(TAMAÑO BASE DATOS)*(EXPERIENCIA EN LA APLICACIÓN)*(PRACTICAS DE PROGRAMACION MODERNA)

KM 11,46161682

KM/10 1,146161682

1 PERSONA TRABAJANDO EN EL PROYECTO

TD/TIEMPO DE PROYECTO

TD=2.5*(KM)0.38

TD 5,46

APROXIMADAMENTE 5 MESES DE PROYECTOTabla 2

CISC UNIVERSIDAD DE GUAYAQUIL

1.14.2.4 RECURSOS ADQUIRIDOS PARA EL PROYECTO

ESTIMACIÓN DE COSTOS

RECURSOSCOSTO PAGO DURACIÓN

SUBTOTALES

RECURSOS HUMANO

1 Programador $ 250,00MENSUAL 5 MESES $ 1.250

RECURSO FISICO

MOBILIARIO

1 ESCRITORIO $ 60,00 1 VEZ $ 60

1 SILLA $ 20,00 1 VEZ $ 20

1 CONEXIÓN ELÉCTRICA $ 10,00 1 VEZ $ 10

HARDWARE

1 COMPUTADORA $ 470,00 1 VEZDEPRECIABLE 3 AÑOS $ 470

RECURSO DE SOFTWARE

SOFTWARE

LICENCIAS DE SO WINDOWS XP $ 10,00 1 VEZ SIEMPRE $ 10LICENCIA DE VISUAL STUDIO.NET 2005 $ 80,00 1 VEZ SIEMPRE $ 80LICENCIA DE BASE DE DATOS SQL SERVER 2000 $ 50,00 1 VEZ SIEMPRE $ 50

VALOR TOTAL $ 1.950

Tabla 3

CISC UNIVERSIDAD DE GUAYAQUIL

CAPITULO 2

ANALISIS

En este capítulo llevaremos a cabo la fase

de análisis de todo este sistema

HERRAMIENTA CAAT LUPA 1.0,

comenzando por las partes más generales

del mismo, como puede ser la

especificación de requerimientos, para poco

a poco ir desarrollando en forma gradual

los componentes de nuestro sistema.

CISC UNIVERSIDAD DE GUAYAQUIL

2.1 LEVANTAMIENTO DE INFORMACIÓN

La recopilación de información debe estar enfocada en los hechos que

permitan conocer y analizar información específica y sobre todo útil para

el proyecto y su desarrollo, caso contrario obtendremos interpretaciones

erróneas, con lo que nos produciría retraso y desperdicio de recursos.

Para este proceso se utilizó dos formas de levantamiento de información:

las entrevistas y la revisión de documentos y fuentes obtenidas del

Internet. En relación a las entrevistas, se las realizó a las personas que

han utilizado el sistema similar, tales como empresas en cuantos a sus

opiniones; y, en cuanto a revisión de documentos y su origen, se hizo la

selección y análisis de aquellos escritos que contienen datos de interés

relacionados con el proyecto, por medio de Internet y de consultas a

diversos proyectos en la biblioteca de la Carrera, también se analizó al

software de competencia IDEA para Windows versión 3.

2.1.1 INVESTIGACIÓN DE LA COMPETENCIA

Actualmente se toma cuenta el software de Auditoria Interactive Data

Extraction and Analysis para Windows (conocido como IDEA para

Windows), una herramienta de Investigación de Archivos para auditores,

contables e investigadores. Con IDEA para Windows es fácil llevar a cabo

análisis complejos de datos, extracciones de elementos poco usuales,

muestras de auditoria, transacciones duplicadas y muchas más funciones

usando el interface de Windows intuitivo diseñado de forma especial.

IDEA para Windows se ha diseñado desde un principio como un software

de Windows con atención considerable hacia la sencillez y la intuitividad

del interface del usuario. Tiene un rango de funciones para:

• Importar datos de un rango amplio de tipos de archivos

• Realizar análisis de datos incluyendo estadísticas, perfiles, totalizaciones

y antigüedad

• Realizar pruebas de excepción de elementos poco usuales o extraños

usando criterios simples o complejos.

CISC UNIVERSIDAD DE GUAYAQUIL

IDEA tiene funciones incorporadas 70 explicadas en el sistema de Ayuda

en línea así como aritmética normal, texto y criterio de fechas

• Realizar cálculos

• Pruebas para omisiones en secuencias o elementos duplicados

• Seleccionar muestras usando técnicas sistemáticas, aleatorias o de

unidades monetarias

• Coincidencias o comparaciones de archivos diferentes.

QUÉ ESTÁ INCLUIDO EN IDEA PARA WINDOWS

IDEA para Windows consiste en:

• Una serie de programas y módulos incluyendo IDEA para Windows,

RDE, IDEAScript y DataImport para IDEA proporcionados en un solo CD-

ROM.

• El Manual de IDEA para Windows v 3 incluyendo el Tutorial Empezando

con archivos de datos de muestra

• Ayuda en Línea Extensa

• Notas Técnicas

• Base de Conocimientos en la Red

• Salvapantallas de IDEA para Windows.

La Auditoria usando la sección de IDEA para Windows de este manual

describe los principales usos que IDEA puede realizar en pruebas de

auditoria para investigaciones de fraude, auditorías de seguridad y

producción de informes de gestión. También cubre cómo planificar

auditorias y otros ejercicios con IDEA, cómo gestionar ejercicios con IDEA

y tares de control de calidad.

Para Utilizar IDEA para Windows, es necesario identificar los datos

relevantes y transferirlos al PC o a la red a la que se pueda acceder.

Una vez los datos están en el PC o en la Red entonces se pueden enlazar

o importar a una base de datos de IDEA. Para muchos tipos de archivos

se puede hacer directamente usando el módulo de IDEA para Windows

llamado Asistente de Importación. Sin embargo, para importar archivos de

datos más complejos, puede definirse una definición de registro usando

RDE, el Editor de Definiciones de Registro. RDE contiene una colección

de herramientas útiles para analizar archivos de datos y para construir una

definición de registro de IDEA para Windows. Se amplia la información en

CISC UNIVERSIDAD DE GUAYAQUIL

la ayuda en línea para asistir en la importación de todo tipo de archivos de

datos.

Un método muy simple y común de importar datos es mediante archivos

de informes impresos. El módulo DataImport para IDEA del paquete, al

que puede accederse a través del Asistente de Importación de IDEA para

Windows, se usa para definir sólo los datos requeridos para importarlos

desde el archivo impreso.

OPERACIONES INICIALES DEL IDEA PARA WINDOWS VERSIÓN 3Seleccionar una carpeta de trabajo e introducir la información decliente.

1. Para definir la carpeta de trabajo activa, seleccionar las siguientesopciones:ARCHIVO – Establecer Carpeta de TrabajoEl diálogo Buscar Carpeta aparece como sigue.

Figura 5

2. Buscar y seleccionar la carpeta siguiente:C:\Archivos de Programa\IDEA para Windows 3.0\Tutorial

Nota: Se supone que los archivos correspondientes del curso IDEA paraWindows, se han instalado en esta Carpeta de la Unidad C. En caso contrario,seleccionar la Carpeta adecuada3. Hacer click el botón Aceptar4. Aparece el diálogo Propiedades de Cliente. Introducir / Aceptar lo siguiente:Nombre de Cliente: TutorialPeriodo: 1 Ene 1999 – 31 Dic 1999

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 6

Las Las propiedades del cliente se grabarán en un archivo llamado Client.inf enla Carpeta de trabajo.5. Hacer click en el botón Aceptar.

Tutorial sera la carpeta de trabajo.

El Explorador de Archivos estará vacío ahora.

Nota: Una vez se establece el directorio de trabajo, será el predeterminado hastaque se cambie.

Importar el archivo de cliente maestro.1. Apuntar al primer botón en la Barra de Operaciones y observar la sugerencia

amarilla Asistente de Importación.

Figura 7

Hacer click en este botón.

2. Aparecerá el diálogo Asistente de Importación.

Seleccionar un archivo de datos para importar pulsando el botón Seleccionar Archivo y navegar para escoger la hoja de trabajo siguiente:

C:\Archivos de Programa\IDEA para Windows 3.0\Tutorial\Master.xls

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 8

Pulsar abrir.

3. Notar los 5 métodos diferentes de importación. Aceptar el método por defecto,es decir Archivos nuevos y formatos estándar de PC.

Figura 9

Pulsar el botón Siguiente.4. IDEA determinará ahora el formato de archivo, que debe ser Microsoft Excel.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 10

Nota: No es posible ver preliminarmente una hoja de MS Excel mediante elAsistente de importación.

Pulsar el botón Siguiente.

5. El Asistente de Importación mostrará una lista de las hojas y tablas definidasen el archivo seleccionado. Seleccionar Sheet1$.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 11

Pulsar el botón Siguiente.

6. El paso del Asistente de Importación Cambiar la longitud de loscampos de carácter aparecerá advirtiendo que todos los camposcarácter se importarán con una longitud de 255 caracteres a no ser que secambie. No es probable que esta sea la longitud de campo carácterdeseada. Por consiguiente, seleccionar el cuadro Determinar la longitudmáxima del campo y aceptar el valor por defecto para examinar los 100registros paradeterminar esta longitud.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 12

Pulsar el botón Siguiente.7. El paso final del Asistente de Importación le pedirá introducir o confirmar losdetalles de la Base de Datos importada. Seleccionar las opciones siguientes:

Seleccionar el cuadro Generar estadísticas de campo al importar(esto se analizará en la Sesión 6)

Nombre de Base de Datos como: Base de Datos Maestra de Clientes.Notas: La opción Importar (en lugar de Enlazar) los datos se selecciona pordefecto. No es posible enlazar una hoja de Excel. La opción Guardar DefiniciónComo está grisácea pues no se crean/requieren para importar de MS Excel.Pulsar el botón FinalizarSe importará la Base de Datos Maestra de Clientes, abierta y seleccionadacomo la base de datos activa.

CISC UNIVERSIDAD DE GUAYAQUIL

VENTAJAS DE IDEA

Hay muchas ventajas en usar IDEA frente a los métodos de auditoria

manuales. Los beneficios mayores incluyen:

Largo alcance de las investigaciones (es decir dirigir pruebas que no

pueden hacerse manualmente);

Incremento de la cobertura (verificar un gran número de elementos y

cubrir potencialmente el 100% de las transacciones por un año o más);

Mejor información (por ejemplo análisis extra o perfil de los datos);

Ahorro de tiempo.

DESVENTAJA DE IDEA

En el mercado local actual no existe la facilidad de conseguir este

software ya que es muy específico en cuanto a su uso y precio alto.

CISC UNIVERSIDAD DE GUAYAQUIL

2.2 ANÁLISIS DE LOS REQUERIMIENTOS

2.2.1 ANÁLISIS DE RECURSOS HUMANOS

Los usuarios que van a tener acceso a este sistema, serán las personas

que realizan el trabajo de recolección y mitigacion de evidencia y que

están interesadas en obtener información; y, también las empresas de

consultoria que deseen fortalecer de esa forma su trabajo a través de

nuestro sistema.

Para estos usuarios será necesario que tengan conocimientos de Excel

como referencia en cuanto a análisis de datos.

2.3 ESTUDIO DE LA FACTIBILIDAD

El estudio de factibilidad utilizado para efectos de nuestro proyecto se

basa en: Factibilidad Técnica, Económica y Operacional. A continuación

evaluaremos cada uno de estos aspectos en el análisis de Beneficio

Costo, estimando el impacto financiero acumulado de lo que queremos

lograr en este proyecto.

2.3.1 ANÁLISIS COSTO BENEFICIO

El análisis de costo-beneficio de este proyecto es muy sencillo, ya que

para el desarrollo de este proyecto se va a utilizar en su mayoría

herramientas de Tecnología de Microsoft, aunque para la implantación si

incurriremos en gastos.

CISC UNIVERSIDAD DE GUAYAQUIL

Tabla 4

CISC UNIVERSIDAD DE GUAYAQUIL

2.3.1.1 CUADRO DE FACTIBILIDAD DE IMPLEMENTACIÓN DE UNA CAAT

2.3.1.2 FACTIBILIDAD TÉCNICAEste Proyecto es factible técnicamente, ya que contamos con latecnología que nos facilita la carrera CISC, con los equipos queobtenemos para el desarrollo de este sistema y sobre todo con lo que hoyen día nos proporciona el mercado.

2.3.1.3 FACTIBILIDAD ECONÓMICATiene como objetivo central determinar las características económicas delproyecto, para ello es necesario identificar las necesidades de inversión,ingresos, los costos, gastos u otros; así determinar si al vender elproductos nos genere un margen de utilidad.

2.3.1.4 FACTIBILIDAD OPERACIONALEsta dada por los recursos humanos disponibles para el proyecto,operación del sistema y el uso que se le dé una vez que sea instalado. ElSistema que desarrollaremos está calculado para proporcionar unaInterfaz eficiente y accesible para que pueda ser utilizado por cualquierusuario sin limitación alguna.

.2.4 ANÁLISIS ORIENTADOS A OBJETOS

2.4.1 DEFINICIÓN DE USUARIOS DEL SISTEMA

Cliente Auditor (usuario interesado o persona natural que desean

realizar tareas de análisis y mitigacion de los datos en este

sistema.

2.4.2 ESPECIFICACIONES DE LOS REQUISITOS DEL SISTEMA

Los usuarios podrán acceder al sistema. Mediante el clásico método

de acceder a los programas en Windows.

CISC UNIVERSIDAD DE GUAYAQUIL

INFORMACION

ARCHIVOS BASE DE DATOS

APLICACION

CARPETA DE TRABAJO

AUDITOR

ARCHIVO DE DATOS DEFINICIONES

INPORTADAS, VISTAS/INFORMES

Se debe seleccionar una carpeta de trabajo e introducir los datos del

cliente para cada auditoria.

Para importar una base de datos debe seleccionar el archivo y luego el

método de importación, así sucesivamente en cuanto al tipo de

archivo,

longitud de registro, posicionar cada campo, detalles de campo,

nombre de archivo propio del sistema.

Para la extracción de registros primeramente debe estar activa la

base de datos importada y luego se realiza la operación Extraer a

Archivo (s) para luego colocar expresión. de selección

2.4.3 DIAGRAMA DE OBJETO-RELACIÓN

Los diagramas de objeto-relación representan la estructura de objetos del

sistema y las relaciones entre ellos, su objetivo es representar aspectos

estáticos del sistema.

Aquí definiremos las características de cada una de las clases, interfaces,

colaboraciones y relaciones de dependencia y generalización. Es decir, es

donde daremos rienda suelta a nuestros conocimientos de diseño

orientado a objetos, definiendo las clases e implementando las ya típicas

relaciones de herencia y agregación.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 13

2.4.4 DIAGRAMA DE CASO DE USOS

Un Diagrama de Casos de Uso muestra la relación entre los actores y los

casos de uso del sistema, representaremos la funcionalidad que ofrece el

sistema en lo que se refiere a su interacción externa. Aquí definiremos

como los usuarios interactúan con el sistema es decir que uso pueden

darle a este sistema.

CISC UNIVERSIDAD DE GUAYAQUIL

2.4.4.1 DIAGRAMA GENERAL DEL SISTEMA

Figura 14

2.4.4.1.1 DESCRIPCIÓN

Nombre de Casos de Uso

Diagrama General del Sistema

Definición:

Ese diagrama identifica las opciones que se presentan al ejecutar

el sistema para que el auditor pueda realizar sus operaciones

según crea convenientes a través de menús, cuadros de

herramientas. .

Escenario

Interfaz que permita utilizar opciones como:

1. MENU

2. BARRA DE HERRAMIENTAS

3. EXPLORADOR DE DATOS

4. VENTANA DE TABLAS IMPORTADAS

Dependiendo de las operaciones de prueba se utiliza una carpeta

de trabajo que las almacena con su propio formato de archivo.

CISC UNIVERSIDAD DE GUAYAQUIL

AUDITOR

INTERFAZ DEL AUDITOR

MENU

HERRAMIENTAS

EXPLORADOR DE DATOS

VENTANA DE TABLAS

IMPORTADAS

2.4.4.2 DIAGRAMA DE MENU

Figura 15

2.4.4.2.1 DESCRIPCIÓN

Nombre de Casos de Uso

MENU

Definición:

Contiene las opciones de las operaciones típicas de menú

similares al de una hoja de cálculo y opciones particulares de

auditoria.

Escenario

Crear nuevas sesiones de trabajo, abrir una sesión almacenada

existente, guardar una sesión nueva y modificaciones, imprimir

informes, vista preliminar, configuración de impresión. .

Opciones de edición: copiar. cortar, pegar.

Visualizar la barra de herramientas y de estado.

Cálculo específico de auditoria en cuantos a los registros de una

tabla se refiere.

Formas de visualización de ventanas: mosaico, cascada, cerrartodo, etc. .

Ayuda brindar información general del sistema

CISC UNIVERSIDAD DE GUAYAQUIL

INTERFAZ DEL AUDITOR MENU

VENTANA

ARCHIVO

EDITAR

VER

CALCULO

AYUDA

AUDITOR

2.4.4.3 DIAGRAMA DE BARRAS DE HERRAMIENTAS

Figura 16

2.4.4.3.1 DESCRIPCIÓN

Nombre de Casos de Uso

Barra de Herramientas

Definición:

Muestra las opciones de configuración y operaciones de registros en

cuanto a clientes, importación de la base de datos, tablas o archivos de

datos.

Escenario

Permitirá establecer el nombre de un cliente, base de datos, tablas, a

mas de realizar operaciones de columnas virtuales, filtros de registros

entre otros .

CISC UNIVERSIDAD DE GUAYAQUIL

AUDITOR

INTERFAZ DEL AUDITORBARRA DE HERRAMIENTAS

BASE DE DATOS Y TABLAS

BARRA DE ESTADO

2.4.4.4 DIAGRAMA DE EXPLORADOR DE DATOS

Figura 17

2.4.4.4.1 DESCRIPCIÓN

Nombre de Casos de Uso

Explorador de datos

Definición:

Proporciona información sobre los Clientes que almacena en una

carpeta llamada Auditores, Nombre de base de datos, archivos de

datos para la importación de base de datos y archivos

convencionales de datos y su contenido.

Escenario

CISC UNIVERSIDAD DE GUAYAQUIL

AUDITOR

INTERFAZ DEL AUDITOREXPLORADOR DE DATOS

CLIENTE Y BASE DE DATOS

AUDITORES

ARCHIVOS DE DATOS

AUDITOR

Realiza operaciones creación de clientes, importación de base de

datos, archivos de datos y tablas con sus campos y todos lo

mencionado anteriormente en una carpeta llamada auditores.

2.4.4.5 DIAGRAMA DE VENTANA DE TABLAS IMPORTADAS

Figura 18

2.4.4.5.1 DESCRIPCIÓN

Nombre de Casos de Uso

Ventanas de tablas importadas

Definición:

Visualiza las estructuras de tablas, operaciones con los campos

como columnas virtuales y filtros:

Escenario

Muestra los registros y campos de la tabla especifica

CISC UNIVERSIDAD DE GUAYAQUIL

INTERFAZ DEL AUDITORVENTANA DE TABLAS

CAMPOS

FILTROS

REGISTROS

VIRTUALES

AUDITOR

La operación de columna virtual a través del editor de formulas que

se realiza entre los registros de la tablas y su resultado se agrega al

final de estructura de la tabla.

Muestras los registros que cumplen con una consulta en el filtro y

ademas es posible visualizar registros aleatorios

CISC UNIVERSIDAD DE GUAYAQUIL

41

2.4.5 DIAGRAMA DE FLUJO DE OBJETOS DEL SISTEMA HERRAMIENTA CAAT LUPA 1.0- NIVEL 1

Figura 19

CISC UNIVERSIDAD DE GUAYAQUIL

Interfaz de usuario

Interfaz del sistema

Crear carpeta de trabajo

Importar Archivo o Base de Datos

Ejecutar proceso

Diseñar informe

Consultar

ALMACENAR

1 2

Imprimir

42

2.4.5.1 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 2

Ejecutar Proceso

Figura 20

CISC UNIVERSIDAD DE GUAYAQUIL

1Seleccionar tipo de operación

Ejecutar la operación

Verificación operación

2

43

2.4.5.2 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 3

Diseñar informe

Figura 21

CISC UNIVERSIDAD DE GUAYAQUIL

2

Seleccionar los resulta-dos en campos

Modificar la configura-ción de los campos

Guardar la configu-ración

Crear informe

Vista Preliminar del informe

Imprimir informe

2.4.6 Diagrama de Secuencia

Figura 22

CISC UNIVERSIDAD DE GUAYAQUIL

AUDITOR

EXTRAER INFORMACION GENERAR

INFORMES

APLICACION INFORMACION

COMPROBAR INFORMACION

2.4.7 Diagrama de Transición de Estado

AUDITOR

NULA

DISPONIBLE

NO DISPONIBLE

Figura 23

APLICACION

NULA

DISPONIBLE

NO DISPONIBLE

EN ESPERA

Figura 24

CISC UNIVERSIDAD DE GUAYAQUIL

INFORMACION

NULA

SOLICITADA

EN ESPERA

DENEGADA

CANCELADA

ARCHIVADA

Figura 25

CISC UNIVERSIDAD DE GUAYAQUIL

CAPITULO 3

DISEÑO

En esta etapa se definirá el proceso de

aplicar técnicas y principios, para detallar

cada uno de los dispositivos, procesos que

conformaran el sistema para permitir su

interpretación y su realización física,

transformando así el modelado del análisis

en las estructuras de datos necesarias para

implementar el software, definiendo cada

uno de los procesos estructurales del

programa.

CISC UNIVERSIDAD DE GUAYAQUIL

3.1 DISEÑO ARQUITECTÓNICO DEL SISTEMA

Figura 26

CISC UNIVERSIDAD DE GUAYAQUIL

ARCHIVO

NUEVO

ABRIR

LUPA 1.0

EDITAR

DESHACER

REHACER

VER

BARRA DE HERRAMIENTAS

BARRA DE ESTADO

CALCULO

REGISTRO ALEATORIO

ESTRATIFICACION

DUPLICIDAD

LUPA 1.0LUPA 1.0

Diseño ArquitectónicoDiseño Arquitectónico

DDiseño Arquitectónico. iseño Arquitectónico.

COPIAR

CORTAR SALTO DE SECUENCIA

VENTANA

CASCAZDA

MOSAICO

GUARDAR

IMPRIMIR

PEGAR

CERRAR

SUMARIZACION

3.1.1 DESCRIPICION DEL DISEÑO ARQUITECTONICO

En el diseño arquitectónico se representa la forma como vamos a establecer

la estructura como usaremos en el desarrollo de software.

En la interfaz usaremos las barras de menús, barra de herramientas, Grid

para mostrar los datos, editor de formulas para realizar los cálculos, cuadros

de dialogo que permiten realizar los procesos principales descritos en los

alcances.

En cuanto a las operaciones de los procesos principales se pueden describir

de una forma muy ordenada y secuencial para seguir un orden lógico para

obtener los resultados deseados.

El sistema Lupa 1.0 ademas se centra en que ademas contara con una

interfaz grafica que facilite al usuario el uso del sistema, y también con su

propio sistema de archivo.

En el sistema contaremos con operaciones de auditoria debidamente

estandarizadas que cumplan con su cometido y reportes necesarios para

que se muestre cada una de las pruebas elaboradas.

CISC UNIVERSIDAD DE GUAYAQUIL

3.2 DISEÑO DE DATOS Lupa 1.0 contara con tres módulos que son la Importación de

datos. Operaciones con los datos importados y la emisión de

informes de las operaciones realizadas, los cuales se

mencionan a continuación:

3.2.1. Importación de datosEn este modulo se creara un directorio (clientes), base

de datos a importar ya sea de forma local y si esta en un

ambiente de Red, y a continuación aparecerá un

asistente de importación donde se escoge el método de

importación ya sea de archivo o de tipo ODBC según el

método escogido se establecerá el archivo o base de

datos, si es un archivo importa desde una ubicación del

equipo o una base de datos luego se establece el tipo

de información ya sea de base de datos o un archivo

3.2.2. Operaciones a realizar con los datos importadosEn este modulo se realizan las operaciones de creación

de columnas virtuales que se creaban en una sección

llamada virtuales filtros y además se puede genera un

registro aleatorio.

Se realiza operaciones como estratificación, salto de

secuencia y duplicidad.

3.2.3. Emisión de reportes En este modulo se realizan las operaciones de

impresión de los datos y además es posible colocar el

nombre y las observaciones del auditor.

CISC UNIVERSIDAD DE GUAYAQUIL

3.3 Diseño de la interfaz

3.3.1 Menú Principal

Pantalla de ingreso al sistema Lupa 1.0

Figura 27

Menú Principal

Figura 28En el menú principal del sistema Lupa 1.0 constara de las siguientes opciones: Archivo (conexión):Aquí se muestran las opciones para iniciar la importación de datos para los procesos de auditoria Cálculos:Aquí encontraremos las opciones para realizar los cálculos de auditoria mas importantes Exportación:

CISC UNIVERSIDAD DE GUAYAQUIL

Aquí encontraremos la opción para realizar exportaciones de los datos a Excel Reportes:Aquí encontraremos las opciones de repostería del sistema.

3.3.2 Archivo conexión Aquí encontraremos las opciones para realizar la conexión a la base de datos o un archivo. La opción cliente. Si no existe el cliente procede a crearlo.

Figura 29

3.3.2.1Archivo conexión agregar base datosAquí encontraremos la opción para darle un nombre al archivo o base de datos que vamos a importar.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 30

3.3.2.2 Archivo conexión TablaAquí encontraremos la opción tabla que activara un asistente de importación de datos.

Figura 31

CISC UNIVERSIDAD DE GUAYAQUIL

Luego escogeremos que tipo de importación deseamos si es un archivo o una base de datos Importación Archivo paso 1: escogemos el tipo de archivo que deseamos

importar Excel, Access, etc.

Figura 32

Importación Archivo paso 2: Ubicamos la ruta del archivo que deseamos importar y damos clic en siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 33

Importación Archivo paso 3: especificamos los datos a importar y damos clic en siguiente.

Figura 34

Importación Archivo paso 4: le asignamos un nombre a los datos importados y damos clic a finalizar.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 35

Importación Archivo paso 5: se realiza la importación y se guarda automáticamente el archivo en el árbol

Figura 36

Importación Base Datos paso 1: escogemos la opción usar ODBC y damos clic siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

Figura 37

Importación Base Datos paso 2: Seleccionamos el tipo de dsn al cual deseamos conectarnos que puede ser sistema(red) o usuario (en la misma maquina) y damos click en siguiente.

Figura 38

CISC UNIVERSIDAD DE GUAYAQUIL

Importación Base Datos paso 3: especificamos la tabla a importar y damos clic en siguiente.

Figura 39

Importación Base Datos paso 4: le asignamos un nombre a los datos importados y damos clic a finalizar.

Figura 40

CISC UNIVERSIDAD DE GUAYAQUIL

Importación Base Datos paso 5: se realiza la importación y se guarda

automáticamente la tabla en el árbol

Figura 41

3.3.3 BREVE DESCRIPCIÓN DE LOS MODULOS Para diseñar los siguientes módulos se deberá optar por revisar cada componente elaborado en la etapa de análisis y de requerimiento y se determinara los siguientes procesos:

COLUMNAS VIRTUALES: Una vez realizada la importación de los datos, tenemos el grid con los datos, aquí podemos comenzar a trabajar los datos importados con columnas virtuales, en el grid tenemos en la parte inferior una pestaña con la leyenda virtuales

DETECCIÓN SALTO SECUENCIA: Aquí tendremos esta opción para verificar un salto en una secuencia numérica

DETECCIÓN DATOS DUPLICADOS: Aquí vamos a tener la opción para verificar los datos duplicados, aquí verificaremos los datos que se repiten.

MUESTREO ALEATORIO: Este presentara la muestra de los datos quetenemos en nuestro grid, especificamos cuantos datos deseamos presentary nos mostrará en el editor de consultas la cantidad de datosaleatoriamente especificados.

MUESTREO ALEATORIO ESTRATIFICADO: Este presentara una muestra de los datos que tenemos en nuestro grid, especificamos que tipo de dato deseamos listar puede ser datos tipo numérico o fecha.

CISC UNIVERSIDAD DE GUAYAQUIL

INFORMES: Este permitirá configurar e imprimir aquellas pruebas elaboradas por los auditores y sus respectivas opciones.

C A P I T U L O I V

DESARROLLO DEL SISTEMA

Este capitulo comprende todas las

aplicaciones que se realizaron para la

implementación la Herramienta CAAT

LUPA 1.0, esta desarrollado bajo la

plataforma .NET de Microsoft y de otro

recurso como el Spread Forms de

Windows al cual se accede mediante la

ejecución de la aplicación. Visual Basic

que ha sido utilizado para la interfaz

grafica de usuario. Además se configura

ODBC que permite la comunicación con

las bases de datos implementadas en una

PC o en ambiente de red

CISC UNIVERSIDAD DE GUAYAQUIL

4.1 Archivo

El sistema almacena las tareas de auditoria en un formato de archivo

creado y no convencional y contenido en una carpeta, lo realizado por el

auditor; su extensión es *.sac y los resultados en subtablas como *.suc.

4.2 Identificación de escenarios o casos de uso

En la fase del análisis se identifico los posibles escenarios y actores que

interactúan con el sistema mediante el diagrama de casos de uso

representaremos la forma en como el Usuario - Administrador (Auditor)

opera con el sistema en desarrollo.

CISC UNIVERSIDAD DE GUAYAQUIL

CISC UNIVERSIDAD DE GUAYAQUIL

Nombre: Ingresar al sistemaAutor: Grupo 12Fecha: 19/07/08Descripción:

Visualización del menú Principal Actores:

Auditor va iniciar una sesión de trabajo Precondiciones:

Inicio de la aplicaciónFlujo Normal:

1. El actor pulsa sobre el icono para el ingreso al sistema

2. El actor visualiza la ventana de la aplicación

Flujo Alternativo:

El sistema permite mostrar la consola para poder mostrar varios

tipos de actores que realizaron las pruebasPoscondiciones:

Inicio de las pruebas de auditoria creando clientes y archivos de

datos.

Tabla 5

Nombre: MenúAutor: Grupo 12Fecha: 19/07/08Descripción:

Menú de opciones del Sistemas Actores:

Auditor iniciar una operación de trabajoPrecondiciones:

Inicio de la aplicaciónFlujo Normal:

1. El actor pulsa sobre las opciones de menús

2. El sistema visualiza las opciones que contienen los menús y

operaciones que se pueden realizar

3. El sistema permite dar el clicado en cada uno de las opciones

4. El actor accede a los cuadros de dialogo después de dar clic en

alguna opción de menú Flujo Alternativo:

El sistema comprueba la validez de las opciones, si los datos no

son correctos, se avisa al actor de ello permitiéndole informar de

el error cometidoPoscondiciones:

Normal funcionamiento de las opciones de menú. Tabla 6

Nombre: Barra de Herramienta

CISC UNIVERSIDAD DE GUAYAQUIL

Autor: Grupo 12Fecha: 19/07/08Descripción:

opciones de herramientas mas utilizados del Sistemas Actores:

Auditor realiza operaciones de auditoria Precondiciones:

Inicio de la aplicaciónFlujo Normal:

1. El actor pulsa sobre las opciones de la barra de herramientas

2. El sistema permite dar el clicado en cada uno de las opciones y

realizar operaciones que se realizan a través de los cuadro de

diálogos. Flujo Alternativo:

El sistema comprueba la validez de las opciones, si los datos son

correctos, se accede a las operaciones específicas al actor, sino

aparecerán notificaciones de error. Poscondiciones:

Normal funcionamiento de las opciones. Tabla 7

Nombre: Explorador de datosAutor: Grupo 12Fecha: 19/07/08Descripción:

Consola de trabajo Actores:

CISC UNIVERSIDAD DE GUAYAQUIL

Auditores que realizan las operación sobre un área de trabajo

especificasPrecondiciones:

Inicio de la aplicaciónFlujo Normal:

1. El actor crea cliente y archivos de base de datos

2. El sistema permite eliminar clientes, tablas y subtablas.

Flujo Alternativo:

El sistema comprueba la validez de las opciones, si los datos son

correctos continua realizando sus operaciones, sino aparecerán

notificaciones de error. Poscondiciones:

Normal funcionamiento de las opciones.

CISC UNIVERSIDAD DE GUAYAQUIL

Tabla 8

CISC UNIVERSIDAD DE GUAYAQUIL

Nombre: Ventana de tablas importadasAutor: Grupo 12Fecha: 19/07/08Descripción:

Visualización del contenido de alguna tabla especifica importada de

alguna base de datos Actores:

Auditores que realizan las operación sobre un área de trabajo

especificasPrecondiciones:

Inicio de la aplicaciónFlujo Normal:

1. El actor visualiza los registros de las tablas, sus tipos de datos,

columnas virtuales y filtros

2. El sistema permite realizar cálculos con los registros

importados de tablas. Flujo Alternativo:

El sistema comprueba la validez de las opciones en el editor de

formulas, si los datos son correctos continua realizando sus

operaciones, sino aparecerán notificaciones de error. Poscondiciones:

Normal funcionamiento de las opciones.

4.3 Selección de clases y objetos usando los requisitos básicos

como guías.

El modelado de clases-responsabilidades-colaboraciones (CRC)

aporta un medio sencillo de identificar y organizar las clases que

resulten relevantes al sistema.

Tablas de clases del sistema

CISC UNIVERSIDAD DE GUAYAQUIL

Tabla 9

Nombre de la clase: Ingreso al sistemaTipo de la clase: EventoCaracterísticas de la clase: concurrenteResponsabilidades: Colaboradores:Auditor Sistema Operativo

Tabla 10

CISC UNIVERSIDAD DE GUAYAQUIL

Nombre de la clase: Importación de Bases de Datos

Tipo de la clase: Evento

Características de la clase: concurrente

Responsabilidades: Colaboradores:

Auditor Base de datos configurada vía ODBC

Tabla 11

Nombre de la clase: Operaciones con los datos

Tipo de la clase: Evento

Características de la clase: concurrente

Responsabilidades: Colaboradores:

Auditor Tablas importadas

Tabla 12

4.4 Configuración del Software CAAT LUPA 1.0

Este sistema Operativo (Windows Xp) me permite realizar operaciones

como ODBC por ende se debe configurar a mas de el, Se debe

realizar la respectiva instalación Visual Studio 2005.net software de

Microsoft con los respectivos paquetes principales que son necesarios

como Spread Windows Forms

CISC UNIVERSIDAD DE GUAYAQUIL

Nombre de la clase: Emisión de Reportes

Tipo de la clase: Evento

Características de la clase: concurrente

Responsabilidades: Colaboradores:

Auditor Resultados de las operaciones

Tabla 13

Nombre de la clase: Almacenamiento de los resultados

Tipo de la clase: Evento

Características de la clase: concurrente

Responsabilidades: Colaboradores:

Auditor Resultados de las operaciones

Tabla 14

4.4.1 Instalación deL sistema Operativo Windows XP

Características de la maquina:

Procesador Pentium IV 2.8 Ghz,

Memoria 5!2 mb,

Disco duro 80 Gb,

Bus de datos de 800

Giga de memoria Cache

Memoria Ram de 1 Gb

Monitor de 17’’

Puertos usb

Unidad de dvd/cd-rom

Podemos realizar la instalación de Sistema operativo, Visual Studio,

Spread anteriormente cometido el formato y partición del disco duro.

4.5 Configuración del ODBC de las bases de datos

Una vez que tenemos la base de datos, información esta son o serán

configuradas a que tengamos una conexión a la aplicación para la

importación de datos. Mediante la opción de Herramientas

Administrativas del panel de control

4.6 Instalación de CAAT Lupa 1. 0

El software ya terminado se procede a crear discos de distribución y

luego se procede al instalar en una maquina de manera local.

CAPÍTULO V

CISC UNIVERSIDAD DE GUAYAQUIL

RECOMENDACIONES Y

CONCLUSIONES

Este capitulo trata sobre las necesidades

del sistema LUPA 1.0.

Aquí se trata de tomar todas las

prevenciones para que de esta manera el

sistema implementado funcione de manera

correcta y así no existan fallas.

5.1. Recomendaciones

Quienes deseen instalar el sistema LUPA 1.0 le recomendamos que

tomen en cuenta en referencia al hardware y al software.

CISC UNIVERSIDAD DE GUAYAQUIL

5.1.1 Hardware

El equipo utilizado debe cumplir con los requisitos mínimos

especificados en el manual técnico, ya que de otra manera el

funcionamiento del sistema presentaría problemas.

Es necesario una correcta instalación equipo local o de red de

los equipos que estarán conectadas cumpliendo con los

respectivos estándares o normas de red de equipos. .

5.1.2. Software

Nuestra aplicación se ha desarrollado bajo el sistema

operativo Windows XP y desarrollado en Visual Studio. Net

2005 y de Spread Forms

Es necesario hacer una configuración de Orígenes de Datos

ODBC de las bases de datos, para el correcto funcionamiento

del sistema en cuestión..

5.2 Conclusiones

CISC UNIVERSIDAD DE GUAYAQUIL

La implementación de esta aplicación por parte de uno o de varios

usuarios que la utilizarán les permitirá una fácil configuración de una

red TCP/IP para acceso bajo la plataforma Microsoft vía ODBC, el

diseño esta basado con herramientas fácil de utilizar y con una

interfaz amigable, esperamos proporcionarles a los usuarios una

herramienta que se constituya en una ayuda fundamental para la

configuración de los mencionados recursos de Microsoft y Visual

Studio.Net 2005.

El manejo de las seguridades que tiene esta aplicación es su propio

sistema de archivo es decir que no puede vulnerarse como cualquier

archivo convencional, su contenido. .

También esperamos que con la utilización de este sistema poder

incentivar a los auditores a utilizar un sistema genérico que no existe

en el mercado local actualmente.

Con LUPA 1.0 las pequeñas y medianas empresas de auditoria o

persona naturales podrán hacer un ahorro sustancial en sus

economías al no tener que adquirir un software en otro lugar fuera del

país.

La aplicación realizada en este seminario fue obtenido con ayuda del

ingenio personal de cada estudiante de este grupo, es recomendable

tomar como guía software similares, libros de auditoria como

referencia CAAT., caso contrario las metas no serian cumplidas.

CISC UNIVERSIDAD DE GUAYAQUIL

INDICE GENERAL

AGRADECIMIENTO IDEDICATORIA IITRIBUNAL DE GRADUACIÓN VIIDECLARACIÓN EXPRESA VIIIRESUMEN IXINDICE GENERAL X

INDICE DE CONTENIDO

PARTE ICAPÍTULO 1

INTRODUCCIÓN 11.1 ANTECEDENTES 21.2 PROBLEMÁTICA 31.3 SOLUCIÓN DE LA PROBLEMÁTICA 31.4 MISIÓN 41.5 VISIÓN 41.6 OBJETIVOS GENERALES 51.7 OBJETIVOS ESPECÍFICOS 51.8 ALCANCES 61.9 VENTAJAS 71.10 DESVENTAJAS 71.11 METODOLOGIA DE DESARROLLO DEL PROYECTO 8 1.11.1 MODELO DE DESARROLLO 8 1.11.2 METODOLOGIA 91.12 ARQUITECTURA 111.13 RECURSOS 12

1.13.1 HUMANO 121.13.2 HARDWARE 121.13.3 SOFTWARE 13

1.14 PROCESO DE PLANIFICAICON Y CRONOGRAMA 131.14.1 CRONOGRAMA DE ACTIVIDADES 15

1.14.2 METODOS DE ESTIMACION 16

CAPITULO II: ANALISIS 192.1. LEVANTAMIENTO DE INFORMACION 20 2.1.1 INVESTIGACION DE LA COMPETENCIA 202.2. ANALISIS DE REQUERIMIENTOS 28 2.2.1 ANALSIS DE RECURSOS HUMANOS 282.3. ESTUDIO DE FACTIBILIDAD 282.4. ANALISIS DE ORIENTADO A OBJETO 30

2.4.1. DEFINICIOON DE USUARIO DEL SISTEMA 30 2.4.2 ESPECIFICACIONES DE LOS REQUISITOS DEL SISTEMA 30 2.4.3. DIAGRAMA OBJETO RELACION 31 2.4.4 DIAGRAMA DE CASO DE USO 32 2.4.4.1 DIAGRAMA GENERAL DEL SISTEMA 33

2.4.4.2 DIAGRAMA DE MENU 34 2.4.4.3 DIAGRAMA DE BARRAS DE HERRAMIENTAS 352.4.4.4 DIAGRAMA DE EXPLORADOR DE DATOS 362.4.4.5 DIAGRAMA DE VENTANA DE TABLAS IMPORTADAS 37

2.4.5 DIAGRAMA DE FLUJO DE OBJETOS DEL SISTEMA 38 2.4.5.1 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 2 39 2.4.5.2 DIAGRAMA DE FLUJO DE OBJETOS. NIVEL 3 40 2.4.6 DIAGRAMA DE SECUENCIA 41 2.4.7 DIAGRAMAS DE TRANSICION DE ESTADO 42

CAPITULO IIIDISEÑO 443.1. DISEÑO ARQUITECTONICO DEL SISTEMA 453.1.1 DESCRIPCION DEL DISEÑO ARQUITECTONICO DEL SISTEMA 463.2 DISEÑO DE DATOS 47

3.2.1 IMPORTACION DE DATOS 473.2.2 OPERACIONES A REALIZAR CON DATOS IMPORTADOS 473.2.3 EMISION DE REPORTES 47

3.3 DISEÑO DE LA INTERFAZ 483.3.1 MENU PRINCIPAL 483.3.2 ARCHIVO CONEXIÓN 49

3.3.3 BREVE DESCRIPCION DE LOS MODULOS 55

CAPITULO IVDESARROLLO DEL SISTEMA 564.1. ARCHIVO 574.2. IDENTIFICACION DE ESCENARIOS 574.3 SELECCIÓN DE CLASES Y OBJETOS USANDO LOS REQUISITOS BÁSICOS COMO GUÍAS.

63

4.3.CONFIGURACION DEL SISTEMA LUPA 1.0 654.3.1. INSTALACION DEL SISTEMA OPERATIVO WINDOWS XP 65

4.4. CONFIGURACION DEL ODBC DE LAS BASES DE DATOS 654.5. INSTALACION DE LUPA 1.0 65

CAPITULO VRECOMENDACIONES Y CONCLUSIONES 665.1 RECOMENDACIONES 67

5.1.1. HARDWARE 675.1.2. SOFTWARE 67

5.2. CONCLUSIONES 68

INDICE DE FIGURAS

FIGURA 1 8FIGURA 2 11FIGURA 3 15FIGURA 4 16FIGURA 5 22FIGURA 6 22FIGURA 7 23FIGURA 8 23FIGURA 9 24FIGURA 10 24FIGURA 11 25FIGURA 12 26FIGURA 13 31FIGURA 14 33FIGURA 15 34FIGURA 16 35FIGURA 17 36FIGURA 18 37FIGURA 19 38FIGURA 20 39FIGURA 21 40FIGURA 22 41FIGURA 23 42FIGURA 24 42FIGURA 25 43FIGURA 26 45FIGURA 27 48

FIGURA 28 48FIGURA 29 49FIGURA 30 49FIGURA 31 50FIGURA 32 50FIGURA 33 51FIGURA 34 51FIGURA 35 52FIGURA 36 52FIGURA 37 53FIGURA 38 53FIGURA 39 54FIGURA 40 54FIGURA 41 55

INDICE DE TABLAS

TABLA 1 17TABLA 2 17TABLA 3 18

TABLA 4 29TABLA 5 58TABLA 6 59TABLA 7 60TABLA 8 61TABLA 9 62TABLA 10 63TABLA 11 63TABLA 12 64TABLA 13 64TABLA 14 64

Manual Tecnico

Herramienta CAATS

LUPA 1.0

INTRODUCCIÓN

Para orientar al administrador que vaya a utilizar el

sistema se presenta a continuación el manual técnico,

en la cual se detallará las configuraciones necesarias y

el funcionamiento del mismo para poner en marcha el

sistema de una forma bien estructurada y así hacerle

una tarea más fácil.

La Herramienta Caats requiere de la instalación y

configuración de algunos programas, necesarios para

iniciar la aplicación y para su correcta funcionalidad, el

usuario deberá referirse al manual técnico que se

encuentra más adelante en este tomo.

CISC UNIVESRIDAD DE GUAYAQUIL

37

El sistema CAAT Lupa 1.0 esta desarrollado bajo la

plataforma Microsoft al cual se accede mediante la

ejecución del mismo una vez instalado en una PC, que

a su vez es interactúa con el Lenguaje de

Programación Visual Basic.Net 2005 que es utilizado

para la interfaz grafica del sistema, además con el

componente Spread Forms de Windows y

configuración de ODBC para la configuración de la

importación de las bases de Datos de cualquier tipo

para realizar con sus datos las pruebas.

CISC UNIVESRIDAD DE GUAYAQUIL

38

CISC UNIVESRIDAD DE GUAYAQUIL

39

Arquitectura del sistema

Diagrama de Flujo de Objetos del Sistema Herramienta CAAT- Nivel 1

DIAGRAMA 1

CISC UNIVESRIDAD DE GUAYAQUIL

Interfaz de usuario

Interfaz del sistema

Crear carpeta de trabajo

Importar Archivo o Base de Datos

Ejecutar proceso

Diseñar informe

Consultar

ALMACENAR

1 2

Imprimir

40

Diagrama de Flujo de Objetos. Nivel 2

Ejecutar Proceso

DIAGRAMA 2

CISC UNIVESRIDAD DE GUAYAQUIL

1Seleccionar tipo de operación

Ejecutar la operación

Verificación operación 2

41

Diagrama de Flujo de Objetos. Nivel 3

Diseñar informe

DIAGRAMA 3

CISC UNIVESRIDAD DE GUAYAQUIL

2

Seleccionar los resulta-dos en campos

Modificar la configura-ción de los campos

Guardar la configu-ración

Crear informe

Vista Preliminar del informe

Imprimir informe

42

Diagrama de Secuencia

DIAGRAMA 4

CISC UNIVESRIDAD DE GUAYAQUIL

APLICACION

AUDITOR

INFORMACION

EXTRAER INFORMACION

GENERAR INFORMES

COMPROBAR INFORMACION

43

Diagrama de Transición de Estado

AUDITOR

NULA

DISPONIBLE

NO DISPONIBLE

DIAGRAMA 5

APLICACIÓN

NULA

DISPONIBLE

NO DISPONIBLE

EN ESPERA

CISC UNIVESRIDAD DE GUAYAQUIL

44

DIAGRAMA 6

INFORMACION

NULA

SOLICITADA

EN ESPERA

DENEGADA

CANCELADA

ARCHIVADA

DIAGRAMA 7

CISC UNIVESRIDAD DE GUAYAQUIL

45

Configuración ODBCEsta configuración permite comunicarse con las bases de datos instaladas en el equipo mediante un DSN, los pasos que se realiza son los siguientes:

1.- Clic en Inicio, Panel de Control, doble clic en Herramientas Administrativas.

FIGURA 502.-Dentro de Herramientas administrativas y luego damos clic en Orígenes de datos

FIGURA 513.- A continuación aparecerá la Administración de Orígenes de datos

CISC UNIVESRIDAD DE GUAYAQUIL

46

FIGURA 524.- Luego damos clic en Agregar….y a continuación la ventana Crear un nuevo origen de datos

5.- A continuación seleccionamos un controlador para establecer el origende datos

FIGURA 53

6.- Seleccionamos hacemos clic en Finalizar y luego aparecerá el siguiente cuadro de Configuración de ODBC, donde se establece el nombre del origen de datos

CISC UNIVESRIDAD DE GUAYAQUIL

47

FIGURA 54

7.-Hacemos clic en Seleccionar para que aparezca el siguiente cuadro de dialogo

FIGURA 55

8.-Escogemos la unidad donde se encuentra la base de datos ya sea enel C: o en otra ubicación, y luego seleccionamos la base de datos encuestión y luego regresamos al cuadro anterior y damos clic en aceptar enlos cuadro subsiguientes y aparecerá el origen de datos que hemoscreado.

CISC UNIVESRIDAD DE GUAYAQUIL

48

Código Fuentes para elegir una tabla para realiza la PruebaAgregar tablaImports System.Windows.FormsImports System.Data.OdbcImports System.IOPublic Class AgregarTabla

Enum Tipo_Archivo Access = 1 Excel = 2 VFP_1 = 3 Texto = 4

End Enum

Dim paso_asistente As Integer Dim tipo_importacion As Boolean Dim pos_top As Integer Dim pos_left As Integer Dim ancho As Integer Dim alto As Integer

Dim DSN_ODBC As String Dim Tabla_BD As String Dim archivo_datos As String Dim t_archivo As Tipo_Archivo Public directorio As String Public tvNodo As TreeNode

Private Sub AgregarTabla_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load pos_top = Importacion_tipo.Top pos_left = Importacion_tipo.Left ancho = Importacion_tipo.Width alto = Importacion_tipo.Height

CISC UNIVESRIDAD DE GUAYAQUIL

49

ODBC_1.Top = pos_top ODBC_1.Left = pos_left ODBC_1.Width = ancho ODBC_1.Height = alto

ODBC_2.Top = pos_top ODBC_2.Left = pos_left ODBC_2.Width = ancho ODBC_2.Height = alto

ODBC_3.Top = pos_top ODBC_3.Left = pos_left ODBC_3.Width = ancho ODBC_3.Height = alto

tipo_importacion = True paso_asistente = 1 End Sub

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged 'archivo tipo_importacion = True TxtNombreArchivo.Enabled = True CmbTipoArchivo.Enabled = True Button1.Enabled = True End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged 'ODBC tipo_importacion = False TxtNombreArchivo.Enabled = False CmbTipoArchivo.Enabled = False Button1.Enabled = False End Sub

Private Sub BtnSgte_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSgte.Click If tipo_importacion Then 'archivo

Select Case paso_asistente Case 1 If TxtNombreArchivo.Text.Trim = "" Then MsgBox("Debe seleccionar un archivo ...", MsgBoxStyle.Critical) Exit Sub

CISC UNIVESRIDAD DE GUAYAQUIL

50

End If Importacion_tipo.Visible = False BtnAtras.Visible = True ODBC_2.Visible = True

TablasBaseDatos(getDriver() & " DBQ= " & TxtNombreArchivo.Text.Trim) Case 2 If Tabla_BD = "" Then MsgBox("Debe seleccionar un tabla de la lista ...", MsgBoxStyle.Critical) Exit Sub End If TxtNombreArchivoODBC.Text = Tabla_BD ODBC_2.Visible = False ODBC_3.Visible = True BtnSgte.Text = "Finalizar" Case 3 If TxtNombreArchivoODBC.Text = "" Then MsgBox("Debe escribir un nombre al archivo ...", MsgBoxStyle.Critical) Exit Sub End If

Dim frm As New FrmTabla Dim sql As String sql = "select * from " & "[" & Tabla_BD & "]"

frm.directorio = Me.directorio frm.nombre_archivo = TxtNombreArchivoODBC.Text.Trim

frm.CargarDatos(Tabla_BD, archivo_datos, sql, False) frm.Text = Tabla_BD

'agregando nodo frm.tvNodo = tvNodo.Nodes.Add(frm.nombre_archivo, frm.nombre_archivo, 3, 3) frm.tvNodo.ForeColor = Color.DarkBlue frm.tvNodo.NodeFont = New Font("Arial", 10, FontStyle.Bold) MDIPrincipal.CargarFormaTabla(frm)

Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close()

'FRMarchivo.tvNodo = Me.TreeView.SelectedNode 'FRMarchivo.MdiParent = My.Forms.MDIPrincipal 'FRMarchivo.OpenArchivo(directorio & namefile) 'FRMarchivo.Show()

CISC UNIVESRIDAD DE GUAYAQUIL

51

'TreeView.SelectedNode.ForeColor = Color.DarkBlue 'TreeView.SelectedNode.NodeFont = New Font("Arial", 10, FontStyle.Bold) End Select If paso_asistente < 3 Then paso_asistente = paso_asistente + 1 Else 'dsn Select Case paso_asistente Case 1 ODBC_1.Visible = True Importacion_tipo.Visible = False BtnAtras.Visible = True Case 2 If DSN_ODBC = "" Then MsgBox("Debe seleccionar un DSN de la lista ...", MsgBoxStyle.Critical) Exit Sub End If ODBC_1.Visible = False ODBC_2.Visible = True TablasBaseDatos("DSN=" & DSN_ODBC & ";UID=;PWD=") Case 3 If Tabla_BD = "" Then MsgBox("Debe seleccionar un tabla de la lista ...", MsgBoxStyle.Critical) Exit Sub End If TxtNombreArchivoODBC.Text = Tabla_BD ODBC_2.Visible = False ODBC_3.Visible = True BtnSgte.Text = "Finalizar" Case 4 'finalizar If TxtNombreArchivoODBC.Text = "" Then MsgBox("Debe escribir un nombre al archivo ...", MsgBoxStyle.Critical) Exit Sub End If

Dim frm As New FrmTabla Dim sql As String sql = "select * from " & "[" & Tabla_BD & "]"

frm.directorio = Me.directorio frm.nombre_archivo = TxtNombreArchivoODBC.Text.Trim

frm.CargarDatos(Tabla_BD, "DSN=" & DSN_ODBC & ";UID=;PWD=", sql, True) frm.Text = Tabla_BD

'agregando nodo

CISC UNIVESRIDAD DE GUAYAQUIL

52

frm.tvNodo = tvNodo.Nodes.Add(frm.nombre_archivo, frm.nombre_archivo, 3, 3) frm.tvNodo.ForeColor = Color.DarkBlue frm.tvNodo.NodeFont = New Font("Arial", 10, FontStyle.Bold)

MDIPrincipal.CargarFormaTabla(frm)

Me.DialogResult = System.Windows.Forms.DialogResult.OK Me.Close() End Select If paso_asistente < 4 Then paso_asistente = paso_asistente + 1 End If

End Sub

Private Sub BtnAtras_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAtras.Click

If paso_asistente > 1 Then BtnSgte.Text = "Siguiente"

If paso_asistente = 2 Then Importacion_tipo.Visible = True BtnAtras.Visible = False End If

If tipo_importacion Then 'archivo Select Case paso_asistente Case 2 ODBC_2.Visible = False Case 3 ODBC_2.Visible = True ODBC_3.Visible = False End Select Else 'dsn Select Case paso_asistente Case 2 ODBC_1.Visible = False Case 3 ODBC_1.Visible = True ODBC_2.Visible = False Case 4 ODBC_2.Visible = True ODBC_3.Visible = False End Select End If paso_asistente = paso_asistente - 1 End If

CISC UNIVESRIDAD DE GUAYAQUIL

53

End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click Me.DialogResult = System.Windows.Forms.DialogResult.Cancel Me.Close() End Sub

Private Sub CmbBoxTipoDSN_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbBoxTipoDSN.SelectedIndexChanged Dim c_DSN As New Collection, Name_DSN As Object

ListaDSN.Items.Clear() DSN_ODBC = "" Tabla_BD = ""

If CmbBoxTipoDSN.SelectedIndex = 0 Then Call listar_Dsn(c_DSN, E_DSN.Sistema) Else Call listar_Dsn(c_DSN, E_DSN.Usuario) End If

For Each Name_DSN In c_DSN ListaDSN.Items.Add(CStr(Name_DSN)) Next End Sub

Private Sub ListaDSN_SelectedIndexChanged(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ListaDSN.SelectedIndexChanged DSN_ODBC = ListaDSN.SelectedItem End Sub

Friend Sub TablasBaseDatos(ByVal cadenaConexion As String)

Try Dim dbConnection As New OdbcConnection dbConnection.ConnectionString = cadenaConexion dbConnection.Open()

Dim nomTablas() As String Dim dataTable As Data.DataTable

Dim i As Integer

dataTable = dbConnection.GetSchema("Tables") i = dataTable.Rows.Count - 1 ListaEntidades.Items.Clear() If i > -1 Then

CISC UNIVESRIDAD DE GUAYAQUIL

54

ReDim nomTablas(i) For i = 0 To dataTable.Rows.Count - 1 ListaEntidades.Items.Add(dataTable.Rows(i).Item("Table_Name").ToString()) Next End If

Catch ex As Exception MsgBox(ex.ToString) Finally Beep() End Try

End Sub

Private Sub ListaEntidades_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListaEntidades.SelectedIndexChanged Dim cadena_conexion As String cadena_conexion = "" If tipo_importacion Then 'archivo Select Case t_archivo Case Tipo_Archivo.Access 'access cadena_conexion = getDriver() & " DBQ=" & TxtNombreArchivo.Text.Trim Case Tipo_Archivo.Excel 'excel cadena_conexion = getDriver() & " DBQ=" & TxtNombreArchivo.Text.Trim Case Tipo_Archivo.VFP_1 'VFP_1 cadena_conexion = getDriver() & "SOURCETYPE=dbf;SOURCEDB=" & TxtNombreArchivo.Text.Trim Case Tipo_Archivo.Texto 'texto cadena_conexion = getDriver() & " DBQ=" & TxtNombreArchivo.Text.Trim End Select archivo_datos = cadena_conexion Else 'dsn cadena_conexion = "DSN=" & DSN_ODBC & ";UID=;PWD=" End If Tabla_BD = ListaEntidades.SelectedItem CamposTabla(Tabla_BD, cadena_conexion) End Sub

Friend Sub CamposTabla(ByVal tabla As String, ByVal CadenaConexion As String) Try Dim dbConnection As New OdbcConnection

dbConnection.ConnectionString = CadenaConexion

CISC UNIVESRIDAD DE GUAYAQUIL

55

dbConnection.Open()

Dim nomTablas() As String Dim dataTable As DataTable

Dim i As Integer

dataTable = dbConnection.GetSchema("Columns", New String() {Nothing, Nothing, tabla}) i = dataTable.Rows.Count - 1 ListaCampos.Items.Clear() If i > -1 Then ReDim nomTablas(i) For i = 0 To dataTable.Rows.Count - 1 ListaCampos.Items.Add(dataTable.Rows(i).Item("Column_name").ToString()) Next End If

Catch ex As Exception MsgBox(ex.ToString) Finally Beep() End Try

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If CmbTipoArchivo.SelectedIndex = -1 Then MsgBox("Debe seleccionar un tipo de archivo")

Else Dim myStream As Stream Dim openFileDialog1 As New OpenFileDialog() Dim extension As String = ""

openFileDialog1.InitialDirectory = "c:\" Select Case t_archivo Case Tipo_Archivo.Access 'access extension = "access files (*.mdb)|*.mdb" Case Tipo_Archivo.Excel 'excel extension = "excel files (*.xls)|*.xls" Case Tipo_Archivo.VFP_1 'VFP_1 extension = "dBase files (*.dbc)|*.dbc" Case Tipo_Archivo.Texto 'texto extension = "txt files (*.txt)|*.txt" End Select

CISC UNIVESRIDAD DE GUAYAQUIL

56

openFileDialog1.Filter = extension openFileDialog1.FilterIndex = 2 openFileDialog1.RestoreDirectory = True

If openFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then myStream = openFileDialog1.OpenFile() If Not (myStream Is Nothing) Then TxtNombreArchivo.Text = openFileDialog1.FileName myStream.Close() End If End If End If End Sub

Private Sub CmbTipoArchivo_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTipoArchivo.SelectedIndexChanged If CmbTipoArchivo.SelectedIndex = -1 Then MsgBox("Debe seleccionar un tipo de archivo") Else Select Case CmbTipoArchivo.SelectedIndex Case 0 'access t_archivo = Tipo_Archivo.Access Case 1 'excel t_archivo = Tipo_Archivo.Excel Case 2 'VFP_1 t_archivo = Tipo_Archivo.VFP_1 Case 3 'texto t_archivo = Tipo_Archivo.Texto End Select End If End Sub

Private Function getDriver() As String Dim driver As String driver = "" Select Case t_archivo Case Tipo_Archivo.Access 'access driver = "Driver={Microsoft Access Driver (*.mdb)};" Case Tipo_Archivo.Excel 'excel driver = "Driver={Microsoft Excel Driver (*.xls)};" Case Tipo_Archivo.VFP_1 'VFP driver = "Driver={MICROSOFT VISUAL FOXPRO DRIVER (*.dbc)}; SOURCETYPE=DBC; SOURCEDB= " Case Tipo_Archivo.Texto 'texto driver = "Driver={Microsoft Text Driver (*.txt; *.csv)}; DBQ=" End Select Return driver

CISC UNIVESRIDAD DE GUAYAQUIL

57

End Function

Private Sub Importacion_tipo_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Importacion_tipo.Enter

End SubEnd Class

Frmeliminar columna

Public Class FrmEliminarColumna Public campo As String Public Sub LoadCamposCombo(ByVal h As FarPoint.Win.Spread.SheetView) 'lista de campos campo = "" With h Dim c As Integer For c = 0 To .ColumnCount - 1 CmbListaCampo.Items.Add(.Columns(c).Label) Next End With

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If CmbListaCampo.Text.Trim.Length = 0 Then MsgBox("Debe seleccionar un campo de la lista ...", MsgBoxStyle.Critical) Else campo = CmbListaCampo.Text.Trim Me.Close() End If End Sub

Private Sub FrmEliminarColumna_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End SubEnd Class

CISC UNIVESRIDAD DE GUAYAQUIL

58

Frmaexplorer

Public Class FrmExplorer

Private Sub FrmExplorer_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing e.Cancel = True End Sub

Private Sub Explorer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'SetUpListViewColumns() LoadTree() 'Me.TreeView.CheckBoxes = True End Sub

Public Sub CargarAuditores()

Dim tvAuditores As TreeNode Dim tvCliente As TreeNode

Me.TreeView.Nodes.Clear() MDIPrincipal.LblNombreCliente.ComboBox.Items.Clear()

Dim directorio_auditores As String

directorio_auditores = Trim(My.Application.Info.DirectoryPath & "\AUDITORES")

tvAuditores = Me.TreeView.Nodes.Add("Auditores", "Auditores", 0, 1)

If My.Computer.FileSystem.DirectoryExists(directorio_auditores) Then Dim fileList As System.Collections.ObjectModel.ReadOnlyCollection(Of String)

fileList = My.Computer.FileSystem.GetDirectories(directorio_auditores, FileIO.SearchOption.SearchTopLevelOnly)

For Each foundDirectory As String In My.Computer.FileSystem.GetDirectories(directorio_auditores, FileIO.SearchOption.SearchTopLevelOnly) tvCliente = tvAuditores.Nodes.Add(foundDirectory.Substring(directorio_auditores.Length + 1), _ foundDirectory.Substring(directorio_auditores.Length + 1), 2, 2) cargarBD(foundDirectory, tvCliente)

CISC UNIVESRIDAD DE GUAYAQUIL

59

MDIPrincipal.LblNombreCliente.ComboBox.Items.Add(foundDirectory.Substring(directorio_auditores.Length + 1)) MDIPrincipal.LblNombreCliente.ComboBox.SelectedIndex = 0 Next Else MsgBox("creado directorio ..\auditores") My.Computer.FileSystem.CreateDirectory(directorio_auditores) End If Me.TreeView.ExpandAll()

End Sub

Private Sub cargarBD(ByVal auditor As String, ByVal tvCliente As TreeNode) Dim tvBD As TreeNode For Each foundDirectory As String In My.Computer.FileSystem.GetDirectories(auditor, FileIO.SearchOption.SearchTopLevelOnly) tvBD = tvCliente.Nodes.Add(foundDirectory.Substring(auditor.Length + 1), _ foundDirectory.Substring(auditor.Length + 1), 4, 4) cargarFilesSAC(foundDirectory, tvBD) tvBD.ForeColor = Color.CadetBlue Next End Sub

Private Sub cargarFilesSAC(ByVal auditor As String, ByVal tvCliente As TreeNode) Dim tvF As TreeNode

For Each foundDirectory As String In My.Computer.FileSystem.GetDirectories(auditor, FileIO.SearchOption.SearchTopLevelOnly)

tvF = tvCliente.Nodes.Add(foundDirectory.Substring(auditor.Length + 1), _ foundDirectory.Substring(auditor.Length + 1), 3, 3)

cargarSubTablas(foundDirectory, tvF) tvF.ForeColor = Color.DarkGray tvF.NodeFont = New Font("Arial", 10, FontStyle.Regular) Next End Sub

Private Sub cargarSubTablas(ByVal auditor As String, ByVal tvCliente As TreeNode) Dim tvS As TreeNode

CISC UNIVESRIDAD DE GUAYAQUIL

60

Dim nombre_file As String

For Each foundDirectory As String In My.Computer.FileSystem.GetFiles(auditor, FileIO.SearchOption.SearchTopLevelOnly, "*.SUB") nombre_file = foundDirectory.Substring(auditor.Length + 1) nombre_file = nombre_file.Substring(0, nombre_file.Length - 4)

tvS = tvCliente.Nodes.Add(nombre_file, nombre_file, 5, 5) tvS.ForeColor = Color.DarkGray tvS.NodeFont = New Font("Arial", 10, FontStyle.Regular) Next End Sub

Private Sub LoadTree() CargarAuditores() End Sub

Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Global.System.Windows.Forms.Application.Exit() End Sub

Private Sub TreeView_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles TreeView.DoubleClick AbrirArchivoTree() End Sub

Public Sub AbrirArchivoTree() If Not IsNothing(TreeView.SelectedNode.NodeFont) Then If TreeView.SelectedNode.SelectedImageIndex = 3 And TreeView.SelectedNode.NodeFont.Bold = False Then 'nodo archivos

Dim FRMarchivo As New FrmTabla Dim directorio As String Dim namefile As String

directorio = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\") & _ Me.TreeView.SelectedNode.Parent.Parent.Text.Trim & "\" &_ Me.TreeView.SelectedNode.Parent.Text.Trim()

namefile = "\" & Me.TreeView.SelectedNode.Text.Trim & ".sac"

FRMarchivo.directorio = directorio FRMarchivo.tvNodo = Me.TreeView.SelectedNode FRMarchivo.MdiParent = My.Forms.MDIPrincipal

CISC UNIVESRIDAD DE GUAYAQUIL

61

FRMarchivo.OpenArchivo(directorio & "\" & Me.TreeView.SelectedNode.Text.Trim & namefile) FRMarchivo.Top = 0 FRMarchivo.Left = TreeView.Width + 10 FRMarchivo.Show()

TreeView.SelectedNode.ForeColor = Color.DarkBlue TreeView.SelectedNode.NodeFont = New Font("Arial", 10, FontStyle.Bold)

ElseIf TreeView.SelectedNode.SelectedImageIndex = 5 And TreeView.SelectedNode.NodeFont.Bold = False Then 'nodo archivos

Dim FRMarchivo As New FrmSubTabla Dim directorio As String Dim namefile As String

directorio = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\") & _ Me.TreeView.SelectedNode.Parent.Parent.Parent.Text.Trim & "\" & _ Me.TreeView.SelectedNode.Parent.Parent.Text.Trim & "\" &_ Me.TreeView.SelectedNode.Parent.Text.Trim()

namefile = "\" & Me.TreeView.SelectedNode.Text.Trim & ".sub"

FRMarchivo.tvNodo = Me.TreeView.SelectedNode FRMarchivo.MdiParent = My.Forms.MDIPrincipal FRMarchivo.OpenArchivo(directorio & "\" & namefile) FRMarchivo.Top = 0 FRMarchivo.Left = TreeView.Width + 10 FRMarchivo.Show()

TreeView.SelectedNode.ForeColor = Color.DarkBlue TreeView.SelectedNode.NodeFont = New Font("Arial", 10, FontStyle.Bold) End If End If End Sub

Private Sub EliminarArchivoTree() Dim directorio As String Dim namefile As String

If Not IsNothing(TreeView.SelectedNode.NodeFont) Then Select Case TreeView.SelectedNode.SelectedImageIndex Case 0 MsgBox("Directorio raiz")

CISC UNIVESRIDAD DE GUAYAQUIL

62

Case 1

Case 2

Case 3 If TreeView.SelectedNode.NodeFont.Bold Then 'nodo archivos MsgBox("El archivo esta abierto, debe estar cerrado para poder eliminarlo ...", MsgBoxStyle.Critical) Else

directorio = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\") & _ Me.TreeView.SelectedNode.Parent.Parent.Text.Trim & "\" & _ Me.TreeView.SelectedNode.Parent.Text.Trim()

DeleteDirectory(directorio & "\" & Me.TreeView.SelectedNode.Text.Trim) Me.TreeView.SelectedNode.Remove() End If Case 5 If TreeView.SelectedNode.NodeFont.Bold Then 'nodo archivos MsgBox("El archivo esta abierto, debe estar cerrado para poder eliminarlo ...", MsgBoxStyle.Critical) Else

directorio = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\") & _ Me.TreeView.SelectedNode.Parent.Parent.Parent.Text.Trim & "\" & _ Me.TreeView.SelectedNode.Parent.Parent.Text.Trim & "\" & _ Me.TreeView.SelectedNode.Parent.Text.Trim()

namefile = "\" & Me.TreeView.SelectedNode.Text.Trim & ".sub" DeleteFile(directorio & "\" & namefile) Me.TreeView.SelectedNode.Remove() End If End Select End If End Sub

Private Sub AbrirToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AbrirToolStripMenuItem.Click AbrirArchivoTree() End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

63

Private Sub EliminarToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EliminarToolStripMenuItem.Click EliminarArchivoTree() End Sub

Private Sub TreeView_AfterSelect(ByVal sender As System.Object, ByVal e AsSystem.Windows.Forms.TreeViewEventArgs) Handles TreeView.AfterSelect

End SubEnd Class

Frmformula

Imports System.Windows.Forms

Public Class FrmFormula Dim cad As String 'Public Formula As String Property Formula() As String Get Return cad End Get

Set(ByVal Value As String) cad = Value End Set End Property

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

If textFormula.Text.Trim.Length = 0 Then MsgBox("Debe ingresar formula ...", MsgBoxStyle.Critical) Else Formula = textFormula.Text Me.Close() End If

End Sub

Public Sub LoadCampos(ByVal h As FarPoint.Win.Spread.SheetView) 'lista de campos With FpCampos.Sheets(0) .ColumnCount = 1 .RowCount = 0

CISC UNIVESRIDAD DE GUAYAQUIL

64

.ColumnHeader.Columns(0).Label = "Nombre" .OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect End With FpCampos.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded

With h Dim c As Integer For c = 0 To .ColumnCount - 1 FpCampos.Sheets(0).AddRows(FpCampos.Sheets(0).RowCount, 1) FpCampos.Sheets(0).SetText(c, 0, .Columns(c).Label) Next FpCampos.Sheets(0).SetColumnWidth(0, FpCampos.Sheets(0).GetPreferredColumnWidth(0) + 10) End With

textFormula.Text = Formula

End Sub

Private Sub FpCampos_CellDoubleClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs) Handles FpCampos.CellDoubleClick textFormula.Text = textFormula.Text & " " & FpCampos.Sheets(0).GetText(e.Row, 0) End Sub

Private Sub BtnSuma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSuma.Click textFormula.Text = textFormula.Text & " " & "+" End Sub

Private Sub BtnResta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnResta.Click textFormula.Text = textFormula.Text & " " & "-" End Sub

Private Sub BtnMult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnMult.Click textFormula.Text = textFormula.Text & " " & "*" End Sub

Private Sub BtnDiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDiv.Click textFormula.Text = textFormula.Text & " " & "/" End Sub

Private Sub BtnPot_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPot.Click textFormula.Text = textFormula.Text & " " & "^"

CISC UNIVESRIDAD DE GUAYAQUIL

65

End Sub

Private Sub BtnPorcent_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPorcent.Click textFormula.Text = textFormula.Text & " " & "%" End Sub

Private Sub BtnSqrt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSqrt.Click textFormula.Text = textFormula.Text & " " & "Sqrt()" End Sub

Private Sub BtnPI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPI.Click textFormula.Text = textFormula.Text & " " & "(" End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPD.Click textFormula.Text = textFormula.Text & " " & ")" End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click textFormula.Text = textFormula.Text & " " & "," End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click textFormula.Text = textFormula.Text & " "" "" " End Sub

Private Sub BtnConcat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnConcat.Click textFormula.Text = textFormula.Text & " & " End Sub

Private Sub ToolStripButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click textFormula.Text = "" End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click textFormula.Text = textFormula.Text & " > " End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

CISC UNIVESRIDAD DE GUAYAQUIL

66

textFormula.Text = textFormula.Text & " < " End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click textFormula.Text = textFormula.Text & " = " End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click textFormula.Text = textFormula.Text & " ' " End Sub

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click textFormula.Text = textFormula.Text & " [ " End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click textFormula.Text = textFormula.Text & " ] " End Sub

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click textFormula.Text = textFormula.Text & " # " End Sub

Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click textFormula.Text = textFormula.Text & " AND " End Sub

Private Sub Button12_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button12.Click textFormula.Text = textFormula.Text & " OR " End Sub

Private Sub Button13_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button13.Click textFormula.Text = textFormula.Text & " NOT " End Sub

Private Sub Button14_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button14.Click textFormula.Text = textFormula.Text & " IIf(expr, truepart, falsepart) " End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

67

Private Sub Button15_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button15.Click textFormula.Text = textFormula.Text & " IN " End Sub

Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click textFormula.Text = textFormula.Text & " LIKE " End Sub

Private Sub FrmFormula_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub textFormula_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textFormula.TextChanged

End SubEnd Class

Frmimprimir reporte

Public Class FrmImprimirReporte Private pagesetup As New pagesetup() Public cliente As String Private HojaDatos As FarPoint.Win.Spread.FpSpread

Public cabecera As String Public pie As String

Public Sub StartPage(ByVal HD As FarPoint.Win.Spread.FpSpread, ByVal cab As String, ByVal p As String) cabecera = cab pie = p HojaDatos = HD Me.ShowDialog() Me.BringToFront() End Sub

Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating RadioButton4.Checked = True If TextBox2.Text <> "" Then If Not IsNumeric(TextBox1.Text) Or (CInt(TextBox1.Text) < CInt(TextBox2.Text)) Then MsgBox("You must enter a number not less then the page start.") e.Cancel = True

CISC UNIVESRIDAD DE GUAYAQUIL

68

End If End If End Sub

Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating RadioButton4.Checked = True If TextBox1.Text <> "" Then If Not IsNumeric(TextBox2.Text) Or (CInt(TextBox1.Text) < CInt(TextBox2.Text)) Then MsgBox("You must enter a number not greater then the page end.") e.Cancel = True End If End If End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Me.Close() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click printsheet(False) End Sub

Private Sub printsheet(ByVal print As Boolean) With pi If RadioButton1.Checked = True Then .PrintType = FarPoint.Win.Spread.PrintType.All End If

If RadioButton3.Checked = True Then .PrintType = FarPoint.Win.Spread.PrintType.CurrentPage End If If RadioButton4.Checked = True Then .PrintType = FarPoint.Win.Spread.PrintType.PageRange .PageStart = CInt(TextBox2.Text) .PageEnd = CInt(TextBox1.Text) End If

.ShowColumnHeaders = True .ShowRowHeaders = True .ShowGrid = True .ShowBorder = True .ShowShadows = False .ShowColor = True .UseMax = True .BestFitCols = False

CISC UNIVESRIDAD DE GUAYAQUIL

69

'cabecera ------------------------------------ .Header = cabecera 'pie--------------------------------------------- .Footer = pie .Footer = .Footer + "/c Pag. /p" .Preview = print .ShowPrintDialog = True End With

HojaDatos.ActiveSheet.PrintInfo = pi HojaDatos.PrintSheet(HojaDatos.ActiveSheetIndex)

End Sub

Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click printsheet(True) End Sub

Private Sub FrmImprimirReporte_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load With pi Select Case .PrintType Case FarPoint.Win.Spread.PrintType.All RadioButton1.Checked = True Case FarPoint.Win.Spread.PrintType.CurrentPage RadioButton3.Checked = True Case FarPoint.Win.Spread.PrintType.PageRange RadioButton4.Checked = True End Select If pi.PageStart <> -1 Then TextBox2.Text = pi.PageStart TextBox1.Text = pi.PageEnd Else TextBox2.Text = "" TextBox1.Text = "" End If End With End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If pagesetup.IsDisposed Then pagesetup = New pagesetup() End If pagesetup.ShowDialog() pagesetup.BringToFront()

CISC UNIVESRIDAD DE GUAYAQUIL

70

End SubEnd Class

Frmsubtabla

Imports System.Data.OdbcImports System.IOImports System.Runtime.Serialization.Formatters.BinaryImports FarPoint.Win.Spread.CellTypePublic Class FrmSubTabla

Public directorio As String Public nombre_archivo As String Dim test As ClsArchivoAuditor Dim ruta_archivo As String Public tvNodo As TreeNode 'Public tvNodoPadre As TreeNode

Public RegDatos As DataSet Public RegDatosAll As DataSet

Public Sub Guardar() 'MsgBox(directorio & " " & nombre_archivo)

'Campos Virtuales test.CamposVirtuales = Me.FpSpread1.Sheets(2).DataSource GuardarCambios(ruta_archivo, test) OpenArchivo(ruta_archivo) 'MsgBox("guardado con exito " & ruta_archivo) End Sub

Public Sub OpenArchivo(ByVal archivo As String) Try If File.Exists(archivo) Then Dim TestFileStream As Stream = File.OpenRead(archivo) Dim deserializer As New BinaryFormatter

test = CType(deserializer.Deserialize(TestFileStream), ClsArchivoAuditor) ruta_archivo = archivo nombre_archivo = test.nombre

Me.Text = "Archivo: " & test.nombre & " Creado: " & test.fecha.ToString

CISC UNIVESRIDAD DE GUAYAQUIL

71

'registros With Me.FpSpread1.Sheets(0) RegDatosAll = test.registros.Copy 'esquema de registros para filtro RegDatos = RegDatosAll.Clone

.DataSource = RegDatosAll .Columns(0, .ColumnCount - 1).BackColor = Color.Azure

End With

'Campos Virtuales With Me.FpSpread1.Sheets(2) .DataSource = test.CamposVirtuales .Columns(1, 1).BackColor = Color.Azure .Columns(1, 1).Locked = True End With

'lista de campos With Me.FpSpread1.Sheets(1) .RowCount = 0 .ColumnCount = 2

.ColumnHeader.Columns(0).Label = "Nombre" .ColumnHeader.Columns(1).Label = "Tipo"

.Columns(1, 1).BackColor = Color.Yellow .RowCount = test.registros.Tables(0).Columns.Count

Dim f As Integer 'campos For f = 0 To test.registros.Tables(0).Columns.Count - 1 .SetText(f, 0, test.registros.Tables(0).Columns(f).ColumnName()) 'nombre .SetText(f, 1, test.registros.Tables(0).Columns(f).DataType.ToString.Substring(Len("system.")))'tipo Next .SetColumnWidth(0, .GetPreferredColumnWidth(0) + 5) .SetColumnWidth(1, .GetPreferredColumnWidth(1) + 5) End With

With Me.FpSpread1.Sheets(0) 'Campos Virtuales a lista de registros Dim i As Integer Dim campo As DataColumn For i = 0 To test.CamposVirtuales.Tables(0).Rows.Count - 1

campo = New DataColumn

CISC UNIVESRIDAD DE GUAYAQUIL

72

With campo 'nombre del campo virtual .ColumnName = test.CamposVirtuales.Tables(0).Rows(i).Item(0).ToString .DefaultValue = "" 'formula .Expression = test.CamposVirtuales.Tables(0).Rows(i).Item(2).ToString End With

RegDatosAll.Tables(0).Columns.Add(campo) test.CamposVirtuales.Tables(0).Rows(i).Item(1) = RegDatosAll.Tables(0).Columns(campo.ColumnName.Trim).DataType .SetColumnWidth(.ColumnCount - 1, .GetPreferredColumnWidth(.ColumnCount - 1) + 5) Next End With

TestFileStream.Close() End If

Catch ex As Exception MsgBox("Error al cargar el archivo ... ") Finally Beep() End Try End Sub

Private Sub FrmSubTabla_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing tvNodo.NodeFont = New Font("Arial", 10, FontStyle.Regular) End Sub

Private Sub FrmSubTabla_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Control.CheckForIllegalCrossThreadCalls = False With Me.FpSpread1 .HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded .Sheets(0).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect .Sheets(1).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect

'ordenar .Sheets(0).SetColumnAllowAutoSort(-1, True) End With End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

73

Private Sub FpSpread1_SheetTabClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.SheetTabClickEventArgs) Handles FpSpread1.SheetTabClick If e.SheetTabIndex = 2 Then ToolStrip1.Visible = True Else ToolStrip1.Visible = False End If 'MsgBox(e.SheetTabIndex) End Sub

Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell If FpSpread1.ActiveSheetIndex = 2 Then If e.Column = 0 And e.Row = 0 Then If FpSpread1.Sheets(2).GetText(e.Row, e.Column).Trim.Length = 0 Then MsgBox("Debe ingresar un nombre ...", MsgBoxStyle.Critical) Me.FpSpread1.Sheets(2).SetActiveCell(0, 0, False) End If End If End If End Sub

Public Sub InsertarColumnConsulta() If Me.FpSpread1.Sheets(3).RowCount > 0 Then 'formulacion Dim frm As New FrmFormula frm.Formula = "" frm.LoadCampos(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.Formula.Trim.Length > 0 Then Dim name As String name = InputBox("Nombre de campo", "Nombre") If name.Trim.Length > 0 Then Dim campo As DataColumn campo = New DataColumn With campo 'nombre del campo virtual .ColumnName = name .DefaultValue = "" 'formula .Expression = frm.Formula.Trim '.Expression = "CustomerId" End With RegDatos.Tables(0).Columns.Add(campo) End If

CISC UNIVESRIDAD DE GUAYAQUIL

74

End If End If End Sub

Public Sub QuitarColumnConsulta() Try If Me.FpSpread1.Sheets(3).RowCount > 0 Then Dim frm As New FrmEliminarColumna frm.LoadCamposCombo(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.campo.Trim.Length > 0 Then RegDatos.Tables(0).Columns.Remove(frm.campo.Trim) End If End If Catch ex As Exception MsgBox("Error al eliminar columna: ... " & ex.Message) Finally Beep() End Try End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Me.FpSpread1.Sheets(2).AddRows(0, 1) Me.FpSpread1.Sheets(2).SetActiveCell(0, 0, False)

End Sub

Private Sub ToolStripButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click If Me.FpSpread1.Sheets(2).RowCount > 0 Then Me.FpSpread1.Sheets(2).RemoveRows(FpSpread1.Sheets(2).ActiveRow.Index, 1) End If End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click If Me.FpSpread1.Sheets(2).RowCount > 0 Then 'formulacion Dim frm As New FrmFormula frm.Formula = Me.FpSpread1.Sheets(2).GetText(Me.FpSpread1.Sheets(2).ActiveRowIndex, 2) frm.LoadCampos(Me.FpSpread1.Sheets(0)) frm.ShowDialog()

CISC UNIVESRIDAD DE GUAYAQUIL

75

Me.FpSpread1.Sheets(2).SetText(Me.FpSpread1.Sheets(2).ActiveRowIndex, 2, frm.Formula) End If End Sub

End Class

Frmtabla

Imports System.Data.OdbcImports System.IOImports System.Runtime.Serialization.Formatters.BinaryImports FarPoint.Win.Spread.CellType

Public Class FrmTabla Public directorio As String Public nombre_archivo As String Dim test As ClsArchivoAuditor Public ruta_archivo As String Public tvNodo As TreeNode Public tvNodoPadre As TreeNode

Public RegDatos As DataSet Public RegDatosAll As DataSet

'calculos Public Sub LimpiarFiltro() RegDatos = RegDatosAll.Clone Me.FpSpread1.Sheets(3).DataSource = RegDatos End Sub

Public Sub Duplicidad() Try

Dim frm As New FrmEliminarColumna frm.LoadCamposCombo(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.campo.Trim.Length > 0 Then Dim campo As String = frm.campo.Trim Dim drarray() As DataRow 'se copia el esquema de los registros RegDatos = RegDatosAll.Clone 'consulta drarray = RegDatosAll.Tables(0).Select("", campo & " ASC")

CISC UNIVESRIDAD DE GUAYAQUIL

76

Dim i As Integer Dim pivot As Integer Dim n As Integer Dim row As DataRow Dim c As Integer

i = 0 pivot = 0 n = 0 While (i < drarray.Length)

If (i <> drarray.Length - 1) Then

If (drarray(pivot).Item(campo) = drarray(i + 1).Item(campo)) Then

row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(i + 1).Item(c) Next RegDatos.Tables(0).Rows.Add(row)

n = n + 1

If n = 1 Then row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(pivot).Item(c) Next RegDatos.Tables(0).Rows.Add(row) End If

Else If n > 0 Then RegDatos.Tables(0).Rows.Add() End If n = 0 pivot = i + 1 End If End If i = i + 1 End While

Me.FpSpread1.Sheets(3).DataSource = RegDatos Me.FpSpread1.ActiveSheetIndex = 3 End If Catch ex As Exception MsgBox("Error de calculo de duplicidad ... ") Finally

CISC UNIVESRIDAD DE GUAYAQUIL

77

Beep() End Try End Sub

Public Sub RegistroAleatorio(ByVal n As Integer) Try

' Initialize the random-number generator. Randomize()

Dim drarray() As DataRow 'se copia el esquema de los registros RegDatos = RegDatosAll.Clone 'consulta drarray = RegDatosAll.Tables(0).Select("") Dim A(n) As Integer Dim i As Integer Dim ii As Integer Dim v As Integer Dim band As Boolean i = 0 While (i < n) v = CInt(Int(((drarray.Length - 1) * Rnd()) + 1))

band = False For ii = 0 To i If v = A(ii) Then band = True Exit For End If Next If Not band Then A(i) = v i = i + 1 End If End While

Dim c As Integer Dim f As Integer

'copiando registros '------------------------------------------------------------------- Dim row As DataRow

For f = 0 To n - 1 row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(A(f)).Item(c)

CISC UNIVESRIDAD DE GUAYAQUIL

78

Next RegDatos.Tables(0).Rows.Add(row) Next Me.FpSpread1.Sheets(3).DataSource = RegDatos Me.FpSpread1.ActiveSheetIndex = 3 Catch ex As Exception MsgBox("Error al cargar calculo registros aleatorios ... ") Finally Beep() End Try

End Sub

Public Sub Estratificacion()

End Sub

Public Sub SaltoSecuencia() Try

Dim frm As New FrmEliminarColumna frm.LoadCamposCombo(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.campo.Trim.Length > 0 Then Dim campo As String = frm.campo.Trim Dim drarray() As DataRow 'se copia el esquema de los registros RegDatos = RegDatosAll.Clone 'consulta drarray = RegDatosAll.Tables(0).Select("", campo & " ASC")

Dim i As Integer Dim n As Integer Dim row As DataRow Dim c As Integer

Me.FpSpread1.Sheets(3).DataSource = RegDatos

Me.FpSpread1.Sheets(3).SheetCornerStyleName = "No" 'el tipo de dato debe ser solo numerico If drarray(0).Item(campo).GetType.ToString.Trim = "System.Int32" Or drarray(0).Item(campo).GetType.ToString.Trim = "System.Int16" Then Dim v_min As Integer = drarray(0).Item(campo) Dim v_max As Integer = drarray(drarray.Length - 1).Item(campo) n = 0 For i = 0 To drarray.Length - 2 If ((drarray(i).Item(campo)) <> drarray(i + 1).Item(campo)) Then

CISC UNIVESRIDAD DE GUAYAQUIL

79

If ((drarray(i).Item(campo) + 1) <> drarray(i + 1).Item(campo)) Then

Me.FpSpread1.Sheets(3).AddRows(n, 1) Me.FpSpread1.Sheets(3).Models.Span.Add(n, 0, 1, drarray(0).Table.Columns.Count) Me.FpSpread1.Sheets(3).SetRowLabel(n, 0, "Salto")

Me.FpSpread1.Sheets(3).Rows(n).BackColor = Color.DarkGray row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(i).Item(c) Next RegDatos.Tables(0).Rows.Add(row)

row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(i + 1).Item(c) Next RegDatos.Tables(0).Rows.Add(row)

Me.FpSpread1.Sheets(3).SetRowLabel(n + 2, 0, "Min") Me.FpSpread1.Sheets(3).SetRowLabel(n + 1, 0, "Max")

n = n + 3 End If End If Next

Me.FpSpread1.ActiveSheetIndex = 3 'MsgBox(v_min & " -- " & v_max & " tipo " & drarray(0).Item(campo).GetType.ToString) Else MsgBox("El campo debe ser de tipo numerico") End If 'i = 0 'pivot = 0 'n = 0 'While (i < drarray.Length)

' If (i <> drarray.Length - 1) Then

' If (drarray(pivot).Item(campo) = drarray(i + 1).Item(campo)) Then

' row = RegDatos.Tables(0).NewRow() ' For c = 0 To drarray(0).Table.Columns.Count - 1

CISC UNIVESRIDAD DE GUAYAQUIL

80

' row(c) = drarray(i + 1).Item(c) ' Next ' RegDatos.Tables(0).Rows.Add(row)

' n = n + 1

' If n = 1 Then ' row = RegDatos.Tables(0).NewRow() ' For c = 0 To drarray(0).Table.Columns.Count - 1 ' row(c) = drarray(pivot).Item(c) ' Next ' RegDatos.Tables(0).Rows.Add(row) ' End If

' Else ' n = 0 ' pivot = i + 1 ' End If ' End If ' i = i + 1 'End While

'Me.FpSpread1.Sheets(3).DataSource = RegDatos 'Me.FpSpread1.ActiveSheetIndex = 3 End If Catch ex As Exception MsgBox("Error de calculo de salto de secuencia... ") Finally Beep() End Try End Sub

Public Sub filtrar(ByVal filterexp As String) Try Dim drarray() As DataRow 'se copia el esquema de los registros RegDatos = RegDatosAll.Clone 'consulta drarray = RegDatosAll.Tables(0).Select(filterexp)

Dim c As Integer Dim f As Integer

'copiando registros '------------------------------------------------------------------- Dim row As DataRow

For f = 0 To drarray.Length - 1 row = RegDatos.Tables(0).NewRow()

CISC UNIVESRIDAD DE GUAYAQUIL

81

For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(f).Item(c) Next RegDatos.Tables(0).Rows.Add(row) Next

Me.FpSpread1.Sheets(3).DataSource = RegDatos Me.FpSpread1.ActiveSheetIndex = 3 Catch ex As Exception MsgBox("Error al cargar consulta ... ") Finally Beep() End Try End Sub

Public Sub Imprimir() Dim cabecera As String Dim pie As String

With pi .ColStart = FpSpread1.ActiveSheet.Models.Selection.AnchorColumn .ColEnd = FpSpread1.ActiveSheet.Models.Selection.LeadColumn .RowStart = FpSpread1.ActiveSheet.Models.Selection.AnchorRow .RowEnd = FpSpread1.ActiveSheet.Models.Selection.LeadRow End With If FrmImprimirReporte.IsDisposed Then FrmImprimirReporte = New FrmImprimirReporte()

End If cabecera = "/c/fz""16""/fb Reporte de Auditoria /n" Select Case FpSpread1.ActiveSheetIndex Case 0 cabecera = cabecera + "/c/fz""16""/fb General (Registros y Campos)/n" Case 1 cabecera = cabecera + "/c/fz""16""/fb Campos originales /n" Case 2 cabecera = cabecera + "/c/fz""16""/fb Campos Virtuales /n" Case 3 cabecera = cabecera + "/c/fz""16""/fb Registros de Filtro /n" End Select

cabecera = cabecera & "/r/fz""10""/fb0 Fecha-Hora: " & Date.Now & " /n" cabecera = cabecera & " /n" pie = "Auditor (Firma): ____________________________ /n /n" FrmImprimirReporte.StartPage(FpSpread1, cabecera, pie) End Sub

Public Sub Guardar() 'MsgBox(directorio & " " & nombre_archivo)

CISC UNIVESRIDAD DE GUAYAQUIL

82

'Campos Virtuales test.CamposVirtuales = Me.FpSpread1.Sheets(2).DataSource GuardarCambios(ruta_archivo, test) OpenArchivo(ruta_archivo) 'MsgBox("guardado con exito " & ruta_archivo) End Sub

Public Sub OpenArchivo(ByVal archivo As String) Try If File.Exists(archivo) Then Dim TestFileStream As Stream = File.OpenRead(archivo) Dim deserializer As New BinaryFormatter

test = CType(deserializer.Deserialize(TestFileStream), ClsArchivoAuditor) ruta_archivo = archivo nombre_archivo = test.nombre

Me.Text = "Archivo: " & test.nombre & " Creado: " & test.fecha.ToString

'registros With Me.FpSpread1.Sheets(0) RegDatosAll = test.registros.Copy 'esquema de registros para filtro RegDatos = RegDatosAll.Clone

.DataSource = RegDatosAll .Columns(0, .ColumnCount - 1).BackColor = Color.Azure

Me.FpSpread1.Sheets(3).DataSource = RegDatos End With

'Campos Virtuales With Me.FpSpread1.Sheets(2) .DataSource = test.CamposVirtuales .Columns(1, 1).BackColor = Color.Azure .Columns(1, 1).Locked = True End With

'lista de campos With Me.FpSpread1.Sheets(1) .RowCount = 0 .ColumnCount = 2

.ColumnHeader.Columns(0).Label = "Nombre" .ColumnHeader.Columns(1).Label = "Tipo"

CISC UNIVESRIDAD DE GUAYAQUIL

83

.Columns(1, 1).BackColor = Color.Yellow .RowCount = test.registros.Tables(0).Columns.Count

Dim f As Integer 'campos For f = 0 To test.registros.Tables(0).Columns.Count - 1 .SetText(f, 0, test.registros.Tables(0).Columns(f).ColumnName()) 'nombre .SetText(f, 1, test.registros.Tables(0).Columns(f).DataType.ToString.Substring(Len("system.")))'tipo Next .SetColumnWidth(0, .GetPreferredColumnWidth(0) + 5) .SetColumnWidth(1, .GetPreferredColumnWidth(1) + 5) End With

With Me.FpSpread1.Sheets(0) 'Campos Virtuales a lista de registros Dim i As Integer Dim campo As DataColumn For i = 0 To test.CamposVirtuales.Tables(0).Rows.Count - 1

campo = New DataColumn With campo '.DataType = System.Type.GetType("System.String") 'nombre del campo virtual .ColumnName = test.CamposVirtuales.Tables(0).Rows(i).Item(0).ToString .DefaultValue = "" 'formula .Expression = test.CamposVirtuales.Tables(0).Rows(i).Item(2).ToString '.Expression = "CustomerId" End With

RegDatosAll.Tables(0).Columns.Add(campo) test.CamposVirtuales.Tables(0).Rows(i).Item(1) = RegDatosAll.Tables(0).Columns(campo.ColumnName.Trim).DataType .SetColumnWidth(.ColumnCount - 1, .GetPreferredColumnWidth(.ColumnCount - 1) + 5) Next End With

TestFileStream.Close() End If

Catch ex As Exception MsgBox("Error al cargar el archivo ... ") Finally

CISC UNIVESRIDAD DE GUAYAQUIL

84

Beep() End Try End Sub

Public Sub CargarDatos(ByVal nameTBL As String, ByVal str_conex As String, ByVal sql As String, ByVal tipo As Boolean) Dim odbccon As New OdbcConnection Dim duser As New DataSet Dim odbcadap As New OdbcDataAdapter Dim odbccmd As New OdbcCommand

odbccon.ConnectionString = str_conex

If tipo Then

odbccmd.CommandText = sql odbccmd.CommandType = CommandType.Text odbccmd.Connection = odbccon odbcadap.SelectCommand = odbccmd

odbcadap.Fill(duser) Else odbccmd.CommandText = sql odbccmd.CommandType = CommandType.Text odbccmd.Connection = odbccon odbcadap.SelectCommand = odbccmd

odbcadap.Fill(duser) End If

GuardarArchivo(nombre_archivo, directorio, duser, ".sac") odbccon.Close() 'cambio OpenArchivo(directorio & "\" & nombre_archivo & "\" & nombre_archivo & ".sac") End Sub

Private Sub FrmTabla_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing tvNodo.NodeFont = New Font("Arial", 10, FontStyle.Regular) End Sub

Private Sub FrmTabla_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'btnGuardar = MDIPrincipal.SaveToolStripButton

Control.CheckForIllegalCrossThreadCalls = False With Me.FpSpread1

CISC UNIVESRIDAD DE GUAYAQUIL

85

.HorizontalScrollBarPolicy = FarPoint.Win.Spread.ScrollBarPolicy.AsNeeded .Sheets(0).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect .Sheets(1).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect .Sheets(3).OperationMode = FarPoint.Win.Spread.OperationMode.SingleSelect

'ordenar .Sheets(0).SetColumnAllowAutoSort(-1, True) .Sheets(3).SetColumnAllowAutoSort(-1, True) End With

End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Me.FpSpread1.Sheets(2).AddRows(0, 1) Me.FpSpread1.Sheets(2).SetActiveCell(0, 0, False)

End Sub

Private Sub ToolStripButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click If Me.FpSpread1.Sheets(2).RowCount > 0 Then Me.FpSpread1.Sheets(2).RemoveRows(FpSpread1.Sheets(2).ActiveRow.Index, 1) End If End Sub

Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell If FpSpread1.ActiveSheetIndex = 2 Then If e.Column = 0 And e.Row = 0 Then If FpSpread1.Sheets(2).GetText(e.Row, e.Column).Trim.Length = 0 Then MsgBox("Debe ingresar un nombre ...", MsgBoxStyle.Critical) Me.FpSpread1.Sheets(2).SetActiveCell(0, 0, False) End If End If End If End Sub

Private Sub FpSpread1_SheetTabClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.SheetTabClickEventArgs) Handles FpSpread1.SheetTabClick If e.SheetTabIndex = 2 Then

CISC UNIVESRIDAD DE GUAYAQUIL

86

ToolStrip1.Visible = True Else ToolStrip1.Visible = False End If 'MsgBox(e.SheetTabIndex) End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click If Me.FpSpread1.Sheets(2).RowCount > 0 Then 'formulacion Dim frm As New FrmFormula frm.Formula = Me.FpSpread1.Sheets(2).GetText(Me.FpSpread1.Sheets(2).ActiveRowIndex, 2) frm.LoadCampos(Me.FpSpread1.Sheets(0)) frm.ShowDialog() Me.FpSpread1.Sheets(2).SetText(Me.FpSpread1.Sheets(2).ActiveRowIndex, 2, frm.Formula) End If End Sub

Public Sub formulaFiltro(ByVal expr As String) 'formulacion Dim frm As New FrmFormula frm.Formula = expr frm.LoadCampos(Me.FpSpread1.Sheets(0)) frm.ShowDialog() MDIPrincipal.ToolStripComboBox1.Text = frm.Formula End Sub

Public Sub InsertarColumnConsulta() If Me.FpSpread1.Sheets(3).RowCount > 0 Then 'formulacion Dim frm As New FrmFormula frm.Formula = "" frm.LoadCampos(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.Formula.Trim.Length > 0 Then Dim name As String name = InputBox("Nombre de campo", "Nombre") If name.Trim.Length > 0 Then Dim campo As DataColumn campo = New DataColumn With campo 'nombre del campo virtual .ColumnName = name .DefaultValue = ""

CISC UNIVESRIDAD DE GUAYAQUIL

87

'formula .Expression = frm.Formula.Trim '.Expression = "CustomerId" End With RegDatos.Tables(0).Columns.Add(campo) End If End If End If End Sub

Public Sub QuitarColumnConsulta() try If Me.FpSpread1.Sheets(3).RowCount > 0 Then Dim frm As New FrmEliminarColumna frm.LoadCamposCombo(Me.FpSpread1.Sheets(3)) frm.ShowDialog()

If frm.campo.Trim.Length > 0 Then RegDatos.Tables(0).Columns.Remove(frm.campo.Trim) End If End If Catch ex As Exception MsgBox("Error al eliminar columna: ... " & ex.Message) Finally Beep() End Try End SubEnd Class

Mdiprincipal

Imports System.IOImports System.Runtime.Serialization.Formatters.Binary

Public Class MDIPrincipal Private ADM As FrmExplorer

Private Sub SaveAsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Dim SaveFileDialog As New SaveFileDialog SaveFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments SaveFileDialog.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos (*.*)|*.*"

CISC UNIVESRIDAD DE GUAYAQUIL

88

If (SaveFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then Dim FileName As String = SaveFileDialog.FileName End If End Sub

Private Sub ExitToolsStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ExitToolStripMenuItem.Click Me.Close() 'Global.System.Windows.Forms.Application.Exit() End Sub

Private Sub ToolBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ToolBarToolStripMenuItem.Click Me.ToolStrip.Visible = Me.ToolBarToolStripMenuItem.Checked End Sub

Private Sub StatusBarToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles StatusBarToolStripMenuItem.Click Me.StatusStrip.Visible = Me.StatusBarToolStripMenuItem.Checked End Sub

Private Sub CascadeToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles CascadeToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.Cascade) End Sub

Private Sub TileVerticleToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileVerticalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileVertical) End Sub

Private Sub TileHorizontalToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles TileHorizontalToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.TileHorizontal) End Sub

Private Sub ArrangeIconsToolStripMenuItem_Click(ByVal sender As Object, ByVal e As EventArgs) Handles ArrangeIconsToolStripMenuItem.Click Me.LayoutMdi(MdiLayout.ArrangeIcons) End Sub

Private Sub CloseAllToolStripMenuItem_Click(ByVal sender As Object, ByVale As EventArgs) Handles CloseAllToolStripMenuItem.Click ' Cierre todos los formularios secundarios del primario. For Each ChildForm As Form In Me.MdiChildren ChildForm.Close() Next End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

89

Private Sub MDIPrincipal_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing e.Cancel = False End Sub

Private Sub MDIPrincipal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load CargarExplorador() End Sub

Private Sub CargarExplorador() If IsNothing(ADM) Then ADM = New FrmExplorer ADM.MdiParent = Me ADM.Show() ADM.Top = 0 ADM.Left = 0 ADM.MinimizeBox = False ADM.MaximizeBox = False End If End Sub

Private Sub ExplorerToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExplorerToolStripButton.Click ADM.Top = 0 ADM.Left = 0 ADM.Show() End Sub

Public Sub CargarFormaTabla(ByVal frm As Form) frm.MdiParent = Me frm.Show() ''''ADM.CargarAuditores() End Sub

Private Sub NuevoCliente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NuevoCliente.Click Nuevo_Cliente() End Sub

Private Sub Nuevo_Cliente() Dim directorio_auditores As String

directorio_auditores = Trim(My.Application.Info.DirectoryPath & "\AUDITORES")

If My.Computer.FileSystem.DirectoryExists(directorio_auditores) Then Dim directorio As String = ""

CISC UNIVESRIDAD DE GUAYAQUIL

90

directorio = InputBox("Nombre directorio", "Cliente")

If Not directorio.Trim = "" Then If My.Computer.FileSystem.DirectoryExists(directorio_auditores & "\" & directorio.Trim) Then MsgBox("Nombre de cliente ya existe ...", MsgBoxStyle.Critical) Else My.Computer.FileSystem.CreateDirectory(directorio_auditores & "\" & directorio.Trim) ADM.CargarAuditores() End If End If Else MsgBox("creado directorio ..\auditores", MsgBoxStyle.Information) My.Computer.FileSystem.CreateDirectory(directorio_auditores) End If End Sub

Private Sub NuevoBaseDatos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NuevoBaseDatos.Click Nuevo_BaseDatos() End Sub

Private Sub Nuevo_BaseDatos() If ADM.TreeView.SelectedNode.SelectedImageIndex = 2 Then

Dim directorio_cliente As String

directorio_cliente = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\" & ADM.TreeView.SelectedNode.Text.Trim)

If My.Computer.FileSystem.DirectoryExists(directorio_cliente) Then Dim directorio_bd As String

directorio_bd = InputBox("Nombre Base de Datos", "Base de datos")

If Not directorio_bd.Trim = "" Then If My.Computer.FileSystem.DirectoryExists(directorio_cliente & "\" & directorio_bd.Trim) Then MsgBox("Nombre de Base de Datos ya existe ...", MsgBoxStyle.Critical) Else My.Computer.FileSystem.CreateDirectory(directorio_cliente & "\" & directorio_bd.Trim) ADM.CargarAuditores() End If End If

CISC UNIVESRIDAD DE GUAYAQUIL

91

End If

Else

MsgBox("Debe seleccionar un cliente ...", MsgBoxStyle.Critical)

End If End Sub

Private Sub NuevoSAC()

'For Each ChildForm As Form In Me.MdiChildren ' ChildForm.Close() 'Next

If ADM.TreeView.SelectedNode.SelectedImageIndex = 4 Then

If ADM.TreeView.SelectedNode.Index <> -1 Then If ADM.TreeView.SelectedNode.SelectedImageIndex = 4 Then Dim directorio_BD As String Dim cliente As String

cliente = ADM.TreeView.SelectedNode.Parent.Text.Trim directorio_BD = Trim(My.Application.Info.DirectoryPath & "\AUDITORES\" & cliente & "\" & ADM.TreeView.SelectedNode.Text.Trim)

If My.Computer.FileSystem.DirectoryExists(directorio_BD) Then Dim frmDatos As New AgregarTabla frmDatos.tvNodo = ADM.TreeView.SelectedNode frmDatos.directorio = directorio_BD frmDatos.ShowDialog() End If End If End If

Else MsgBox("Debe seleccionar una base de datos ...", MsgBoxStyle.Critical) End If End Sub

Private Sub NuevoArchivoSAC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NuevoArchivoSAC.Click NuevoSAC() End Sub

Private Sub SaveToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripButton.Click Guardar() End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

92

Private Sub OpenToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OpenToolStripButton.Click If ADM.TreeView.SelectedNode.SelectedImageIndex = 3 Then If ADM.TreeView.SelectedNode.Index <> -1 Then If ADM.TreeView.SelectedNode.SelectedImageIndex = 3 Then ADM.AbrirArchivoTree() End If End If Else MsgBox("Debe seleccionar una archivo de datos ...", MsgBoxStyle.Critical) End If End Sub

Private Sub PrintToolStripButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintToolStripButton.Click Imprimir() End Sub

Private Sub Imprimir() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm currentForm.Imprimir() End If End If

End Sub Private Sub Guardar() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm currentForm.Guardar() ElseIf frm.GetType.ToString = "WindowsApplication1.FrmSubTabla" Then Dim currentForm As FrmSubTabla = frm currentForm.Guardar() End If End If End Sub

Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton3.Click If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then

CISC UNIVESRIDAD DE GUAYAQUIL

93

Dim currentForm As FrmTabla = frm Dim filterExp As String = ToolStripComboBox1.Text.Trim currentForm.filtrar(filterExp) End If End If End Sub

Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm Dim Exp As String = ToolStripComboBox1.Text.Trim

If Exp.Length > 0 Then ToolStripComboBox1.Items.Add(Exp) End If ToolStripComboBox1.Text = "" 'Dim sortExp As String = "Country" currentForm.LimpiarFiltro() End If End If End Sub

Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm Dim filterExp As String = ToolStripComboBox1.Text.Trim currentForm.formulaFiltro(filterExp) End If End If End Sub

Private Sub ToolStripBtnInsertarCampo_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles ToolStripBtnInsertarCampo.Click If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

If currentForm.FpSpread1.ActiveSheetIndex = 3 Then If currentForm.FpSpread1.ActiveSheet.RowCount > 0 Then currentForm.InsertarColumnConsulta() Else

CISC UNIVESRIDAD DE GUAYAQUIL

94

MsgBox("debe haber almenos un registro en la consulta", MsgBoxStyle.Critical) End If Else MsgBox("debe seleccionar el diseñador de consulta", MsgBoxStyle.Critical) End If End If End If End Sub

Private Sub ToolStripBtnEliminarCampo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripBtnEliminarCampo.Click If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

If currentForm.FpSpread1.ActiveSheetIndex = 3 Then If currentForm.FpSpread1.ActiveSheet.RowCount > 0 Then currentForm.QuitarColumnConsulta() Else MsgBox("debe haber almenos un registro en la consulta", MsgBoxStyle.Critical) End If Else MsgBox("debe seleccionar el diseñador de consulta", MsgBoxStyle.Critical) End If End If End If End Sub

Private Sub BtnAleatorio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAleatorio.Click Calculo_Aleatorio() End Sub Private Sub BtnDuplicados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDuplicados.Click Calculo_Duplicidad() End Sub Private Sub BtnSaltos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSaltos.Click Calculo_Saltos() End Sub 'calculos Public Sub Calculo_Duplicidad() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then

CISC UNIVESRIDAD DE GUAYAQUIL

95

Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

If currentForm.FpSpread1.ActiveSheetIndex = 3 Then If currentForm.FpSpread1.ActiveSheet.RowCount > 0 Then

currentForm.Duplicidad()

Else MsgBox("debe haber almenos un registro en la consulta", MsgBoxStyle.Critical) End If Else MsgBox("debe seleccionar el diseñador de consulta", MsgBoxStyle.Critical) End If End If End If End Sub Public Sub Calculo_Aleatorio() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

Dim n As String Dim nr As Integer = currentForm.RegDatosAll.Tables(0).Rows.Count

n = InputBox("Cantidad de registros, " & Chr(13) & "Rango minimo(1)" & Chr(13) & "Rango maximo(" & nr & ") :", "Ingrese la cantidad de registros a presentar ")

If Not n.Trim = "" Then If IsNumeric(n) Then

If n >= 1 And n < nr Then currentForm.RegistroAleatorio(CInt(n)) Else MsgBox("Fuera de rango ...", MsgBoxStyle.Critical) End If Else MsgBox("Debe ingresar solo valores numericos", MsgBoxStyle.Critical) End If End If

End If End If

CISC UNIVESRIDAD DE GUAYAQUIL

96

End Sub Public Sub Calculo_Saltos() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

If currentForm.FpSpread1.ActiveSheetIndex = 3 Then If currentForm.FpSpread1.ActiveSheet.RowCount > 0 Then

currentForm.SaltoSecuencia()

Else MsgBox("debe haber almenos un registro en la consulta", MsgBoxStyle.Critical) End If Else MsgBox("debe seleccionar el diseñador de consulta", MsgBoxStyle.Critical) End If End If End If End Sub Public Sub Calculo_Estratificacion()

End Sub

Private Sub ToolSubTabla_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolSubTabla.Click Nuevo_SubTabla() End Sub

Private Sub DuplicidadToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DuplicidadToolStripMenuItem.Click Calculo_Duplicidad() End Sub Private Sub RegistroAleatorioToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RegistroAleatorioToolStripMenuItem.Click Calculo_Aleatorio() End Sub Private Sub SaltoDeSecuenciaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaltoDeSecuenciaToolStripMenuItem.Click Calculo_Saltos() End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

97

Private Sub SaveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveToolStripMenuItem.Click Guardar() End Sub

Private Sub ClienteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClienteToolStripMenuItem.Click Nuevo_Cliente() End Sub

Private Sub BaseDeDatosToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BaseDeDatosToolStripMenuItem.Click Nuevo_BaseDatos() End Sub

Private Sub TablaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TablaToolStripMenuItem.Click NuevoSAC() End Sub

Private Sub SubTablaToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SubTablaToolStripMenuItem.Click Nuevo_SubTabla() End Sub

Private Sub Nuevo_SubTabla() If Not Form.ActiveForm.ActiveMdiChild Is Nothing Then Dim frm As Form = Form.ActiveForm.ActiveMdiChild If frm.GetType.ToString = "WindowsApplication1.FrmTabla" Then Dim currentForm As FrmTabla = frm

If currentForm.FpSpread1.ActiveSheetIndex = 3 Then If currentForm.FpSpread1.ActiveSheet.RowCount > 0 Then

'currentForm. Dim directorio As String = currentForm.directorio.Trim & "\" & currentForm.nombre_archivo.Trim Dim nombre_archivo As String

nombre_archivo = InputBox("Nombre de Subtabla", "Subtabla") MsgBox(currentForm.directorio & "\" & currentForm.nombre_archivo)

If Not directorio.Trim = "" Then If My.Computer.FileSystem.DirectoryExists(directorio) Then Dim frmSub As New FrmSubTabla

CISC UNIVESRIDAD DE GUAYAQUIL

98

GuardarArchivo(nombre_archivo, directorio, currentForm.RegDatos, ".sub") frmSub.directorio = directorio frmSub.nombre_archivo = nombre_archivo.Trim frmSub.MdiParent = Me

Dim tvnodo As TreeNode tvnodo = currentForm.tvNodo.Nodes.Add(frmSub.nombre_archivo, frmSub.nombre_archivo, 5, 5) tvnodo.ForeColor = Color.DarkGray tvnodo.NodeFont = New Font("Arial", 10, FontStyle.Regular) End If End If Else MsgBox("debe haber almenos un registro en la consulta", MsgBoxStyle.Critical) End If Else MsgBox("debe seleccionar el diseñador de consulta", MsgBoxStyle.Critical) End If End If End If End Sub

Private Sub PrintToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintToolStripMenuItem.Click Imprimir() End SubEnd Class

Pagesetup

Public Class pagesetup Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating If Not (IsNumeric(TextBox1.Text)) Then MsgBox("Debe ser un numero") e.Cancel = True End If End Sub

Private Sub TextBox2_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox2.Validating

CISC UNIVESRIDAD DE GUAYAQUIL

99

If Not (IsNumeric(TextBox2.Text)) Then MsgBox("Debe ser un numero") e.Cancel = True End If End Sub

Private Sub TextBox3_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox3.Validating If Not (IsNumeric(TextBox3.Text)) Then MsgBox("Debe ser un numero") e.Cancel = True End If End Sub

Private Sub TextBox4_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox4.Validating If Not (IsNumeric(TextBox4.Text)) Then MsgBox("Debe ser un numero") e.Cancel = True End If End Sub

Private Sub pagesetup_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim pm As New FarPoint.Win.Spread.PrintMargin() With pi If .Orientation = FarPoint.Win.Spread.PrintOrientation.Landscape Then RadioButton2.Checked = True Else RadioButton1.Checked = True End If pm = .Margin TextBox1.Text = pm.Left TextBox2.Text = pm.Right TextBox3.Text = pm.Top TextBox4.Text = pm.Bottom pm.Header = 0 pm.Footer = 0 End With End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim pm As New FarPoint.Win.Spread.PrintMargin()

CISC UNIVESRIDAD DE GUAYAQUIL

100

If RadioButton2.Checked = True Then pi.Orientation = FarPoint.Win.Spread.PrintOrientation.Landscape Else pi.Orientation = FarPoint.Win.Spread.PrintOrientation.Portrait End If

pm.Left = Integer.Parse(TextBox1.Text) pm.Right = Integer.Parse(TextBox2.Text) pm.Top = Integer.Parse(TextBox3.Text) pm.Bottom = Integer.Parse(TextBox4.Text) pi.Margin = pm Me.Close() End Sub

End Class

SplashscreenPublic NotInheritable Class SplashScreen1

'TODO: Este formulario se puede establecer fácilmente como pantalla de bienvenida para la aplicación desde la ficha "Aplicación" ' del Diseñador de proyectos ("Propiedades" bajo el menú "Proyecto").

Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Configure el texto del cuadro de diálogo en tiempo de ejecución según la información del ensamblado de la aplicación.

'TODO: Personalice la información del ensamblado de la aplicación en el panel "Aplicación" del cuadro de diálogo ' propiedades del proyecto (bajo el menú "Proyecto").

'Título de la aplicación If My.Application.Info.Title <> "" Then ApplicationTitle.Text = My.Application.Info.Title Else 'Si falta el título de la aplicación, utilice el nombre de la aplicación sin la extensión ApplicationTitle.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) End If

'Dé formato a la información de versión usando el texto establecido en el control de versión en tiempo de diseño como ' cadena de formato. Esto le permite una localización efectiva si lo desea.

CISC UNIVESRIDAD DE GUAYAQUIL

101

' Se pudo incluir la información de generación y revisión usando el siguientecódigo y cambiando el ' texto en tiempo de diseño del control de versión a "Versión {0}.{1:00}.{2}.{3}" o algo parecido. Consulte ' String.Format() en la Ayuda para obtener más información. ' ' Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor, My.Application.Info.Version.Build, My.Application.Info.Version.Revision)

Version.Text = System.String.Format(Version.Text, My.Application.Info.Version.Major, My.Application.Info.Version.Minor)

'Información de Copyright Copyright.Text = My.Application.Info.Copyright End Sub

Private Sub ApplicationTitle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ApplicationTitle.Click

End SubEnd Class

Classarchivo auditor

<Serializable()> Public Class ClsArchivoAuditor 'Try

'Catch ex As Exception ' MsgBox(ex.ToString) 'Finally ' Beep() 'End Try

Public nombre As String Public fecha As Date Public registros As DataSet Public CamposVirtuales As DataSet

Public Sub New() nombre = "archivo_audi" fecha = Now CamposVirtuales = My.Forms.MDIPrincipal.DSCamposVirtuales End Sub 'New

Public Sub Print() Debug.Print("nombre = '{0}'", nombre) Debug.Print("fecha = '{0}'", fecha.ToString)

CISC UNIVESRIDAD DE GUAYAQUIL

102

End Sub 'Print

End Class

Modarchivo

Imports System.IOImports System.Runtime.Serialization.Formatters.BinaryModule ModArchivo Public pi As New FarPoint.Win.Spread.PrintInfo()

Public Sub SaveFile(ByVal directorio As String, ByVal namefile As String, ByVal obj As ClsArchivoAuditor, ByVal tipo As String) Try If Not directorio.Trim = "" Then If My.Computer.FileSystem.DirectoryExists(directorio.Trim & "\" & namefile.Trim) Then MsgBox("Nombre de archivo ya existe ...", MsgBoxStyle.Critical) Else Dim ruta As String = ""

If tipo = ".sac" Then ruta = directorio.Trim & "\" & namefile.Trim My.Computer.FileSystem.CreateDirectory(ruta) ElseIf tipo = ".sub" Then ruta = directorio.Trim End If

Dim TestFileStream As Stream = File.Create(ruta & "\" & namefile &tipo) Dim serializer As New BinaryFormatter serializer.Serialize(TestFileStream, obj) TestFileStream.Close()

End If End If

Catch ex As Exception MsgBox("Error guardando archivo...") Finally Beep() End Try End Sub

Public Sub DeleteFile(ByVal ruta_archivo As String)

CISC UNIVESRIDAD DE GUAYAQUIL

103

Try File.Delete(ruta_archivo) MsgBox("Archivo eliminado...") Catch ex As Exception MsgBox("Error eliminando archivo...") Finally Beep() End Try End Sub

Public Sub DeleteDirectory(ByVal ruta_directorio As String) Try Directory.Delete(ruta_directorio, True) MsgBox("Directorio eliminado...") Catch ex As Exception MsgBox("Error eliminando archivo...") Finally Beep() End Try End Sub

Public Sub GuardarArchivo(ByVal fn As String, ByVal directorio As String, ByVal ds As DataSet, ByVal tipo As String) Dim obj As New ClsArchivoAuditor obj.registros = ds obj.nombre = fn SaveFile(directorio, fn, obj, tipo) End Sub

Public Sub GuardarCambios(ByVal ruta_archivo As String, ByVal obj As ClsArchivoAuditor) Try Dim TestFileStream As Stream = File.Create(ruta_archivo) Dim serializer As New BinaryFormatter serializer.Serialize(TestFileStream, obj) TestFileStream.Close()

Catch ex As Exception MsgBox("Error guardando cambios...") Finally Beep() End Try End Sub

End Module

Modconexion

CISC UNIVESRIDAD DE GUAYAQUIL

104

Imports System.Data.OdbcModule ModConexion Public Enum E_DSN Usuario = 31 Sistema = 32 End Enum

'APIS Private Declare Function SQLFreeEnvJC Lib "ODBC32.DLL" Alias "SQLFreeEnv" (ByVal han As Integer) As Integer

Private Declare Function SQLAllocEnvJC Lib "ODBC32.DLL" Alias "SQLAllocEnv" (ByRef han As Integer) As Integer

Private Declare Function SQLDataSourcesJC Lib "ODBC32.DLL" Alias "SQLDataSources" _ (ByVal han As Integer, _ ByVal iDir As Integer, _ ByVal sServerName As String, _ ByVal iBuf1 As Integer, _ ByRef iRealBuf1 As Integer, _ ByVal sDesc As String, _ ByVal iBuf2 As Integer, _ ByRef iRealBuf2 As Integer) As Integer

Public Sub listar_Dsn(ByVal DSNList As Collection, ByVal dsnType As E_DSN)

Dim s_Dsn As String Dim s_D As String Dim Len_Dsn As Integer Dim Len_D As Integer Dim ret As Integer Dim rets As Integer Dim flag As Boolean

flag = False SQLAllocEnvJC(rets) Do s_Dsn = Space(1024) s_D = Space(1024)

If flag Then ret = SQLDataSourcesJC(rets, 1, _ s_Dsn, 1024, Len_Dsn, _ s_D, 1024, Len_D)

Else

CISC UNIVESRIDAD DE GUAYAQUIL

105

ret = SQLDataSourcesJC(rets, dsnType, _ s_Dsn, 1024, Len_Dsn, _ s_D, 1024, Len_D)

flag = True End If

If ret = 0 Then DSNList.Add(Mid(s_Dsn, 1, Len_Dsn)) End If Loop While Len_Dsn <> 0 And ret = 0

Call SQLFreeEnvJC(rets)

End Sub

End Module

Muestreo Aleatorio Estratificado

Public Class FormEstratificar Public RegDatos As DataSet Public RegDatosAll As DataSet Public grilla As FarPoint.Win.Spread.FpSpread Public campo As String

Private Sub FormatNumerico() InitGrilla() Dim tn As New FarPoint.Win.Spread.CellType.NumberCellType tn.DecimalSeparator = "." Rangos.Sheets(0).Columns(0).CellType = tn Rangos.Sheets(0).Columns(1).CellType = tn End Sub

Private Sub FormatFecha() InitGrilla() Dim td As New FarPoint.Win.Spread.CellType.DateTimeCellType td.DateSeparator = "/"

CISC UNIVESRIDAD DE GUAYAQUIL

106

Rangos.Sheets(0).Columns(0).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center Rangos.Sheets(0).Columns(0).CellType = td Rangos.Sheets(0).Columns(1).HorizontalAlignment = FarPoint.Win.Spread.CellHorizontalAlignment.Center Rangos.Sheets(0).Columns(1).CellType = td End Sub

Private Sub InitGrilla() With Rangos.Sheets(0) .Reset() .RowCount = 0 .ColumnCount = 4 .ColumnHeader.Columns(0).Label = "Desde" .ColumnHeader.Columns(1).Label = "Hasta" .ColumnHeader.Columns(2).Label = "# Reg" .ColumnHeader.Columns(3).Label = "# Reg presentar"

.ColumnHeader.Columns(0).Width = .ColumnHeader.Columns(0).GetPreferredWidth() + 10 .ColumnHeader.Columns(1).Width = .ColumnHeader.Columns(1).GetPreferredWidth() + 10 .ColumnHeader.Columns(2).Width = .ColumnHeader.Columns(2).GetPreferredWidth() + 10 .ColumnHeader.Columns(3).Width = .ColumnHeader.Columns(3).GetPreferredWidth() + 10

Dim tn As New FarPoint.Win.Spread.CellType.NumberCellType tn.DecimalPlaces = 0 tn.MinimumValue = 0

.Columns(2).CellType = tn .Columns(3).CellType = tn

.Columns(2, 2).BackColor = Color.Azure .Columns(2, 2).Locked = True End With End Sub

Private Sub FormEstratificar_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load InitGrilla() End Sub

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged FormatNumerico() End Sub

CISC UNIVESRIDAD DE GUAYAQUIL

107

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged FormatFecha() End Sub

Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click With Rangos.Sheets(0) If .RowCount < 6 Then .AddRows(.RowCount, 1) .SetColumnWidth(0, .GetPreferredColumnWidth(0) + 5) .SetColumnWidth(1, .GetPreferredColumnWidth(1) + 5) .SetColumnWidth(2, .GetPreferredColumnWidth(2) + 5) .SetColumnWidth(3, .GetPreferredColumnWidth(3) + 5) Else MsgBox("Maximo de filas a ingresar 6", MsgBoxStyle.Information) End If

End With End Sub

Private Sub BtnDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDel.Click If Rangos.Sheets(0).RowCount > 0 Then Rangos.Sheets(0).RemoveRows(Rangos.Sheets(0).ActiveRow.Index, 1) End If End Sub

Public Sub LoadCamposCombo(ByVal h As FarPoint.Win.Spread.SheetView) 'lista de campos campo = "" With h Dim c As Integer For c = 0 To .ColumnCount - 1 CmbListaCampo.Items.Add(.Columns(c).Label) Next End With End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Rangos.Sheets(0).RowCount > 0 Then If CmbListaCampo.Text.Trim.Length = 0 Then MsgBox("Debe seleccionar un campo de la lista ...", MsgBoxStyle.Critical) Else campo = CmbListaCampo.Text.Trim With Rangos.Sheets(0) Dim i As Integer

CISC UNIVESRIDAD DE GUAYAQUIL

108

Dim desde As String Dim hasta As String Dim n As Integer Dim t As Integer Dim es As Integer

SBRegs.Text = 0 SBEst.Text = 0 t = 0 es = 0 For i = 0 To .RowCount - 1 desde = .GetText(i, 0) hasta = .GetText(i, 1) If RadioButton1.Checked Then n = CountRegRango(campo & ">=" & desde & " AND " & campo & "<=" & hasta) .SetValue(i, 2, n) es = es + .GetValue(i, 3) t = t + n ElseIf RadioButton2.Checked Then n = CountRegRango(campo & " >= '" & desde & "' AND " & campo & " <= '" & hasta & "'") .SetValue(i, 2, n) es = es + .GetValue(i, 3) t = t + n End If Next

SBRegs.Text = t SBEst.Text = es End With End If End If End Sub

Private Function CountRegRango(ByVal expre As String) As Integer Dim n As Integer = 0

Try n = RegDatosAll.Tables(0).Select(expre).Length Catch ex As Exception MsgBox("Error al cargar consulta ... ") Finally Beep() End Try Return n End Function

CISC UNIVESRIDAD DE GUAYAQUIL

109

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Rangos.Sheets(0).RowCount > 0 Then If CmbListaCampo.Text.Trim.Length = 0 Then MsgBox("Debe seleccionar un campo de la lista ...", MsgBoxStyle.Critical) Else campo = CmbListaCampo.Text.Trim With Rangos.Sheets(0) Dim i As Integer Dim n As Integer Dim nr As Integer Dim desde As String Dim hasta As String Dim semaforo As Boolean

RegDatos = RegDatosAll.Clone grilla.Sheets(3).DataSource = RegDatos For i = 0 To .RowCount - 1 desde = .GetText(i, 0) hasta = .GetText(i, 1) n = .GetValue(i, 2) nr = .GetValue(i, 3)

If nr > n Then MsgBox("Rango:[" & desde & "," & hasta & "] ;El numero de registros a extraer debe ser menor a los registros encontrados", MsgBoxStyle.Information) Else If RadioButton1.Checked Then Calculo(campo & ">=" & desde & " AND " & campo & "<=" & hasta, n, nr) ElseIf RadioButton2.Checked Then Calculo(campo & " >= '" & desde & "' AND " & campo & " <= '" & hasta & "'", n, nr) End If End If

If grilla.Sheets(3).RowCount > 0 Then If semaforo Then grilla.Sheets(3).Rows(grilla.Sheets(3).RowCount - nr, grilla.Sheets(3).RowCount - 1).BackColor = Color.LightGray semaforo = False Else grilla.Sheets(3).Rows(grilla.Sheets(3).RowCount - nr, grilla.Sheets(3).RowCount - 1).BackColor = Color.White semaforo = True End If End If

CISC UNIVESRIDAD DE GUAYAQUIL

110

Next grilla.ActiveSheetIndex = 3 End With End If End If End Sub

Private Sub Calculo(ByVal expre As String, ByVal n As Integer, ByVal nr As Integer) Dim c As Integer Dim f As Integer Dim A(nr) As Integer Dim i As Integer Dim ii As Integer Dim v As Integer Dim band As Boolean Dim row As DataRow

Try Dim drarray() As DataRow

drarray = RegDatosAll.Tables(0).Select(expre) '-------------------------------------------------------------- If nr = n Then For f = 0 To nr - 1 row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(f).Item(c) Next RegDatos.Tables(0).Rows.Add(row) Next Else 'aleatorio i = 0 While (i < nr) v = CInt(Int(((drarray.Length - 1) * Rnd()) + 1)) band = False For ii = 0 To i If v = A(ii) Then band = True Exit For End If Next If Not band Then A(i) = v i = i + 1 End If End While

CISC UNIVESRIDAD DE GUAYAQUIL

111

'copiando registros '------------------------------------------------------------------- For f = 0 To nr - 1 row = RegDatos.Tables(0).NewRow() For c = 0 To drarray(0).Table.Columns.Count - 1 row(c) = drarray(A(f)).Item(c) Next RegDatos.Tables(0).Rows.Add(row) Next End If Catch ex As Exception MsgBox("Error al cargar consulta ... ") Finally Beep() End Try

End Sub

End Class

Join entre tablas

Imports System.IOImports System.Runtime.Serialization.Formatters.BinaryPublic Class FrmUnion Public directorio As String Public tvNodo As TreeNode Dim RegDatosAllIzq As DataSet Dim RegDatosAllDer As DataSet Dim ds As New DataSet()

Public Sub CargarTablasBD() Try

CISC UNIVESRIDAD DE GUAYAQUIL

112

For Each foundDirectory As String In My.Computer.FileSystem.GetDirectories(directorio, FileIO.SearchOption.SearchTopLevelOnly) CmbTablasIzq.Items.Add(foundDirectory.Substring(directorio.Length +1)) CmbTablasDer.Items.Add(foundDirectory.Substring(directorio.Length +1)) Next CmbTablasIzq.SelectedIndex = 0 CmbTablasDer.SelectedIndex = 0

Catch ex As Exception MsgBox("Error al cargar las tablas", MsgBoxStyle.Critical) End Try

End Sub

Private Sub CargarCamposTabla(ByVal dir As String, ByVal tbl As String, ByVal cmb As ComboBox, ByVal list As CheckedListBox, ByRef RegDatos As DataSet) Try Dim archivo As String = dir & "\" & tbl & ".SAC" Dim test As ClsArchivoAuditor

cmb.Items.Clear() list.Items.Clear() RegDatos = New DataSet

If File.Exists(archivo) Then Dim TestFileStream As Stream = File.OpenRead(archivo) Dim deserializer As New BinaryFormatter

test = CType(deserializer.Deserialize(TestFileStream), ClsArchivoAuditor)

RegDatos = test.registros.Copy

Dim i As Integer Dim campo As DataColumn

For i = 0 To test.CamposVirtuales.Tables(0).Rows.Count - 1 campo = New DataColumn With campo 'nombre del campo virtual .ColumnName = test.CamposVirtuales.Tables(0).Rows(i).Item(0).ToString .DefaultValue = "" 'formula

CISC UNIVESRIDAD DE GUAYAQUIL

113

.Expression = test.CamposVirtuales.Tables(0).Rows(i).Item(2).ToString End With

RegDatos.Tables(0).Columns.Add(campo) Next

For i = 0 To RegDatos.Tables(0).Columns.Count - 1 cmb.Items.Add(RegDatos.Tables(0).Columns(i).ColumnName) list.Items.Add(RegDatos.Tables(0).Columns(i).ColumnName) Next

End If

Catch ex As Exception MsgBox("Error al cargar los campos", MsgBoxStyle.Critical) End Try

End Sub

Private Sub CmbTablasIzq_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTablasIzq.SelectedIndexChanged If CmbTablasIzq.SelectedIndex = -1 Then MsgBox("Debe seleccionar una tabla") Else CargarCamposTabla(directorio & "\" & CmbTablasIzq.Text.Trim, CmbTablasIzq.Text.Trim, CmbCampoIzq, ListCampIzq, RegDatosAllIzq) End If End Sub

Private Sub CmbTablasDer_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmbTablasDer.SelectedIndexChanged If CmbTablasDer.SelectedIndex = -1 Then MsgBox("Debe seleccionar una tabla") Else CargarCamposTabla(directorio & "\" & CmbTablasDer.Text.Trim, CmbTablasDer.Text.Trim, CmbCampoDer, ListCampDer, RegDatosAllDer) End If End Sub

Private Sub FrmUnion_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load InitGrilla() End Sub

Private Sub InitGrilla() With FpSDatos.Sheets(0)

CISC UNIVESRIDAD DE GUAYAQUIL

114

.Reset() .DataSource = Nothing .RowCount = 0 .ColumnCount = 0 .OperationMode = FarPoint.Win.Spread.OperationMode.ReadOnly End With End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Union() End Sub

Private Sub Union() 'ds.Clear() ds.Reset() InitGrilla() Try If CmbCampoIzq.Text.Trim = CmbCampoDer.Text.Trim Then

Dim tbl1 As New DataTable Dim tbl2 As New DataTable Dim tblU As New DataTable Dim row As DataRow Dim column As DataColumn Dim rowx As DataRow Dim itemChecked As Object

tbl1.Namespace = CmbTablasIzq.Text.Trim tbl2.Namespace = CmbTablasDer.Text.Trim

'cargando datos seleccionadas en la tabla izquierda '----------------------------------------------------------------------

'copiando columnas For Each itemChecked In ListCampIzq.CheckedItems If ListCampIzq.GetItemCheckState(ListCampIzq.Items.IndexOf(itemChecked)) = CheckState.Checked Then tbl1.Columns.Add(New DataColumn(RegDatosAllIzq.Tables(0).Columns(itemChecked.ToString()).ColumnName, _ RegDatosAllIzq.Tables(0).Columns(itemChecked.ToString()).DataType)) End If Next

'copiando registros en la tabla izquierda

CISC UNIVESRIDAD DE GUAYAQUIL

115

For Each row In RegDatosAllIzq.Tables(0).Rows rowx = tbl1.NewRow For Each column In tbl1.Columns rowx(column.ColumnName) = row(column.ColumnName) Next tbl1.Rows.Add(rowx) Next '------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------

'cargando datos seleccionadas en la tabla derecha '----------------------------------------------------------------------

'copiando columnas For Each itemChecked In ListCampDer.CheckedItems If ListCampDer.GetItemCheckState(ListCampDer.Items.IndexOf(itemChecked)) = CheckState.Checked Then tbl2.Columns.Add(New DataColumn(RegDatosAllDer.Tables(0).Columns(itemChecked.ToString()).ColumnName, _ RegDatosAllDer.Tables(0).Columns(itemChecked.ToString()).DataType)) End If Next

'copiando registros en la tabla derecha For Each row In RegDatosAllDer.Tables(0).Rows rowx = tbl2.NewRow For Each column In tbl2.Columns rowx(column.ColumnName) = row(column.ColumnName) Next tbl2.Rows.Add(rowx) Next '------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------ '---------------------------------- algoritmo VerJCJoin ----------------------------- '------------------------------------------------------------------------------------ '------------------------------------------------------------------------------------ For Each column In tbl1.Columns tblU.Columns.Add(New DataColumn(column.ColumnName, column.DataType)) Next

'copiando columnas seleccionada en la tabla dos For Each column In tbl2.Columns If column.ColumnName.Trim <> CmbCampoIzq.Text.Trim Then

CISC UNIVESRIDAD DE GUAYAQUIL

116

Try If tblU.Columns.IndexOf(column.ColumnName) = -1 Then tblU.Columns.Add(New DataColumn(column.ColumnName, column.DataType)) End If

Catch ex As Exception MsgBox(ex.Message) End Try End If Next

Dim dc As DataColumn Dim drIzq As DataRow Dim drUnion As DataRow

'copiando filas For Each row In tbl1.Rows Dim drarray() As DataRow Dim r As Integer

drIzq = tbl1.NewRow For Each dc In tbl1.Columns drIzq(dc.ColumnName) = row(dc.ColumnName) Next

drarray = tbl2.Select(CmbCampoIzq.Text.Trim & "=" & row(CmbCampoIzq.Text.Trim)) If drarray.Length > 0 Then Dim f As Integer

For f = 0 To drarray.Length - 1 drUnion = tblU.NewRow For Each dc In tbl1.Columns drUnion(dc.ColumnName) = drIzq(dc.ColumnName) Next

For r = tbl1.Columns.Count To tblU.Columns.Count - 1 drUnion(tblU.Columns(r).ColumnName) = drarray(f).Item(tblU.Columns(r).ColumnName) Next

tblU.Rows.Add(drUnion) Next

ElseIf drarray.Length = 0 Then

drUnion = tblU.NewRow For Each dc In tbl1.Columns

CISC UNIVESRIDAD DE GUAYAQUIL

117

drUnion(dc.ColumnName) = drIzq(dc.ColumnName) Next

tblU.Rows.Add(drUnion) End If Next

ds.Tables.Add(tblU) FpSDatos.Sheets(0).DataSource = ds Else MsgBox("Los campos relacion deben ser iguales ...", MsgBoxStyle.Critical) End If Catch ex As Exception MsgBox("Error creando relacion", MsgBoxStyle.Critical) End Try End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim nombre_archivo As String

nombre_archivo = InputBox("Nombre de Tabla", "Tabla") If nombre_archivo.Trim.Length > 0 Then If Not directorio.Trim = "" Then If My.Computer.FileSystem.DirectoryExists(directorio) Then If FpSDatos.Sheets(0).RowCount > 0 Then GuardarArchivo(nombre_archivo, directorio, ds, ".sac") Dim nodo As TreeNode

nodo = tvNodo.Nodes.Add(nombre_archivo, nombre_archivo, 3, 3) nodo.ForeColor = Color.DarkGray nodo.NodeFont = New Font("Arial", 10, FontStyle.Regular) Else MsgBox("No hay registros en consulta", MsgBoxStyle.Critical) End If End If End If End If End Sub

End Class

Reporte de Resultado

Public Class FrmReporte

CISC UNIVESRIDAD DE GUAYAQUIL

118

Public grilla As FarPoint.Win.Spread.FpSpread

Private Sub FrmReporte_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load LBFecha.Text = Date.Now End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

If TxtAuditor.Text.Trim.Length > 0 Then Dim cabecera As String = "" Dim pie As String = "" Dim obs() As String

With pi .ColStart = grilla.ActiveSheet.Models.Selection.AnchorColumn .ColEnd = grilla.ActiveSheet.Models.Selection.LeadColumn .RowStart = grilla.ActiveSheet.Models.Selection.AnchorRow .RowEnd = grilla.ActiveSheet.Models.Selection.LeadRow End With If FrmImprimirReporte.IsDisposed Then FrmImprimirReporte = New FrmImprimirReporte()

End If cabecera = "/c/fz""16""/fb Reporte de Auditoria /n" cabecera = cabecera + "/c/fz""16""/fb Resultado de calculos/n"

cabecera = cabecera & "/r/fz""10""/fb Fecha-Hora: " & LBFecha.Text.Trim & " /n" cabecera = cabecera & " /n" cabecera = cabecera & "/fb Auditor: /fb0" & TxtAuditor.Text.Trim & "/n /n"

obs = TxtObservacion.Lines

pie = pie & " /n"

pie = pie & "/fb Observación: /fb0/n "

Dim l As Integer For l = 0 To obs.Length - 1 pie = pie & obs(l) & "/n " Next

pie = pie & "/n Auditor (Firma): ____________________________ /n /n"

FrmImprimirReporte.StartPage(grilla, grilla.ActiveSheetIndex, cabecera, pie)

CISC UNIVESRIDAD DE GUAYAQUIL

119

Else MsgBox("Es necesario el campo auditor ...") End If End Sub

End Class

CISC UNIVESRIDAD DE GUAYAQUIL

120

Manual de Usuario

Herramienta CAATS

LUPA 1.0

Introducción

La Herramienta Caats requiere de la instalación y configuración de

algunos programas, necesarios para iniciar la aplicación y para su

correcta funcionalidad, el usuario deberá referirse al manual técnico

que se encuentra más adelante en este tomo.

Módulo Principal

Pantalla de ingreso al sistema Lupa 1.0

FIGURA 1

Menú Principal

FIGURA 2

En el menú principal del LUPA 1.0 consta de las siguientes opciones

En estas opciones contamos con:

Archivo (conexión):

Aquí se muestran las opciones para iniciar la importación de

datos para los procesos de auditoria

Cálculos:

Aquí encontraremos las opciones para realizar los cálculos de

auditoria mas importantes

Exportación:

Aquí encontraremos la opción para realizar exportaciones de

los datos a Excel

Reportes:

Aquí encontraremos las opciones de reportes del sistema.

CISC UNIVERSIDAD DE GUAYAQUIL

2

Archivo conexión

Aquí encontraremos las opciones para realizar la conexión a la base de

datos o un archivo. La opción cliente

Si no existe el cliente procede a crearlo

FIGURA 3

Archivo conexión agregar base datos

Aquí encontraremos la opción para darle un nombre al archivo o base

de datos que vamos a importar

CISC UNIVERSIDAD DE GUAYAQUIL

3

FIGURA 4Archivo conexión Tabla

Aquí encontraremos la opción tabla que activara un asistente de

importación de datos.

CISC UNIVERSIDAD DE GUAYAQUIL

4

FIGURA 5

Luego escogeremos que tipo de importación deseamos si es un

archivo o una base de datos

Importación Archivo paso 1: escogemos el tipo de archivo que

deseamos importar Excel, Access, etc.

CISC UNIVERSIDAD DE GUAYAQUIL

5

FIGURA 6

Importación Archivo paso 2: Ubicamos la ruta del archivo que

deseamos importar y damos click en siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

6

FIGURA 7

Importación Archivo paso 3: especificamos los datos a

importar y damos clic en siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

7

FIGURA 8

Importación Archivo paso 4: le asignamos un nombre a los

datos importados y damos click a finalizar.

FIGURA 9

CISC UNIVERSIDAD DE GUAYAQUIL

8

Importación Archivo paso 5: se realiza la importación y se guarda

automáticamente el archivo en el arbol

FIGURA 10

Importación Base Datos paso 1: escogemos la opcion usar

ODBC y damos click siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

9

FIGURA 11

Importación Base Datos paso 2: Seleccionamos el tipo de dsn

al cual deseamos conectarnos que puede ser sistema(red) o

usuario (en la misma maquina) y damos click en siguiente.

CISC UNIVERSIDAD DE GUAYAQUIL

10

FIGURA 12

Importación Base Datos paso 3: especificamos la tabla a

importar y damos clic en siguiente.

FIGURA 13

CISC UNIVERSIDAD DE GUAYAQUIL

11

Importación Base Datos paso 4: le asignamos un nombre a los

datos importados y damos click a finalizar.

FIGURA 14 Importación Base Datos paso 5: se realiza la importación y se

guarda automáticamente la tabla en el arbol

CISC UNIVERSIDAD DE GUAYAQUIL

12

FIGURA 15

COLUMNAS VIRTUALES: Una vez realizada la importación de los

datos, tenemos el gris con los datos, aquí podemos comenzar a

trabajar los datos importados con columnas virtuales, en el grid

tenemos en la parte inferior una pestaña con la leyenda virtuales

FIGURA 16

CISC UNIVERSIDAD DE GUAYAQUIL

13

Damos click en esta pestaña y se abrira otra ventana en el cual se nos

presentara 3 iconos que utilizaremos para trabajar con las virtuales.

FIGURA 17

Cada opción que se muestra a continuación realiza una tarea

FIGURA 18

El símbolo mas (+) sirve para crear una fila en el cual detallaremos el

nombre que le daremos a esa columna virtual.

El símbolo menos (-) sirve para eliminar una fila

CISC UNIVERSIDAD DE GUAYAQUIL

14

FIGURA 19

El símbolo calculadora abre un editor de formulas en el cual

especificaremos alguna formula (operación) que se requiere y que

sera mostrada en la columna virtual.

FIGURA 20

CISC UNIVERSIDAD DE GUAYAQUIL

15

Especificamos la formula para obtener los resultados deseados, damos

click en el icono que tiene forma de visto para validar la formula o si

deseamos borrar la formula damos click en el icono con forma de

borrador

FIGURA 21

Al final damos click en el icono de guardar para confirmar la

formula y proceder a ver los resultados.

CISC UNIVERSIDAD DE GUAYAQUIL

16

FIGURA 22La columna virtual se muestra con un color diferente al de los datos

originales (blanco)

FIGURA 23

CISC UNIVERSIDAD DE GUAYAQUIL

17

Cálculos-detección salto secuencia

Aquí tenemos esta opción para verificar un salto en una secuencia

numérica esta opción nos muestra, la columna a verificar debe ser de

tipo numérico, y esta opción nos mostrara el valor mínimo y final en el

que esta incluido el salto de secuencia.

Escogemos los datos a verificar el salto, damos clic en la pestaña de

editor de consulta

CISC UNIVERSIDAD DE GUAYAQUIL

18

FIGURA 24

Aquí nos muestra una pantalla en blanco, en este editor damos clic en

el icono de filtro en la barra superior y esto llamara los datos que

queremos procesar

CISC UNIVERSIDAD DE GUAYAQUIL

19

FIGURA 25Una vez listados los datos procedemos a dar click en le icono de salto

de secuencia o en la opción de salto de secuencia en el menú

FIGURA 26

al dar el clic se abre una ventana donde especificaremos el código a

verificar y presionamos OK.

CISC UNIVERSIDAD DE GUAYAQUIL

20

FIGURA 27

Como resultado obtenemos una pantalla con los datos delimitados en

donde se encuentra el salto de secuencia.

FIGURA 28

Cálculos- detección datos duplicados

CISC UNIVERSIDAD DE GUAYAQUIL

21

Aquí tenemos esta opción para verificar los datos duplicados, aquí

verificaremos los datos que se repiten, al igual que la opción anterior

nos vamos al editor de consultas presionamos el icono de filtro

Nos muestra los datos y presionamos la opción de detección datos

duplicados.

FIGURA 29

CISC UNIVERSIDAD DE GUAYAQUIL

22

Esto nos muestra una nueva ventana y escogemos bajo que campo

deseamos realizar la detección de duplicidad

FIGURA 30

Luego nos muestra los datos segmentados de acuerdo a la duplicidad

que se genere.

FIGURA 31

CISC UNIVERSIDAD DE GUAYAQUIL

23

Cálculos-muestreo aleatorio

Este presenta una muestra de los datos que tenemos en nuestro grid,

especificamos cuantos datos deseamos presentar y nos muestra en

el editor de consultas la cantidad de datos aleatoriamente

especificados, seguimos los primeros pasos de los cálculos anteriores,

una vez aplicamos el filtro en el editor de consulta y lista los datos de

la tabla, damos clic en el icono de muestreo aleatorio de la barra

FIGURA 32

CISC UNIVERSIDAD DE GUAYAQUIL

24

En este caso escogimos 3 datos como valor en el rango. La ventana

arriba nos muestra el rango máximo y mínimo que podemos escoger.

Y al final nos muestra los datos de la muestra.

FIGURA 33

Cálculos-muestreo aleatorio estratificado

Este presenta una muestra de los datos que tenemos en nuestro grid,

especificamos que tipo de dato deseamos listar puede ser datos tipo

numérico o fecha. Se repiten los primeros pasos al igual que los

cálculos anteriores, una vez listados todos los datos en el editor de

consulta, damos clic en el icono de muestreo aleatorio

estratificado.

CISC UNIVERSIDAD DE GUAYAQUIL

25

FIGURA 34

Se nos presenta la pantalla para realizar las especificaciones,

escogemos el tipo de dato (numérico o fecha) con el símbolo mas

agregamos una fila para llenar los campos de los respectivos rangos

Desde – hasta: especificamos desde q registro iniciamos la

estratificación hasta su tope respectivo.

Campo: indicamos bajo que campo iniciamos el criterio de busqueda

y damos clic en estratificar y nos muestra las diferentes

estratificaciones posibles.

CISC UNIVERSIDAD DE GUAYAQUIL

26

FIGURA 35

Opciones de insertar o eliminar columna

Estas opciones nos ayuda a insertar una columna para realizar un

calculo o eliminar una columna que no deseamos que se muestre.

CISC UNIVERSIDAD DE GUAYAQUIL

27

En el caso de eliminar columna basta con dar clic en eliminar columna

y nos aparece una ventana q nos pide seleccionar la columna a

eliminar

FIGURA 36

Para insertar un a columna se selecciona el icono de insertar columna

y nos aparece un editor de formulas que funciona igual que el de las

columnas virtuales, el metodo es el mismo se procede a indicar por

medio de formula q resultado deseamos presentar en la nueva

columna insertada. Confirmamos dando click en el icono en forma de

visto.

CISC UNIVERSIDAD DE GUAYAQUIL

28

FIGURA 37

Nos sale una ventana que nos pedirá darle un nombre a la nueva

columna insertada.

CISC UNIVERSIDAD DE GUAYAQUIL

29

FIGURA 38

Y se muestra el nuevo campo insertado

CISC UNIVERSIDAD DE GUAYAQUIL

30

FIGURA 39

Podemos grabar estas tablas procesadas como hijas en el árbol con

el icono .

CISC UNIVERSIDAD DE GUAYAQUIL

31

FIGURA 40

CISC UNIVERSIDAD DE GUAYAQUIL

32

Unión y cálculos de tablas

Para realizar esta operación se escoge una base de datos y luego la

opción de la barra de herramientas

FIGURA 41

Luego aparece a continuación el cuadro de dialogo Unión de tablas,

donde se escoge las tablas donde tienen relaciones y campos clave

que se establecen y a continuación se selecciona los campos que se

visualizaran en la sección de Registros.

CISC UNIVERSIDAD DE GUAYAQUIL

33

FIGURA 42

Para que se muestren los campos de registro se hace clic con el botón

Consultar y para que aparezcan luego de realizar la operación, se

hace clic en el botón de Guardar; donde primeramente se coloca el

nombre de una subtabla donde esta almacena el JOIN

FIGURA 43

Y por ultimo en la pantalla del sistema aparece el resultado y en el

nombre de la tabla en el árbol de tablas y Bases de datos.

CISC UNIVERSIDAD DE GUAYAQUIL

34

FIGURA 44

CISC UNIVERSIDAD DE GUAYAQUIL

35

Reportes Los reportes permiten imprimir los resultados de las operaciones con el botón Reporte. La pantalla que se muestra a continuación es para colocar el nombre del auditor y sus observaciones y fecha y hora en cuanto a las pruebas realizadas

FIGURA 45

Y damos clic en el botón para ver el cuadro de

configuración de impresión para establecer la impresión.

CISC UNIVERSIDAD DE GUAYAQUIL

36

FIGURA 46

En vista preliminar se observa la(s) páginas que muestran los resultados

FIGURA 47

En las opciones como Configurar permite colocar la orientación de laspáginas a imprimir, y los márgenes; la opción imprimir para enviar la orden de impresión.

CISC UNIVERSIDAD DE GUAYAQUIL

37

Exportación a Excel El sistema Lupa 1.0 puede exportar a Excel las tablas de los registroso las tablas creadas ya sea para poder realizar alguna operación uotra actividad con los datos.Para poder realiza la exportación efectúa el filtro de los datos y luego

se hace clic en el botón Exportar Excel y a continuación se

muestra el siguiente cuadro de dialogo

FIGURA 48 Donde se establece el lugar del archivo que será importado con la

extensión .xls, se escribe el nombre del archivo que exportara los

CISC UNIVERSIDAD DE GUAYAQUIL

38

datos y luego podremos abrir el archivo para verificar que se ha

realizado con éxito esta operación:

FIGURA 49

CISC UNIVERSIDAD DE GUAYAQUIL

39