Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bu It Ra Go Segura Johan Manuel 2019
Bu It Ra Go Segura Johan Manuel 2019
DOMICILIARIOS.
INGENIERÍA SANITARIA
BOGOTÁ D.C.
2018
DESARROLLO DE FORMULARIOS PROGRAMADOS COMO HERRAMIENTA
DOMICILIARIOS.
PROYECTO DE PASANTÍA
DIRECTOR INTERNO
DIRECTOR EXTERNO
INGENIERÍA SANITARIA
BOGOTÁ D.C.
2018
1
CONTENIDO
INTRODUCCIÓN .............................................................................................................5
1. OBJETIVOS...............................................................................................................7
2
3.1.2. Fuente de información para la creación de los formularios estandarizados
5. ANEXOS ..................................................................................................................46
6. REFERENCIAS .......................................................................................................47
3
AGRADECIMIENTOS
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.
Por último, a mi padre Juan y a las tres mujeres que le dan sentido a mi vida: Rosalba,
Tatiana y Andrea.
4
INTRODUCCIÓN
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
Para llevar a cabo las visitas e informes de inspección hacia las ESP, la DTGA actualmente
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
insuficiente, solo existen para dos de los ocho componentes del servicio de aseo y se requiere
5
Si bien el uso de estas listas es una herramienta importante para la organización de la
Por las razones anteriores, el autor del presente documento creó un programa computacional
realización de los informes de visita emitidos por la DTGA. Este programa consta de dos
Para la creación de este programa se tuvieron en cuenta las actividades realizadas durante los
de aseo de las ESP, realizados por el autor través de los mecanismos de verificación técnica
6
1. OBJETIVOS
1.1.Objetivo general
1.2.Objetivos específicos
7
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
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
2015, parámetros revisados a través de “listas de chequeo” físicas, que contiene información
• Recolección.
• Transporte.
• 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.
8
• Disposición final.
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
El informe final es radicado y enviado a la empresa prestadora para que dé respuesta a los
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
9
2.2.1. Excel
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
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
“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
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
10
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
11
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
propiedades y métodos, estos últimos son palabras reservadas para realizar una acción
12
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
siguiente forma:
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
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
En el entorno de desarrollo de Visual Basic, estos eventos son ventanas predeterminadas para
Visual Basic ofrece cinco elementos para crear una aplicación, definidas a continuación:
13
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:
Procedimientos: Son fragmentos de código que ejecutan una acción específica y que puede
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
Módulos: son áreas de desarrollo que contienen funciones y procedimientos, estos sirven
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
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:
14
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
numérica.
fragmento de código.
2.2.3. Access.
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
15
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.
16
3. RECOPILACIÓN, ANÁLISIS Y PROCESAMIENTO DE LA
INFORMACIÓN
tenida en cuenta para la creación del programa computacional, durante las actividades
Las actividades realizadas durante los cinco meses de pasantía fueron correspondientes a las
de Información (SUI)) atribuidos a la DTGA hacia las empresas del servicio público de aseo
de todo el país.
17
Tabla 1. Plan de trabajo de práctica de pasantía
Plan de trabajo
Mes 5
Mes 1
Mes 2
Mes 3
Mes 4
Mecanismo de Fecha Inicial Fecha fin
Objetivo Actividades o tareas
seguimiento de actividad actividad
01/02/2018
19
Según lo acordado con el tutor externo de pasantía (Directora de la DTGA) se estableció el
Semanas
Actividad 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
Elaboración de informes (de acuerdo a los hallazgos de las visitas de inspección 4 realizados
Durante la realización de estas actividades y por lo sugerido por los ingenieros de la DTGA,
20
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
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
manera física para ser llevados a campo por los ingenieros y de manera digital para que los
Trash_DTGA.
verificación técnica
indicado en la referencia normativa correspondiente que rige a las empresas prestadoras del
• Resolución CRA 720 de 2015 “Regulación tarifaria del servicio público de Aseo”
21
• Resolución 1096 de 2000 “Reglamento Técnico para el Sector de Agua Potable y
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
inspeccionar por parte de los ingenieros encargados en las visitas de inspección y agiliza el
implementar a futuro una herramienta digital (e.j. app móvil) que remplace el uso físico de
que son comunes los eventos en los que se extravían o se dañan estos formatos.
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
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.
22
También cabe señalar, que el programa también puede ser usado para realizar consultas
Respecto a su codificación, está escrito en Visual Basic 7.1 y funciona a través de las
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
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
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.
23
El programa Trash_DTGA inicia con el almacenamiento de la información introducida por
limpieza, estado de la cobertura de rellenos sanitario, etc.) estos pueden ser utilizados como
ANEXO 6).
los datos técnicos recolectados en campo, por lo que para realizar los informes de visita y
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
que puedan definirla calidad de prestación del servicio o que puedan ser utilizados para
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.
24
Por lo que la creación de este programa conlleva implícitamente la generación de una base
procesamiento es ejecutado por la codificación hecha en Visual Basic para imprimir las tablas
siguiente esquema.
El resultado obtenido es un producto que puede ser directamente insertado en los informes
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
25
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
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
26
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
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á
Figura 3.4. Cuadros emergentes para la reconexión en una nueva ruta. Fuente: autor
27
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.
de preferencias (se verán más adelante), por lo que permite al usuario manejarlo en dos pasos
compila los 8 “Formatos de verificación” creados también por el autor, para registrar los
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
verificación creados por el autor, que contemplan todos parámetros que se deben verificar en
28
campo, evitando así que por confusión, se sigan omitiendo verificaciones en campo por parte
que el funcionamiento es el mismo para todos los demás y tan solo varía la organización del
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
29
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
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”.
30
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
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
(si es por primera vez, aplicar los cambios mencionados en la figura 3.4.), este ejecutará el
resultados.
31
Figura 3.10. Interfaz gráfica del control de preferencias creada por el autor
“Generar análisis”).
6. Estos botones generan las tablas y/o análisis en hojas nuevas, por separado, en el
archivo Excel.
32
Los resultados obtenidos dependen de los botones ejecutados, “Generar tablas” o “Generar
análisis”.
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
visita. De igual manera indica los elementos de dotación con los que no contaban lo operarios
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
33
Figura 3.12. Ejemplo de tabla generada para el componente de Recolección y transporte. Fuente: autor
34
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
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.
35
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
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
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
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,
para que a futuro la DTGA desarrolle indicadores y estadísticas precisas para valorar la
3.3.Programación y codificación
El programa se creó con base a dos funcionalidades principales “Generar tablas” y “Generar
estos están almacenadas en módulos separados que posteriormente son llamados y ejecutados
36
en el UserForm (control de preferencias); este funciona como interfaz gráfica del programa
Además de las funcionalidades principales, también se hace uso de otros procedimientos que
3.10), esto para brindarle mayor control al usuario sobre lo que desee realizar. Para poder
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
Cada objeto que compone este UserForm tiene su propia codificación y conexión con los
37
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
interfaz gráfica.
algoritmos utilizados en el Manual metodológico del programa, adjunto al final del presente
documento.
38
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
se inicializan las rutinas correspondientes para las funcionalidades Generar tablas y Generar
análisis.
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
para cada componente de aseo y se imprimen en pantalla por medio de tablas dinámicas.
39
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
inspección para cada empresa. Por defecto los UserForm tienen su modulo interno para
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
40
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.
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
las fechas seleccionadas. Para realizar estas acciones se crearon algunas funciones
41
Figura 3.18. Diagrama de flujo de la ejecución de eventos de los objetos del UserForm.
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
(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
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
42
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
desactivará.
Finalmente, por medio del evento “DobleClick” del ListBox1 (ANEXO 7.1.9) se podrán
Se hace uso de los CheckBox para indicarle de forma visual al usuario, cuales registros están
Este objeto ejecuta los módulos de los componentes de aseo según el estado (activado o
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
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
43
Se utilizaron los valores boléanos devueltos en los cuadros de chequeo de los formularios
Ejecuta los procedimientos del módulo “Análisis” de acuerdo a los componentes de aseo
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
Como objeto auxiliar se programó el botón de alternancia “Tab/Asis”, para que desactive el
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
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
44
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
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
el mismo entorno de desarrollo de Excel y procesan datos similares que pueden ser utilizados
4. CONCLUCIONES Y RECOMENDACIONES
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
implementar a futuro una herramienta digital (e.j. app móvil) que remplace el uso físico de
45
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
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)
46
6. REFERENCIAS
• Ley 142 de 1994 “por la cual se establece el régimen de los servicios públicos
Colombia.
• Resolución CRA 720 de 2015 “Regulación tarifaria del servicio público de Aseo”.
Domiciliarios
• Reglamento Técnico del Sector de Agua Potable y Saneamiento Básico – RAS -Titulo
47
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.
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
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
48
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.
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:
variable = objeto.propiedad
49
De igual manera, Visual Basic tiene los mismos elementos de programación que la mayoría
de lenguajes.
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.
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
50
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.
Se realiza el siguiente seudocódigo como base para la codificación de las subrutinas en los
ComboBox del formulario.
51
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.
Procedimiento eliminaciónDuplicados
52
'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
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.
53
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.
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.
6. CONTENIDO
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).
54
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.
55
Algoritmo de búsqueda lineal anidado.
56
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.
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.
57
Algoritmo de búsqueda lineal anidado.
58
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
59
7. REFERENCIAS
• Lluís Duran, Luis Durán Rodríguez. Bases de datos con Visual Basic. MARCOMBO
60