universidad central del ecuador facultad de … · a mi hermano de quien aprendo cada día y...

177
UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA CARRERA DE INGENIERÍA INFORMÁTICA APLICACIÓN WEB PARA EL MONITOREO DE INDICADORES DE DESARROLLO ECONÓMICO PARA LAS COMUNIDADES UBICADAS EN LOS CANTONES RIOBAMBA, GUANO Y PELILEO DE LA PROVINCIA DE CHIMBORAZO TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE INGENIERO INFORMÁTICO AUTOR: GALO SANTIAGO QUISIGUINA CASTILLO TUTOR: ING. RENÉ ALFONSO CARRILLO FLORES QUITO ECUADOR 2015

Upload: others

Post on 30-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

UNIVERSIDAD CENTRAL DEL ECUADOR

FACULTAD DE INGENIERÍA, CIENCIAS FÍSICAS Y MATEMÁTICA

CARRERA DE INGENIERÍA INFORMÁTICA

APLICACIÓN WEB PARA EL MONITOREO DE INDICADORES DE

DESARROLLO ECONÓMICO PARA LAS COMUNIDADES UBICADAS EN LOS

CANTONES RIOBAMBA, GUANO Y PELILEO DE LA PROVINCIA DE

CHIMBORAZO

TRABAJO DE GRADUACIÓN PREVIO A LA OBTENCIÓN DEL TÍTULO DE

INGENIERO INFORMÁTICO

AUTOR: GALO SANTIAGO QUISIGUINA CASTILLO

TUTOR: ING. RENÉ ALFONSO CARRILLO FLORES

QUITO – ECUADOR 2015

Page 2: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

ii

DEDICATORIA

A Dios porque antes de yo nacer ya pensó en mí y en este logro.

A mi mamá Carmen, que me dio la vida y que con su amor ha sido uno de los

soportes de estos largos años de estudio.

A mi padre Galo, que con su ayuda incondicional me ha demostrado que no hay

mejores amigos que los padres.

A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a

escucharme y animarme.

A mi tía Mariana Sánchez y mis tíos Leonor y Carlos Quisigüiña, por su apoyo en

los momentos difíciles.

A mis tíos Yolanda y Gonzalo Quisigüiña, quienes siempre me motivaron a ser un

profesional cuando estuvieron con vida por lo cual les rindo este pequeño

homenaje.

Galo Santiago Quisiguina Castillo

Page 3: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

iii

AGRADECIMIENTO

Agradezco a la gloriosa Universidad Central del Ecuador por haberme brindado

acogida durante estos largos años de estudio, la cual se convirtió en un segundo

hogar.

A los docentes de la Facultad de Ingeniería, Ciencias Físicas y Matemática, por

darme el conocimiento necesario para poder desenvolverme como ser humano y

como profesional.

Al Ing. René Carrillo por su paciencia y guía durante el desarrollo y culminación

del presente trabajo.

Al Ing. Ivan Naula por su tiempo y ayuda para sacar adelante este proyecto.

Al Ing. Aldrín Flores, quien siempre estuvo pendiente de que el trabajo de

graduación terminara exitosamente. Le quedo eternamente agradecido.

Page 4: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

iv

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL

Yo, GALO SANTIAGO QUISIGUINA CASTILLO, en calidad de autor del trabajo

de investigación o tesis realizada sobre APLICACIÓN WEB PARA EL

MONITOREO DE INDICADORES DE DESARROLLO ECONÓMICO PARA LAS

COMUNIDADES UBICADAS EN LOS CANTONES RIOBAMBA, GUANO Y

PELILEO DE LA PROVINCIA DE CHIMBORAZO, por la presente autorizo a la

Universidad Central del Ecuador hacer uso de todos los contenidos que me

pertenecen o de parte de los que contiene esta obra, con fines estrictamente

académicos o de investigación.

Los derechos que como autor me corresponden, con la excepción de la presente

autorización, seguirán vigentes a mi favor, de conformidad con lo establecido en

los artículos 5, 6, 8, 19 y demás pertinentes de la Ley de Propiedad Intelectual y

su Reglamento.

Quito, 27 de Mayo de 2015

Galo Santiago Quisiguina Castillo

C.C. 1714914304

Page 5: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

v

CERTIFICADO DE CULMINACIÓN DEL TUTOR

Page 6: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

vi

CERTIFICADO DE CULMINACIÓN DE TESIS

Page 7: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

vii

SOLICITUD CALIFICACIÓN DEL TRABAJO DE GRADUACIÓN

Page 8: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

viii

RESULTADO DEL TRABAJO DE GRADUACIÓN

Page 9: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

ix

CONTENIDO

DEDICATORIA .............................................................................................................................................................. II

AGRADECIMIENTO ................................................................................................................................................... III

AUTORIZACIÓN DE LA AUTORÍA INTELECTUAL ...................................................................................... IV

CERTIFICADO DE CULMINACIÓN DEL TUTOR .............................................................................................V

CERTIFICADO DE CULMINACIÓN DE TESIS ................................................................................................ VI

SOLICITUD CALIFICACIÓN DEL TRABAJO DE GRADUACIÓN .......................................................... VII

RESULTADO DEL TRABAJO DE GRADUACIÓN ...................................................................................... VIII

CONTENIDO ................................................................................................................................................................. IX

LISTA DE ILUSTRACIONES .................................................................................................................................. XI

LISTA DE TABLAS ................................................................................................................................................. XIII

RESUMEN .................................................................................................................................................................. XIV

ABSTRACT .................................................................................................................................................................. XV

CERTIFICADO DE TRADUCCIÓN .................................................................................................................... XVI

INTRODUCCIÓN ........................................................................................................................................................... 1

CAPITULO 1 ................................................................................................................................................................... 2

1.1 ANTECEDENTES ........................................................................................................................................... 2

1.2 PRESENTACIÓN DEL PROBLEMA ...................................................................................................... 2

1.3 OBJETIVOS ...................................................................................................................................................... 3

1.4 JUSTIFICACION E IMPORTANCIA ......................................................................................................... 4

1.5 MARCO TEÓRICO ......................................................................................................................................... 4

1.6 METODOLOGÍA .............................................................................................................................................. 5

1.7 ALCANCE ......................................................................................................................................................... 7

1.8 LIMITACIONES ............................................................................................................................................ 11

1.9 PLATAFORMA ............................................................................................................................................. 11

1.10 HERRAMIENTAS ........................................................................................................................................ 12

1.11 MARCO ADMINISTRATIVO .................................................................................................................... 17

CAPITULO 2 ................................................................................................................................................................ 20

2 METODOLOGÍA ............................................................................................................................................... 20

CAPITULO 3 ................................................................................................................................................................ 40

3 DESCRIPCION DEL SISTEMA ................................................................................................................... 40

CAPITULO 4 ................................................................................................................................................................ 50

Page 10: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

x

4 PRUEBAS ........................................................................................................................................................... 50

CAPITULO 5 ................................................................................................................................................................ 58

5. CONCLUSIONES Y RECOMENDACIONES .......................................................................................... 58

GLOSARIO ................................................................................................................................................................... 59

BIBLIOGRAFÍA........................................................................................................................................................... 61

ANEXOS ........................................................................................................................................................................ 62

DICCIONARIO DE DATOS ..................................................................................................................................... 64

MANUAL TÉCNICO .................................................................................................................................................. 69

CODIGO FUENTE ...................................................................................................................................................... 70

MANUAL DE USUARIO ........................................................................................................................................149

Page 11: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xi

LISTA DE ILUSTRACIONES

Ilustración 1 Arquitectura 3 Capas.................................................................................................................. 11

Ilustración 2 Actor .................................................................................................................................................... 24

Ilustración 3 Caso de uso .................................................................................................................................... 24

Ilustración 4 Generalización ............................................................................................................................... 24

Ilustración 5 Extiende ............................................................................................................................................ 24

Ilustración 6 Usa ...................................................................................................................................................... 25

Ilustración 7 Interacción entre los Usuarios del Sistema .................................................................... 25

Ilustración 8 Objeto ................................................................................................................................................. 30

Ilustración 9 Línea de vida .................................................................................................................................. 30

Ilustración 10 Actor Diagrama de secuencia ............................................................................................. 30

Ilustración 11 Mensaje .......................................................................................................................................... 31

Ilustración 12 Síncrono ......................................................................................................................................... 31

Ilustración 13 Asíncrono ...................................................................................................................................... 31

Ilustración 14 Recursividad ................................................................................................................................ 32

Ilustración 15 Diagrama de Secuencia Administrador .......................................................................... 32

Ilustración 16 Diagrama Secuencia Coordinador ................................................................................... 33

Ilustración 17 Diagrama de secuencia Promotor .................................................................................... 34

Ilustración 18 Estado ............................................................................................................................................. 35

Ilustración 19 Transición simple ....................................................................................................................... 35

Ilustración 20 Diagrama de Estados .............................................................................................................. 36

Ilustración 21 Modelo Vista Controlador ...................................................................................................... 38

Ilustración 22 Ingreso al Sistema .................................................................................................................... 40

Ilustración 23 Administración Perfiles ........................................................................................................... 41

Ilustración 24 Mantenimiento Perfiles ........................................................................................................... 42

Ilustración 25 Mantenimiento Usuarios ........................................................................................................ 42

Ilustración 26 Mantenimiento Frecuencias ................................................................................................. 42

Ilustración 27 Mantenimiento Estado ............................................................................................................ 43

Ilustración 28 Mantenimiento Unidades ....................................................................................................... 43

Ilustración 29 Mantenimiento Cargos ............................................................................................................ 43

Ilustración 30 Mantenimiento Pantallas ....................................................................................................... 44

Ilustración 31 Ingreso Indicadores .................................................................................................................. 44

Ilustración 32 Monitoreo Indicadores ............................................................................................................ 45

Ilustración 33 Seguimiento Indicadores ....................................................................................................... 45

Ilustración 34 Seguimiento y Resultados .................................................................................................... 46

Ilustración 35 Cumplimiento Actividad .......................................................................................................... 47

Ilustración 36 Cumplimiento Proyecto .......................................................................................................... 48

Ilustración 37 Cumplimiento PDA ................................................................................................................... 49

Ilustración 38 Diagrama Entidad Relación ................................................................................................. 63

Ilustración 39 Arquitectura de la aplicación ................................................................................................ 70

Ilustración 40 Módulo Account .......................................................................................................................... 71

Ilustración 41 Módulo App_Code .................................................................................................................... 74

Ilustración 42 Módulo Images ........................................................................................................................... 78

Ilustración 43 Módulo Reportes ....................................................................................................................... 78

Ilustración 44 Módulo Scripts ............................................................................................................................ 79

Page 12: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xii

Ilustración 45 Módulo Styles .............................................................................................................................. 79

Ilustración 46 Cadena de conexión ............................................................................................................. 136

Ilustración 47 Página de Ingreso al Sistema .......................................................................................... 150

Ilustración 48 Usuario y/o contraseña incorrecta ................................................................................. 150

Ilustración 49 Pantalla Principal .................................................................................................................... 151

Ilustración 50 Menú Sistema .......................................................................................................................... 151

Ilustración 51 Página de Administración de Perfiles .......................................................................... 152

Ilustración 52 Página de Mantenimiento de Perfiles .......................................................................... 152

Ilustración 53 Página de Mantenimiento de Usuarios ....................................................................... 153

Ilustración 54 Página de Mantenimiento de Frecuencias ................................................................ 153

Ilustración 55 Página de Mantenimiento de Estado ........................................................................... 153

Ilustración 56 Página de Mantenimiento de Unidades ...................................................................... 154

Ilustración 57 Página de Mantenimiento de Cargos ........................................................................... 154

Ilustración 58 Página de Mantenimiento de Pantallas ....................................................................... 154

Ilustración 59 Página de Ingreso de Indicadores ................................................................................. 155

Ilustración 60 Página de Monitoreo de Indicadores ............................................................................ 155

Ilustración 61 Página de Seguimiento de Indicadores ...................................................................... 156

Ilustración 62 Seguimiento y Resultados ................................................................................................. 157

Ilustración 63 Cumplimiento Actividad ....................................................................................................... 158

Ilustración 64 Cumplimiento Proyecto ....................................................................................................... 159

Ilustración 65 Cumplimiento PDA ................................................................................................................ 160

Ilustración 66 Cerrar Sesión ........................................................................................................................... 160

Page 13: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xiii

LISTA DE TABLAS

Tabla 1 Cuadro comparativo Lenguajes de programación ................................................................ 13

Tabla 2 Cuadro Comparativo Motor Base de Datos .............................................................................. 14

Tabla 3 Comparativo Modeladores base de Datos ................................................................................ 15

Tabla 4 Comparativo Servidores Web .......................................................................................................... 16

Tabla 5 Recurso Humano ................................................................................................................................... 17

Tabla 6 Presupuesto .............................................................................................................................................. 18

Tabla 7 Caso de uso Administración de Usuarios .................................................................................. 29

Tabla 8 Resultados de la prueba de resolución de pantalla ............................................................. 51

Tabla 9 Resultados de la prueba de resolución de pantalla ............................................................. 52

Tabla 10 Resultados de la prueba de Compatibilidad de navegadores ...................................... 53

Tabla 11 Resultados de la prueba de Compatibilidad de Sistemas Operativos ..................... 54

Tabla 12 Caso para la prueba de desempeño ......................................................................................... 55

Tabla 13 Resultados Prueba Desempeño en base a Hardware ..................................................... 57

Page 14: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xiv

RESUMEN

APLICACIÓN WEB PARA EL MONITOREO DE INDICADORES DE

DESARROLLO ECONÓMICO PARA LAS COMUNIDADES UBICADAS EN LOS

CANTONES RIOBAMBA, GUANO Y PELILEO DE LA PROVINCIA DE

CHIMBORAZO

La organización no gubernamental VISIÓN MUNDIAL ECUADOR brinda apoyo

económico a los sectores menos favorecidos del Ecuador, principalmente en

áreas rurales.

El almacenamiento de los datos necesarios para el trabajo de la ONG se lo viene

realizando de una forma manual, sin contar con una herramienta informática

adecuada que facilite el manejo de los mismos, lo cual dificulta mantener un

control y seguimiento.

Debido al procedimiento utilizado para mantener los archivos, se dificulta la

condensación y actualización de los datos (información) en la empresa,

entorpeciendo el desarrollo del trabajo de los funcionarios (trabajadores) de la

ONG, y se desperdicia de tiempo en la búsqueda de información.

El presente trabajo de graduación propone implementar en la ONG un sistema

informático que permita controlar los Programas de Desarrollo de Área de una

manera automatizada, garantizando la confiabilidad, consolidación y seguridad de

los datos.

DESCRIPTORES: APLICACIÓN WEB / INDICADORES DE DESARROLLO

ECONÓMICO / ASP.NET / SQL SERVER / INTERNET INFORMATION

SERVICES / CIENCIAS ECONÓMICAS Y SOCIALES

Page 15: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xv

ABSTRACT

WEB APPLICATION FOR MONITORING OF ECONOMIC DEVELOPMENT INDICATORS FOR COMMUNITIES LOCATED IN RIOBAMBA, GUANO AND PELILEO CANTONES OF CHIMBORAZO PROVINCE

The Non-Governmental Organization World Vision ECUADOR provides financial

support to the underprivileged sectors of Ecuador mainly in rural areas.

The storage of data needed for work of NGO has been doing a manual way,

without proper software tool that facilitates the management of them, making it

difficult to maintain control and monitor.

Because the procedure used to keep files, condensation and updating the data

(information) in the company is difficult, hindering the development of the work of

officials (employees) of the NGO, and wasted time searching for information.

This graduate work at the NGO proposes to implement a computer system to

monitor the Area Development Programs in an automated manner, ensuring

reliability, consolidation and data security.

DESCRIPTORS: WEB APPLICATION / INDICATORS OF ECONOMIC DEVELOPMENT / ASP.NET / SQL SERVER / INTERNET INFORMATION SERVICES / ECONOMIC AND SOCIAL SCIENCES

Page 16: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xvi

CERTIFICADO DE TRADUCCIÓN

Page 17: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

xvii

Page 18: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

1

INTRODUCCIÓN

Como respuesta a una necesidad tecnológica se desarrolló una aplicación web

que facilite el manejo de indicadores de desarrollo económico de la Organización

No Gubernamental Vision Mundial Ecuador.

La aplicación constará de dós modulos principales que abarcan el proceso

manual que se venía realizando en la ONG.

El módulo de Gestión Administrativa contiene el manejo de perfiles de acuerdo al

rol asignado por el Director de Visión Mundial Ecuador, cambios de claves,

ingreso y actualización de datos de los usuarios.

En el módulo de Gestión de Indicadores se tiene la creación de cargos, pantallas,

unidades, frecuencias, estados; ingreso, monitoreo y seguimiento de indicadores.

Además contiene reportes de acuerdo a la necesidad planteada por el usuario.

Page 19: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

2

CAPITULO 1

1.1 ANTECEDENTES

Desde la creación de WORLD VISION ECUADOR, el almacenamiento de los

datos necesarios para el trabajo de la misma se lo viene realizando de una forma

manual, sin contar con una herramienta informática adecuada que facilite el

manejo de los mismos, lo cual dificulta mantener un control y seguimiento de los

mismos.

Por el procedimiento utilizado para mantener los archivos, se hace difícil la

condensación y actualización de los datos (información) en la empresa,

entorpeciendo el desarrollo del trabajo de los funcionarios (trabajadores) de la

ONG, y también un desperdicio de tiempo en la búsqueda de información.

El presente trabajo de graduación propone implementar en la ONG un sistema

informático que permita llevar un control de los PDAs de una manera

automatizada, garantizando la confiabilidad, consolidación y seguridad de los

datos manejados en la mencionada ONG.

1.2 PRESENTACIÓN DEL PROBLEMA

1.2.1 Planteamiento del problema

Mantener el registro y seguimiento manual de los Programas de Desarrollo de

Área que gestiona la ONG WORLD VISION ECUADOR, presenta varios

inconvenientes como los mencionados a continuación:

Al momento de registrar un PDA, es necesario el manejo y

mantenimiento de expedientes físicos o en un software no

especializado para este trabajo, lo cual dificulta en muchas ocasiones la

pronta búsqueda de datos específicos del sistema.

Si es necesario actualizar una descripción o cambio en el PDA, en

muchas ocasiones es necesario generar nuevos informes lo que deriva

en el aumento de archivos, dificultando el manejo del PDA.

Susceptibilidad a errores en el cálculo y manejo de los fondos

económicos recibidos o destinados para los PDAs.

Page 20: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

3

No existe una adecuada organización en el proceso de registro de las

áreas de estudio a nivel nacional.

No contar con un sistema automatizado dificulta la asignación del

personal para los diferentes procesos a seguir para el avance del PDA.

Al no contar con un adecuado sistema informático, los reportes

necesarios deben realizarlos los miembros del equipo, con el

consiguiente problema del tiempo invertido al igual que la dificultad que

representan los mismos.

1.2.2 Propósito del sistema

De lo antes expuesto, se ha considerado la necesidad de crear e implementar

una herramienta informática para la automatización de los procesos a seguir

para la mejor administración, registro y seguimiento de los PDAs, logrando así

obtener un mejor rendimiento en cuanto al control de los mismos.

1.3 OBJETIVOS

1.3.1 Objetivo General

Implementar una Aplicación Web para el Monitoreo de Programas de

Desarrollo de Área para la ONG World Vision Ecuador, de manera que le

permita llevar un control preciso y en forma automatizada de los

indicadores, reduciendo así la probabilidad de generación de errores al

momento de manipular la información, y al mismo tiempo garantizar la

autenticidad de la misma.

1.3.2 Objetivos Específicos

Automatizar el registro y seguimiento de los PDAs manejados por la ONG.

Consolidar la información de los PDAs de una forma organizada, accesible

y actualizada, permitiendo de esta forma mantener un control estricto

Generación de reportes que incluyan gráficos y tablas para el mejor

entendimiento de los indicadores.

Page 21: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

4

1.4 JUSTIFICACION E IMPORTANCIA

Al solicitar la creación de un sistema para el registro y control de los diferentes

Programas de Desarrollo de Área que tiene a su cargo la ONG World Vision

Ecuador, se contribuye a crear estándares para el registro de los indicadores

para los Programas de Desarrollo de Área.

Además, permitirá optimizar el capital entregado en cada una de las

comunidades ya que se podrá medir el beneficio en cuanto al mejoramiento de

la calidad de vida de niños, adolescentes, jóvenes, familias de la comunidad.

Será útil para el manejo óptimo y eficiente de la información de forma

automatizada, que al ser ingresada de manera progresiva y recurrente,

reflejará datos confiables y veraces respaldados por las seguridades

correspondientes.

1.5 MARCO TEÓRICO

El proceso del registro y control de los Programas de Desarrollo de Área

manejados por la ONG posee una gran importancia, ya que en este se toma

en cuenta las actividades (más delicadas) principales y esenciales de la ONG

en las comunidades.

En consecuencia, la creación (ejecución, desarrollo) del Sistema de Monitoreo

de Indicadores de Desarrollo Económico, representa una solución para agilitar

el proceso convirtiéndose en una herramienta útil e indispensable tanto para la

ONG como para la comunidad.

Al desarrollar e implementar la aplicación (sistema, programa), se desea

brindar a la comunidad un producto (software) de calidad, adaptable y con las

características adecuadas para solventar las necesidades de los usuarios.

Además el sistema aportará flexibilidad y automatización a los procesos

requeridos por la ONG y conjuntamente permitirá generar una serie de

Page 22: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

5

reportes necesarios para el trabajo (procedimiento) del personal técnico de la

organización, y a la vez útil para la toma de decisiones.

1.6 METODOLOGÍA

La metodología es el conjunto de reglas y pasos estrictos que se siguen para

desarrollar una aplicación informática completa. Hay diversas metodologías,

algunas incluso registradas (hay que pagar por utilizarlas).

La serie de pasos a seguir son (relacionados con el ciclo de vida de la

aplicación):

[1] Análisis

[2] Diseño

[3] Codificación

[4] Ejecución

[5] Prueba

[6] Mantenimiento

[1] Análisis

El análisis consiste en el estudio de los requisitos que ha de cumplir la

aplicación, de acuerdo a la toma de los requerimiento brindad por los

clientes.

[2] Diseño

En esta fase se crean esquemas (diagramas de flujo, diagramas de la BD,

cronograma de actividades, etc.) que simbolizan a la aplicación. En estos

esquemas se pueden simbolizar: la organización de los datos de la

aplicación, el orden de los procesos que tiene que realizar la aplicación, la

estructura física (en cuanto a archivos y carpetas) que utilizará la

aplicación, etc.

Page 23: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

6

[3] Codificación

Escritura de la aplicación utilizando un lenguaje de programación (C Sharp

o C#). Si se utiliza un lenguaje orientado a objetos, la herramienta de

diseño debe ser una herramienta que permita utilizar objetos.

[4] Ejecución

Tras la escritura del código, mediante un software especial se traduce a

código interpretable por el ordenador (código máquina). En este proceso

pueden detectarse errores en el código que impiden su transformación. En

ese caso el software encargado de la traducción (normalmente un

compilador o un intérprete) avisa de esos errores para que el programador

los pueda corregir.

[5] Prueba

Se trata de testear la aplicación para verificar que su funcionamiento es el

correcto. Para ello se comprueban todas las entradas posibles,

comprobando que las salidas son las correspondientes.

[6] Mantenimiento

En esta fase se crea la documentación del programa. Gracias a esa

documentación se pueden corregir futuros errores o renovar el programa

para incluir mejoras detectadas, operaciones que también se realizan en

esta fase.

El desarrollo del proyecto a realizarse será en base al modelo en ESPIRAL,

que conlleva las siguientes fases:

La atención se centra en la evaluación y reducción del riesgo del

proyecto, dividiendo el proyecto en segmentos más pequeños y

proporcionar más facilidad de cambio durante el proceso de desarrollo,

Page 24: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

7

así como ofrecer la oportunidad de evaluar los riesgos y con un peso de

la consideración de la continuación del proyecto durante todo el ciclo de

vida.

Cada viaje alrededor de la espiral atraviesa cuatro cuadrantes básicos:

1) Determinar objetivos, alternativas, y desencadenantes de la

iteración.

2) Evaluar alternativas; Identificar y resolver los riesgos.

3) Desarrollar y verificar los resultados de la iteración.

4) Plan de la próxima iteración.

Cada ciclo comienza con la identificación de los interesados y sus

condiciones de ganancia y termina con la revisión.

1.7 ALCANCE

Para definir el alcance del proyecto, a continuación se describe los módulos que

tendrá la aplicación web:

Módulo de Registro de la Zona

Zona: El sistema debe permitir al usuario el ingreso del nombre de la zona

en la cual se está trabajando.

Provincia: El sistema debe permitir al usuario el ingreso de la provincia a la

cual pertenece la zona.

Cantón: El sistema debe permitir al usuario el ingreso de los cantones

pertenecientes a la zona.

Page 25: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

8

Parroquia: El sistema debe permitir al usuario el ingreso de las parroquias

pertenecientes a la zona.

Etnia: El sistema debe permitir al usuario el ingreso de las etnias que van a

ser beneficiadas.

Módulo de Registro de Indicadores

El sistema debe permitir al usuario ingresar información general que comparten

los indicadores. Dicha información se detalla a continuación:

Categoría

Nombre

Objetivo

Valor Mínimo

Valor Deseable (óptimo): El sistema debe permitir al usuario el ingreso de

un valor aceptable del indicador. Esto no significa que el indicador no

pueda tener valores mayores.

Valor Actual

Frecuencia

Los indicadores que se generarán a través del sistema son los siguientes:

Categoría: Indicadores para Proyectos Agrícolas.

Nombre: Número de productores con aumento de ingresos.

Objetivo: Medir el número de productores que incrementan sus ingresos

en base a la producción agrícola del proyecto.

Frecuencia: Semestral.

Fórmula: ∑

Page 26: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

9

Nombre: Incremento de ingresos finales.

Objetivo: Medir el incremento de los ingresos en dólares (USD) de los

beneficiarios al final del proyecto agrícola.

Frecuencia: Semestral.

Fórmula: (

)

Nombre: Productividad agrícola.

Objetivo: Medir los kilogramos por hectárea (Kg/Ha) que se ha obtenido de

la cosecha de un determinado producto.

Frecuencia: Semestral.

Fórmula:

(

)

Categoría: Indicadores para Proyectos Pecuarios.

Nombre: Número de productores con aumento de ingresos.

Objetivo: Medir el número de productores que incrementan sus ingresos

en base a la producción pecuaria del proyecto.

Frecuencia: Semestral.

Fórmula: ∑

Nombre: Incremento de ingresos finales.

Objetivo: Medir el incremento de los ingresos en dólares (USD) de los

beneficiarios al final del proyecto pecuario.

Page 27: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

10

Frecuencia: Semestral

Fórmula: (

)

Nombre: Productividad pecuaria.

Objetivo: Medir los kilogramos o litros por hectárea (Kg o Lt/Ha) que se

han obtenido del proyecto pecuario.

Frecuencia: Semestral

Fórmula:

(

)

Categoría: Indicadores para Proyectos Industriales (con productos agrícolas, no

agrícolas) o de servicios.

Nombre: Número de beneficiarios con aumento de ingresos.

Objetivo: Medir el número de beneficiarios directos que incrementan sus

ingresos en base a la producción industrial del proyecto.

Frecuencia: Semestral.

Fórmula: ∑

Nombre: Incremento de ingresos finales.

Objetivo: Medir el incremento de los ingresos en dólares (USD) de los

beneficiarios al final del proyecto industrial.

Frecuencia: Semestral

Fórmula: (

)

Page 28: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

11

Módulo de Generación de Reportes

El sistema facilitará la generación de reportes tales como: Porcentaje de

ejecución o avance del Programa de Desarrollo de Área, Reporte gráfico

de Avance financiero vs. Avance físico.

Todos los datos necesarios para lograr lo antes mencionado serán almacenados

en forma permanente en una base de datos de modo que en cualquier momento

se pueda acceder a ellos mediante consultas, para facilitar el trabajo del personal

de la ONG.

1.8 LIMITACIONES

La aplicación solo generará los indicadores especificados dentro del alcance y no

será posible crear nuevos indicadores.

La aplicación será alimentada con la información que los miembros de la

comunidad autorizados ingresen, por lo que los indicadores reflejarán los posibles

errores humanos en la digitación.

1.9 PLATAFORMA

1.9.1 ARQUITECTURA DE LA APLICACIÓN

Ilustración 1 Arquitectura 3 Capas

Page 29: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

12

1.9.2 DESCRIPCIÓN DE LA ARQUITECTURA

Capa 1: Cliente de aplicación

• Navegador Web

Capa 2: Servidor de Aplicaciones

• Internet Information Services

Capa 3: Servidor de Datos

• Base de datos SqlServer 2008

1.10 HERRAMIENTAS

1.10.1 Cuadro comparativo de lenguajes de programación

Titulo: Cuadro comparativo de lenguajes de programación

Autor: Galo Santiago Quisigüiña Castillo

Fuente: Internet

Page 30: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

13

Asp.Net Java Php

Existe un rango amplio y definido de tipos de datos 9 8 7

Mínima cantidad de prerrequisitos que requiere para su instalación

5 9 8

Adaptabilidad con los sistemas operativos mas usados

6 10 9

Portabilidad del código 6 9 9

Soporta múltiples servidores web

5 6 9

Conectividad con varias bases de datos

5 9 9

Curva de aprendizaje 6 6 9

Velocidad de compilación 6 8 9

Puntaje Total 48 65 69 Tabla 1 Cuadro comparativo Lenguajes de programación

1.10.2 Lenguaje de programación

Del cuadro comparativo anterior se deduce que la mejor opción es PHP.

Debido a políticas y licencias que posee la ONG, el lenguaje de

programación escogido es ASP.NET.

Page 31: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

14

1.10.3 Cuadro comparativo de Bases de Datos

Titulo: Cuadro comparativo de bases de datos

Autor: Galo Santiago Quisigüiña Castillo

Fuente: Internet

Oracle SQL Server MySql

ACID(Atomicidad, Consistencia, Aislamiento, Durabilidad)

9 5 8

Almacenamiento e indexación 9 8 7

Procesamiento y optimización de consultas 9 8 7

Control de recurrencia y recuperación 9 8 8

Herramientas de Gestión y Base de Datos 8 9 8

Herramientas para el diseño de Base de Datos

8 9 9

Numero de usuarios ilimitados 9 5 7

Transacciones ODBC 9 9 9

Integridad Referencial 9 9 9

Control de recurrencia para múltiples versiones

9 9 9

Puntaje Total 88 79 81 Tabla 2 Cuadro Comparativo Motor Base de Datos

1.10.4 Base de Datos

Del cuadro comparativo anterior se deduce que la mejor opción es

ORACLE. Debido a políticas y licencias que posee la ONG, la base de

datos escogida es Microsoft SQL Server 2008.

Page 32: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

15

1.10.5 Cuadro comparativo de Modeladores de Base de Datos.

Titulo: Cuadro comparativo de modeladores de bases de datos

Autor: Galo Santiago Quisigüiña Castillo

Fuente: Internet

Erwin Power Designer

Soporta las bases de datos más usadas

9 9

Rápida curva de aprendizaje 8 9

Procesos de reingeniería de negocios 9 9

Generación de Diccionario de Datos 9 9

Puntaje Total 35 36 Tabla 3 Comparativo Modeladores base de Datos

1.10.6 Modelador de Base de Datos

Del cuadro comparativo anterior se deduce que la mejor opción es POWER

DESIGNER y es el modelador de base de datos escogido.

Page 33: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

16

1.10.7 Cuadro comparativo de Servidores Web.

Titulo: Cuadro comparativo de servidores web

Autor: Galo Santiago Quisigüiña Castillo

Fuente: Internet

Apache Internet Information Services

Cherokee

Soporta múltiples lenguajes de programación

9 5 9

Facilidad de configuración 8 9

Adaptabilidad a los sistemas operativos más usados

9 5 9

Invulnerabilidad 8 6 8

Alta disponibilidad 9 8 9

Módulos permanentes 9 9 9

Conexiones seguras 9 9 9

Balance de carga 9 8 8

Velocidad 9 7 9

Soporta SSL 9 9 5

Puntaje Total 88 75 75 Tabla 4 Comparativo Servidores Web

1.10.8 Servidor Web

Del cuadro comparativo anterior se deduce que la mejor opción es

APACHE. Debido a políticas y licencias que posee la ONG, el servidor web

escogido es Internet Information Services.

Page 34: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

17

1.11 MARCO ADMINISTRATIVO

1.11.1 RECURSO HUMANO

Para el desarrollo del este tema de tesis, se requiere del siguiente grupo de

recursos humanos, con funciones presentadas a continuación:

RECURSO HUMANO COMPETENCIAS OBSERVACIÓN

Ingeniero Informático, (Tutor).

Planificación y gestión de proyectos de software.

Desarrollo de aplicaciones con metodologías de ágiles.

Galo Quisigüiña

Conocimientos en: Desarrollo de Software con Herramientas de Open Source.

Egresado de la carrera de Ingeniería Informática.

Redes LAN, WAN, MAN.

Protocolos de Internet.

Administración de Base de Datos

Seguridad Informática. Tabla 5 Recurso Humano

Page 35: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

18

1.11.2 RECURSOS MATERIALES

Los recursos materiales que se van a ser utilizados se detallan a

continuación:

ITEM No. RUBRO CANTIDAD

VALOR UNITARIO ($) SUBTOTAL

1 RECURSOS MATERIALES

Empastados 8 20,00 160,00

Papel 6 (resma) 5,00 30,00

Tinta 6

(cartucho) 30,00 180,00

Suministros (Clips, grapas, etc.) 20,00

Impresora 1 90,00 90,00

SUBTOTAL RECURSOS MATERIALES 480,00

2 RECURSOS ACADEMICOS

Internet 6 (meses) 30,00 180,00

Copias 100 0,03 3,00

SUBTOTAL RECURSOS ACADEMICOS 183,00

3 OTROS

Hora/Programador 960 (horas) 5,00 4800,00

Alimentación 1 (persona) 150,00 150,00

Transporte 1 (persona) 50,00 50,00

Agua 6 (meses) 5,00 30,00

Luz 6 (meses) 10,00 60,00

Teléfono fijo 6 (meses) 12,00 72,00

Teléfono celular 6 (meses) 10,00 60,00

SUBTOTAL OTROS 5222,00

TOTAL IMPREVISTOS (5,50%) 323,68

TOTAL DEL PRESUPUESTO 6208,68

Tabla 6 Presupuesto

Page 36: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

19

1.11.3 CRONOGRAMA

El análisis, desarrollo e implementación de la APLICACIÓN WEB PARA EL

MONITOREO DE INDICADORES DE DESARROLLO ECONÓMICO PARA

COMUNIDADES DEL ECUADOR, deberá llevarse a cabo en el plazo

máximo de 6 meses el cual se detalla en el siguiente cronograma de

actividades (ver Anexo en formato A3):

Page 37: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

20

CAPITULO 2

2 METODOLOGÍA

2.1 METODOLOGÍA RUP

El Proceso Unificado Racional1, Rational Unified Process en inglés, y sus siglas

RUP, es un proceso de desarrollo de software y junto con el Lenguaje Unificado

de Modelado UML, constituye la metodología estándar más utilizada para el

análisis, implementación y documentación de sistemas orientados a objetos.

El RUP no es un sistema con pasos firmemente establecidos, sino que se trata de

un conjunto de metodologías adaptables al contexto y necesidades de cada

organización, donde el software es organizado como una colección de unidades

atómicas llamados objetos, constituidos por datos y funciones, que interactúan

entre sí.

Análisis

El proceso deberá adaptarse a la organización. Para el caso del proyecto se

manejan los estándares establecidos por el departamento de Desarrollo

Económico de la ONG Visión Mundial Ecuador y tomando en cuenta el alcance

del proyecto presentado.

Los requerimientos levantados resultaron del análisis de las necesidades de los

usuarios.

Implementación

El proyecto se desarrollará por etapas, donde interactúan continuamente los

usuarios para mantener la eficiencia y calidad del producto.

La organización proveerá los recursos en sistemas para instalar la plataforma

(servidores y otros) necesarios para el proyecto.

Documentación

Se generará la documentación que permita capacitar a los usuarios y

administradores del sistema. En esta se debe incluir manuales (de usuario,

técnico, instalación), estructura de la base de datos, diccionario de datos, etc.

2.2 Ciclo de vida RUP

El ciclo de vida RUP se divide en 4 fases: Iniciación, Elaboración, Construcción y Transición.

1 http://es.scribd.com/doc/31440864/Metodologia-RUP

Page 38: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

21

En cada fase se realizan una o más iteraciones (con el objeto de ir perfeccionando los objetivos, mediante la retroalimentación del usuario) y hasta que no finaliza una fase no se comienza con la siguiente. Por regla general, la fase en la que se realizan más iteraciones es la Construcción. 2.2.1 Iniciación

Durante la fase de inicio las iteraciones ponen mayor énfasis en actividades de modelado del negocio y de requisitos.

2.2.1.1 Modelado del negocio

En esta fase el equipo se familiarizara más al funcionamiento de la empresa,

sobre conocer sus procesos.

Entender la estructura y la dinámica de la organización para la cual el

sistema va ser desarrollado.

Entender el problema actual en la organización objetivo e identificar

potenciales mejoras.

Asegurar que clientes, usuarios finales y desarrolladores tengan un

entendimiento común de la organización objetivo.

2.2.1.2 Requisitos

Los requisitos son el contrato que se debe cumplir, de modo que los usuarios

finales tienen que comprender y aceptar los requisitos que especifiquemos.

Establecer y mantener un acuerdo entre clientes y otros actores que

podrían ser afectados sobre lo que el sistema podría hacer.

Proveer a los desarrolladores un mejor entendimiento de los requisitos del

sistema.

Definir el ámbito del sistema.

Proveer una base para estimar costos y tiempo de desarrollo del sistema.

Definir una interfaz de usuarios para el sistema enfocada a las necesidades

y metas del usuario.

2.2.2 Elaboración

En la fase de elaboración, las iteraciones se orientan al desarrollo de la línea base de la arquitectura, abarcando los flujos de trabajo de requerimientos, modelo de negocios (refinamiento), análisis, diseño y una parte de la implementación.

2.2.2.1 Análisis y diseño

En esta actividad se especifican los requerimientos y se describe cómo se va a

implementar en el sistema.

Transformar los requisitos al diseño del sistema.

Page 39: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

22

Desarrollar una arquitectura para el sistema.

Adaptar el diseño para que sea consistente con el entorno de

implementación.

2.2.3 Construcción

2.2.3.1 Implementación

Se implementan las clases y objetos en ficheros fuente, binarios, ejecutables y demás. El resultado final es un sistema ejecutable.

Planificar qué subsistemas deben ser implementados y en qué orden

deben ser integrados.

Cada implementador decide el orden de los elementos del subsistema.

Si encuentra errores de diseño los notifica.

Se integra el sistema siguiendo el plan.

2.2.3.2 Pruebas

Este flujo de trabajo es el encargado de evaluar la calidad del producto que estamos desarrollando, pero no para aceptar o rechazar el producto al final del proceso de desarrollo, sino que debe ir integrado en todo el ciclo de vida.

Encontrar y documentar defectos en la calidad del software.

Generalmente asesora sobre la calidad del software percibida.

Provee la validación de los supuestos realizados en el diseño y

especificación de requisitos por medio de demostraciones concretas.

Verificar las funciones del producto de software según lo diseñado.

Verificar que los requisitos tengan su apropiada implementación.

2.2.4 Transición

Esta actividad tiene como objetivo producir con éxito distribuciones del producto y distribuirlo a los usuarios. Las actividades implicadas incluyen:

Probar el producto en su entorno de ejecución final.

Empaquetar el software para su distribución.

Distribuir el software.

Instalar el software.

Proveer asistencia y ayuda a los usuarios.

Formar a los usuarios y al cuerpo de ventas.

Migrar el software existente o convertir bases de datos.

Page 40: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

23

2.3 USUARIOS DEL SISTEMA

2.3.1 Administrador del sistema

Este usuario tiene privilegios para ingresar a todas las opciones de los módulos. Puede modificar, buscar, generar reportes, crear perfiles y asignar roles dependiendo de la necesidad de la organización. 2.3.2 Coordinador de desarrollo económico

Es el responsable de administrar, dirigir y coordinar todas las actividades técnicas del área de desarrollo económico de la organización. Este usuario tiene acceso al módulo de administración de indicadores y generación de reportes. 2.3.3 Promotor de desarrollo económico

Es el responsable de ingresar los indicadores financieros para cada una de las áreas de desarrollo económico que se le hayan asignado. Este usuario tiene acceso al módulo de ingreso de indicadores, monitoreo y generación de reportes. 2.4 Requerimientos funcionales

Definimos dos módulos que componen el sistema. El módulo de Administración y

el módulo de Indicadores Económicos.

El módulo de Administración cumplirá con las siguientes especificaciones:

Modificación de los indicadores financieros ingresados.

Manejo de perfiles de usuarios.

El módulo de Indicadores Económicos cumplirá con las siguientes

especificaciones:

Ingreso de indicadores.

Monitoreo de indicadores.

Seguimiento de Indicadores.

Generación de reportes.

2.5 Casos de Uso

Un caso de uso es una descripción de los pasos o las actividades que deberán

realizarse para llevar a cabo algún proceso.

Los diagramas de casos de uso sirven para especificar la comunicación y el

comportamiento de un sistema mediante su interacción con los usuarios y/u otros

sistemas.

Page 41: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

24

2.5.1 Simbología

Actor: Es un rol que un usuario juega con respecto al sistema. Un Actor no necesariamente representa a una persona en particular, sino más bien la labor que realiza frente al sistema.

Ilustración 2 Actor

Caso de uso: Es una operación/tarea específica que se realiza tras una orden de algún agente externo, sea desde una petición de un actor o bien desde la invocación desde otro caso de uso.

Ilustración 3 Caso de uso

Asociación de comunicación: Es el tipo de relación más básica que indica la invocación desde un actor o caso de uso a otra operación (caso de uso). Dicha relación se denota con una línea simple.

Generalización: Este tipo de relación está orientado exclusivamente para casos

de uso (y no para actores).

Ilustración 4 Generalización

Extends: Relación de dependencia entre dos casos de uso que denota que un

caso de uso es una especialización de otro.

«extends»

Ilustración 5 Extiende

Uses: Relación de dependencia entre dos casos de uso que denota la inclusión

del comportamiento de un escenario en otro.

Page 42: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

25

«uses»

Ilustración 6 Usa

2.5.2 Descripción de casos de uso

Coordinador Desarrollo Económico

Promotor Desarrollo Económico

Crear Indicador

MonitorizarIndicador

AdministrarIndicadores

Dar SeguimientoIndicador

Administrador del Sistema

Crear Perfiles

Crear Usuarios

Visualizar Reportes

ConsultarIndicadores

Ilustración 7 Interacción entre los Usuarios del Sistema Fuente: Departamento de Desarrollo Económico de Visión Mundial

Elaborado por: El Tesista

Page 43: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

26

DATOS IDENTIFICATIVOS

SISTEMA: MONITOREO INDICADORES DE

DESARROLLO ECONÓMICO

NOMBRE CASO DE USO: Administración de Usuarios

USUARIO RESPONSABLE: Administrador del Sistema

DESCRIPCION BREVE: Permite administrar los usuarios que

accederán al sistema

SUBCASO DE USO: Crear Perfiles

USUARIO: SISTEMA:

1.- Registrar nombre del Perfil

2.- Selección de módulos (pantallas)

que se asocian al Perfil

3.- Guardar los datos del Perfil

SUBCASO DE USO: Crear Usuarios

USUARIO: SISTEMA:

1.- Registrar nombre de Usuario

2.- Registrar contraseña de Usuario

3.- Registrar perfil asociado al

Usuario

4.- Guardar los datos del Usuario

NOMBRE CASO DE USO: Administración de Indicadores

USUARIO RESPONSABLE: Coordinador de Desarrollo Económico

DESCRIPCION BREVE: Permite administrar los indicadores que se

ingresan en el sistema

SUBCASO DE USO: Dar Seguimiento al Indicador

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección del Indicador a dar

Page 44: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

27

seguimiento 3.- Mostrar datos del indicador

SUBCASO DE USO: Consultar Indicadores

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección de parámetros de

búsqueda

4.- Mostrar datos del indicador

SUBCASO DE USO: Visualizar Reportes

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección de parámetros de

reporte

4.- Mostrar datos del indicador

SUBCASO DE USO: Administrar Indicadores

USUARIO: SISTEMA:

1.- Selección del Indicador a

administrar

2.- Registrar los datos del Indicador

4.- Guardar datos modificados del indicador

NOMBRE CASO DE USO: Creación de Indicadores

USUARIO RESPONSABLE: Promotor de Desarrollo Económico

DESCRIPCION BREVE: Permite crear los indicadores en el sistema

SUBCASO DE USO: Crear Indicador

USUARIO: SISTEMA:

Page 45: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

28

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Registrar los datos del Indicador

3.- Guardar datos del indicador

SUBCASO DE USO: Monitorizar Indicador

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección del Indicador

3.- Registrar datos del indicador

4.- Guardar datos del indicador

SUBCASO DE USO: Dar Seguimiento al Indicador

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección del Indicador a dar

seguimiento

3.- Mostrar datos del indicador

SUBCASO DE USO: Consultar Indicadores

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección de parámetros de

búsqueda

4.- Mostrar datos del indicador

SUBCASO DE USO: Visualizar Reportes

USUARIO: SISTEMA:

1.- Selección del PDA, Área

Programática, Proyecto y Actividad

2.- Selección de parámetros de

reporte

Page 46: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

29

4.- Mostrar datos del indicador

Tabla 7 Caso de uso Administración de Usuarios

2.6 REQUISITOS NO FUNCIONALES

2.6.1 Desempeño

La aplicación ofrece un buen desempeño ante la concurrencia de usuarios,

garantizando tiempos cortos de respuesta ante una petición.

2.6.2 Disponibilidad

La aplicación web estará alojada en el servidor de la ONG de acuerdo a su

infraestructura de red. El número de usuarios concurrentes que la aplicación

permita dependerá del hardware en donde se encuentre instalado.

2.6.3 Escalabilidad

La aplicación será construida de tal manera que podrá incorporar en el futuro

nuevos requerimientos sin afectar el diseño original.

2.6.4 Facilidades de uso

La aplicación será amigable para el usuario. Por ejemplo se mostrarán mensajes

informativos, de advertencia y de error de acuerdo a las acciones ejecutadas.

2.6.5 Instalación

La aplicación contará con un instalador que se podrá ejecutar bajo sistema

operativo Windows.

2.6.6 Mantenimiento y actualización

La aplicación será documentada de tal manera que se pueda dar un fácil

mantenimiento.

2.6.7 Seguridad

Para el acceso al sistema se contará con usuarios y contraseñas las cuales

estarán encriptados en la base de datos.

2.6.8 Validación de la información

La aplicación contará con validaciones de acuerdo al campo y longitud de

caracteres.

Page 47: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

30

2.6.9 Operatividad

La operatividad de la aplicación estará garantizada debido a que se maneja

mediante navegadores de internet.

2.7 DIAGRAMAS DE SECUENCIA

Un diagrama de secuencia es un tipo de diagrama de interacción que muestra

cómo funcionan los procesos de uno con el otro y en qué orden. Se trata de una

construcción de un gráfico secuencial de avisos . Un diagrama de secuencia que

muestra las interacciones de objetos dispuestos en secuencia de

tiempo. Representa los objetos y clases que participan en el escenario y la

secuencia de mensajes intercambiados entre los objetos necesarios para llevar a

cabo la funcionalidad del escenario.

2.7.1 Simbología

Objeto: En forma de rectángulo representa una instancia de un objeto en

particular, y la línea punteada representa las llamadas a métodos del objeto.

Ilustración 8 Objeto

Línea de vida: Representa la llamada a métodos del objeto.

Ilustración 9 Línea de vida

Actor: Representa que o quien inicia una acción dentro del sistema. Es

simplemente es un rol que es llevado a cabo por una persona o cosa.

Ilustración 10 Actor Diagrama de secuencia

Mensaje: El envío de mensajes entre objetos se denota mediante una línea sólida

dirigida, desde el objeto que emite el mensaje hacia el objeto que lo ejecuta.

Page 48: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

31

El mensaje puede ser simple, síncrono y asíncrono.

Simple: Transferencia del control de un objeto a otro.

Mensaje1

Ilustración 11 Mensaje

Síncrono: El remitente espera una respuesta a un mensaje sincrónico

antes de continuar. El diagrama muestra la llamada y el retorno. Los

mensajes sincrónicos se utilizan para representar llamadas de función

ordinarias dentro de un programa, así como otros tipos de mensaje que se

comportan de la misma manera.

Mensaje1

Ilustración 12 Síncrono

Asíncrono: Un mensaje que no requiere una respuesta antes de que el

remitente continúe. Un mensaje asincrónico muestra sólo una llamada del

remitente. Se utiliza para representar la comunicación entre subprocesos

diferentes o la creación de un nuevo subproceso.

Mensaje2

Ilustración 13 Asíncrono

Tiempo: Se representa en dirección vertical. El tiempo se inicia en la parte

superior y avanza hacia la parte inferior. Un mensaje que esté más cerca de la

parte superior ocurrirá antes que uno que esté cerca de la parte inferior.

Recursividad: En ocasiones un objeto posee una operación que se invoca a sí

misma. A esto se le conoce como recursividad y es una característica

fundamental de varios lenguajes de programación.

La siguiente figura muestra este tipo de representación:

Page 49: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

32

Ilustración 14 Recursividad

2.7.2 Descripción de Diagramas de Secuencia

Administrador Perfil Usuario Base de Datos

Crear Perfil()

Datos Almacenados()

Guardar()

Guardar()

Datos Almacenados

Guardar Datos()

Guardar Datos

Crear Usuario()

Ilustración 15 Diagrama de Secuencia Administrador

Page 50: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

33

Coordinador Indicador Reporte Base de Datos

Modificar Indicador()

Datos Almacenados()

Guardar()

Buscar Datos()

Datos Consultados()

Guardar Datos()

Guardar Datos

Crear Reporte()

Consultar Indicador() Buscar Datos()

Datos Consultados()

Guardar Datos()

Ilustración 16 Diagrama Secuencia Coordinador

Page 51: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

34

Ilustración 17 Diagrama de secuencia Promotor Fuente: Departamento de Desarrollo Económico de Visión Mundial

Elaborado por: El Tesista

Page 52: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

35

2.8 DIAGRAMAS DE ESTADO

Un diagrama de estado muestra la secuencia de estados que un objeto o una

interacción pueden atravesar durante su existencia en respuesta a los estímulos

que vayan recibiendo, junto con las correspondientes respuestas y acciones.

La idea básica es definir una máquina que tiene un número determinado de

estados. La máquina recibe eventos del mundo exterior y cada evento provoca

que la máquina cambie de un estado a otro.

2.8.1 Simbología

Estado: Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto está esperando alguna operación, tiene cierto estado característico o puede recibir cierto tipo de estímulos.

Ilustración 18 Estado

Eventos: Es una ocurrencia que puede causar la transición de un estado a otro de un objeto. Esta ocurrencia puede ser una de varias cosas:

Condición que toma el valor de verdadero o falso

Recepción de una señal de otro objeto en el modelo

Recepción de un mensaje

Paso de cierto periodo de tiempo, después de entrar Transición simple: Es una relación entre dos estados que indica que un objeto en el primer estado puede entrar al segundo estado y ejecutar ciertas operaciones, cuando un evento ocurre y si ciertas condiciones son satisfechas.

Ilustración 19 Transición simple

Transición compleja: Relaciona tres o más estados en una transición de múltiples fuentes y/o múltiples destinos. Envío de mensajes: Además de mostrar la transición de estados por medio de eventos, puede representarse el momento en el cual se envían mensajes a otros objetos. Acciones: Podemos especificar la solicitud de un servicio a otro objeto como consecuencia de la transición. Se puede especificar el ejecutar una acción como

Page 53: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

36

consecuencia de entrar, salir, estar en un estado, o por la ocurrencia de un evento. 2.8.2 Descripción de Diagramas de Estado

Iniciado Ingresar datos Indicador

Cancelado Ingreso de Indicador Aceptado

Registrado

RechazadoAprobado

Monitorizado

Creado Reporte

En proceso de Seguimiento

Aceptado

Final

Inicio

Iniciar creación de Indicador

Datos incorrectos Datos correctos

Ilustración 20 Diagrama de Estados

Page 54: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

37

2.9 CONTENIDO DEL PROYECTO

2.9.1 Módulo de Gestión Administrativa

Este módulo estará integrado por los siguientes submódulos: perfiles y usuarios

2.9.1.1 Perfiles

Crear los perfiles necesarios para poder ingresar al sistema y hacer uso del

mismo de una forma apropiada y segura.

Modificar de ser necesario los datos del perfil como: PDAs, pantallas, etc. y

se hará una actualización de los mismos.

2.9.1.2 Usuarios

Crear los usuarios que dependiendo del perfil que se les asigne podrán

hacer uso de todas o parte de las funcionalidades del sistema.

Modificar de ser necesario los datos del usuario como: nombre, usuario,

contraseña, cargo, etc., y se hará una actualización de los mismos.

2.9.2 Módulo de Gestión de Indicadores

Este módulo estará integrado por los siguientes submódulos: ingreso de

indicadores, monitoreo de indicadores, seguimiento y resultados de indicadores.

2.9.2.1 Ingreso de Indicadores

Crear los indicadores necesarios para poder medir la efectividad del PDA

en la zona donde trabaja.

Modificar de ser necesario los datos del indicador como: línea base, meta,

nivel crítico, etc.

2.9.2.2 Monitoreo de Indicadores

Ingresar los valores del indicador según la frecuencia indicada en la

anterior pantalla.

Modificar de ser necesario los valores como: logro actual, archivos de

evidencia.

2.9.2.3 Seguimiento y Resultados

Ingresar el indicador del cual queremos desplegar la tabla de valores

resultado del monitoreo con el respectivo gráfico y comentarios.

Agregar de ser necesario comentarios de los resultados obtenidos.

Page 55: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

38

2.9.3 PLATAFORMA

2.9.3.1 Plataforma .Net

El .NET Framework (que se pronuncia punto net) es una plataforma desarrollada

por Microsoft que se ejecuta principalmente en Microsoft Windows. Incluye una

gran biblioteca y proporciona interoperabilidad entre lenguajes (cada lenguaje

puede utilizar código escrito en otros lenguajes) a través de diversos lenguajes de

programación. Los programas escritos para .NET Framework se ejecutan en

un ambiente de software conocido como el Common Language Runtime (CLR),

una máquina virtual de aplicaciones que proporciona servicios tales como

seguridad, gestión de memoria, y el manejo de excepciones. La biblioteca de

clases y el CLR en conjunto constituyen el. NET Framework.

La Base Class Library de .NET Framework proporciona la interfaz de

usuario , acceso a datos , conectividad de base de datos , criptografía , desarrollo

de aplicaciones web, algoritmos numéricos y las comunicaciones de

red . Programadores producen software mediante la combinación de su

propio código fuente con el .NET Framework y otras bibliotecas. El .NET

Framework está destinado a ser utilizado por la mayoría de nuevas aplicaciones

creadas para la plataforma Windows. Microsoft también produce un entorno de

desarrollo integrado en gran parte para software .NET llamado Visual Studio.

2.9.4 MODELO VISTA CONTROLADOR (MVC)

Ilustración 21 Modelo Vista Controlador

Page 56: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

39

2.9.4.1 MODELO

Es la representación de la información con la cual el sistema opera, por lo tanto gestiona todos los accesos a dicha información, tanto consultas como actualizaciones, implementando también los privilegios de acceso que se hayan descrito en las especificaciones de la aplicación (lógica de negocio). Envía a la Vista aquella parte de la información que en cada momento se le solicita para que sea mostrada (típicamente a un usuario). Las peticiones de acceso o manipulación de información llegan al Modelo a través del Controlador.

2.9.4.2 CONTROLADOR

Responde a eventos (usualmente acciones del usuario) e invoca peticiones al Modelo cuando se hace alguna solicitud sobre la información (por ejemplo, editar un documento o un registro en una base de datos). También puede enviar comandos a su Vista asociada si se solicita un cambio en la forma en que se presenta de Modelo (por ejemplo, desplazamiento o scroll por un documento o por los diferentes registros de una base de datos), por tanto se podría decir que el Controlador hace de intermediario entre la Vista y el Modelo.

2.9.4.3 VISTA

Presenta el Modelo (información y lógica de negocio) en un formato adecuado para interactuar (usualmente la interfaz de usuario) por tanto requiere de dicho Modelo la información que debe representar como salida.

Page 57: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

40

CAPITULO 3

Éste capítulo es una descripción de la funcionalidad del sistema como se

mencionó en la sección de Introducción la aplicación consta de tres módulos

principales: Módulo de Registro de la Zona, Módulo de Registro de Indicadores y

Módulo de Generación de Reportes.

Dentro del módulo de Registro de la Zona se describe el ingreso de la

información concerniente a el lugar Físico donde se van a tomar las muestras

(Encuestas, Informes, etc.) para luego crear los respectivos indicadores.

En el módulo de Registro de Indicadores se escoge la zona que se ingresó en el

módulo descrito anteriormente para llenar los datos necesarios para el indicador.

De la información ingresada en el módulo anterior se podrá desplegar reportes

mediante el módulo de Generación de Reportes.

3 DESCRIPCION DEL SISTEMA

3.1 Ingreso a la Aplicación

Ilustración 22 Ingreso al Sistema

A cada usuario se le asignará una clave para acceder al sistema, se ingresa un

usuario y una contraseña para en caso de una autenticación exitosa hacer uso de

las opciones del sistema de acuerdo al perfil asignado y rol asignado.

Para encriptar la contraseña se utiliza una criptografía simétrica donde se usa la

misma clave para cifrar y descifrar mensajes. La ventaja de usar un algoritmo

simétrico es la imposibilidad de reconstruir la cadena original a partir del

resultado, y también la imposibilidad de encontrar dos cadenas de texto que

generen el mismo resultado.

Page 58: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

41

3.2 Administración

Este módulo permite gestionar todos los privilegios de los usuarios que

intervienen en la ONG.

Existe una opción para cambiar clave, la cual pide ingresar la contraseña anterior.

En la opción de usuarios que está disponible solo para el administrador del

sistema se puede ingresar los datos de un nuevo empleado y modificar los

mismos.

3.2.1 Perfiles de usuario

Ilustración 23 Administración Perfiles

En perfiles de Usuario, se permite administrar los privilegios de los usuarios,

permitiéndole agregar o quitar las opciones y acciones que tiene ya definido el

perfil que se seleccione. Si es necesario se puede añadir un nuevo perfil de

usuario y asignar privilegios. Ésta opción solo debe estar disponible para el

Administrador.

3.3 Mantenimiento

Permitir dar mantenimiento a las principales entidades del sistema, es decir

actualizar datos o ingresar datos de una nueva entidad como por ejemplo

unidades.

Page 59: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

42

3.3.1 Mantenimiento de Perfiles

Ilustración 24 Mantenimiento Perfiles

Se maneja los perfiles del sistema permitiendo ingresar y actualizar los mismos.

Se incluye la opción Eliminar.

3.3.2 Mantenimiento de Usuarios

Ilustración 25 Mantenimiento Usuarios

Se maneja los usuarios del sistema permitiendo ingresar y actualizar los mismos.

Se incluye la opción Eliminar y se debe llenar el perfil y cargo al que pertenecen.

3.3.3 Mantenimiento de Frecuencias

Ilustración 26 Mantenimiento Frecuencias

Se maneja las frecuencias de los indicadores de desarrollo económico

permitiendo ingresar y actualizar las mismas. Se incluye la opción Eliminar.

Page 60: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

43

3.3.4 Mantenimiento de Estado

Ilustración 27 Mantenimiento Estado

Se maneja los estados de los Indicadores del sistema permitiendo ingresar y

actualizar los mismos. Se incluye la opción Eliminar.

3.3.5 Mantenimiento de Unidades

Ilustración 28 Mantenimiento Unidades

Se maneja las unidades de medida de los Indicadores del sistema permitiendo

ingresar y actualizar las mismas. Se incluye la opción Eliminar.

3.3.6 Mantenimiento de Cargos

Ilustración 29 Mantenimiento Cargos

Se maneja los cargos que tienen los usuarios del sistema permitiendo ingresar y

actualizar los mismos. Se incluye la opción Eliminar.

Page 61: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

44

3.3.7 Mantenimiento de Pantallas

Ilustración 30 Mantenimiento Pantallas

Se maneja las pantallas que tendrán asignadas los perfiles de usuario del sistema

permitiendo ingresar y actualizar los mismos. Se incluye la opción Eliminar.

3.4 REGISTRO

Se lleva el seguimiento desde la creación del indicador pasando por su registro

hasta su fecha de finalización.

Con esto ayudamos a los usuarios de acuerdo a su correspondiente perfil a

mantener un control sobre los indicadores.

3.4.1 Ingreso de Indicadores

Ilustración 31 Ingreso Indicadores

Se crea el indicador indicando el PDA al cual va a pertenecer, el Nombre del

Proyecto, la Actividad.

Al ingresar los datos anteriores se despliegan el Área Programática y el Código de

la Actividad.

A continuación se puede ingresar la descripción, unidades, línea base, meta final,

nivel crítico, fecha para meta final, frecuencia y evidencias.

Page 62: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

45

3.4.2 Monitoreo de Indicadores

Ilustración 32 Monitoreo Indicadores

En esta pantalla se registra la meta que se ha obtenido con respecto al indicador.

El número de veces que se realice este registro se delimitó al momento de

ingresar la frecuencia del indicador (Ingreso de Indicadores).

3.5 REPORTES

Dentro de cada reporte se visualiza la información de acuerdo al PDA, Proyecto,

Actividad e Indicador seleccionado.

Adicionalmente a cada reporte se le adjuntará un gráfico para mejor comprensión

del usuario.

Ilustración 33 Seguimiento Indicadores

Page 63: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

46

3.5.1 Seguimiento y Resultados

Este reporte permite visualizar los datos generales del indicador así como gráficos que describen su comportamiento.

Ilustración 34 Seguimiento y Resultados

Page 64: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

47

3.5.2 Cumplimiento Actividad

Indica el porcentaje de cumplimiento de la actividad que se alimenta de los porcentajes de cumplimiento de cada indicador.

Ilustración 35 Cumplimiento Actividad

Page 65: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

48

3.5.3 Cumplimiento del Proyecto

Indica el porcentaje de cumplimiento del proyecto en base a los porcentajes de cumplimiento de cada actividad.

Ilustración 36 Cumplimiento Proyecto

Page 66: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

49

3.5.4 Cumplimiento del PDA

Indica el porcentaje de cumplimiento del PDA en base a los porcentajes de cumplimiento de cada proyecto.

Ilustración 37 Cumplimiento PDA

Page 67: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

50

CAPITULO 4

En este capítulo se describen las pruebas de desempeño y compatibilidad efectuadas al sistema.

4 PRUEBAS

4.1 Pruebas

La prueba de software es un conjunto de herramientas, técnicas y métodos para

poner a prueba la calidad del producto o servicio y así descubrir los defectos

antes de que llegue al usuario final.

Durante el desarrollo e implementación del sistema se llevó a cabo un proceso

iterativo e incremental y las pruebas realizadas al término del desarrollo del

sistema son:

Pruebas de compatibilidad

Pruebas de desempeño

4.1.1 Pruebas de Compatibilidad

El objetivo principal de las pruebas de compatibilidad es de identificar errores de

funcionalidad o de diseño de un sistema web.

En esta prueba analizaremos compatibilidad de resolución, navegadores y

sistema operativo.

Page 68: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

51

Caso de Uso de Prueba

Generar Reporte de Seguimiento y Resultados

Propósito Comprobar la correcta visualización

Datos de entrada 1. PDA

2. Proyecto

3. Actividad

4. Indicador

Procedimiento El usuario ingresa los datos correspondientes al

indicador que desea dar seguimiento

El sistema despliega la información y gráficos

correspondientes.

Resultados esperados Visualización de la información correspondiente al

indicador

Tabla 8 Resultados de la prueba de resolución de pantalla Fuente: Firefox

Elaborado por: El Tesista

4.1.1.1 Pruebas de Compatibilidad de resolución de pantalla

Definición de prueba

De acuerdo al caso de uso se visualizará la información e imágenes de las

páginas en diferentes tipos de resoluciones de pantalla.

Para esto usamos como tipo de navegador web Firefox bajo el sistema

operativo Windows 7.

Escenario de prueba

Se determinarán diferentes tamaños de resolución de pantalla:

Escenario 1: Resolución de pantalla 800*600

Escenario 2: Resolución de pantalla 1024*768

Escenario 3: Resolución de pantalla 1280*600

Escenario 4: Resolución de pantalla 1280*720

Escenario 5: Resolución de pantalla 1600*1900

Métricas

Page 69: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

52

Para esta prueba tomamos en cuenta la métrica de verificación de imágenes

en las páginas para su análisis.

Calificación

De acuerdo al análisis de esta prueba se ha dotado de ciertos parámetros de

calificación.

Visualización total

Visualización parcial

No hay visualización

Resultados

Tabla 9 Resultados de la prueba de resolución de pantalla Fuente: Firefox

Elaborado por: El Tesista

Análisis de Resultados

Como se puede ver en la Tabla 9 se presenta resultados similares a excepción

del Escenario 1, debido a que la imagen no se visualiza correctamente.

Por tanto, se recomienda que para la utilización del sistema se use monitores

con resolución de pantalla 1024*728 o superiores.

4.1.1.2 Pruebas de Compatibilidad de navegador web

Definición de prueba

Se hace revisiones al caso de uso de prueba de forma que se

desplieguen estas páginas en diferentes navegadores.

Escenarios de prueba

Para la prueba se toma diferentes escenarios que a continuación se detallan:

Medida Escenario Calificación Observaciones

Visualización de

imágenes en

pantalla

Escenario 1 Visualización

Parcial

La imagen no se

distingue bien en la

orden

Escenario 2

Escenario 3

Escenario 4

Escenario 5

Page 70: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

53

Escenario 1: Navegador Web: Internet Explorer

Escenario 2: Navegador Web: Firefox

Escenario 3: Navegador Web: Chrome

Métricas

Para esta prueba se toma las siguientes métricas:

Tamaño y posición de las imágenes en las páginas

Muestra de mensajes

Funcionamiento de componentes visuales

Calificación

Forma correcta

Forma parcial

Forma incorrecta

Resultados

Medida Escenario Calificaciones Observaciones

Tamaño y posición de imágenes

Escenario 1 Escenario 2 Escenario 3

Forma correcta Forma correcta Forma correcta

Muestra de mensajes

Escenario 1 Escenario 2 Escenario 3

Forma correcta Forma correcta Forma correcta

Funcionamiento de componentes visuales

Escenario 1 Escenario 2 Escenario 3

Forma correcta Forma correcta Forma correcta

Tabla 10 Resultados de la prueba de Compatibilidad de navegadores Fuente: Navegadores web Elaborado por: El Tesista

Análisis de Resultados

Durante la ejecución de los tres escenarios de prueba se encontró una

similitud entre el comportamiento en los distintos navegadores.

Se recomienda el uso de cualquiera de ellos.

4.1.1.3 Pruebas de Compatibilidad de sistemas operativos

Definición de prueba

De acuerdo al caso de uso de prueba se analizará las páginas del sistema y el

funcionamiento en diferentes sistemas operativos.

Escenarios de prueba

Page 71: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

54

Se han determinado dos escenarios:

Escenario 1: Sistema Operativo: Linux

Navegador Web: Firefox

Escenario 1: Sistema Operativo: Windows 7

Navegador Web: Firefox

Métricas

Para esta prueba se toman en cuenta las siguientes métricas:

Tamaño y posición de las imágenes en las páginas

Muestra de mensajes

Funcionamiento de componentes visuales

Calificación

Forma correcta

Forma parcial

Forma incorrecta

Resultados

Medida Escenario Calificaciones Observaciones

Tamaño y posición de imágenes en las páginas

Escenario 1 Escenario 2

Forma correcta Forma correcta

Muestra de mensajes

Escenario 1 Escenario 2

Forma correcta Forma correcta

Funcionamiento de componentes visuales

Escenario 1 Escenario 2

Forma correcta Forma correcta

Tabla 11 Resultados de la prueba de Compatibilidad de Sistemas Operativos Fuente: Navegadores web Elaborado por: El Tesista

Análisis de Resultados

Durante la ejecución de los dos escenarios de prueba se encontró problemas

de funcionamiento con el Escenario 1

Por tanto el sistema puede ser usado solo bajo sistemas operativos Windows.

Page 72: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

55

4.1.2 Pruebas de desempeño

El objetivo de este tipo de prueba es analizar y evaluar las características del

software, por ejemplo consumo de memoria o procesador.

La prueba consta de:

Tiempos de respuesta

Hardware

4.1.2.1 Prueba de desempeño en base a número de peticiones

Casos de Uso de Prueba

Generar Reporte de Seguimiento y Resultados

Propósito Comprobar el correcto funcionamiento

Datos de entrada 1. PDA

2. Proyecto

3. Actividad

4. Indicador

Procedimiento El usuario ingresa los datos correspondientes al

indicador que desea dar seguimiento

El sistema despliega la información y gráficos

correspondientes.

Resultados esperados Visualización de la información correspondiente al

indicador

Tabla 12 Caso para la prueba de desempeño Fuente: Documentos de casos de uso

Elaborado por: El Tesista

Definición de prueba

Analizar el tiempo de respuesta para la transición durante el paso 1 y 2 del

caso de prueba.

Escenarios de prueba

Se han determinado el siguiente:

Escenario:

Procesador: Intel Core i3 3.40 Ghz

Page 73: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

56

Memoria RAM: 4 GB

Conexión LAN: 100 Mbps

Sistema Operativo: Windows 7 Professional

Velocidad de conexión a internet: 1 Mbps

Métricas

Tiempo de respuesta

Calificación

Ideal

Aceptable

Inaceptable

Resultados

El tiempo promedio para acceder a una página es de 65 milisegundos

realizando un total de 30 peticiones al servidor.

Análisis de Resultados

El sistema tiene un tiempo de respuesta en promedio Aceptable.

4.1.2.2 Prueba de desempeño en base a hardware

Definición de prueba

Validar el consumo de recursos para lo cual usaremos dos equipos con

características diferentes.

Escenarios de prueba

Se han determinado dos:

Escenario 1:

Procesador: Intel Core i3 3.40 Ghz

Memoria RAM: 4 GB

Conexión LAN: 100 Mbps

Page 74: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

57

Sistema Operativo: Windows 7 Professional

Velocidad de conexión a internet: 1 Mbps

Escenario 2:

Procesador: Intel Core i7 3.6 Ghz

Memoria RAM: 8 GB

Conexión LAN: 100 Mbps

Sistema Operativo: Windows 8.1 Pro Edition

Velocidad de conexión a internet: 1 Mbps

Métricas

Consumo de recursos del sistema, incluye uso de CPU y memoria RAM

Tiempos de respuesta frente a la prueba

Calificación

Uso de CPU

Uso de RAM en MB

Resultados

Medida Escenario Respuesta de funcionamiento

Observaciones

Uso del CPU Escenario 1 Escenario 2

21 % 10 %

Uso de RAM Escenario 1 Escenario 2

513 MB 576 MB

Tabla 13 Resultados Prueba Desempeño en base a Hardware Fuente: Administrador de tareas de Windows

Elaborado por: El Tesista

Análisis de Resultados

A partir de las características del Escenario 1 o superiores el sistema se

desempeña con normalidad.

Page 75: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

58

CAPITULO 5

5. CONCLUSIONES Y RECOMENDACIONES

A la culminación de este proyecto es posible concluir y recomendar lo siguiente:

5.1 Conclusiones

La Aplicación Web para el Monitoreo de Indicadores de Desarrollo Económico permite dar un seguimiento a los proyectos que maneja la ONG Visión Mundial Ecuador haciendo más eficiente la distribución de los recursos económicos y proporcionando información relevante a las autoridades para la toma de decisiones.

Se descubrió falencias en los procesos que lleva a cabo Visión Mundial lo que genera nuevos requerimientos que en el futuro pueden ser corregidos a la par del desarrollo de nuevos sistemas.

Se considera como algo fundamental el que las comunidades puedan tener acceso a internet para lograr un mejor aprovechamiento de la Aplicación desarrollada.

5.2 Recomendaciones

Para un mejor entendimiento del proceso de creación de un Indicador de Desarrollo Económico se recomienda investigar temas relacionados a Economía. De esta manera se logrará una comprensión más rápida de la Aplicación. La Aplicación Web se ha adaptado a lo requerido por Visión Mundial Ecuador, permitiendo así un mejor manejo de la información por lo que se recomienda tener un mantenimiento continuo del sistema. Se recomienda tener un respaldo de la base con una frecuencia mensual Se recomienda que a futuro La Aplicación Web para el Monitoreo de Indicadores de Desarrollo Económico se integre con la actual denominada PMA (Planificación y Monitoreo Anual) para lograr una completa integración de la información.

Page 76: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

59

GLOSARIO

A

ADMINISTRADOR DEL SISTEMA, tiene la responsabilidad de ejecutar,

mantener, operar y asegurar el correcto funcionamiento de un sistema informático

y/o una red de cómputo.

ANALISIS, distinción y separación de las partes de un todo hasta llegar a conocer

sus principios o elementos.

API, interfaz de programación de aplicaciones.

AUTOMATIZACIÓN, sustitución de tareas tradicionalmente manuales por las

mismas realizadas de manera automática por máquinas.

C

CASOS DE USO, descripción de los pasos o actividades que deberán realizarse

para llevar a cabo algún proceso.

D

DIAGRAMA DE ESTADO, muestran el conjunto de estados por los cuales pasa

un objeto durante su vida en una aplicación en respuesta a eventos.

DIAGRAMA DE SECUENCIA, es un tipo de diagrama usado para modelar

interacción entre objetos en un sistema según UML.

E

ESTANDARES, acuerdos (normas) documentados que contienen

especificaciones técnicas u otros criterios precisos para ser usados

consistentemente como reglas, guías o definiciones de características.

F

FÓRMULA, conjunto de términos que representa una cantidad o que se utilizan

para obtener un valor o resolver un problema.

H

HTML, Lenguaje de Marcas de HiperTexto que se utiliza para el desarrollo de

páginas web.

I

INFRAESTRUCTURA TECNOLÓGICA, conjunto de todos los elementos

tecnológicos que integran un proyecto o sustentan una operación.

Page 77: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

60

M

MÓDULO, agrupa un conjunto de subprogramas y estructuras de datos.

MVC, Patrón de diseño para aplicaciones web (Modelo, Vista, Controlador).

P

PERFIL DE USUARIO, acceso a la información restringida o no dependiendo de

pertenencia a determinado grupo.

PLATAFORMA, determinado software y/o hardware con el cual una aplicación es

compatible y permite su ejecución.

PLUG-IN, aplicación que se relaciona con otra para aportarle una función nueva y

generalmente muy específica.

R

RUP, Proceso de desarrollo de Software (Rational Unified Process).

U

UML, Lenguaje de Modelado de Sistemas de Software (Unified Modeling

Language)

Page 78: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

61

BIBLIOGRAFÍA

1. DOUGL, L, Programación Concurrente y Patrones de Diseño, Segunda

Edición, Madrid, 2001

2. MÉNDEZ, C, Metodología, Diseño y Desarrollo del Proceso de

Investigación, Tercera edición, Bogotá, 2001.

3. WIKIPEDIA, “Proceso Unificado de Rational”,

http://es.wikipedia.org/wiki/Rational_Unified_Process

4. WIKIPEDIA, “Modelo–vista–controlador”,

http://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlad

or

5. SCRIBD, “Diferencia Entre Los Lenguajes de Programación”,

http://es.scribd.com/doc/11522383/Diferencia-Entre-Los-Lenguajes-de-

Programacion

6. VARGAS, Yuli, DÍAZ, Mabel, “Diagrama de Secuencia”,

http://exposicinds.blogspot.com

7. GOOGLE DOCS, “Cuadro Comparativo”,

https://docs.google.com/document/preview?hgd=1&id=1ACvEZgyTjKj_6tqP

wbi-gfG_BZr8H7A_fatsUWYpBeA

Page 79: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

62

ANEXOS

Page 80: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

63

ANEXO A.

Ilustración 38 Diagrama Entidad Relación

FK

_E

VID

EN

CIA

S_

IND

ICA

DO

RE

S

FK

_IN

DIC

AD

OR

ES

_E

ST

AD

OS

FK

_IN

DIC

AD

OR

ES

_F

RE

CU

EN

CIA

S

FK

_IN

DIC

AD

OR

ES

_U

SU

AR

IOS

FK

_P

ER

FIL

PD

AS

_P

ER

FIL

ES

FK

_IN

D_

PE

RF

_R

EF

ER

EN

CE

_IN

D_

PA

NT

FK

_IN

D_

PE

RF

_R

EF

ER

EN

CE

_IN

D_

PE

RF

FK

_S

EG

UIM

IEN

TO

SIN

DIC

AD

OR

ES

_IN

DIC

AD

OR

ES

FK

_S

EG

UIM

IEN

TO

SIN

DIC

AD

OR

ES

_U

SU

AR

IOS

FK

_U

SU

AR

IOS

_C

AR

GO

S

FK

_U

SU

AR

IOS

_P

ER

FIL

ES

FK

_IN

D_

MO

NI_

RE

FE

RE

NC

E_

IND

_IN

DI

IND

_C

arg

os

Ca

rgo

ID

No

mb

reC

arg

o

int

va

rch

ar(

20

0)

<p

k>

IND

_E

sta

do

s

Est

ad

oID

Ne

mo

nic

oE

sta

do

De

scri

pcio

nE

sta

do

int

ch

ar(

1)

va

rch

ar(

50

)

<p

k>

IND

_E

vid

en

cia

s

Evid

en

cia

ID

Ind

ica

do

rID

Ru

taE

vid

en

cia

No

mb

reE

vid

en

cia

Fe

ch

aE

vid

en

cia

int

int

va

rch

ar(

10

0)

va

rch

ar(

10

0)

da

teti

me

<p

k>

<fk

>

IND

_F

recu

en

cia

s

Fre

cu

en

cia

ID

De

scri

pcio

nF

recu

en

cia

int

va

rch

ar(

10

0)

<p

k>

IND

_In

dic

ad

ore

s

Ind

ica

do

rID

Fre

cu

en

cia

ID

De

scri

pcio

nIn

dic

ad

or

Me

taF

ina

lIn

dic

ad

or

Niv

elC

riti

co

Ind

ica

do

r

Evid

en

cia

sIn

dic

ad

or

Acti

vid

ad

ID

Lin

ea

Ba

se

Est

ad

oID

Usu

ari

oID

Fe

ch

aM

eta

Fin

al

Fe

ch

aR

eg

istr

oF

ina

l

Me

taR

eg

istr

oF

ina

l

int

int

va

rch

ar(

10

0)

int

int

va

rch

ar(

10

0)

int

int

int

int

da

teti

me

da

teti

me

int

<p

k>

<fk

1>

<fk

2>

<fk

3>

IND

_P

an

tall

as

Pa

nta

lla

ID

No

mb

reP

an

tall

a

Mo

du

loP

an

tall

a

Ord

en

Pa

nta

lla

int

va

rch

ar(

10

0)

va

rch

ar(

10

0)

int

<p

k>

IND

_P

erf

ilP

DA

S

Pe

rfil

PD

AID

Pe

rfil

ID

Pd

aID

int

int

int

<p

k>

<fk

>

IND

_P

erf

ilP

an

tall

a

Pe

rfil

Pa

nta

lla

ID

Pa

nta

lla

ID

Pe

rfil

ID

int

int

int

<p

k>

<fk

1>

<fk

2>

IND

_P

erf

ile

s

Pe

rfil

ID

No

mb

reP

erf

il

int

va

rch

ar(

20

0)

<p

k>

IND

_S

eg

uim

ien

tosI

nd

ica

do

res

Se

gu

imie

nto

Ind

ica

do

rID

Ind

ica

do

rID

Usu

ari

oID

Se

gu

imie

nto

Ind

ica

do

r

Fe

ch

aS

eg

uim

ien

toIn

dic

ad

or

Se

gu

ido

rIn

dic

ad

or

int

int

int

va

rch

ar(

10

0)

da

teti

me

va

rch

ar(

10

0)

<p

k>

<fk

1>

<fk

2>

IND

_U

sua

rio

s

Usu

ari

oID

Pe

rfil

ID

Ca

rgo

ID

No

mb

reU

sua

rio

Usu

ari

o

Cla

ve

Fe

ch

aU

ltim

aA

cti

vid

ad

int

int

int

va

rch

ar(

20

0)

va

rch

ar(

20

0)

va

rch

ar(

20

0)

da

teti

me

<p

k>

<fk

2>

<fk

1>

IND

_M

on

ito

reo

Ind

ica

do

r

Mo

nit

ore

oIn

dic

ad

orI

D

Ind

ica

do

rID

Me

taM

on

ito

reo

Fe

ch

aM

on

ito

reo

int

int

int

da

teti

me

<p

k>

<fk

>

Page 81: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

64

DICCIONARIO DE DATOS

LISTA DE TABLAS

NOMBRE DESCRIPCIÓN

IND_Estados Se almacena los estados de los indicadores

IND_Evidencias Se almacena la descripción[on de los documentos físicos que respaldan el indicador

IND_Indicadores Se almacena toda la información referente al indicador

IND_MonitoreoIndicador Relaciona al indicador con su respectivo monitoreo

IND_Frecuencias Se almacena la frecuencia con la que serán monitoreados los indicadores

IND_Usuarios Se almacena toda la información referente al usuario del sistema

IND_SeguimientosIndicadores Relaciona al indicador con su respectivo seguimiento

IND_Cargos Se almacena el cargo del usuario

IND_Perfiles Se almacena los perfiles del sistema

IND_PerfilPDAS Se almacena el perfil del sistema PMA

IND_PerfilPantalla Relaciona al perfil con sus respectivas pantallas

IND_Pantallas Se almacena la información de las pantallas del sistema

DESCRIPCIÓN DE TABLAS

Tabla IND_Cargos

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

CargoID int 4

X X

NombreCargo varchar 200 X

Tabla IND_Estados

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

EstadoID int 4

X X

NemonicoEstado char 1 X

DescripcionEstado varchar 50 X

Page 82: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

65

Tabla IND_Evidencias

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

EvidenciaID int 4

X X

IndicadorID int 4 X

X

RutaEvidencia varchar 100 X

NombreEvidencia varchar 100 X

FechaEvidencia datetime 8 X

Tabla IND_Frecuencias

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

FrecuenciaID int 4

X X

DescripcionFrecuencia varchar 100 X

Tabla IND_Indicadores

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

IndicadorID int 4

X X

FrecuenciaID int 4 X

X

DescripcionIndicador varchar 100 X

MetaFinalIndicador int 4 X

NivelCriticoIndicador int 4 X

EvidenciasIndicador varchar 100 X

ActividadID int 4 X

LineaBase int 4 X X

EstadoID int 4 X

X

UsuarioID int 4 X

FechaMetaFinal datetime 8 X

FechaRegistroFinal datetime 8 X

MetaRegistroFinal int 4 X

UnidadID int 4 X

Tabla IND_MonitoreoIndicador

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

MonitoreoIndicadorID int 4

X X

IndicadorID int 4 X

X

MetaMonitoreo int 4 X

FechaMonitoreo datetime 8 X

Page 83: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

66

Tabla IND_Pantallas

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

PantallaID int 4

X X

NombrePantalla varchar 100 X

ModuloPantalla varchar 100 X

OrdenPantalla int 4 X

Tabla IND_Perfiles

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

PerfilID int 4

X X

NombrePerfil varchar 200 X

Tabla IND_PerfilPantalla

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

PerfilPantallaID int 4

X X

PantallaID int 4 X

X

PerfilID int 4 X

X

Tabla IND_PerfilPDAS

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

PerfilPDAID int 4

X X

PerfilID int 4 X

X

PdaID int 4 X

X

Tabla IND_SeguimientosIndicadores

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

SeguimientoIndicadorID int 4

X X

IndicadorID int 4 X

X

UsuarioID int 4 X

X

SeguimientoIndicador varchar 100 X

FechaSeguimientoIndicador datetime 8 X

SeguidorIndicador varchar 100 X

Page 84: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

67

Tabla IND_Unidades

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

UnidadID int 4

X X

NemonicoUnidad char 3 X

DescripcionUnidad varchar 50 X

Tabla IND_Usuarios

CAMPOS TIPO LONGITUD NULL NOT NULL

PRIMARY KEY

FOREIGN KEY

UsuarioID int 4

X X

PerfilID int 4 X VERDADERO X

CargoID int 4 X VERDADERO X

NombreUsuario varchar 200 X

Usuario varchar 200 X

Clave varchar 200 X

FechaUltimaActividad datetime 8 X

Page 85: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

68

MANUAL TÉCNICO

APLICACIÓN WEB PARA EL MONITOREO DE INDICADORES DE

DESARROLLO ECONÓMICO PARA LAS COMUNIDADES UBICADAS EN

LOS CANTONES RIOBAMBA, GUANO Y PELILEO DE LA PROVINCIA DE

CHIMBORAZO

Page 86: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

69

MANUAL TÉCNICO

1.1 INTRODUCCIÓN

La aplicación utiliza una lógica de programación desarrollada en niveles o capas.

Para este trabajo se implementó el modelo de 3 capas denominado MVC

(Modelo-Vista-Controlador) que proporciona una clara separación entre las

distintas responsabilidades de la aplicación.

Modelo: Son los datos puros que puestos en el contexto del sistema

proveen de información al usuario o a la aplicación

Vista: Es la representación del modelo en forma gráfica disponible para la

interacción con el usuario.

Controlador: Esta capa se encarga de manejar y responder las solicitudes

del usuario, procesando la información necesaria y modificando el Modelo

en caso de ser necesario.

1.2 Objetivo

Explicar cada uno de los componentes de aplicación que fueron creados para

cumplir con las especificaciones iniciales, además de detallar las clases que

contienen enfocando a la creación de nuevos indicadores.

1.3 Herramientas utilizadas

Sistema Operativo

Windows 7

Lenguaje de programación

Asp.net / C Sharp

Entorno de desarrollo integrado (IDE)

Visual Studio 2010

Servidor de Aplicaciones

Internet Information Services (IIS)

Page 87: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

70

Motor de Base de Datos

SQL Server 2008

Diseñador de Reportes

Crystal Reports

1.4 Requerimientos de Hardware

Procesador: Core 2 Duo o superior

Memoria: 2 GB RAM mínimo recomendado

Disco duro: 40 GB Disponibles en disco

Monitor: SVGA 1024 * 968

Tarjeta de red: 10 Mbps o superior

CODIGO FUENTE

2.1 VISUALIZACIÓN DE LA ARQUITECTURA DE LA APLICACIÓN

Ilustración 39 Arquitectura de la aplicación

Como se puede observar en la Ilustración 39 el proyecto esta dividido en 7

módulos:

Page 88: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

71

Account

App_Code

Images

Reportes

Scripts

Styles

Views

Cada uno de estos módulos sera detallado a continuación:

2.2 Account

En esta carpeta se almacena las páginas que controlar el ingreso a la aplicación y

cambio de contraseña.

Ilustración 40 Módulo Account

Login2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login2.aspx.cs" Inherits="Account_Login2" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <center> <tr <td align="center" valign="middle"> <table width="10%" cellspacing="4" cellpadding="4" border="4" > <tr> <td> <img alt="" src="Images/logo.jpg" /> </td> </tr> <tr>

Page 89: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

72

<td valign="middle" align="center"> <table cellspacing="0" cellpadding="3" border="0" > <td> <asp:Label ID="lblUsuario" Text="Usuario" runat="server" /> </td> <td class="textologin" width="20" valign="middle" align="center">:</td> <td> <asp:TextBox ID="txtUsuario" runat="server"></asp:TextBox> </td> <td> <asp:Label ID="lblExiste" runat="server" ForeColor="Red"></asp:Label> </td> </tr> <tr> <td> <asp:Label ID="lblContraseña" Text="Contraseña" runat="server" /> <td class="textologin" width="20" valign="middle" align="center">:</td> </td> <td> <asp:TextBox ID="txtContraseña" runat="server" TextMode="Password"></asp:TextBox> </td> </tr> </table> </td> </table> <%--Botones--%> <table bgcolor="#ff6600"> <tr> <td> <asp:Button ID="btnIngresar" runat="server" Text="Ingresar" onclick="btnIngresar_Click" /> </td> <td> <asp:Button ID="btnLimpiar" runat="server" Text="Cancelar" onclick="btnLimpiar_Click" /> </td> </tr> </table> </td> </tr> </table> </center>

Page 90: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

73

</form> </body> </html>

Login2.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Account_Login2 : System.Web.UI.Page { private Conexion c = new Conexion(); protected void Page_Load(object sender, EventArgs e) { lblExiste.Visible = false; } protected void btnIngresar_Click(object sender, EventArgs e) { if (txtUsuario.Text != "") { string perfil = String.Empty; string usuario = String.Empty; string contraseña = String.Empty; if (c.Consulta("select PerfilID from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows.Count > 0) perfil = c.Consulta("select PerfilID from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows[0].ItemArray[0].ToString(); if (c.Consulta("select Usuario from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows.Count > 0) usuario = c.Consulta("select Usuario from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows[0].ItemArray[0].ToString(); if (c.Consulta("select Clave from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows.Count > 0) contraseña = c.Consulta("select Clave from IND_Usuarios where Usuario = '" + txtUsuario.Text + "'").Tables[0].Rows[0].ItemArray[0].ToString(); if (usuario == txtUsuario.Text && contraseña == txtContraseña.Text) { Session["Perfil"] = perfil; Response.Redirect("Default.aspx"); }

Page 91: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

74

else { //Response.Redirect("Login2.aspx"); lblExiste.Text = "Usuario/contraseña invalidos. Ingrese nuevamente."; lblExiste.Visible = true; } } else { lblExiste.Text = "Usuario/contraseña invalidos. Ingrese nuevamente."; lblExiste.Visible = true; } } protected void btnLimpiar_Click(object sender, EventArgs e) { txtUsuario.Text = ""; txtContraseña.Text = ""; } }

2.3 App_Code

En este módulo se encuentran las clases que manejan la conexión a la base de

Datos.

Ilustración 41 Módulo App_Code

Conexion.cs

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.ComponentModel; using System.Drawing; using System.Collections; using System.IO; using System.Web; using System.Data.OleDb; using System.Web.UI.WebControls; public class Conexion {

Page 92: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

75

#region Variables public SqlConnection conexion = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["INDDBConnectionString"].ToString()); public SqlCommand comando = new SqlCommand(); public SqlDataReader drSQL; private SqlDataAdapter adaptador = new SqlDataAdapter(); #endregion #region Constructor public Conexion() { } #endregion #region Métodos public DataSet Consulta(string query) { try { conexion.Open(); SqlDataAdapter da = new SqlDataAdapter(query, conexion); DataSet ds = new DataSet(); da.Fill(ds, "tablas"); return ds; } catch (Exception ex) { throw ex; } finally { conexion.Close(); } } public void EjecutaSQL(string sentenciaSql) { try { conexion.Open(); comando.CommandText = sentenciaSql; comando.Connection = conexion; comando.ExecuteNonQuery(); } catch (Exception e) { throw e; } finally

Page 93: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

76

{ conexion.Close(); comando.Dispose(); } } public void CargaDropDownList(string sentenciaSql, DropDownList ddl) { try { ddl.Items.Clear(); ddl.Items.Add("Seleccionar..."); int i = 1; foreach (DataRow item in Consulta(sentenciaSql).Tables[0].Rows) { ddl.Items.Add(item[0].ToString()); ddl.Items[i].Value = item[1].ToString(); i++; } } catch (Exception e) { throw e; } } # endregion }

ConexionPMA.cs

using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; using System.ComponentModel; using System.Drawing; using System.Collections; using System.IO; using System.Web; using System.Data.OleDb; using System.Web.UI.WebControls; public class ConexionPMA { #region Variables public SqlConnection conexion = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["PMADBConnectionString"].ToString());

Page 94: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

77

public SqlCommand comando = new SqlCommand(); public SqlDataReader drSQL; private SqlDataAdapter adaptador = new SqlDataAdapter(); #endregion #region Constructor public ConexionPMA() { } #endregion #region Métodos public DataSet Consulta(string query) { try { conexion.Open(); SqlDataAdapter da = new SqlDataAdapter(query, conexion); DataSet ds = new DataSet(); da.Fill(ds, "tablas"); return ds; } catch (Exception ex) { throw ex; } finally { conexion.Close(); } } public void EjecutaSQL(string sentenciaSql) { try { conexion.Open(); comando.CommandText = sentenciaSql; comando.Connection = conexion; comando.ExecuteNonQuery(); } catch (Exception e) { throw e; } finally { conexion.Close(); comando.Dispose(); }

Page 95: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

78

} public void CargaDropDownList(string sentenciaSql, DropDownList ddl) { try { ddl.Items.Clear(); ddl.Items.Add("Seleccionar..."); int i = 1; foreach (DataRow item in Consulta(sentenciaSql).Tables[0].Rows) { ddl.Items.Add(item[0].ToString()); ddl.Items[i].Value = item[1].ToString(); i++; } } catch (Exception e) { throw e; } } # endregion }

2.4 Images

En este modulo se encuentran las imágenes parte del sistema.

Ilustración 42 Módulo Images

2.5 Reportes

Como su nombre lo índica contiene los Crystal Reports del sistema.

Ilustración 43 Módulo Reportes

2.6 Scripts

Page 96: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

79

Este modulo contiene los archivos javascripts (.js) y de hojas de estilos (.css)

necesarios para realizar validaciones e incluir efectos visuales al menú.

Ilustración 44 Módulo Scripts

2.7 Styles

Este modulo contiene los archivos de hojas de estilos (.css) que controlan la

apariencia visual del sitio.

Ilustración 45 Módulo Styles

Page 97: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

80

2.8 Views

Este modulo contiene los archivos de las paginas del sitio las cuales contienen lo

siguente:

AdministracionPerfiles.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="AdministracionPerfiles.aspx.cs" Inherits="AdministracionPerfiles" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <table> <tr> <td class="label required"> <asp:Label ID="lblPerfil" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlPerfil" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlPerfil_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> </table> <dx:ASPxGridView ID="ASPxGridViewAdminPerfiles" ClientInstanceName="grid" KeyFieldName="PantallaID"

Page 98: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

81

OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" Visible="false" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataComboBoxColumn Caption="Pantalla" FieldName="PantallaID" ShowInCustomizationForm="True" VisibleIndex="2"> <PropertiesComboBox DataSourceID="SqlDataSourcePantallas" ValueType="System.Int32" ValueField="PantallaID" TextField="NombrePantalla" Spacing="0"> </PropertiesComboBox> </dx:GridViewDataComboBoxColumn> </Columns> <ClientSideEvents SelectionChanged="grid_SelectionChanged" /> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourcePantallas" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select PantallaID, NombrePantalla from IND_Pantallas"> </asp:SqlDataSource> </asp:Panel> </asp:Panel> </asp:Content>

AdministracionPerfiles.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using System.Data.SqlClient; public partial class AdministracionPerfiles : System.Web.UI.Page {

Page 99: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

82

#region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { c.CargaDropDownList("select NombrePerfil, PerfilID from IND_Perfiles order by NombrePerfil", ddlPerfil); lblTitle.Text = "Administración de Perfiles"; } } protected void ddlPerfil_SelectedIndexChanged(object sender, EventArgs e) { ASPxGridViewAdminPerfiles.Visible = true; BindGrid(); } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_PerfilPantalla] ([PantallaID], [PerfilID]) VALUES ("); sqlQuery.Append(e.NewValues["PantallaID"].ToString() + ", "); sqlQuery.Append(ddlPerfil.SelectedValue + ")"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewAdminPerfiles.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); }

Page 100: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

83

protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_PerfilPantalla SET "); sqlQuery.Append("PantallaID = " + e.NewValues["PantallaID"].ToString() + ","); sqlQuery.Append("PerfilID = " + ddlPerfil.SelectedValue); sqlQuery.Append(" WHERE PantallaID = " + e.Keys["PantallaID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewAdminPerfiles.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_PerfilPantalla"); sqlQuery.Append(" WHERE PantallaID = " + e.Keys["PantallaID"].ToString()); sqlQuery.Append(" AND PerfilID = " + ddlPerfil.SelectedValue); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewAdminPerfiles.CancelEdit(); }

Page 101: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

84

c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Pantallas pa, IND_PerfilPantalla pp, IND_Perfiles pe where pp.PerfilID = pe.PerfilID and pp.PantallaID = pa.PantallaID and pe.PerfilID = " + ddlPerfil.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewAdminPerfiles.DataSource = dsClaimCat; ASPxGridViewAdminPerfiles.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } } Cargos.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Cargos.aspx.cs" Inherits="Cargos" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server">

Page 102: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

85

<%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <dx:ASPxGridView ID="ASPxGridViewCargos" ClientInstanceName="grid" KeyFieldName="CargoID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption="Cargo" FieldName="NombreCargo" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> </asp:Panel> </asp:Panel> </asp:Content>

Cargos.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using System.Data.SqlClient; public partial class Cargos : System.Web.UI.Page {

Page 103: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

86

#region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Cargos"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Cargos] ([NombreCargo]) VALUES ("); sqlQuery.Append("'" + e.NewValues["NombreCargo"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewCargos.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Cargos SET "); sqlQuery.Append("NombreCargo = '" + e.NewValues["NombreCargo"].ToString() + "'"); sqlQuery.Append(" WHERE CargoID = " + e.Keys["CargoID"].ToString());

Page 104: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

87

c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewCargos.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Cargos"); sqlQuery.Append(" WHERE CargoID = " + e.Keys["CargoID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewCargos.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try {

Page 105: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

88

c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Cargos"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewCargos.DataSource = dsClaimCat; ASPxGridViewCargos.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } } EstadosIndicadores.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="EstadosIndicadores.aspx.cs" Inherits="EstadosIndicadores" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static">

Page 106: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

89

<dx:ASPxGridView ID="ASPxGridViewEstadosIndicadores" ClientInstanceName="grid" KeyFieldName="EstadoID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption="Nemónico" FieldName="NemonicoEstado" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Estado" FieldName="DescripcionEstado" VisibleIndex="2"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourceEstadosIndicadores" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Estados"> </asp:SqlDataSource> </asp:Panel> </asp:Panel> </asp:Content> EstadosIndicadores.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Text; public partial class EstadosIndicadores : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA();

Page 107: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

90

private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Estado de Indicadores"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Estados] (NemonicoEstado, DescripcionEstado) VALUES ("); sqlQuery.Append("'" + e.NewValues["NemonicoEstado"].ToString() + "',"); sqlQuery.Append("'" + e.NewValues["DescripcionEstado"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewEstadosIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Estados SET "); sqlQuery.Append("NemonicoEstado = '" + e.NewValues["NemonicoEstado"].ToString() + "'"); sqlQuery.Append("DescripcionEstado = '" + e.NewValues["DescripcionEstado"].ToString() + "'");

Page 108: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

91

sqlQuery.Append(" WHERE EstadoID = " + e.Keys["EstadoID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewEstadosIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Estados"); sqlQuery.Append(" WHERE EstadoID = " + e.Keys["EstadoID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewEstadosIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try

Page 109: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

92

{ c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Estados"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewEstadosIndicadores.DataSource = dsClaimCat; ASPxGridViewEstadosIndicadores.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } } Frecuencias.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Frecuencias.aspx.cs" Inherits="Frecuencias" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static">

Page 110: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

93

<dx:ASPxGridView ID="ASPxGridViewFrecuencias" ClientInstanceName="grid" KeyFieldName="FrecuenciaID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption="Frecuencia" FieldName="DescripcionFrecuencia" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourceFrecuencias" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Frecuencias"> </asp:SqlDataSource> </asp:Panel> </asp:Panel> </asp:Content>

Frecuencias.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Text; public partial class Frecuencias : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet();

Page 111: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

94

#endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Frecuencias"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Frecuencias] ([DescripcionFrecuencia]) VALUES ("); sqlQuery.Append("'" + e.NewValues["DescripcionFrecuencia"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewFrecuencias.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Frecuencias SET "); sqlQuery.Append("DescripcionFrecuencia = '" + e.NewValues["DescripcionFrecuencia"].ToString() + "'"); sqlQuery.Append(" WHERE FrecuenciaID = " + e.Keys["FrecuenciaID"].ToString());

Page 112: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

95

c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewFrecuencias.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Frecuencias"); sqlQuery.Append(" WHERE FrecuenciaID = " + e.Keys["FrecuenciaID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewFrecuencias.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try

Page 113: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

96

{ c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Frecuencias"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewFrecuencias.DataSource = dsClaimCat; ASPxGridViewFrecuencias.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

IngresoDatos.aspx <%@ Page Title="Ingreso de Datos" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="IngresoDatos.aspx.cs" Inherits="IngresoDatos" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <script type="text/javascript"> // <![CDATA[ function OnPDAChanged(cmbPDA) { grid.GetEditor("NombreProyecto").PerformCallback(cmbPDA.GetValue().toString()); } // ]]> </script> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1>

Page 114: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

97

<asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <table> <tr> <td class="label required"> <asp:Label ID="lblPDA" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlPDA" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPDA_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblProyecto" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlProyecto" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlProyecto_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblActividad" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlActividad" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlActividad_SelectedIndexChanged"> </asp:DropDownList> </td> <td class="label required"> <asp:Label ID="lblCodActividad" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="txtCodActividad" runat="server" Enabled="false"></asp:TextBox> </td> </tr> <tr>

Page 115: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

98

<td class="label required"> <asp:Label ID="lblAreaProgramatica" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="txtAreaProgramatica" runat="server" Enabled="false" Width="300px"></asp:TextBox> </td> </tr> </table> <br /> <dx:ASPxGridView ID="ASPxGridViewIndicadores" ClientInstanceName="grid" Visible="false" OnRowInserting="grid_RowInserting" KeyFieldName="IndicadorID" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn Caption="Acciones" VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption="Descripción del Indicador" FieldName="DescripcionIndicador" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataComboBoxColumn Caption="Unidades" FieldName="UnidadID" ShowInCustomizationForm="True" VisibleIndex="2"> <PropertiesComboBox DataSourceID="SqlDataSourceUnidades" ValueType="System.Int32" ValueField="UnidadID" TextField="DescripcionUnidad" Spacing="0"> </PropertiesComboBox> </dx:GridViewDataComboBoxColumn> <dx:GridViewDataTextColumn Caption="Línea Base" FieldName="LineaBase" VisibleIndex="3"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Meta Final" FieldName="MetaFinalIndicador" VisibleIndex="4"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Nivel Crítico" FieldName="NivelCriticoIndicador" VisibleIndex="5">

Page 116: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

99

<EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataColumn Caption="Fecha Para Meta Final" FieldName="FechaMetaFinal" VisibleIndex="6"> <EditFormSettings Visible="False" /> </dx:GridViewDataColumn> <dx:GridViewDataComboBoxColumn Caption="Frecuencia" FieldName="FrecuenciaID" ShowInCustomizationForm="True" VisibleIndex="7"> <PropertiesComboBox DataSourceID="SqlDataSourceFrecuencias" ValueType="System.Int32" ValueField="FrecuenciaID" TextField="DescripcionFrecuencia" Spacing="0"> </PropertiesComboBox> </dx:GridViewDataComboBoxColumn> <dx:GridViewDataTextColumn Caption="Evidencias" FieldName="EvidenciasIndicador" VisibleIndex="8"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourceIndicadores" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Indicadores"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSourceFrecuencias" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select FrecuenciaID, DescripcionFrecuencia from IND_Frecuencias"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSourceUnidades" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select UnidadID, DescripcionUnidad from IND_Unidades"> </asp:SqlDataSource> </asp:Panel> </asp:Panel> </asp:Content> IngresoDatos.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data;

Page 117: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

100

using DevExpress.Web.ASPxEditors; using DevExpress.Web.ASPxClasses; using DevExpress.Web.ASPxGridView; using System.Text; using System.Data.SqlClient; using System.Globalization; public partial class IngresoDatos : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { LoadResources(); cPMA.CargaDropDownList("select NombrePda, PdaID from PMA_Pda order by NombrePda", ddlPDA); } } #region LoadResources protected void LoadResources() { lblPDA.Text = "Programa de Desarrollo de Área (PDA):"; lblProyecto.Text = "Nombre del Proyecto:"; lblCodActividad.Text = "Código de la Actividad:"; lblActividad.Text = "Actividad:"; lblAreaProgramatica.Text = "Área Programática:"; lblTitle.Text = "Ingreso de Indicadores"; } #endregion protected void ddlAreaProgramatica_SelectedIndexChanged(object sender, EventArgs e) { cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); }

Page 118: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

101

protected void ddlProyecto_SelectedIndexChanged(object sender, EventArgs e) { ASPxGridViewIndicadores.Visible = false; ddlActividad.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); } protected void ddlActividad_SelectedIndexChanged(object sender, EventArgs e) { codigo = cPMA.Consulta("select p.MarcoLogicoProducto, a.MarcoLogicoActividad, c.CategoriaSector from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue + " and a.ActividadID = " + ddlActividad.SelectedValue); txtAreaProgramatica.Text = codigo.Tables[0].Rows[0].ItemArray[2].ToString(); txtCodActividad.Text = "01." + "0" + codigo.Tables[0].Rows[0].ItemArray[0].ToString() + ".0" + codigo.Tables[0].Rows[0].ItemArray[1].ToString(); ASPxGridViewIndicadores.Visible = true; BindGrid(); } protected void ddlPDA_SelectedIndexChanged(object sender, EventArgs e) { ddlActividad.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select distinct(NombreProyecto), ProyectoID from PMA_Proyectos where PdaID = " + ddlPDA.SelectedValue, ddlProyecto); } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Indicadores] ([FrecuenciaID], [DescripcionIndicador], [MetaFinalIndicador], [NivelCriticoIndicador], [EvidenciasIndicador], [ActividadID], [LineaBase], [EstadoID], [UsuarioID], [FechaMetaFinal], [UnidadID]) VALUES (");

Page 119: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

102

sqlQuery.Append(e.NewValues["FrecuenciaID"].ToString() + ","); sqlQuery.Append("'" + e.NewValues["DescripcionIndicador"].ToString() + "',"); sqlQuery.Append(e.NewValues["MetaFinalIndicador"].ToString() + ","); sqlQuery.Append(e.NewValues["NivelCriticoIndicador"].ToString() + ","); sqlQuery.Append("'" + e.NewValues["EvidenciasIndicador"].ToString() + "',"); sqlQuery.Append(ddlActividad.SelectedValue + ","); sqlQuery.Append(e.NewValues["LineaBase"].ToString() + ","); sqlQuery.Append("1,"); sqlQuery.Append("1,"); sqlQuery.Append("'" + String.Format("{0:u}", e.NewValues["FechaMetaFinal"]).Replace("Z", "") + "', "); sqlQuery.Append(e.NewValues["UnidadID"].ToString() + ")"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Indicadores SET "); sqlQuery.Append("FrecuenciaID = " + e.NewValues["FrecuenciaID"].ToString() + ","); sqlQuery.Append("DescripcionIndicador = '" + e.NewValues["DescripcionIndicador"].ToString() + "',"); sqlQuery.Append("MetaFinalIndicador = " + e.NewValues["MetaFinalIndicador"].ToString() + ","); sqlQuery.Append("NivelCriticoIndicador = " + e.NewValues["NivelCriticoIndicador"].ToString() + ","); sqlQuery.Append("EvidenciasIndicador = '" + e.NewValues["EvidenciasIndicador"].ToString() + "',"); sqlQuery.Append("ActividadID = " +ddlActividad.SelectedValue + ",");

Page 120: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

103

sqlQuery.Append("LineaBase = " + e.NewValues["LineaBase"].ToString() + ","); sqlQuery.Append("EstadoID = 1,"); sqlQuery.Append("UsuarioID = 1,"); sqlQuery.Append("FechaMetaFinal = '" + String.Format("{0:u}", e.NewValues["FechaMetaFinal"]).Replace("Z", "") + "'"); sqlQuery.Append(" WHERE IndicadorID= "+ e.Keys["IndicadorID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Indicadores"); sqlQuery.Append(" WHERE IndicadorID = "+ e.Keys["IndicadorID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewIndicadores.CancelEdit(); }

Page 121: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

104

c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Indicadores where ActividadID = " + ddlActividad.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewIndicadores.DataSource = dsClaimCat; ASPxGridViewIndicadores.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

IngresoMonitoreo.aspx

<%@ Page Title="Ingreso de Monitoreo" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="IngresoMonitoreo.aspx.cs" Inherits="IngresoMonitoreo" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:ScriptManager ID="ScriptManager1" runat="server">

Page 122: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

105

</asp:ScriptManager> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <%--<asp:UpdatePanel ID="upPDA" UpdateMode="Conditional" runat="server"> <ContentTemplate>--%> <table> <tr> <td class="label required"> <asp:Label ID="lblPDA" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlPDA" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPDA_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblProyecto" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlProyecto" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlProyecto_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblActividad" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlActividad" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlActividad_SelectedIndexChanged"> </asp:DropDownList> </td>

Page 123: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

106

<td class="label required"> <asp:Label ID="lblCodActividad" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="txtCodActividad" runat="server" Enabled="false"></asp:TextBox> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblAreaProgramatica" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="txtAreaProgramatica" runat="server" Enabled="false" Width="300px"></asp:TextBox> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblIndicador" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlIndicador" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlIndicador_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> </table> <br /> <dx:ASPxGridView ID="ASPxGridViewIndicador" ClientInstanceName="grid" Visible="false" KeyFieldName="IndicadorID" Width="100%" AutoGenerateColumns="False" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewDataTextColumn Caption="Descripción del Indicador" FieldName="DescripcionIndicador" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Meta Final" FieldName="MetaFinalIndicador" VisibleIndex="3"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Nivel Crítico" FieldName="NivelCriticoIndicador" VisibleIndex="4"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn>

Page 124: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

107

<dx:GridViewDataColumn Caption="Fecha Para Meta Final" FieldName="FechaMetaFinal" VisibleIndex="5"> <EditFormSettings Visible="False" /> </dx:GridViewDataColumn> </Columns> </dx:ASPxGridView> <br /> <dx:ASPxGridView ID="ASPxGridViewMonitoreo" ClientInstanceName="grid" KeyFieldName="MonitoreoIndicadorID" Width="100%" AutoGenerateColumns="False" runat="server" Visible="false" OnRowInserting="grid_RowInserting"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn Caption="Acciones" VisibleIndex="0"> <NewButton Visible="True" Text="Ingresar Meta"> </NewButton> </dx:GridViewCommandColumn> <dx:GridViewDataColumn Caption="Meta" FieldName="MetaMonitoreo" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataColumn> </Columns> </dx:ASPxGridView> </asp:Panel> </asp:Panel> </asp:Content>

IngresoMonitoreo.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using DevExpress.Web.ASPxEditors; using DevExpress.Web.ASPxClasses; using DevExpress.Web.ASPxGridView; using System.IO; using DevExpress.Web.ASPxUploadControl; using System.Data.SqlClient; using System.Text; public partial class IngresoMonitoreo : System.Web.UI.Page { #region Variables private Conexion c = new Conexion();

Page 125: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

108

private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { LoadResources(); cPMA.CargaDropDownList("select NombrePda, PdaID from PMA_Pda order by NombrePda", ddlPDA); } } #region LoadResources protected void LoadResources() { lblPDA.Text = "Programa de Desarrollo de Área (PDA):"; lblProyecto.Text = "Nombre del Proyecto:"; lblCodActividad.Text = "Código de la Actividad:"; lblActividad.Text = "Actividad:"; lblAreaProgramatica.Text = "Área Programática:"; lblIndicador.Text = "Indicador:"; lblTitle.Text = "Monitoreo de Indicadores"; } #endregion protected void ddlAreaProgramatica_SelectedIndexChanged(object sender, EventArgs e) { cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); } protected void ddlProyecto_SelectedIndexChanged(object sender, EventArgs e) { ASPxGridViewIndicador.Visible = false; ASPxGridViewMonitoreo.Visible = false; ddlActividad.Items.Clear(); ddlIndicador.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and

Page 126: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

109

r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); } protected void ddlActividad_SelectedIndexChanged(object sender, EventArgs e) { codigo = cPMA.Consulta("select p.MarcoLogicoProducto, a.MarcoLogicoActividad, c.CategoriaSector from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue + " and a.ActividadID = " + ddlActividad.SelectedValue); txtAreaProgramatica.Text = codigo.Tables[0].Rows[0].ItemArray[2].ToString(); txtCodActividad.Text = "01." + "0" + codigo.Tables[0].Rows[0].ItemArray[0].ToString() + ".0" + codigo.Tables[0].Rows[0].ItemArray[1].ToString(); c.CargaDropDownList("select DescripcionIndicador, IndicadorID from IND_Indicadores where ActividadID = " + ddlActividad.SelectedValue, ddlIndicador); } protected void ddlPDA_SelectedIndexChanged(object sender, EventArgs e) { ddlActividad.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select distinct(NombreProyecto), ProyectoID from PMA_Proyectos where PdaID = " + ddlPDA.SelectedValue, ddlProyecto); } protected void ddlIndicador_SelectedIndexChanged(object sender, EventArgs e) { BindGridIndicador(); ASPxGridViewIndicador.Visible = true; BindGrid(); ASPxGridViewMonitoreo.Visible = true; //UpSeguimiento.Update(); } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_MonitoreoIndicador] (IndicadorID, MetaMonitoreo, FechaMonitoreo) VALUES ("); sqlQuery.Append(ddlIndicador.SelectedValue + ","); sqlQuery.Append(e.NewValues["MetaMonitoreo"].ToString() + ",");

Page 127: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

110

sqlQuery.Append("'" + String.Format("{0:u}", DateTime.Now).Replace("Z", "") + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewMonitoreo.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_MonitoreoIndicador where IndicadorID = " + ddlIndicador.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewMonitoreo.DataSource = dsClaimCat; ASPxGridViewMonitoreo.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } private void BindGridIndicador() {

Page 128: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

111

try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Indicadores where ActividadID = " + ddlActividad.SelectedValue + " and IndicadorID = " + ddlIndicador.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewIndicador.DataSource = dsClaimCat; ASPxGridViewIndicador.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

Pantallas.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Pantallas.aspx.cs" Inherits="Pantallas" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1>

Page 129: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

112

<asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <dx:ASPxGridView ID="ASPxGridViewPantallas" ClientInstanceName="grid" KeyFieldName="PantallaID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption = "Pantalla" FieldName="NombrePantalla" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption = "Módulo" FieldName="ModuloPantalla" VisibleIndex="2"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption = "Orden" FieldName="OrdenPantalla" VisibleIndex="3"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> </asp:Panel> </asp:Content>

Pantallas.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text;

Page 130: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

113

using System.Data.SqlClient; public partial class Pantallas : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Pantallas"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Pantallas] ([NombrePantalla], [ModuloPantalla], [OrdenPantalla]) VALUES ("); sqlQuery.Append("'" + e.NewValues["NombrePantalla"].ToString() + "', "); sqlQuery.Append("'" + e.NewValues["ModuloPantalla"].ToString() + "', "); sqlQuery.Append(e.NewValues["OrdenPantalla"].ToString() + ")"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPantallas.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)

Page 131: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

114

{ StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Pantallas SET "); sqlQuery.Append("NombrePantalla = '" + e.NewValues["NombrePantalla"].ToString() + "', "); sqlQuery.Append("ModuloPantalla = '" + e.NewValues["ModuloPantalla"].ToString() + "', "); sqlQuery.Append("OrdenPantalla = " + e.NewValues["OrdenPantalla"].ToString()); sqlQuery.Append(" WHERE PantallaID= " + e.Keys["PantallaID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPantallas.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Pantallas"); sqlQuery.Append(" WHERE PantallaID = " + e.Keys["PantallaID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPantallas.CancelEdit(); }

Page 132: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

115

c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Pantallas"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewPantallas.DataSource = dsClaimCat; ASPxGridViewPantallas.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

Perfiles.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Perfiles.aspx.cs" Inherits="Perfiles" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%>

Page 133: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

116

<asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <dx:ASPxGridView ID="ASPxGridViewPerfiles" ClientInstanceName="grid" KeyFieldName="PerfilID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear"> </NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn FieldName="NombrePerfil" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> </asp:Panel> </asp:Panel> </asp:Content>

Perfiles.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using System.Data.SqlClient; public partial class Perfiles : System.Web.UI.Page { #region Variables

Page 134: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

117

private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Perfiles"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Perfiles] ([NombrePerfil]) VALUES ("); sqlQuery.Append("'" + e.NewValues["NombrePerfil"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPerfiles.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Perfiles SET "); sqlQuery.Append("NombrePerfil = '" + e.NewValues["NombrePerfil"].ToString() + "'"); sqlQuery.Append(" WHERE PerfilID = " + e.Keys["PerfilID"].ToString()); c.conexion.Open(); SqlCommand cmd;

Page 135: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

118

cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPerfiles.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Perfiles"); sqlQuery.Append(" WHERE PerfilID = " + e.Keys["PerfilID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewPerfiles.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd;

Page 136: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

119

cmd = new SqlCommand("select * from IND_Perfiles"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewPerfiles.DataSource = dsClaimCat; ASPxGridViewPerfiles.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

Seguimiento.aspx

<%@ Page Title="Seguimiento y Resultados" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Seguimiento.aspx.cs" Inherits="Seguimiento" %> <%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" Namespace="Microsoft.Reporting.WebForms" TagPrefix="rsweb" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static">

Page 137: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

120

<asp:UpdatePanel ID="upPDA" UpdateMode="Conditional" runat="server"> <ContentTemplate> <table> <tr> <td class="label required"> <asp:Label ID="lblPDA" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlPDA" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlPDA_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblProyecto" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlProyecto" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlProyecto_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblActividad" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlActividad" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlActividad_SelectedIndexChanged"> </asp:DropDownList> </td> <td class="label required"> <asp:Label ID="lblCodActividad" runat="server"></asp:Label> </td> <td> <asp:TextBox ID="txtCodActividad" runat="server" Enabled="false"></asp:TextBox> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblAreaProgramatica" runat="server"></asp:Label>

Page 138: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

121

</td> <td> <asp:TextBox ID="txtAreaProgramatica" runat="server" Enabled="false" Width="300px"></asp:TextBox> </td> </tr> <tr> <td class="label required"> <asp:Label ID="lblIndicador" runat="server"></asp:Label> </td> <td> <asp:DropDownList ID="ddlIndicador" runat="server" AutoPostBack="true" Width="300px" OnSelectedIndexChanged="ddlIndicador_SelectedIndexChanged"> </asp:DropDownList> </td> </tr> </table> <br /> </ContentTemplate> </asp:UpdatePanel> <br /> <asp:UpdatePanel ID="UpSeguimiento" UpdateMode="Conditional" runat="server"> <ContentTemplate> <div class="contenedor-tabla"> <div class="contenedor-fila"> <div class="contenedor-columna"> <CR:CrystalReportViewer ID="VisorCR1" runat="server" AutoDataBind="true" /> </div> </div> <br /> <div class="contenedor-fila"> <div class="contenedor-columna"> <CR:CrystalReportViewer ID="VisorCR2" runat="server" AutoDataBind="true" /> </div> </div> <br /> <div class="contenedor-fila"> <div class="contenedor-columna"> <CR:CrystalReportViewer ID="VisorCR3" runat="server" AutoDataBind="true" /> </div> </div> <br /> <div class="contenedor-fila"> <div class="contenedor-columna">

Page 139: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

122

<CR:CrystalReportViewer ID="VisorCR4" runat="server" AutoDataBind="true" /> </div> </div> </div> </ContentTemplate> </asp:UpdatePanel> </asp:Panel> </asp:Panel> </asp:Content>

Seguimiento.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using DevExpress.Web.ASPxEditors; using DevExpress.Web.ASPxClasses; using DevExpress.Web.ASPxGridView; using System.Data.SqlClient; using System.Text; using DevExpress.Web.ASPxUploadControl; using System.IO; using Microsoft.Reporting.WebForms; using CrystalDecisions.CrystalReports.Engine; public partial class Seguimiento : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); private DataSet sentencia = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { LoadResources(); cPMA.CargaDropDownList("select NombrePda, PdaID from PMA_Pda order by NombrePda", ddlPDA); } }

Page 140: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

123

#region LoadResources protected void LoadResources() { lblPDA.Text = "Programa de Desarrollo de Área (PDA):"; lblProyecto.Text = "Nombre del Proyecto:"; lblCodActividad.Text = "Código de la Actividad:"; lblActividad.Text = "Actividad:"; lblAreaProgramatica.Text = "Área Programática:"; lblIndicador.Text = "Indicador:"; lblTitle.Text = "Seguimiento de Indicadores"; } #endregion protected void ddlAreaProgramatica_SelectedIndexChanged(object sender, EventArgs e) { cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); } protected void ddlProyecto_SelectedIndexChanged(object sender, EventArgs e) { ddlActividad.Items.Clear(); ddlIndicador.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select a.DescripcionActividad, a.ActividadId from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py, PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue, ddlActividad); VisorCR1.Visible = false; VisorCR2.Visible = false; VisorCR3.Visible = false; VisorCR4.Visible = false; UpSeguimiento.Update(); } protected void ddlActividad_SelectedIndexChanged(object sender, EventArgs e) { codigo = cPMA.Consulta("select p.MarcoLogicoProducto, a.MarcoLogicoActividad, c.CategoriaSector from PMA_Resultados r, PMA_Productos p, PMA_Actividades a, PMA_Proyectos py,

Page 141: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

124

PMA_CategoriaSector c where r.ResultadoID=p.ResultadoID and p.ProductoID=a.ProductoID and a.CategoriaSectorID=c.CategoriaSectorID and r.ProyectoID= py.ProyectoID and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue + " and a.ActividadID = " + ddlActividad.SelectedValue); txtAreaProgramatica.Text = codigo.Tables[0].Rows[0].ItemArray[2].ToString(); txtCodActividad.Text = "01." + "0" + codigo.Tables[0].Rows[0].ItemArray[0].ToString() + ".0" + codigo.Tables[0].Rows[0].ItemArray[1].ToString(); c.CargaDropDownList("select DescripcionIndicador, IndicadorID from IND_Indicadores where ActividadID = " + ddlActividad.SelectedValue, ddlIndicador); } protected void ddlPDA_SelectedIndexChanged(object sender, EventArgs e) { ddlActividad.Items.Clear(); ddlIndicador.Items.Clear(); txtCodActividad.Text = ""; txtAreaProgramatica.Text = ""; cPMA.CargaDropDownList("select distinct(NombreProyecto), ProyectoID from PMA_Proyectos where PdaID = " + ddlPDA.SelectedValue, ddlProyecto); VisorCR1.Visible = false; VisorCR2.Visible = false; VisorCR3.Visible = false; VisorCR4.Visible = false; UpSeguimiento.Update(); } protected void ddlIndicador_SelectedIndexChanged(object sender, EventArgs e) { BindGridIndicador(); BindGridMonitoreo(); try { #region Indicadores var reporteIndicadores = new ReportDocument(); var rutaReporteI = Server.MapPath("Reportes\\GeneralIndicador.rpt"); reporteIndicadores.Load(rutaReporteI); reporteIndicadores.SetDataSource(c.Consulta("select p.MarcoLogicoProducto, c.MarcoLogicoActividad," + "d.NombrePda," + "py.NombreProyecto," + "c.DescripcionActividad, " + "cs.CategoriaSector, " + "a.DescripcionIndicador, " + "a.NivelCriticoIndicador, " + "a.MetaFinalIndicador, " +

Page 142: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

125

"a.FechaMetaFinal, " + "SUBSTRING(convert(varchar, b.FechaMonitoreo, 103), 1, 11) FechaMonitoreo, " + "b.MetaMonitoreo , " + "((MetaMonitoreo * 100)/ MetaFinalIndicador) PorcentajeCumplimiento " + "from INDDB..IND_Indicadores a," + "INDDB..IND_MonitoreoIndicador b, " + "PMADB2..PMA_Actividades c, " + "PMADB2..PMA_Resultados r, " + "PMADB2..PMA_Productos p," + "PMADB2..PMA_Proyectos py," + "PMADB2..PMA_CategoriaSector cs," + "PMADB2..PMA_Pda d " + "where a.IndicadorID = b.IndicadorID " + "and a.ActividadID = c.ActividadID " + "and r.ResultadoID = p.ResultadoID " + "and p.ProductoID = c.ProductoID " + "and c.CategoriaSectorID = cs.CategoriaSectorID " + "and r.ProyectoID = py.ProyectoID " + "and py.PdaID = d.PdaID " + "and py.PdaID = " + ddlPDA.SelectedValue + "and py.ProyectoID = " + ddlProyecto.SelectedValue + "and a.ActividadID = " + ddlActividad.SelectedValue + "and a.IndicadorID = " + ddlIndicador.SelectedValue).Tables[0]); VisorCR1.ReportSource = reporteIndicadores; VisorCR1.DisplayGroupTree = false; #endregion #region Metas var reporte = new ReportDocument(); var rutaReporteP = Server.MapPath("Reportes\\CumplimientoActividad.rpt"); reporte.Load(rutaReporteP); reporte.SetDataSource(c.Consulta("select a.ActividadID, a.IndicadorID, a.DescripcionIndicador, b.FechaMonitoreo, b.MetaMonitoreo , ((MetaMonitoreo * 100)/ MetaFinalIndicador) PorcentajeCumplimiento from IND_MonitoreoIndicador b, IND_Indicadores a where a.IndicadorID = b.IndicadorID and a.ActividadID = " + ddlActividad.SelectedValue).Tables[0]); VisorCR2.ReportSource = reporte; VisorCR2.DisplayGroupTree = false; #endregion #region Proyecto var reporteProyecto = new ReportDocument(); var rutaReporteProyecto = Server.MapPath("Reportes\\Proyecto.rpt");

Page 143: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

126

reporteProyecto.Load(rutaReporteProyecto); reporteProyecto.SetDataSource(c.Consulta("select py.NombreProyecto Proyecto," + "((MetaMonitoreo * 100)/ MetaFinalIndicador) PorcentajeCumplimiento " + "from INDDB..IND_Indicadores a," + "INDDB..IND_MonitoreoIndicador b, " + "PMADB2..PMA_Actividades c, " + "PMADB2..PMA_Resultados r, " + "PMADB2..PMA_Productos p," + "PMADB2..PMA_Proyectos py," + "PMADB2..PMA_CategoriaSector cs," + "PMADB2..PMA_Pda d " + "where a.IndicadorID = b.IndicadorID " + "and a.ActividadID = c.ActividadID " + "and r.ResultadoID = p.ResultadoID " + "and p.ProductoID = c.ProductoID " + "and c.CategoriaSectorID = cs.CategoriaSectorID " + "and r.ProyectoID = py.ProyectoID " + "and py.PdaID = d.PdaID " + "and py.PdaID = " + ddlPDA.SelectedValue + " and py.ProyectoID = " + ddlProyecto.SelectedValue).Tables[0]); VisorCR3.ReportSource = reporteProyecto; VisorCR3.DisplayGroupTree = false; #endregion #region Proyectos var reporteActividades = new ReportDocument(); var rutaReporteA = Server.MapPath("Reportes\\CumplimientoProyectos.rpt"); reporteActividades.Load(rutaReporteA); VisorCR4.ReportSource = reporteActividades; VisorCR4.DisplayGroupTree = false; #endregion UpSeguimiento.Update(); c.conexion.Close(); } catch (Exception ex) { throw ex; } finally { c.conexion.Close(); } }

Page 144: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

127

private void BindGridIndicador() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Indicadores where ActividadID = " + ddlActividad.SelectedValue + " and IndicadorID = " + ddlIndicador.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); c.conexion.Close(); } catch (Exception ex) { throw ex; } finally { c.conexion.Close(); } } private void BindGridMonitoreo() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select b.FechaMonitoreo, b.MetaMonitoreo , ((MetaMonitoreo * 100)/ MetaFinalIndicador) Porcentaje from IND_MonitoreoIndicador b, IND_Indicadores a where a.IndicadorID = b.IndicadorID and a.IndicadorID =" + ddlIndicador.SelectedValue); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); c.conexion.Close(); } catch (Exception ex) { throw ex;

Page 145: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

128

} finally { c.conexion.Close(); } } }

UnidadesIndicadores.aspx <%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="UnidadesIndicadores.aspx.cs" Inherits="UnidadesIndicadores" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlContainer" CssClass="container" runat="server" ClientIDMode="Static"> <dx:ASPxGridView ID="ASPxGridViewUnidadesIndicadores" ClientInstanceName="grid" KeyFieldName="EstadoID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear">

Page 146: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

129

</NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataTextColumn Caption="Nemónico" FieldName="NemonicoUnidad" VisibleIndex="1"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn Caption="Estado" FieldName="DescripcionUnidad" VisibleIndex="2"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourceUnidadesIndicadores" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Unidades"> </asp:SqlDataSource> </asp:Panel> </asp:Panel> </asp:Content>

UnidadesIndicadores.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Text; public partial class UnidadesIndicadores : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Unidades de Indicadores"; }

Page 147: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

130

} protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Unidades] (NemonicoUnidad, DescripcionUnidad) VALUES ("); sqlQuery.Append("'" + e.NewValues["NemonicoUnidad"].ToString() + "',"); sqlQuery.Append("'" + e.NewValues["DescripcionUnidad"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewUnidadesIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Unidades SET "); sqlQuery.Append("NemonicoUnidad = '" + e.NewValues["NemonicoUnidad"].ToString() + "'"); sqlQuery.Append("DescripcionUnidad = '" + e.NewValues["DescripcionUnidad"].ToString() + "'"); sqlQuery.Append(" WHERE UnidadID = " + e.Keys["UnidadID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery();

Page 148: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

131

if (i > 0) { e.Cancel = true; ASPxGridViewUnidadesIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Unidades"); sqlQuery.Append(" WHERE UnidadID = " + e.Keys["UnidadID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewUnidadesIndicadores.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Unidades"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat);

Page 149: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

132

ASPxGridViewUnidadesIndicadores.DataSource = dsClaimCat; ASPxGridViewUnidadesIndicadores.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

Usuarios.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Usuarios.aspx.cs" Inherits="Usuarios" %> <%@ Register Assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGridView" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxEditors" TagPrefix="dx" %> <asp:Content ID="HeaderContent" ContentPlaceHolderID="HeadContent" runat="Server"> </asp:Content> <asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="Server"> <asp:Panel ID="pnlFormSection" CssClass="form-section" runat="server"> <asp:Panel ID="pnlPageHeader" CssClass="page-header" runat="server"> <%--Título--%> <asp:Panel ID="pnlTitle" CssClass="page-header" runat="server"> <h1> <asp:Label ID="lblTitle" runat="server"></asp:Label></h1> </asp:Panel> </asp:Panel> <br /> <dx:ASPxGridView ID="ASPxGridViewUsuarios" ClientInstanceName="grid" KeyFieldName="UsuarioID" OnRowInserting="grid_RowInserting" Width="100%" AutoGenerateColumns="False" OnRowUpdating="grid_RowUpdating" OnRowDeleting="grid_RowDeleting" runat="server"> <SettingsEditing Mode="Inline" /> <Columns> <dx:GridViewCommandColumn VisibleIndex="0"> <EditButton Visible="True" Text="Actualizar"> </EditButton> <NewButton Visible="True" Text="Crear">

Page 150: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

133

</NewButton> <DeleteButton Visible="True" Text="Eliminar"> </DeleteButton> </dx:GridViewCommandColumn> <dx:GridViewDataComboBoxColumn Caption="Perfil" FieldName="PerfilID" ShowInCustomizationForm="True" VisibleIndex="1"> <PropertiesComboBox DataSourceID="SqlDataSourcePerfiles" ValueType="System.Int32" ValueField="PerfilID" TextField="NombrePerfil" Spacing="0"> </PropertiesComboBox> </dx:GridViewDataComboBoxColumn> <dx:GridViewDataComboBoxColumn Caption="Cargo" FieldName="CargoID" ShowInCustomizationForm="True" VisibleIndex="2"> <PropertiesComboBox DataSourceID="SqlDataSourceCargos" ValueType="System.Int32" ValueField="CargoID" TextField="NombreCargo" Spacing="0"> </PropertiesComboBox> </dx:GridViewDataComboBoxColumn> <dx:GridViewDataTextColumn FieldName="NombreUsuario" VisibleIndex="3"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="Usuario" VisibleIndex="4"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> <dx:GridViewDataTextColumn FieldName="Clave" VisibleIndex="5"> <EditFormSettings Visible="False" /> </dx:GridViewDataTextColumn> </Columns> </dx:ASPxGridView> <asp:SqlDataSource ID="SqlDataSourceUsuarios" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Usuarios"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSourceCargos" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Cargos"> </asp:SqlDataSource> <asp:SqlDataSource ID="SqlDataSourcePerfiles" ConnectionString="<%$ ConnectionStrings:INDDBConnectionString %>" runat="server" SelectCommand="select * from IND_Perfiles"> </asp:SqlDataSource> </asp:Panel> </asp:Content>

Usuarios.aspx.cs

using System;

Page 151: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

134

using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Text; using System.Data.SqlClient; public partial class Usuarios : System.Web.UI.Page { #region Variables private Conexion c = new Conexion(); private ConexionPMA cPMA = new ConexionPMA(); private DataSet codigo = new DataSet(); #endregion protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { BindGrid(); lblTitle.Text = "Usuarios"; } } protected void grid_RowInserting(object sender, DevExpress.Web.Data.ASPxDataInsertingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("INSERT INTO [IND_Usuarios] ([PerfilID], [CargoID], [NombreUsuario], [Usuario], [Clave]) VALUES ("); sqlQuery.Append(e.NewValues["PerfilID"].ToString() + ","); sqlQuery.Append(e.NewValues["CargoID"].ToString() + ","); sqlQuery.Append("'" + e.NewValues["NombreUsuario"].ToString() + "', "); sqlQuery.Append("'" + e.NewValues["Usuario"].ToString() + "', "); sqlQuery.Append("'" + e.NewValues["Clave"].ToString() + "')"); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewUsuarios.CancelEdit();

Page 152: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

135

} c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("UPDATE IND_Usuarios SET "); sqlQuery.Append("PerfilID = " + e.NewValues["PerfilID"].ToString() + ","); sqlQuery.Append("CargoID = " + e.NewValues["CargoID"].ToString() + ","); sqlQuery.Append("NombreUsuario = '" + e.NewValues["NombreUsuario"].ToString() + "', "); sqlQuery.Append("Usuario = '" + e.NewValues["Usuario"].ToString() + "', "); sqlQuery.Append("Clave = '" + e.NewValues["Clave"].ToString() + "'"); sqlQuery.Append(" WHERE UsuarioID= " + e.Keys["UsuarioID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewUsuarios.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } protected void grid_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e) { StringBuilder sqlQuery = new StringBuilder(); sqlQuery.Append("DELETE FROM IND_Usuarios"); sqlQuery.Append(" WHERE UsuarioID = " + e.Keys["UsuarioID"].ToString()); c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand(sqlQuery.ToString()); cmd.Connection = c.conexion;

Page 153: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

136

DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); int i = cmd.ExecuteNonQuery(); if (i > 0) { e.Cancel = true; ASPxGridViewUsuarios.CancelEdit(); } c.conexion.Close(); e.Cancel = true; BindGrid(); } private void BindGrid() { try { c.conexion.Open(); SqlCommand cmd; cmd = new SqlCommand("select * from IND_Usuarios"); cmd.Connection = c.conexion; DataSet dsClaimCat = new DataSet(); SqlDataAdapter dapt = new SqlDataAdapter(cmd); dapt.Fill(dsClaimCat); ASPxGridViewUsuarios.DataSource = dsClaimCat; ASPxGridViewUsuarios.DataBind(); c.conexion.Close(); } catch { Response.Write("Error"); } } }

2.9 Web.config

Ilustración 46 Cadena de conexión

En este archivo se incluye la cadena de conexión a la base de datos. Su

contenido es el siguiente:

Page 154: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

137

<?xml version="1.0"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <configSections> <sectionGroup name="devExpress"> <section name="settings" type="DevExpress.Web.ASPxClasses.SettingsConfigurationSection, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false"/> <section name="compression" type="DevExpress.Web.ASPxClasses.CompressionConfigurationSection, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false"/> <section name="themes" type="DevExpress.Web.ASPxClasses.ThemesConfigurationSection, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false"/> <section name="errors" type="DevExpress.Web.ASPxClasses.ErrorsConfigurationSection, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" requirePermission="false"/> </sectionGroup> <sectionGroup name="businessObjects"> <sectionGroup name="crystalReports"> <section name="rptBuildProvider" type="CrystalDecisions.Shared.RptBuildProviderHandler, CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304, Custom=null"/> </sectionGroup> </sectionGroup> </configSections> <appSettings> <add key="CrystalImageCleaner-AutoStart" value="true"/> <add key="CrystalImageCleaner-Sleep" value="60000"/> <add key="CrystalImageCleaner-Age" value="120000"/> </appSettings> <connectionStrings> <add name="INDDBConnectionString" connectionString="Server=localhost;Database=INDDB;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/> <add name="PMADBConnectionString" connectionString="Server=localhost;Database=PMADB2;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated

Page 155: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

138

Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/> <add name="INDDBConnectionStringManual" connectionString="Data Source=HP-PC;Initial Catalog=INDDB;Integrated Security=True" providerName="System.Data.SqlClient"/> </connectionStrings> <system.web> <pages validateRequest="false" clientIDMode="AutoID"> <namespaces> <add namespace="System.Collections.Generic"/> </namespaces> <controls> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxClasses" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxCallback" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxCallbackPanel" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxDataView" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxMenu" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxNavBar" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxPanel" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxPopupControl" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxRoundPanel" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxTabControl" assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxEditors" assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxGridView" assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/>

Page 156: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

139

<add tagPrefix="dx" namespace="DevExpress.Web.ASPxGridView.Export" assembly="DevExpress.Web.ASPxGridView.v11.1.Export, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Web.ASPxGridLookup" assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="dx" namespace="DevExpress.Xpo" assembly="DevExpress.Xpo.v11.1.Web, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add tagPrefix="CR" namespace="CrystalDecisions.Web" assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> </controls> </pages> <compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="DevExpress.Web.ASPxGridView.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.Web.ASPxEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.Data.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="DevExpress.CodeParser.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add assembly="DevExpress.Xpo.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add assembly="DevExpress.Xpo.v11.1.Web, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add assembly="DevExpress.Web.ASPxGridView.v11.1.Export, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add assembly="DevExpress.Web.ASPxThemes.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a"/> <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="DevExpress.XtraCharts.v11.1.Web, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraCharts.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.Charts.v11.1.Core, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.Utils.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraEditors.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/>

Page 157: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

140

<add assembly="DevExpress.Printing.v11.1.Core, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraReports.v11.1.Web, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraReports.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.Shared, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.ReportSource, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.ReportAppServer.Controllers, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.ReportAppServer.DataDefModel, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.CrystalReports.Engine, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692FBEA5521E1304"/> <add assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> <add assembly="CrystalDecisions.ReportAppServer.ClientDoc, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> <add assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraGauges.v11.1.Core, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> <add assembly="DevExpress.XtraGauges.v11.1.Presets, Version=11.1.4.0, Culture=neutral, PublicKeyToken=B88D1754D700E49A"/> </assemblies> <buildProviders> <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> <add extension=".rpt" type="CrystalDecisions.Web.Compilation.RptBuildProvider, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> </buildProviders> </compilation> <authentication mode="Forms"> <forms loginUrl="~/Account/Login2.aspx" timeout="20"/>

Page 158: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

141

</authentication> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/> </providers> </membership> <profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/> </providers> </profile> <roleManager enabled="false"> <providers> <clear/> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/"/> <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/"/> </providers> </roleManager> <httpModules> <add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule"/> </httpModules> <httpHandlers> <add path="ASPxUploadProgressHandlerPage.ashx" verb="GET,POST" type="DevExpress.Web.ASPxUploadControl.ASPxUploadProgressHttpHandler, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" validate="false"/> <add path="CrystalImageHandler.aspx" verb="GET" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304"/> <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> </httpHandlers> </system.web>

Page 159: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

142

<system.webServer> <modules runAllManagedModulesForAllRequests="true"> <add type="DevExpress.Web.ASPxClasses.ASPxHttpHandlerModule, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" name="ASPxHttpHandlerModule"/> </modules> <validation validateIntegratedModeConfiguration="false"/> <handlers> <add type="DevExpress.Web.ASPxUploadControl.ASPxUploadProgressHttpHandler, DevExpress.Web.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" verb="GET,POST" path="ASPxUploadProgressHandlerPage.ashx" name="ASPxUploadProgressHandler" preCondition="integratedMode"/> <add name="CrystalImageHandler.aspx_GET" verb="GET" path="CrystalImageHandler.aspx" type="CrystalDecisions.Web.CrystalImageHandler, CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" preCondition="integratedMode"/> <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </handlers> </system.webServer> <devExpress> <settings rightToLeft="false"/> <compression enableHtmlCompression="false" enableCallbackCompression="true" enableResourceCompression="true" enableResourceMerging="false"/> <themes enableThemesAssembly="true"/> <errors callbackErrorRedirectUrl=""/> </devExpress> <businessObjects> <crystalReports> <rptBuildProvider> <add embedRptInResource="true"/> </rptBuildProvider> </crystalReports> </businessObjects> </configuration>

2.10 Site.master

El sitio web utiliza Master Page, cuyo contenido es el siguiente:

Page 160: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

143

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="Site.master.cs" Inherits="SiteMaster" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Linear" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Circular" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.State" TagPrefix="dx" %> <%@ Register Assembly="DevExpress.Web.ASPxGauges.v11.1, Version=11.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" Namespace="DevExpress.Web.ASPxGauges.Gauges.Digital" TagPrefix="dx" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head id="Head1" runat="server"> <%--Estilos --%> <link href="~/Styles/Site.css" rel="stylesheet" type="text/css" /> <link href="~/Styles/menu.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <%--Toggles the icon ?--%> <script type="text/javascript"> $(document).ready(function () { $('.toggle-login').click(function () { $(this).next('#login-content').slideToggle(); $(this).toggleClass('active'); if ($(this).hasClass('active')) $(this).find('span').html('&#x25B2;') else $(this).find('span').html('&#x25BC;') }) }); </script> <%--Handling Menu and items--%> <script type="text/javascript"> $(document).ready(function () {

Page 161: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

144

$(".mainmenu").click(function () { var X = $(this).attr('id'); if (X == 1) { $(".submenu").hide(); $(this).attr('id', '0'); } else { $(".submenu").show(); $(this).attr('id', '1'); } }); //Mouse click on sub menus $(".submenu").mouseup(function () { return false }); //Mouse click on my account link $(".mainmenu").mouseup(function () { return false }); //On Document Click $(document).mouseup(function () { $(".submenu").hide(); $(".mainmenu").attr('id', ''); }); }); </script> <title></title> <asp:ContentPlaceHolder ID="HeadContent" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="Form1" runat="server"> <div class="page"> <div class="header"> <div class="title"> <img alt="" src="Images/logo.jpg" /> </div> <div class="loginDisplay"> <asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false"> <AnonymousTemplate> <asp:LinkButton ID="lnkLogOut" runat="server" Text="Cerrar Sesión" OnClick="lnkLogOut_Click"></asp:LinkButton> </AnonymousTemplate> <LoggedInTemplate> [

Page 162: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

145

<asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/" /> ] </LoggedInTemplate> </asp:LoginView> </div> <div class="clear hideSkiplink"> <asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal"> </asp:Menu> </div> <div class="main"> <asp:ContentPlaceHolder ID="MainContent" runat="server" /> </div> <div class="clear"> </div> </div> <div class="footer"> </div> </form> </body> </html>

Site.master.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class SiteMaster : System.Web.UI.MasterPage { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { } Menu(); } protected void lnkLogOut_Click(object sender, EventArgs e) { Session["Perfil"] = null;

Page 163: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

146

Response.Redirect("Login2.aspx"); } protected void Menu() { MenuItem perfiles = new MenuItem("Perfiles", "", "", "~/Perfiles.aspx"); MenuItem usuarios = new MenuItem("Usuarios", "", "", "~/Usuarios.aspx"); MenuItem frecuencias = new MenuItem("Frecuencias", "", "", "~/Frecuencias.aspx"); MenuItem estados = new MenuItem("Estado de Indicadores", "", "", "~/EstadosIndicadores.aspx"); MenuItem unidades = new MenuItem("Unidades de Indicadores", "", "", "~/UnidadesIndicadores.aspx"); MenuItem ingresod = new MenuItem("Ingreso de Indicadores", "", "", "~/IngresoDatos.aspx"); MenuItem ingresom = new MenuItem("Monitoreo de Indicadores", "", "", "~/IngresoMonitoreo.aspx"); MenuItem seguimiento = new MenuItem("Seguimiento de Indicadores", "", "", "~/Seguimiento.aspx"); MenuItem cargos = new MenuItem("Cargos", "", "", "~/Cargos.aspx"); MenuItem pantallas = new MenuItem("Pantallas", "", "", "~/Pantallas.aspx"); string tipo = ""; if (Session["Perfil"] != null) tipo = (string)Session["Perfil"]; else Response.Redirect("Login2.aspx"); switch (tipo) { case "1": NavigationMenu.Items.Add(perfiles); NavigationMenu.Items.Add(usuarios); NavigationMenu.Items.Add(frecuencias); NavigationMenu.Items.Add(estados); NavigationMenu.Items.Add(unidades); NavigationMenu.Items.Add(ingresod); NavigationMenu.Items.Add(ingresom); NavigationMenu.Items.Add(seguimiento); NavigationMenu.Items.Add(cargos); NavigationMenu.Items.Add(pantallas); break; case "2": NavigationMenu.Items.Add(usuarios); NavigationMenu.Items.Add(frecuencias); NavigationMenu.Items.Add(estados); NavigationMenu.Items.Add(unidades); NavigationMenu.Items.Add(ingresod); NavigationMenu.Items.Add(ingresom);

Page 164: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

147

NavigationMenu.Items.Add(seguimiento); NavigationMenu.Items.Add(cargos); break; case "3": NavigationMenu.Items.Add(frecuencias); NavigationMenu.Items.Add(estados); NavigationMenu.Items.Add(unidades); NavigationMenu.Items.Add(ingresod); NavigationMenu.Items.Add(ingresom); NavigationMenu.Items.Add(seguimiento); break; default: NavigationMenu.Items.Add(perfiles); //NavigationMenu.Items.Add(aperfiles); NavigationMenu.Items.Add(usuarios); NavigationMenu.Items.Add(frecuencias); NavigationMenu.Items.Add(estados); NavigationMenu.Items.Add(unidades); NavigationMenu.Items.Add(ingresod); NavigationMenu.Items.Add(ingresom); NavigationMenu.Items.Add(seguimiento); NavigationMenu.Items.Add(cargos); break; } } }

Page 165: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

148

MANUAL DE USUARIO

APLICACIÓN WEB PARA EL MONITOREO DE INDICADORES DE

DESARROLLO ECONÓMICO PARA LAS COMUNIDADES UBICADAS EN

LOS CANTONES RIOBAMBA, GUANO Y PELILEO DE LA PROVINCIA DE

CHIMBORAZO

Page 166: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

149

MANUAL DE USUARIO

1. INTRODUCCIÓN

El objetivo principal de este manual es explicar de manera detallada el

funcionamiento de la Aplicación Web a los usuarios para que sirva de guía.

Este documento brinda el soporte necesario para aportar un alto conocimiento

para el manejo de los módulos y todas sus opciones, con lo que se logra

optimizar el tiempo de trabajo.

2. MÓDULOS DEL SISTEMA

La Aplicación Web está conformada por dos modulos principales que abarcan

la administración y la automatización de los indicadores de desarrollo

económico.

Dentro del módulo de Administración se da mantenimiento a las principales

entidades que intervienen en la aplicación.

Dentro del módulo de Registro y Seguimiento se detalla el ingreso de los

indicadores de desarrollo económico.

En la sección final se presenta los reportes los cuales constan de tablas y

gráficos estadísticos para una mejor comprensión de la información.

3. Requerimientos de Hardware

Procesador: Core 2 Duo o superior

Memoria: 2 GB RAM mínimo recomendado

Disco duro: 40 GB Disponibles en disco

Monitor: SVGA 1024 * 968

Tarjeta de red: 10 Mbps o superior

Page 167: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

150

4. DESCRIPCIÓN DE FUNCIONALIDAD DEL SISTEMA

La pantalla de ingreso al sistema es la siguiente:

Ilustración 47 Página de Ingreso al Sistema Elaborado por: El Tesista

A cada usuario se le asignará una clave para acceder al sistema, se ingresa un

usuario y una contraseña para en caso de una autenticación exitosa hacer uso de

las opciones del sistema de acuerdo al perfil asignado y rol asignado.

En caso de no ingresar correctamente el usuario y/o contraseña se despliega el

siguiente mensaje:

Ilustración 48 Usuario y/o contraseña incorrecta

Para encriptar la contraseña se utiliza una criptografía simétrica donde se usa la

misma clave para cifrar y descifrar mensajes. La ventaja de usar un algoritmo

simétrico es la imposibilidad de reconstruir la cadena original a partir del

resultado, y también la imposibilidad de encontrar dos cadenas de texto que

generen el mismo resultado.

Page 168: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

151

4.1 Página principal

Una vez ingresados los datos correctos se debe hacer clic en el botón Ingresar

con lo cual podemos visualizar la siguiente pantalla:

Ilustración 49 Pantalla Principal

4.2 Menú

Ilustración 50 Menú Sistema

4.3 Administración

Este módulo permite gestionar todos los privilegios de los usuarios que

intervienen en la ONG.

Existe una opción para cambiar clave, la cual pide ingresar la contraseña anterior.

En la opción de usuarios que está disponible solo para el administrador del

sistema se puede ingresar los datos de un nuevo empleado y modificar los

mismos.

Page 169: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

152

4.3.1 Administración Perfiles de Usuario

Ilustración 51 Página de Administración de Perfiles Elaborado por: El Tesista

Se despliega al hacer clic en Perfiles en el menú principal. Permite administrar los

privilegios de los usuarios, permitiéndole agregar o quitar las opciones y acciones

que tiene ya definido el perfil que se seleccione, al hacer clic sobre los vínculos

Actualizar, Crear o Eliminar respectivamente. Si es necesario se puede añadir un

nuevo perfil de usuario y asignar privilegios. Ésta opción solo debe estar

disponible para el Administrador.

4.4 Mantenimiento

Permitir dar mantenimiento a las principales entidades del sistema, es decir

actualizar datos o ingresar datos de una nueva entidad como por ejemplo

unidades.

4.4.1 Mantenimiento Perfiles

Ilustración 52 Página de Mantenimiento de Perfiles Elaborado por: El Tesista

Se maneja los perfiles del sistema mediante los vínculos Actualizar, Crear o

Eliminar.

Page 170: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

153

4.4.2 Mantenimiento de Usuarios

Ilustración 53 Página de Mantenimiento de Usuarios Elaborado por: El Tesista

Se maneja los usuarios del sistema mediante los vínculos Actualizar, Crear o

Eliminar. En el caso de hacer clic en Crear se debe llenar el perfil y cargo al que

pertenece el usuario.

4.4.3 Mantenimiento de Frecuencias

Ilustración 54 Página de Mantenimiento de Frecuencias Elaborado por: El Tesista

Se maneja las frecuencias de los indicadores de desarrollo económico mediante

los vínculos Actualizar, Crear o Eliminar.

4.4.4 Mantenimiento de Estado

Ilustración 55 Página de Mantenimiento de Estado Elaborado por: El Tesista

Se maneja los estados de los Indicadores del sistema mediante los vínculos

Actualizar, Crear o Eliminar.

Page 171: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

154

4.4.5 Mantenimiento de Unidades

Ilustración 56 Página de Mantenimiento de Unidades Elaborado por: El Tesista

Se maneja las unidades de medida de los indicadores de desarrollo económico

mediante los vínculos Actualizar, Crear o Eliminar.

4.4.6 Mantenimiento de Cargos

Ilustración 57 Página de Mantenimiento de Cargos Elaborado por: El Tesista

Se maneja los cargos que tienen los usuarios del sistema mediante los vínculos

Actualizar, Crear o Eliminar.

4.4.7 Mantenimiento de Pantallas

Ilustración 58 Página de Mantenimiento de Pantallas Elaborado por: El Tesista

Page 172: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

155

Se maneja las pantallas que tendrán asignadas los perfiles de usuario del sistema

mediante los vínculos Actualizar, Crear o Eliminar.

4.5 Registro

Se lleva el seguimiento desde la creación del indicador pasando por su registro

hasta su fecha de finalización.

Con esto ayudamos a los usuarios de acuerdo a su correspondiente perfil a

mantener un control sobre los indicadores.

4.5.1 Ingreso de Indicadores

Ilustración 59 Página de Ingreso de Indicadores Elaborado por: El Tesista

Se crea el indicador indicando el PDA al cual va a pertenecer, el Nombre del

Proyecto, la Actividad.

Al ingresar los datos anteriores se despliegan el Área Programática y el Código de

la Actividad.

A continuación se puede ingresar la descripción, unidades, línea base, meta final,

nivel crítico, fecha para meta final, frecuencia y evidencias.

Una vez ingresados los datos hacer clic en el vínculo Update para guardar en la

base.

4.5.2 Monitoreo de Indicadores

Ilustración 60 Página de Monitoreo de Indicadores

Page 173: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

156

Elaborado por: El Tesista

En esta pantalla se registra la meta que se ha obtenido con respecto al indicador.

El número de veces que se realice este registro se delimitó al momento de

ingresar la frecuencia del indicador (Ingreso de Indicadores).

4.6 Reportes

Dentro de cada reporte se visualiza la información de acuerdo al PDA, Proyecto,

Actividad e Indicador seleccionado.

Adicionalmente a cada reporte se le adjuntará un gráfico para mejor comprensión

del usuario.

Ilustración 61 Página de Seguimiento de Indicadores Elaborado por: El Tesista

Page 174: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

157

4.6.1 Seguimiento y Resultados

Este reporte permite visualizar los datos generales del indicador así como gráficos que describen su comportamiento.

Ilustración 62 Seguimiento y Resultados

Elaborado por: El Tesista

Page 175: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

158

4.6.2 Cumplimiento Actividad

Indica el porcentaje de cumplimiento de la actividad que se alimenta de los porcentajes de cumplimiento de cada indicador.

Ilustración 63 Cumplimiento Actividad

Elaborado por: El Tesista

Page 176: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

159

4.6.3 Cumplimiento del Proyecto

Indica el porcentaje de cumplimiento del proyecto en base a los porcentajes de cumplimiento de cada actividad.

Ilustración 64 Cumplimiento Proyecto Elaborado por: El Tesista

Page 177: UNIVERSIDAD CENTRAL DEL ECUADOR FACULTAD DE … · A mi hermano de quien aprendo cada día y siempre ha estado dispuesto a escucharme y animarme. A mi tía Mariana Sánchez y mis

160

4.6.4 Cumplimiento del PDA

Indica el porcentaje de cumplimiento del PDA en base a los porcentajes de cumplimiento de cada proyecto.

Ilustración 65 Cumplimiento PDA Elaborado por: El Tesista

4.6.5 Cerrar Sesión

Para salir del sistema hacer clic en el botón Cerrar Sesión. Luego se mostrará la

página de Ingreso al sistema.

Ilustración 66 Cerrar Sesión Elaborado por: El Tesista