desarrollo de formularios programados...
TRANSCRIPT
DESARROLLO DE FORMULARIOS PROGRAMADOS COMO HERRAMIENTA
INFORMÁTICA PARA EL ANÁLISIS DEL CUMPLIMIENTO NORMATIVO EN
LAS INSPECCIONES A LAS EMPRESAS PRESTADORAS DEL SERVICIO
PÚBLICO DE ASEO POR PARTE DE LA DIRECCIÓN TÉCNICA DE GESTIÓN
DE ASEO DE LA SUPERINTENDENCIA DE SERVICIOS PÚBLICOS
DOMICILIARIOS.
JOHAN MANUEL BUITRAGO SEGURA
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
FACULTAD DE MEDIO AMBIENTE Y RECURSOS NATURALES
INGENIERÍA SANITARIA
BOGOTÁ D.C.
2018
1
DESARROLLO DE FORMULARIOS PROGRAMADOS COMO HERRAMIENTA
INFORMATICA PARA EL ANÁLISIS DEL CUMPLIMIENTO NORMATIVO EN
LAS INSPECCIONES A LAS EMPRESAS PRESTADORAS DEL SERVICIO
PÚBLICO DE ASEO POR PARTE DE LA DIRECCIÓN TÉCNICA DE GESTIÓN
DE ASEO DE LA SUPERINTENDENCIA DE SERVICIOS PÚBLICOS
DOMICILIARIOS.
PROYECTO DE PASANTÍA
JOHAN MANUEL BUITRAGO SEGURA - 20131181003
DIRECTOR INTERNO
CAUDEX VITELIO PEÑARANDA OSORIO
DIRECTOR EXTERNO
MARIA EUGENIA BOTERO SIERRA
TRABAJO DE GRADO EN LA MODALIDAD PASANTÍA
UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS
INGENIERÍA SANITARIA
BOGOTÁ D.C.
2018
2
CONTENIDO
INTRODUCCIÓN ............................................................................................................. 5
1. OBJETIVOS............................................................................................................... 7
1.1. Objetivo general .................................................................................................. 7
1.2. Objetivos específicos .......................................................................................... 7
2. REFERENCIA TÉCNICA ......................................................................................... 8
2.1. Proceso de elaboración informes de visita por la DTGA ................................... 8
2.2. Entorno de desarrollo utilizado en la creación del programa Trash_DTGA ...... 9
2.2.1. Excel .......................................................................................................... 10
2.2.2. Lenguaje de programación Basic (VB) ..................................................... 11
2.2.3. Access. ....................................................................................................... 15
3. RECOPILACIÓN, ANÁLISIS Y PROCESAMIENTO DE LA INFORMACIÓN 17
3.1. Funciones desarrolladas en la SSPD durante la práctica de pasantía y fuente de
información para la creación del programa Trash_DTGA. ......................................... 17
3.1.1. Plan de trabajo ........................................................................................... 17
3
3.1.2. Fuente de información para la creación de los formularios estandarizados
de verificación técnica .............................................................................................. 21
3.2. Creación del programa Trash_DTGA ............................................................... 22
3.2.1. Esquema funcionamiento .......................................................................... 23
3.2.2. Componente Access .................................................................................. 28
3.2.3. Componente Excel ..................................................................................... 31
3.3. Programación y codificación ............................................................................ 36
3.3.1. Diagramas de flujo y rutinas del programa ............................................... 38
3.3.2. Botón Generar tablas ................................................................................. 43
3.3.3. Botón Generar análisis............................................................................... 44
3.3.4. Botón “Tab/Asis” ...................................................................................... 44
3.3.5. Botón Borrar .............................................................................................. 44
3.3.6. Botón Actualizar ........................................................................................ 45
4. CONCLUCIONES Y RECOMENDACIONES ...................................................... 45
5. ANEXOS .................................................................................................................. 46
6. REFERENCIAS ....................................................................................................... 47
ANEXO: MANUAL MÉTODOLOGICO DE LA CREACIÓN DEL PROGRAMA…48
4
AGRADECIMIENTOS
Al equipo de la Dirección Técnica de Gestión de Aseo de la Superintendencia de Servicios
Públicos, amigos, compañeros y tutores.
A la Universidad Distrital Francis José de Caldas, profesores, compañeros y directivos, de
quienes aprendí los más grandes valores profesionales, el sentido crítico y la calidez
humana.
Al ingeniero y sabio profesor Caudex Vitelio Peñaranda quien motivo mis aspiraciones
intelectuales y profesionales.
A los amigos que me acompañaron a lo largo de mi formación profesional quienes estuvieron
allí, en las buenas y en las malas situaciones de mi la vida.
Por último, a mi padre Juan y a las tres mujeres que le dan sentido a mi vida: Rosalba,
Tatiana y Andrea.
5
INTRODUCCIÓN
La Superintendencia de Servicios Públicos Domiciliarios (SSPD), es el órgano
gubernamental encargado de la inspección y vigilancia del Servicio Público de Aseo, y
mediante la Dirección Técnica de Gestión de Aseo (DTGA) realiza el control de cobertura,
calidad y continuidad en la prestación de todos los componentes del servicio público de aseo
a las empresas prestadoras del servicio público de aseo (ESP) en todo el país, por medio de
mecanismos de verificación: Visitas e informes de inspección, Evaluaciones Integrales,
verificación de calidad de información cargado en el Sistema único de Información (SUI) y
notificaciones sobre denuncias ciudadanas y de entidades públicas y/o privadas.
Para llevar a cabo las visitas e informes de inspección hacia las ESP, la DTGA actualmente
recurre a la utilización de “listas de chequeo”, los cuales son documentos impresos no
estandarizados en los cuales los ingenieros encargados documentan los hallazgos
evidenciados en campo para un posterior análisis y construcción del informe respectivo sobre
los posibles incumplimientos en que estén incurriendo las empresas inspeccionadas respecto
con la norma vigente.
Dichas listas de chequeo actualmente no abordan todos los requerimientos de inspección,
retardan el proceso del análisis cualitativo y normativo, por cuanto su información es
insuficiente, solo existen para dos de los ocho componentes del servicio de aseo y se requiere
de tiempo para digitalizar y organizar la información documentada.
6
Si bien el uso de estas listas es una herramienta importante para la organización de la
información evaluada, actualmente es un instrumento ineficaz dada la importancia que
amerita su uso en el manejo de datos y su posterior análisis.
Por las razones anteriores, el autor del presente documento creó un programa computacional
llamado “Trash_DTGA”, escrito en lenguaje Visual Basic para agilizar la manera de
realización de los informes de visita emitidos por la DTGA. Este programa consta de dos
componentes: un archivo Access que recibe la información y la organiza automáticamente y
un archivo Excel que procesa la información y la imprime en tablas y graficas inteligentes.
Para la creación de este programa se tuvieron en cuenta las actividades realizadas durante los
cinco meses de pasantía, concernientes a la evaluación técnica en la operación del servicio
de aseo de las ESP, realizados por el autor través de los mecanismos de verificación técnica
expedidos a nombre de la SSPD.
El presente documento muestra lo realizado en durante los cinco meses de práctica de
pasantía y la creación del programa computacional para la DTGA.
7
1. OBJETIVOS
A continuación, se presentan los objetivos del siguiente trabajo:
1.1.Objetivo general
Desarrollar formularios digitales programados con función automática en tabular, organizar
y analizar presuntos incumplimientos normativos de las inspecciones realizadas a las
empresas prestadoras del servicio público de aseo en sus ocho componentes.
1.2.Objetivos específicos
• Desarrollar actividades de vigilancia aplicando la normativa vigente en la prestación
del aseo servicio sobre las empresas prestadoras.
• Crear formularios programados para el análisis de información documentada en
visitas de inspección.
• Suministrar información de análisis organizada de presuntos incumplimientos
normativos para la creación de informes de visita.
8
2. REFERENCIA TÉCNICA
En este capítulo se definen los conceptos tenidos en cuenta durante la práctica de pasantía
para realizar las actividades realizadas en la inspección, vigilancia y control de las empresas
prestadoras del servicio de aseo, las cuales motivaron la creación del programa
computacional Trash_DTGA, y se muestran los componentes técnicos de programación para
su creación en Visual Basic.
2.1.Proceso de elaboración informes de visita por la DTGA
La elaboración de informes técnicos se realiza para cada visita de inspección, de acuerdo con
la prestación del servicio de aseo de una empresa en un área de prestación. Durante el proceso
de visita se verifican visualmente los parámetros de operación conforme al Decreto 1077 de
2015, parámetros revisados a través de “listas de chequeo” físicas, que contiene información
técnica a verificar en campo. La información obtenida hace referencia a los ocho
componentes del servicio de aseo, lo cuales son:
• Recolección.
• Transporte.
• Barrido, limpieza de vías y áreas públicas.
• Corte de césped, poda de árboles en las vías y áreas públicas.
• Transferencia1.
• Tratamiento.
• Aprovechamiento.
1 La actividad de Transferencia no se tuvo en cuenta explícitamente en la creación del programa ya que los
parámetros de verificación son muy parecidos a los de la actividad de Transporte, y no amerita la creación de
un formulario propio para dicha actividad.
9
• Disposición final.
• Lavado de áreas públicas.
La definición y características técnicas de estos componentes se encuentran en los anexos
1 y 2 del presente documento.
Posteriormente, la información recolectada es organizada en “tablas de hallazgos” para la
creación del informe, luego se analizan y comparan los antecedentes de esa área de prestación
para realizar las respectivas conclusiones. El informe es finalizado cuando las dependencias
administrativa, financiera y comercial, añaden sus respectivos análisis.
A continuación, se presenta proceso de la elaboración de informes técnicos:
Figura 2.1. Procedimiento para elaboración de informes de visita. Fuente: autor
El informe final es radicado y enviado a la empresa prestadora para que dé respuesta a los
señalamientos realizados, en un tiempo señalado por la DTGA.
2.2.Entorno de desarrollo utilizado en la creación del programa Trash_DTGA
El programa consta de dos plataformas de desarrollo que se conectan entre si para ejecutar la
interfaz gráfica a manejar por le usuario, el primer componente se realiza en Access para
manejar la base de datos y el segundo componente corresponde a un control de preferencias
creado en Excel. Estos se explican a detalle en los siguientes títulos.
10
2.2.1. Excel
Microsoft Excel es un programa que se basa en la operación de datos en matrices de múltiples
parámetros y métodos que permite manipular en cualquier momento la información
suministrada por medio de una interfaz llamada hoja de cálculo, además de utilizar funciones
de cálculo, este software permite analizar datos de forma gráfica y hacer evaluaciones lógicas
por medio de funciones de decisión.
Excel utiliza el lenguaje de programación Visual Basic, desarrollado por Microsoft en 1991
que es catalogado como lenguaje de alto nivel por ser de fácil entendimiento para usuarios
inexpertos en programación, para usuarios de mayor destreza Excel ofrece la ejecución de
“macros”, procedimientos paso a paso que generan un código en lenguaje Basic el cual puede
ser modificado para realizar tareas automáticas en el entono de las hojas de cálculo.
Por otro lado, si bien Excel es ampliamente utilizado como software de almacenamiento de
datos, en si no lo es, es un simulador de bases de datos, ya que el acceso a la información es
limitado para usuarios simultáneos y el volumen de información que puede manejar es mucho
a menor en comparación con programas especializados como Access, MySQL, Oracle, etc.
Otra de las herramientas utilizadas son las gráficas dinámicas, estas son una herramienta de
Excel que permite la visualización de datos provenientes de una tabla en forma de una gráfica
de barras, que puede ser modificada de forma muy simple gracias a un cuadro auxiliar que
permite la filtración de datos específicos, los cuales automáticamente se verán reflejados en
la gráfica como se muestra en la figura 2.2.
11
Figura 2.2. Ilustración de la generación de análisis por gráficas dinámicas. Fuente: autor
La ventaja que tienen estas tablas sobre las normales, es que sirven para realizar múltiples
consultas sobre los datos que queramos conocer sin necesidad de crear nuevas gráficas. En
la parte derecha de la gráfica se observa un campo para manipular la gráfica dinámica de tal
forma que podemos “jugar” con su composición de forma muy sencilla.
2.2.2. Lenguaje de programación Basic (VB)
Basic es un lenguaje de programación interpretado (no requiere compilador) íntimamente
relacionado con la utilización de objetos, ya que principalmente se desarrolla en el entorno
de Excel e interfaces gráficas denominadas Formularios. Cada formulario tiene su propia
ventana de desarrollo y se programa a través de botones, controles y gráficos, como se puede
evidenciar en la figura 2.3
12
Figura 2.3. Entorno de desarrollo de Visual Basic. Fuente: autor
Este entorno de desarrollo consta de un área en la parte superior izquierda, para crear nuevos
elementos de un formulario, en la parte inferior izquierda se muestran las propiedades del
elemento seleccionado y en la parte derecha se encuentra el entorno visual del formulario y
su respectivo cuadro de herramientas en el que se encuentran las cajas de texto, botones,
imágenes, títulos, etc. a ser implementados.
En Visual Basic la programación de objetos se entiende como elementos que poseen
propiedades y métodos, estos últimos son palabras reservadas para realizar una acción
13
determinada. En este caso se entiende por objeto los elementos que componen el entorno de
Excel, los elementos de un formulario, y el mismo formulario, por ejemplo, una celda, es un
objeto que tiene propiedades (ancho, alto, color) y unos métodos (almacenar variables,
convertir el formato de variables, etc.); esto permite crear aplicaciones funcionales de manera
muy rápida y eficiente, puesto que además de utilizar los objetos de los formularios, se
utilizan los objetos del entrono Excel sin necesidad de ser creados desde cero.
Para modificar las propiedades de un objeto se debe llamar por medio de un punto (“.”) y
asignarle un el nuevo valor utilizando el operador igual (“=”). La sintaxis queda de la
siguiente forma:
Objeto.propiedad = valor o variable
O en caso contrario, para asignar una propiedad a una variable
variable = objeto.propiedad
De manera particular las palabras reservadas de visual Basic para ejecutar código de manera
condicional son: “IF“, ”FOR”, “WHILE” “DO”, ”SELECT CASE” y “FOR EACH”, las
cuales se utilizan en la ejecución del código (ANEXO 7).
Además de los “métodos”, los objetos poseen “eventos”, que se refieren a los
acontecimientos que le pueden suceder a un objeto. Por ejemplo, el evento en que una celda
es presionada con “Click” o, es enfocada o desenfocada por el teclado.
En el entorno de desarrollo de Visual Basic, estos eventos son ventanas predeterminadas para
insertar el código necesario.
Visual Basic ofrece cinco elementos para crear una aplicación, definidas a continuación:
14
Funciones: son fragmentos de código que ejecutan una acción por medio de parámetros cuyo
valor es asignado directa o indirectamente por un usuario. Se crea una función con la
siguiente sintaxis:
Function nombre (parámetros)
Procedimientos: Son fragmentos de código que ejecutan una acción específica y que puede
ser llamada por otro procedimiento. Se crea un procedimiento con la sintaxis
Sub nombre
Clases: son segmentos de código que definen las variables, las propiedades, los
procedimientos y los eventos de un objeto. Para crear un objeto debe existir su respectiva
clase, a esto se le llama instancia.
Módulos: son áreas de desarrollo que contienen funciones y procedimientos, estos sirven
para organizar el código y ejecutarlo de manera controlada.
Formularios: son objetos que actúan como interfaz visual para que el usuario interactúe con
una información por medio de controles y objetos gráficos. Los formularios tienen el nombre
de “UserForm” y se diseñan en el entorno de desarrollo “Visual Basic para aplicaciones” de
Excel.
De igual modo, el “cuadro de herramientas” del entorno de desarrollo de Visual Basic Figura
2.3. ofrece la posibilidad de insertar botones, cajas de texto e imágenes que se pueden
programar para que ejecuten una acción en específico. Estos son los botones utilizados en el
programa creado:
ComboBox: objeto que muestra o guarda una lista desplegable de elementos.
15
ListBox: objeto que guarda una lista de elementos.
CheckBox: objeto en forma de cuadro de chequeo para devolver un valor verdadero o falso.
Estos valores lógicos (verdadero / falso) se denominan boléanos, los cuales obtienen un valor
al ser o no seleccionados, el valor adquirido queda guardado en la base de datos de forma
numérica.
Cuadro seleccionado (SÍ) = VERDADERO = 0
Cuadro no seleccionado (NO) = FALSO = 1
CommandButton: objeto en forma de botón para ejecutar un fragmento de código.
ToggleButton: objeto en forma de botón de activación o desactivación que ejecuta un
fragmento de código.
La utilización de esto botones se pueden ver más adelante en la figura 3.10.
2.2.3. Access.
Access es un programa especializado para el almacenamiento de datos y de fácil uso para el
usuario ya que permite la introducción de datos a través del diseño de interfaces gráficas,
denominadas “Formularios”; en ese sentido Access permite crear aplicaciones para bases de
datos de forma sencilla, rápida y muy intuitiva en el diseño de los formularios.
16
Figura 2.4. Entorno de desarrollo de Access. Fuente: autor
De las virtudes de Access, se destacan su conectividad sencilla con otras bases de datos, es
programable en Visual Basic (maneja la misma caja de herramientas que Excel) es de fácil
manejo para usuarios inexpertos y es asequible por ser parte del paquete Office.
17
3. RECOPILACIÓN, ANÁLISIS Y PROCESAMIENTO DE LA
INFORMACIÓN
Este capítulo consta de cuatro partes; en la primera se menciona la información recopilada y
tenida en cuenta para la creación del programa computacional, durante las actividades
realzadas en la pasantía. En la segunda parte se explica la creación de los documentos Access
y Excel que componen el programa Tras_DTGA; por último, se muestra el funcionamiento
del programa y su codificación en Visual Basic.
3.1.Funciones desarrolladas en la SSPD durante la práctica de pasantía y fuente de
información para la creación del programa Trash_DTGA.
Las actividades realizadas durante los cinco meses de pasantía fueron correspondientes a las
funciones misionales de la SSPD (inspección, vigilancia y control) por medio de los
mecanismos técnicos (requerimientos técnicos, informes de visita, Evaluaciones Integrales,
visitas de inspección y verificación de calidad de información cargado en el Sistema Único
de Información (SUI)) atribuidos a la DTGA hacia las empresas del servicio público de aseo
de todo el país.
Dichas actividades se resumen en los siguientes cuadros:
3.1.1. Plan de trabajo
Las actividades realizadas durante la práctica de pasantía corresponden a cada objetivo
planteado en el presente documento, las cuales se plasmaron en la siguiente tabla.
Tabla 1. Plan de trabajo de práctica de pasantía
Plan de trabajo
Objetivo Actividades o tareas Mecanismo de
seguimiento
Fecha Inicial
de actividad
Fecha fin
actividad Mes
1
Mes
2
Mes
3
Mes
4
Mes
5
Desarrollar actividades de
vigilancia aplicando la
normativa vigente, en la
prestación del aseo servicio
sobre las empresas
prestadoras.
Proyectar requerimientos a las
ESP de:
- Hallazgos de visitas de
inspección por al DTGA y
elaboración de informes.
- Evaluaciones Integrales
(aspectos Técnico-operativos)
- Denuncias por vocales de
control y de entidades
públicas y/o privadas.
Proyecciones realizadas /
Proyecciones requeridas
01/02/2018
31/05/2018 X X X X
19
Crear formularios
programados para el
análisis de información
documentada en visitas de
inspección.
1. Escoger los parámetros
normativos de inspección
para cada componente de
aseo (realización de
formularios físicos).
2. Agrupar y enlistar los
parámetros normativos en
hojas de cálculo del
software Microsoft Excel.
3. Programar por medio de
Visual Basic (VBA) las
funciones de tabulación,
organización, guardado en
base de datos y análisis
normativo.
Creación de 8 formularios
programados de verificación.
1. Vehículos de recolección de
residuos sólidos.
2. Recolección y transporte de
residuos sólidos.
3. Actividades del componente
de limpieza urbana (CLUS).
4. Base de operaciones para
vehículos de recolección de
residuos sólidos.
5. Disposición final.
6. Corte de césped, poda de
árboles en las vías y áreas
públicas.
7. Disposición final.
8. Lavado de áreas públicas.
01/03/2018 21/04/2018 X X
Suministrar información
organizada de presuntos
incumplimientos
normativos para la creación
de informes de visita.
1. Compilar los formularios
digitales creados mediante
la creación del programa
Trash_DTGA.
2. Generar resultados de
análisis normativo para los
informes de visita.
3. Generar base de datos del
análisis realizado.
Creación de un programa
computacional en lenguaje Visual
Basic.
01/05/2018 20/06/2018 X X
20
Según lo acordado con el tutor externo de pasantía (Directora de la DTGA) se estableció el
siguiente cronograma de trabajo para dar cumplimiento a las metas establecidas.
Tabla 2. Cronograma de trabajo de pasantía
Actividad
Semanas
Febrero Marzo Abril Mayo Junio
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
Proyectar requerimientos a las empresas
prestadoras (ESP)
Escoger los parámetros normativos de
inspección.
Agrupar y enlistar los parámetros de
inspección en hojas de cálculo
Compilar los formularios digitales creados
Creación de un programa de computadora,
escrito en lenguaje Visual Basic
Generación de resultados de análisis para
los informes de visita
El resultado de las actividades realizadas se resume en los siguientes productos entregados:
Actividad Producto entregado
Proyectar requerimientos de denuncias por vocales de control y de entidades
públicas y/o privadas. (Cartas de remisión o solicitud de información)
32 cartas realizadas
Evaluaciones Integrales (aspectos Técnico-operativos) 4 realizados
Elaboración de informes (de acuerdo a los hallazgos de las visitas de inspección
por los ingenieros de la DTGA.)
4 realizados
El resultado de las actividades realizadas se detalla en el ANEXO 2.
Durante la realización de estas actividades y por lo sugerido por los ingenieros de la DTGA,
el autor de este documento creó y estandarizo formularios de verificación para la recopilación
21
de la información recopilada en campo por parte de los ingenieros encargados al momento
de realizar las visitas de inspección a las empresas del servicio público de aseo en todos sus
componentes, ya que en su momento estos eran inexistentes. Estos formularios se presentan
en el ANEXO 1. y su instructivo de diligenciamiento en el ANEXO 3.
Los formularios de verificación fueron creados y diseñados por el autor del presente
documento en el entono de desarrollo Access, con dos objetivos: servir como interfaz gráfica
para el ingreso de la información recolectada en campo por los ingenieros de la DTGA, y el
registro de dicha información en una base de datos Access.
En consecuencia, se crearon dos versiones de los formatos de verificación, se utilizan de
manera física para ser llevados a campo por los ingenieros y de manera digital para que los
ingenieros introduzcan la información recopilada y sea procesada en el programa creado
Trash_DTGA.
3.1.2. Fuente de información para la creación de los formularios estandarizados de
verificación técnica
Para la creación de los formatos de verificación, se definió su contenido de acuerdo a lo
indicado en la referencia normativa correspondiente que rige a las empresas prestadoras del
servicio público de aseo:
• Decreto 1077 de 2015 “Actividades del servicio público de Aseo”
• Resolución CRA 720 de 2015 “Regulación tarifaria del servicio público de Aseo”
• Decreto 1784 de 2017 “(…) lo relativo con las actividades complementarias de
tratamiento y disposición final de residuos, sólidos en el servicio público de aseo.”
22
• Resolución 1096 de 2000 “Reglamento Técnico para el Sector de Agua Potable y
Saneamiento Básico – RAS (Titulo F)”
• Resolución de la Licencia ambiental correspondiente.2
Las fuentes normativas mencionadas fueron analizadas y tenidas en cuenta por el autor para
la creación de los Formatos de verificación. Cabe resaltar que, dada la importancia de conocer
las condiciones operativas de los rellenos sanitarios, el autor creó un formato adicional, a
modo de ficha técnica para mostrar de forma resumida y práctica, toda la información técnico
operativa de los rellenos sanitarios inspeccionados (ANEXO 4.2).
Es así, que estos formatos de verificación contemplan la mayor cantidad de variables a
inspeccionar por parte de los ingenieros encargados en las visitas de inspección y agiliza el
proceso de la recolección de datos técnicos en campo. No obstante, se recomienda
implementar a futuro una herramienta digital (e.j. app móvil) que remplace el uso físico de
los formatos de verificación, pues representa un riesgo en la custodia de esa información, ya
que son comunes los eventos en los que se extravían o se dañan estos formatos.
3.2.Creación del programa Trash_DTGA
Trash_DTGA es un programa creado por el autor de este documento que sirve principalmente
como herramienta informática para agilizar el proceso de creación de los informes emitidos
por los ingenieros de la DTGA contemplando los ocho componentes del servicio de público
de aseo (Recolección y transporte, Sitios de disposición final, Barrido, Lavado de áreas
públicas, Corte de césped, Poda de árboles, Limpieza de playas, y Base de operaciones).
2 El licenciamiento ambiental solo aplica para las actividades de Tratamiento y Disposición final en la que se
indica las condiciones operativas que debe cumplir el respectivo relleno sanitario.
23
También cabe señalar, que el programa también puede ser usado para realizar consultas
históricas de las condiciones técnico operativas inspeccionadas y para crear indicadores
estadísticos de las Empresas del servicio público de aseo.
Respecto a su codificación, está escrito en Visual Basic 7.1 y funciona a través de las
plataformas conectadas de Excel y Access; se encarga de generar tablas inteligentes con
identificación automática de incumplimientos normativos y con capacidad de generar análisis
gráfico de los registros almacenados.
El programa es alimentado con la información registrada a través de la base de datos del
archivo Access “Formularios.accdb” correspondiente de la información introducida por el
usuario a través de los formularios programados para cada componente del servicio de aseo.
Esta base de datos es sincronizada en el archivo “Generador.xlsm” dentro del cual se ejecuta
el control de preferencias3 para procesar la información obtenida e imprimir resultados
específicos de las empresas del servicio de aseo inspeccionadas.
3.2.1. Esquema funcionamiento
La creación del programa se realizó en dos archivos por separado (Formularios.accdb y
Generador.xlsm), esto para aprovechar las potencialidades que ofrece cada plataforma de
desarrollo: Access y Excel, el primero permite crear interfaces gráficas para bases de datos
de manera muy sencilla y el segundo ofrece todas las herramientas de programación de
Visual Basic, además con la ayuda de las macros.
3 El control de preferencias es el UserForm que ejecuta toda la codificación de las rutinas creadas, este
controlador continente los botones necesarios para que el usuario seleccione específicamente los registros que
quiere generar.
24
El programa Trash_DTGA inicia con el almacenamiento de la información introducida por
el usuario (información recopilada en campo por el ingeniero encargado) por medio de la
interfaz gráfica de los formatos de verificación.
Toda la información introducida es almacenada en la base de datos creada en Access, y
teniendo en cuenta que la información hace referencia a datos técnicos de operación
(toneladas de basura recogida, número de vehículos de recolección, rutas de barrido y de
limpieza, estado de la cobertura de rellenos sanitario, etc.) estos pueden ser utilizados como
referencia estadística, indicadores técnicos y posiblemente para complementar la herramienta
de priorización4 en desarrollo por la Dirección Delegada AAA de la Superservicios (ver
ANEXO 6).
Es importante señalar que actualmente la DTGA no cuenta con un mecanismo de registro de
los datos técnicos recolectados en campo, por lo que para realizar los informes de visita y
demás requerimientos técnicos, es un proceso tedioso ya que la información se encuentra
dispersa, esto conlleva a demorar la elaboración de los informes, a omitir información que
no se puede encontrar y retrasar otros procesos que hacen uso de esa información.
De igual manera esta Dirección Técnica, no cuenta con indicadores técnicos que permitan
identificar el estado de operación de una empresa prestadora, es decir, no existen parámetros
que puedan definirla calidad de prestación del servicio o que puedan ser utilizados para
comparaciones cuantitativas o estadísticas entre las empresas que operan en el país.
4 La herramienta de priorización es un programa creado en Visual Basic (Excel) que analiza parámetros técnicos
de operación de empresas de Acueducto, Alcantarillado y Aseo para determinar su nivel de prioridad en las
visitas de inspección realizadas por la SSPD cada año. La herramienta Trash_DTGA creada por el autor de este
documento, puede complementar dicho programa ya que maneja datos técnicos necesitados en la herramienta
de priorización.
25
Por lo que la creación de este programa conlleva implícitamente la generación de una base
de datos con registros técnicos que puedan contribuir en el desarrollo de indicadores y
análisis estadísticos de operación de todas las empresas vigiladas por la DTGA.
Dicha información registrada es enlazada automáticamente por el documento Excel, cuyo
procesamiento es ejecutado por la codificación hecha en Visual Basic para imprimir las tablas
y gráficas inteligentes con verificación automática de incumplimientos normativos.
De manera general el funcionamiento del programa informático puede representarse en el
siguiente esquema.
Figura 3.1. Esquema de funcionamiento del programa Trash_DTGA. Fuente:autor
El resultado obtenido es un producto que puede ser directamente insertado en los informes
de visita, como se verá más adelante.
Para poder conectar la información registrada del archivo Access se utilizó la herramienta
“Conexiones” de Excel, la cual crea una conexión simultánea con la información externa de
otro documento que puede ser modificada paralelamente.
26
Figura 3.2. Conexión de base de datos Access con Excel. Fuente: autor
Esta herramienta es sencilla de utilizar pues por defecto las preferencias de conexión están
predefinidas, por lo que solamente se debe seleccionar el documento a enlazar y seleccionar
las tablas deseadas, en este caso las correspondientes a los ocho formularios creados.
Figura 3.3. Conexión de cada formulario Access al documento Excel. Fuente: autor
27
Una vez el enlace este realizado, esta conexión queda guardada automáticamente y no se
deberá volverá a realizar, sin embargo, si se desea cambiar de ubicación los archivos
(cambiarlos de carpeta) deberán realizar nuevamente el proceso de conexión.
Para que la conexión se haga de forma automática luego de cambiar de ruta, los archivos
deberán estar juntos en una misma carpeta, de esta manera Excel detectará el archivo
complementario y sugerirá la reconexión de los archivos, por lo que el usuario solo deberá
aceptar el nuevo enlace en los cuadros emergentes.
Figura 3.4. Cuadros emergentes para la reconexión en una nueva ruta. Fuente: autor
Después de generada la conexión, se podrán visualizarán los registros en el archivo Excel.
Figura 3.5. Registros enlazados del archivo Access. Fuente: autor
28
La información obtenida en Excel es una copia en tiempo real del documento externo, es
decir que todo cambio realizado en la fuente, automáticamente se reflejará sobre el Excel.
Los cambios que hagamos en este archivo no afectaran a la fuente original.
El programa es muy sencillo de usar gracias a la codificación de filtros utilizados en el control
de preferencias (se verán más adelante), por lo que permite al usuario manejarlo en dos pasos
mediante los siguientes componentes.
3.2.2. Componente Access
El archivo “Formularios.accdb” es la interfaz gráfica creada en Microsoft Access, que
compila los 8 “Formatos de verificación” creados también por el autor, para registrar los
parámetros técnico-operativos inspeccionados en las visitas en campo por parte de los
ingenieros de la DTGA por medio de los formularios físicos.
Este componente del programa modifica el procedimiento en la recopilación y
almacenamiento de información en el proceso de elaboración de informes.
Figura 3.6. Diagrama de modificación del proceso de creación de informes. Fuente: autor
Como se puede apreciar, en comparación con la figura 2.1. esta herramienta remplaza el
proceso manual de la creación de tablas y análisis por un procesamiento automático (objetos
resaltados). De igual manera se resalta el hecho de que se introducen los formatos de
verificación creados por el autor, que contemplan todos parámetros que se deben verificar en
29
campo, evitando así que por confusión, se sigan omitiendo verificaciones en campo por parte
del ingeniero encargado.
Para su utilización se abre el archivo Formularios.accdb y se diligencian los formularios que
se requieran. A modo de ejemplo a continuación, solo se muestra el formulario de barrido ya
que el funcionamiento es el mismo para todos los demás y tan solo varía la organización del
contenido, estos se muestran en el ANEXO 1.
Figura 3.7. Componentes de los formularios digitales creados por el autor
La utilización de este formulario es muy sencilla, se selecciona un formulario de la lista de
navegación izquierda e inmediatamente se procede a llenar el contenido, una vez finalizado
se presiona “Enter” y se creará un nuevo formulario para continuar las veces que se necesiten.
El control de navegación sirve para dirigirse a un formulario que se haya creado con
anterioridad el cual se pueden editar, eliminar o crear un nuevo registro.
30
Los chequeos de verificación son elementos que se evalúan de forma lógica (verdadero o
falso), cada vez que un cuadro de verificación (CheckBox) es marcado en el formulario, este
queda guardado en la base de datos como un valor booleano, es decir 1 o 2; esto para
posteriormente ser utilizado en la codificación del programa.
El “Formulario de navegación” es el formulario que contiene los formularios de verificación
individuales. Para cada formulario le corresponde su tabla de almacenamiento llamada con
el mismo nombre.
Figura 3.8. Formularios creados y sus respectivas tablas de almacenamiento. Fuente: autor
Una vez introducida la información por el usuario, esta queda almacena en su respectiva base
de datos o “Tabla”.
31
Figura 3.9. Ejemplo de la información de formulario almacenada en Access. Fuente: autor
De manera opcional el usuario puede modificar y manipular esta información con las
múltiples herramientas para análisis de datos que ofrece Access.
3.2.3. Componente Excel
Se codifico el archivo “Generador.xlsm” en Visual Basic para procesar la información
registrada en la base de datos Access. La conexión de estos documentos por separado permite
crear una copia de la base de datos que pueda ser modificada o utilizada por el usuario sin el
riesgo de modificar la información original de Access.
Para su utilización se debe abrir el archivo Generador.xlsm y activar el botón Trash_DTGA
(si es por primera vez, aplicar los cambios mencionados en la figura 3.4.), este ejecutará el
control de preferencias para aplicar la selección necesitada y generar los correspondientes
resultados.
De manera gráfica se muestra la utilización del control de preferencias en orden de ejecución.
32
Figura 3.10. Interfaz gráfica del control de preferencias creada por el autor
1. Lista desplegable para la selección de la empresa.
2. Lista desplegable para la selección de la fecha de inspección realizada.
3. Lista de las fechas seleccionadas (pueden ser eliminadas de manera individual
presionando doble “click”).
4. Selección de componentes a generar.
5. El botón “Tab/Asis” cambia la función que se desea realizar (“Generar tablas” o
“Generar análisis”).
a. El botón “Actualizar” actualiza los cambios hechos en el archivo Access (fuente
original) cuando este es utilizado simultáneamente con el archivo Excel.
6. Estos botones generan las tablas y/o análisis en hojas nuevas, por separado, en el
archivo Excel.
7. Borra las hojas nuevas creadas en el documento Excel.
33
Los resultados obtenidos dependen de los botones ejecutados, “Generar tablas” o “Generar
análisis”.
Botón Generar tablas
Este botón automáticamente genera una secuencia de tablas con toda la información acerca
del (los) registro(s) seleccionado(s) que describe la información técnica verificada en campo
y automáticamente muestra el incumplimiento normativo que se haya incumplido en dicha
visita. De igual manera indica los elementos de dotación con los que no contaban lo operarios
al momento de la inspección (gorra de sol, guantes y canilleras).
En la siguiente figura se muestra un ejemplo de tabla generada, en que se observan los
artículos normativos incumplidos y el estado de la dotación de los operarios verificados.
Figura 3.11. Ejemplo de tabla generada para el componente Corte de césped. Fuente: autor
En la siguiente figura se muestra otro tipo de tabla generada, en la que los parámetros
normativos son impresos en la misma tabla para su comparación visual por el usuario, y
automáticamente marcados de color azul para su rápida identificación.
34
Figura 3.12. Ejemplo de tabla generada para el componente de Recolección y transporte. Fuente: autor
De esta manera, el control “Trash_DTGA” le permite al usuario crear tablas de cualquier
componente de aseo de forma rápida y con análisis automático de incumplimientos
normativos, listos a ser utilizados en los informes de visita.
35
Botón Generar análisis
Este botón genera gráficas dinámicas de acuerdo a los componentes de aseo seleccionadas
de una empresa sin tener en cuenta las fechas de visita, lo que resulta en una gráfica general
que contempla todos los registros técnicos de una empresa para que sean analizados a criterio
del usuario.
Para conformar las gráficas dinámicas se escogieron los parámetros de chequeo5 de cada
registro (Figura 3.13), de esta manera se realiza una estadística sencilla de los presuntos
incumplimientos normativos para cada uno de los parámetros de verificación, con posibilidad
de ser filtrados por empresas, fechas, componentes de aseo y elementos de verificación.
Figura 3.13. Ejemplo de gráfica dinámica generada. Fuente: autor
5 Refieren a los cuadros de chequeo provenientes de los formularios de Access para cada componente de aseo,
los cuales indican el cumplimiento o no, de los parámetros de verificación.
36
En esta figura se observa la gráfica dinámica generada para el componente de Recolección y
transporte, en este se evalúa el estado de funcionamiento del vehículo (ver ANEXO 1.6) El
resultado obtenido es una estadística que muestra la sumatoria de incumplimientos de todos
los registros para la empresa “Ejemplo SAS ESP”; en este ejemplo el incumplimiento más
frecuente es la barra de color azul con valor de 4 (sumatoria del parámetro incumplido), es
decir que, de todos los vehículos inspeccionados de esa empresa, el parámetro “Estribos
antideslizante y manijas en buen estado” es el incumplimiento más reiterativo.
Si se requiere una estadística más específica, por ejemplo, incumplimientos por vehículo, por
fecha, por ruta etc. Estos cambios pueden ser realizados de manera instantánea en la barra de
filtros ubicada en la parte superior del gráfico.
De esta forma “Trash_DTGA” le permite al usuario crear estadísticas de cualquier empresa
y de cualquier parámetro de forma rápida y útil.
En conclusión, el programa Trash_DTGA creado por el autor del presente documento,
permite almacenar y procesar datos técnicos de la operación del servicio púbico de aseo de
manera ágil y organizada para la elaboración de informes de visita; cabe mencionar que,
aunque el programa no genera estadísticas especializadas, brinda los elementos necesarios
para que a futuro la DTGA desarrolle indicadores y estadísticas precisas para valorar la
operación técnica de las empresas prestadoras.
3.3.Programación y codificación
El programa se creó con base a dos funcionalidades principales “Generar tablas” y “Generar
análisis” las cuales están codificadas en procedimientos (rutinas) y funciones (subrutinas),
estos están almacenadas en módulos separados que posteriormente son llamados y ejecutados
37
en el UserForm (control de preferencias); este funciona como interfaz gráfica del programa
y controla todas las funcionalidades seleccionadas por el usuario.
Además de las funcionalidades principales, también se hace uso de otros procedimientos que
ayudan en la interacción del usuario con el programa mencionadas anteriormente (figura
3.10), esto para brindarle mayor control al usuario sobre lo que desee realizar. Para poder
ejecutar todos los procedimientos codificados se crearon cuatro Botones, un ToggleBotton,
dos ComboBox, un ListBox y ocho CheckBox, estos se muestran en la siguiente gráfica.
Figura 3.14. Objetos creados en el UserForm (control de preferencias). Fuente: autor
Cada botón y elemento utilizado es un objeto del entorno de Visual Basic, por defecto estos
traen sus propios nombres, pueden ser cambiados, pero para para efectos prácticos en la
creación de este programa se conservaron sus nombres.
Cada objeto que compone este UserForm tiene su propia codificación y conexión con los
módulos creados, a continuación, se explican estos últimos.
38
Figura 3.15. Módulos de programación creados. Fuente: autor
Se crearon ocho módulos correspondientes para cada actividad del servicio de aseo, ya que
cada Formato de verificación tiene sus características y parámetros diferentes a evaluar, por
lo que naturalmente su codificación es distinta para cada componente.
A parte de los módulos mencionados, se crearon los módulos Análisis y Control_Trash, el
primero encargado de la generación de las gráficas dinámicas y el otro, de la ejecución de
interfaz gráfica.
3.3.1. Diagramas de flujo y rutinas del programa
El programa se elaboró basado en dos algoritmos principales: algoritmo de Búsqueda Lineal
Anidado y Algoritmo de Verificación (búsqueda y comparación) explicados a detalle con los
algoritmos utilizados en el Manual metodológico del programa, adjunto al final del presente
documento.
39
El programa inicia al momento del ingreso de la información en los Formatos de verificación
del archivo Access, luego estos datos automáticamente son sincronizados y organizados en
el archivo Excel (Generador.xlsm). una vez iniciado el control de preferencias (UserForm),
se inicializan las rutinas correspondientes para las funcionalidades Generar tablas y Generar
análisis.
Para la primera rutina (Generar tablas) se creó un procedimiento para organizar la
información a imprimir en pantalla, con ayuda de la herramienta macros. Seguidamente,
mediante codificación de comparaciones lógicas entre los registros y la normativa insertada
dentro del código, se crean subrutinas específicas para cada módulo. Por último, se crea otro
procedimiento para darle el estilo y el formato a las tablas construidas (con ayuda de la
herramienta macros) y se imprimen en pantalla.
Para la segunda rutina (Generar análisis), se crean procedimientos de organización de datos
para cada componente de aseo y se imprimen en pantalla por medio de tablas dinámicas.
A continuación, se muestra el diagrama correspondiente.
40
Figura 3.16. Diagrama de flujo del programa Trash_DTGA.
No obstante, justo antes de la ejecución de dos rutinas principales se deben inicializar todas
las variables del UserForm, esto para cargar toda la información del nombre de las empresas
registradas en la base de datos y el registro de fechas en el que se han hecho visitas de
inspección para cada empresa. Por defecto los UserForm tienen su modulo interno para
programar sus eventos propios.
Los eventos utilizados fueron: “Initialize” para insertar los botones de Windows (minimizar
y maximizar), para que se carguen cuando inicie el programa ya que estos no vienen por
defecto (ANEXO 7.1.2). Y el evento “Activate” para llenar el ComboBox2 con el nombre de
41
las empresas registradas, para que las despliegue cuando el formulario haya cargado (ANEXO
7.1.1).
Por lo anterior se crea un flujograma para inicializar los valores de los objetos dentro del
UserForm.
Figura 3.17. Diagrama de flujo del UserForm. (ev)=evento, (obj)=objeto, (Sub)=procedimiento.
Una vez cargados el UserForm y el ComboBox2, se procede a programar los eventos de lo
demás objetos siguiendo su orden de ejecución.
Los objetos que siguen son: la lista desplegable de las fechas (Combobox1) y la lista de
fechas seleccionadas (ListBox1), el primer objeto debe cargarse de las fechas encontradas en
el registro cuando sea seleccionada la empresa y el segundo objeto se encarga de almacenar
las fechas seleccionadas. Para realizar estas acciones se crearon algunas funciones
(subrutinas), presentadas en el siguiente diagrama.
42
Figura 3.18. Diagrama de flujo de la ejecución de eventos de los objetos del UserForm.
(Fnc)=función, (Sub)=proceso, (-----) =evento opcional.
Las funciones mostradas en el diagrama fueron creadas para ahorrar código, ya que son
utilizadas en distintas partes del programa, por lo que solo se deben llamar para ejecutarlas.
La función filtrar_empresa (ANEXO 7.3.4) busca en todas las hojas de Excel el nombre de la
empresa seleccionado en el ComboBox2, si existe esa empresa en la hoja iterada
(correspondiente a un componente del servicio de aseo), busca las fechas de visita que se
hicieron para esa empresa y las introduce en el ComboBox1. De igual manera si se encuentra
un registro o más de dicha empresa, se activará el CheckBox correspondiente para el
componente de aseo en el que se está buscando.
El procedimiento “Ordenar_fechas” (ANEXO 7.3.5) elimina las fechas duplicadas del
ComboBox1 y las ordena en orden descendente.
Una vez esté lleno el ComboBox1 (correspondiente a las fechas de visita encontradas para
una empresa), se seleccionan las fechas a consultar por medio del evento “Click” con lo cual
43
se añadirá dicha fecha al ListBox1 (ANEXO 7.1.3) y automáticamente se ejecutará la función
filtros_fechas.
La función filtros_fechas (ANEXO 7.3.7) recorrerá de nuevo todas las hojas de los
componentes de aseo y buscará el nombre de la empresa y la fecha seleccionada, si existe ese
registro en la hoja inspeccionada, su respectivo CheckBox se activará o de lo contrario se
desactivará.
Finalmente, por medio del evento “DobleClick” del ListBox1 (ANEXO 7.1.9) se podrán
eliminar fechas que ya no se deseen. De nuevo, automáticamente se ejecutará la función
filtros_fechas para actualizar los CheckBox.
Se hace uso de los CheckBox para indicarle de forma visual al usuario, cuales registros están
disponibles y que componentes del servicio de aseo pueden ser generados.
3.3.2. Botón Generar tablas
Este objeto ejecuta los módulos de los componentes de aseo según el estado (activado o
desactivado) de su CheckBox correspondiente (ANEXO 7.1.5).
Cada módulo tiene la estructura general de ejecución de la figura 3.16, sin embargo, el
código tiene variaciones debido a que en cada componente de aseo se verifican aspectos
diferentes, por lo tanto, la organización y apariencia se codifica de manera distinta en cada
módulo (ANEXO 7.4)
Dentro del código de cada módulo se insertaron los artículos normativos de verificación para
que de forma automática las tablas generadas indiquen los parámetros incumplidos en las
visitas de inspección; de igual manera se programaron respuestas que señalan los elementos
de verificación portados por los operarios durante la visita de inspección.
44
Se utilizaron los valores boléanos devueltos en los cuadros de chequeo de los formularios
Access, como variables numéricas de comparación y desencadenación de fragmentos de
código, encargados de evaluar los incumplimientos normativos y de los elementos de
verificación de los operarios (ANEXO 7.4.1-2-3-4-5-6).
3.3.3. Botón Generar análisis
Ejecuta los procedimientos del módulo “Análisis” de acuerdo a los componentes de aseo
según el estado (activado o desactivado) de su CheckBox correspondiente (ANEXO 7.1.8)
Cada procedimiento tiene la estructura de la figura 3.16, teniendo en cuenta que la gráfica
resultante es distinta para cada uno, el código varía para cada procedimiento del módulo.
Para la generación de las gráficas dinámicas se grabó una macro según las características de
ordenamiento necesitadas, las cuales se pueden ver en el ANEXO 7.2.
3.3.4. Botón “Tab/Asis”
Como objeto auxiliar se programó el botón de alternancia “Tab/Asis”, para que desactive el
botón “Generar tablas”, el ComboBox1 y el ListBox1, ya que no se utilizan en la ejecución
del otro botón que paralelamente se activa (Generar análisis) para ser seleccionado por el
usuario. Lo anterior con el fin de que el usuario entienda que las gráficas resultantes no
contemplan fechas específicas.
El código de este objeto se muestra en el ANEXO 7.1.10.
3.3.5. Botón Borrar
Este botón se encarga de borrar las hojas creadas en la generación de tablas y la generación
de análisis. Con el fin de que el usuario pueda hacer múltiples generaciones sin que haya
conflicto en Excel por hojas repetidas (ANEXO 7.1.7).
45
3.3.6. Botón Actualizar
Este botón actualiza los cambios que se hayan realizado paralelamente en los formularios de
verificación del archivo Access, de igual manera ejecuta las funciones filtrar_empresa y
filtros_fecha para actualizar los CheckBox (ANEXO 7.1.6).
Finalmente es importante mencionar que el código creado para este programa es susceptible
a optimización y mejoras, ya que como se puede evidenciar en los módulos codificados, son
bastantes las líneas de código que se repiten y que pueden ser desarrolladas como una función
aparte.
Por otra parte, se recomienda a futuro se pueda conectar este programa con el programa
“Herramienta de priorización” en desarrollo por la Dirección Delegada AAA, ya que manejan
el mismo entorno de desarrollo de Excel y procesan datos similares que pueden ser utilizados
de manera más especializada.
4. CONCLUCIONES Y RECOMENDACIONES
Si bien el programa creado no genera un producto de estadísticas especializadas, brinda los
elementos necesarios para que a futuro la DTGA desarrolle indicadores y estadísticas
precisas para valorar la operación técnica de las empresas prestadoras de manera más
objetiva.
Por otra parte, los formatos de verificación creados contemplan la mayor cantidad de
variables a inspeccionar por parte de los ingenieros encargados en las visitas de inspección y
de igual manera agiliza el proceso de la toma de datos en campo, no obstante, se recomienda
implementar a futuro una herramienta digital (e.j. app móvil) que remplace el uso físico de
46
los formatos de verificación, pues representa un riesgo en la custodia de esa información, ya
que son comunes los eventos en los que se extravían o se dañan estos formatos.
Respecto a la codificación del programa, este puede ser optimizado y desarrollado de mejor
manera, también se recomienda que pueda ser conectado con el programa en desarrollo por
la Dirección Delegada AAA para realizar un mejor procesamiento de la información técnica
que manejan estos dos programas.
5. ANEXOS
1. Formatos de verificación
2. Detalle de funciones desarrolladas en la SSPD
3. Instructivo de diligenciamiento de formatos de verificación
4. Tablas generadas por “Trash_DTGA”
5. Graficas generadas por “Trash_DTGA”
6. Herramienta de priorización (delegada AAA)
7. Códigos (funciones y procedimientos)
47
6. REFERENCIAS
• Decreto 1077 de 2015 “Actividades del servicio público de Aseo”. Ministerio de
Vivienda, Ciudad y Territorio (MVCD)
• Ley 142 de 1994 “por la cual se establece el régimen de los servicios públicos
domiciliarios y se dictan otras disposiciones.”. Congreso de la República de
Colombia.
• Resolución CRA 720 de 2015 “Regulación tarifaria del servicio público de Aseo”.
Comisión de Regulación de Agua Potable de Saneamiento Básico.
• Decreto 1784 de 2017 “(…) lo relativo con las actividades complementarias de
tratamiento y disposición final de residuos, sólidos en el servicio público de aseo.”
• Resolución SSPD 20151300047005 de 2015 ”… relación con el Registro Único de
Prestadores (RUPS) para su inscripción, actualización y cancelación.”.
Superintendencia de Servicios Públicos Domiciliarios
• Resolución SSPD 20101300048765 de 2010 “… respecto de las solicitudes de
información al Sistema Único de Información - SUI de los servicios públicos de
Acueducto, Alcantarillado y Aseo…”. Superintendencia de Servicios Públicos
Domiciliarios
• Resolución SSPD de 20184000018825 de febrero de 2018. “Por la cual se modifica
el cronograma de cargue de la Resolución número SSPD 20174000237705 del 5 de
diciembre de 2017.”. Superintendencia de Servicios Públicos Domiciliarios
• Reglamento Técnico del Sector de Agua Potable y Saneamiento Básico – RAS -Titulo
F.” Sistemas de Aseo urbano”. Ministerio de Vivienda, Ciudad y Territorio (MVCD)
48
MANUAL METODOLÓGICO DE LA CREACIÓN DEL PROGRAMA
COMPUTACIONAL PARA AGILIZAR LA ELABORACIÓN DE INFORMES
DE VISITA DE LA DTGA.
1. Objetivo
Crear una herramienta informática que permita agilizar la generación de tablas de hallazgos
y análisis cuantitativo de los incumplimientos normativos en la prestación del servicio
público de aseo de las ESP para implementar en los informes de visita a cargo de los
ingenieros de la DTGA.
2. Alcance
Este manual será utilizado para programar la creación de tablas con decisión normativa y
gráficas de análisis cuantitativo por medio de algoritmos de búsqueda y ordenación, teniendo
en cuenta los parámetros técnicos evaluados por los ingenieros de la DTGA en las visitas en
campo hacia las ESP. Este manual es aplicable para las empresas del servicio público de aseo
mayores a 5.000 suscriptores.
3. Prejuicios de este Manual
Se da por entendido que el lector de este manual conoce todos los parámetros técnicos
evaluados para cada uno de los componentes del servicio de aseo explicados en el documento
principa y en los ANEXOS 1 & 3. Este manual es elaborado para lectores con conocimientos
básicos de programación y familiarizado con la utilización de Macros o de Excel Avanzado.
4. Fundamento de programación en vb
Microsoft Excel es un programa que se basa en la operación de datos en matrices de múltiples
parámetros y métodos que permite manipular en cualquier momento la información
suministrada por medio de una interfaz llamada hoja de cálculo, además de utilizar funciones
de cálculo, este software permite analizar datos de forma gráfica y hacer evaluaciones lógicas
por medio de funciones de decisión.
Excel utiliza el lenguaje de programación Visual Basic (VB), desarrollado por Microsoft en
1991 que es catalogado como lenguaje de alto nivel por ser de fácil entendimiento para
49
usuarios inexpertos en programación, para usuarios de mayor destreza Excel ofrece la
ejecución de “macros”, procedimientos paso a paso que generan un código en lenguaje Basic
el cual puede ser modificado para realizar tareas automáticas en el entono de las hojas de
cálculo.
Otra de las herramientas utilizadas son las gráficas dinámicas, esta es una herramienta que
permite la visualización de datos provenientes de una tabla en forma de una gráfica de barras,
que puede ser modificada de forma instantánea con ayuda de un cuadro auxiliar que permite
la filtración de datos específicos.
4.1. Características de la programación en Visual Basic
Visual Basic es un lenguaje de programación interpretado (no requiere compilador)
íntimamente relacionado con la utilización de objetos, ya que principalmente se desarrolla en
el entorno de Excel e interfaces gráficas denominadas Formularios. Cada formulario tiene su
propia ventana de desarrollo y se programa a través de botones, controles y gráficos.
En Visual Basic la programación de objetos se entiende como elementos que poseen
propiedades y métodos, estos últimos son palabras reservadas para realizar una acción
determinada. En este caso se entiende por objeto los elementos que componen el entorno de
Excel, los elementos de un formulario, y el mismo formulario, por ejemplo, una celda, es un
objeto que tiene propiedades (ancho, alto, color) y unos métodos (almacenar variables,
convertir el formato de variables, etc.); esto permite crear aplicaciones funcionales de manera
muy rápida y eficiente, puesto que además de utilizar los objetos de los formularios, se
utilizan los objetos del entrono Excel sin necesidad de ser creados desde cero.
Para modificar las propiedades de un objeto se debe llamar por medio de un punto (“.”) y
asignarle un el nuevo valor utilizando el operador igual (“=”). La sintaxis queda de la
siguiente forma:
Objeto.propiedad = valor o variable
O en caso contrario, para asignar una propiedad a una variable
variable = objeto.propiedad
50
De igual manera, Visual Basic tiene los mismos elementos de programación que la mayoría
de lenguajes.
4.2. Algoritmo de búsqueda
Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento con ciertas
propiedades dentro de una estructura de datos; por ejemplo, ubicar el registro correspondiente
a cierta persona en una base de datos.
Búsqueda lineal (secuencial)
Consiste en recorrer y examinar cada uno de los elementos de una lista (array) hasta encontrar
el o los elementos buscados, o hasta que se han mirado todos los elementos de la lista (array).
Este es el método de búsqueda más básico y fácil de usar, sobre todo si la información está
organizada; se puede mostrar este algoritmo en el siguiente código:
Procedimiento búsqueda
Para i=0 y j=0 mientras i<n hacer
Si (array[i] es igual al elementoBuscado) entonces
{
La solución es array[j]=i;
}
Si no es igual entonces
j=j+1
fin si
fin para
fin procedimiento
4.3.Algoritmo de Ordenamiento
Los algoritmos de ordenamiento se basan en la comparación de los valores consecutivos de
una lista desordenada, estos son comparados de par en par en orden ascendente o
descendente, una vez son comparados se usa una variable auxiliar para intercambiar de
posición los elementos de la lista hasta haber recorrido toda la lista.
51
Método de la burbuja
Es un método utilizado principalmente para ordenación numérica, y puede ser usado para
ordenación alfabética siempre y cuando se defina anteriormente el tipo de variable a evaluar.
Se debe crear una función que recorra el array y compare los elementos por medio de la
sentencia if.
Diagrama del método de la burbuja
Se realiza el siguiente seudocódigo como base para la codificación de las subrutinas en los
ComboBox del formulario.
52
procedimiento DeLaBurbuja (a0, a1, a2, …, a( n - 1 ))
para i=1 hasta n hacer
para j=0 hasta (n – i) hacer
si a(j) > a(j+1) entonces
aux= a(j)
a(j) = a(j+1)
a(j+1) = aux
fin si
fin para
fin para
fin procedimiento
De manera opcional se puede crear otra función aparte que intercambia los datos comparados
haciendo uso de la variable auxiliar.
La ordenación de los elementos del array se hace de forma secuencial, por lo que, si hay
alguna interrupción del algoritmo, este ordenará los datos hasta donde se haya ejecutado.
4.4.Algoritmo de eliminación de datos duplicados
Es un método basado en la comparación de datos mediante la ayuda de un array auxiliar; el
array original se duplica y es evaluado del elemento menor al mayor, entre los dos arrays,
una vez se encuentre el mismo elemento en los dos arrays, es eliminado del array original y
continua con el siguiente elemento del array original.
Procedimiento eliminaciónDuplicados
Para x=0 hasta el último elemento del array n
'Si el elemento del array es igual al array temporal
‘ y
If Arreglo(x) = TempArray(z) And Y <> x Then
'Entonces Eliminamos el valor duplicado
Arreglo(Y) = ""
End If
z = z + 1
Next Y
Next x
For i = 0 To q - 1
Next i
53
'Recorremos el array.
'la variable de la colección debe ser de tipo Variant
For Each elemento In Arreglo
'Si el elemento es distinto de una cadena vacía
'lo agregamos al ComboBox
If elemento <> "" Then Trash.ComboBox2.AddItem (elemento)
Next
5. Definiciones
Elementos de programación admitidos en Visual Basic.
Variables: enteros, flotantes, boléanos, caracteres y cadenas.
Operadores: aritméticos, relacionales, comparativos y lógicos.
Sentencias de Control: “IF“, ”FOR”, “WHILE” “DO”, ”SELECT CASE” y “FOR EACH”.
Métodos: son palabras reservadas para realizar una determinada acción, se aplican a
determinados objetos. Por ejemplo, el método “with” de una celda, por medio del cual se
puede cambiar aspectos visuales, tales como su color o tipo de fuente.
Eventos: se refieren a los acontecimientos que le pueden suceder a un objeto. Por ejemplo,
el evento en que una celda es presionada con “Click” o, es enfocada o desenfocada por el
teclado.
Funciones: son fragmentos de código que ejecutan una acción por medio de parámetros cuyo
valor es asignado directa o indirectamente por un usuario.
Procedimientos: Son fragmentos de código que ejecutan una acción específica y que puede
ser llamada por otro procedimiento.
Clases: son segmentos de código que definen las variables, las propiedades, los
procedimientos y los eventos de un objeto. Para crear un objeto debe existir su respectiva
clase, a esto se le llama instancia.
Módulos: son áreas de desarrollo que contienen funciones y procedimientos, estos sirven
para organizar el código y ejecutarlo de manera controlada.
54
Formularios: son objetos que actúan como interfaz visual para que el usuario interactúe con
una información por medio de controles y objetos gráficos. Los formularios tienen el nombre
de “UserForm” y se diseñan en el entorno de desarrollo “Visual Basic para aplicaciones” de
Excel.
ComboBox: objeto que muestra o guarda una lista desplegable de elementos.
ListBox: objeto que guarda una lista de elementos.
CheckBox: objeto en forma de cuadro de chequeo para devolver un valor verdadero o falso.
Estos valores lógicos (verdadero / falso) se denominan boléanos, los cuales obtienen un valor
al ser o no seleccionados, el valor adquirido queda guardado en la base de datos de forma
numérica.
Cuadro seleccionado (SÍ) = VERDADERO = 0
Cuadro no seleccionado (NO) = FALSO = 1
CommandButton: objeto en forma de botón para ejecutar un fragmento de código.
ToggleButton: objeto en forma de botón de activación o desactivación que ejecuta un
fragmento de código.
6. CONTENIDO
Las funciones principales del programa se basarán en la búsqueda y ordenamiento de la
información, por lo que se crean dos algoritmos utilizados en todos los módulos de
programación.
6.1.Algoritmo de Búsqueda Lineal Anidado
Modificado del algoritmo original de búsqueda lineal, este algoritmo se encarga de realizar
búsquedas matriciales de dos dimensiones, es decir, en sentido horizontal y vertical
(anidado); funciona con la ejecución de dos ciclos For en orden jerárquico dependiendo de
la codificación, por lo que puede ser modificado para realizar la búsqueda viceversa (vertical-
horizontal).
55
Este algoritmo incorpora las funciones creadas Cont_Registros, Cont_Filas y el método
ComboBox.Count. Las primeras dos funciones y el método (propio de VB) mencionado,
utilizan algoritmos de búsqueda lineal sencilla. Estas funciones son explicadas en el la
sección 3.3.1 del documento principal y el código fuente en el anexo 7.3.
El algoritmo contempla el subproceso para dar formato a las tablas generadas (posición,
delineado y tipo de letra), el cual es creado de manera particular para cada módulo mediante
la herramienta Macros. El algoritmo concluye con ciclo para inserta nuevos registros, cuyo
valor varía dependiendo de la función Cont_Registros.
57
6.2. Algoritmo de Verificación (búsqueda y comparación)
Este algoritmo es ejecutado dentro del algoritmo anterior y realiza el proceso de búsqueda de
registros y la comparación con la normativa insertada dentro del código. Los elementos
encontrados durante la iteración son duplicados desde las celdas de la hoja de cálculo Excel
desde la base de datos original a la hoja final de tablas generada. Para manipular estas celdas
se codifica con las palabras reservadas Range() y Cells() las cuales permiten la manipulación
de los registros a través de condenas matriciales.
Para determinar el cumplimiento normativo se insertaron por defecto frases a imprimir en
pantalla que contienen las palabras “cumple” o “incumple” y su respectiva norma de acuerdo
al valor obtenido de las variables “Falsos” y “Verdad” ejecutados por las condicionales
codificadas.
Una vez son evaluados los parámetros técnicos, se entra en el siguiente bucle que busca los
registros de la dotación en cada celda y los duplica en la su nueva posición de la nueva hoja
creada con el respectivo nombre del módulo.
A continuación, se muestra el algoritmo en su totalidad.
59
De lo anterior, se codifica el algoritmo para analizar los incumplimientos que pueden
presentar los operarios encargados de las actividades de limpieza, utilizando el siguiente
código.
1. 'OPERARIO 1 2. If Not IsEmpty(Sheets("Lavado_áreas").Cells(i, 10)) Then 3. Sheets("Tabla_lavado").Range("E6") =
Sheets("Tabla_lavado").Range("E6") + "El operario de " +
Sheets("Lavado_áreas").Cells(i, 10)
4. 5. For s = 13 To 21 6. If Sheets("Lavado_áreas").Cells(i, s) = 0 Then 7. falsos = falsos + 1 8. End If 9. Next s 10.
11. If falsos > 0 Then
12. Sheets("Tabla_lavado").Range("E6") =
Sheets("Tabla_lavado").Range("E6") + " no contaba con "
13. End If
14. For q = 13 To 21
15. If Sheets("Lavado_áreas").Cells(i, q) = 0 Then
16. Sheets("Tabla_lavado").Range("E6") =
Sheets("Tabla_lavado").Range("E6") +
Sheets("Lavado_áreas").Cells(1, q) + ", "
17. Else
18. If Sheets("Lavado_áreas").Cells(i, q) = -1 Then
19. verdad = verdad + 1
20. If verdad = 9 Then
21. Sheets("Tabla_lavado").Range("E6") =
Sheets("Tabla_lavado").Range("E6") + " contaba con los
elementos de seguridad y elementos de trabajo"
22. End If
23. End If
24. End If
25.
26. Next q
27. verdad = 0
28. falsos = 0
29. If Not IsEmpty(Sheets("Lavado_áreas").Cells(i, 22)) Then
30. Sheets("Tabla_lavado").Range("E6") =
Sheets("Tabla_lavado").Range("E6") + " además contaba con " +
Sheets("Lavado_áreas").Cells(i, 22)
31. End If
32. End If
Este código es aplicado sobre todos los modulo y duplicado en los casos donde los
operarios son más de uno.
60
7. REFERENCIAS
• Alfonso Mancilla, Jose R. Capacho, Jesus. Diseño y construcción de algoritmos.
Universidad del Norte (Colombia). 2014.
• Donald E. Knuth. El arte de programar ordenadores. Algoritmos fundamentales
(volumen I). Stanford University. Editorial Reverté S.A. 2002.
• Lluís Duran, Luis Durán Rodríguez. Bases de datos con Visual Basic. MARCOMBO
S.A. (España). 2007.