Sunteți pe pagina 1din 175

INCORPORADO A LA SECRETARÍA DE EDUCACIÓN PÚBLICA

DEPURADOR DE DOCUMENTOS PARA USO DE BASES DE DATOS EN


LA BIBLIOTECA DIGITAL DEL IMP

TESIS PARA OBTENER EL TÍTULO DE


LICENCIADO EN INGENIERÍA EN SISTEMAS Y TELEMÁTICA

PRESENTA:
PATSY DE JESÚS PINEDA

ASESOR: CARLOS EPIFANIO OROZCO CALLEJAS

MEXICO, D.F. 2010


Agradecimientos

Quiero dar las gracias a mis papás porque siempre se


preocuparon por darme la mejor educación.

A Dios.

A mis hermanos.

A mis Abuelitos Joaquín y Luz María.

A mis tíos Luis y Alejandra.

A mi tía Gaby que es una gran inspiración pues cuenta con una
maestría y doctorado.

También agradezco a todos los profesores que he tenido en mi


vida.

Gracias a todos mis amigos, primos y conocidos.

A todos mis maestros y asesores de tesis.


Introducción

En este trabajo está documentado un proceso que resolví de la tarea de


depuración de documentos que se descargan de un portal en Intranet del Instituto
Mexicano del Petróleo (IMP) para las bases de datos principales que contienen
toda la información de los empleados de esta Institución y que resuelven el
problema de manera relativamente muy rápida ahorrando horas de trabajo en
forma sencilla y dinámica con el uso de dos programas en Visual Basic, uno en
Java y otro creado con Visual C# .NET.

Lo que quiero plasmar mediante estos programas no es simplemente realizar


tareas repetitivas o cíclicas que faciliten simplemente el hacer las cosas, esto va
más allá de solo hacer lo que pidan, para resolver un problema se puede
programar casi en cualquier lenguaje que cumpla con los requerimientos del
problema, lo más importante es hacer las cosas de una manera fácil, demostrando
lo versátil que un programador puede ser. Yo veo al programador como una
persona que resuelve problemas ideando soluciones, las soluciones que nacen de
su mente.

Para programar existen diferentes paradigmas que son los que muestran un
enfoque o filosofía como son: el estructurado: donde la programación se divide en
bloques con funciones o procedimientos, lógico: usado en PROLOG para crear
programas en Inteligencia Artificial, Orientado a objetos: usado en Java, basado
en la herencia etc. y hasta el nuevo Paradigma orientado a aspectos “AOP
paradigma de programación que solventa los problemas recurrentes”.

Por lo tanto además de resolver una serie de problemas específicos que se


presentan en el IMP también demuestro que es posible trabajar el mismo tipo de
problemas usando diferentes lenguajes de programación demostrando que el
programador idea con lo que tiene a su alcance, si algo no existe lo crea, si algo
ya está hecho lo utiliza y con eso mismo resuelve su problema como si estuviera
armando un rompecabezas, modificándolo, agregando o quitando elementos para

I
obtener una solución.

En el planteamiento del problema esta descrito el por qué era necesario la


creación de programas para la resolución del problema de depuración de
documentos; en el Objetivo General lo que es necesario realizar; en los Objetivos
Específicos están descritos mas a detalle objetivos que conforman el Objetivo
General.

El Capitulo 1 contiene información acerca del la Institución para la cual se


realizaron estos programas y algunos proyectos destacados de empleados de
esta.

El Capitulo 2 contiene antecedentes e información importante relacionada con el


Software utilizado para la creación de los programas; en este capitulo se
encuentra la historia y evolución de las hojas de cálculo, Excel, Visual Basic, Java
y Visual Studio C# .NET.

El Capitulo 3 está escrito en base al desarrollo de la programación del Objetivo


General y Específicos para la creación de los programas usando el Software
descrito en el Capitulo 2.

El Capitulo 4 es en donde se encuentra la documentación de la Implementación de


los programas en el IMP, las pruebas y conclusiones de la tesis.

Planteamiento del problema

En el IMP la mayoría de los empleados tienen que trabajar con hojas de cálculo
aparte de otras funciones en la Institución y cuando se les encarga la depuración
de documentos para actualizar las bases de datos RDX1 llegan a tardarse casi
todo un día pues no debe haber errores a la hora de la actualización de estas, el
trabajo de depuración llega a ser muy tedioso y estresante, puede hacerse
tardado, para usuarios nuevos aproximadamente unas 20 horas o más, otros que
ya conocen más sobre la base RDX y tienen contacto con el documento de Excel

1
RDX es el nombre de una de las bases de datos del IMP.

II
aproximadamente 7 horas y todo esto se debe a que se deben identificar primero
todos los requerimientos de columnas para la base RDX dependiendo del
documento y en base a catálogos para comparar.

La razón por la cual es necesario crear estos programas es para que las bases de
datos contengan la información de documentos sin errores y también para ahorrar
tiempo y esfuerzo.

Objetivo General

Desarrollar una serie de programas basados en macros, las macros deben ser
dinámicas, también crear un programa en Java que haga el conteo del número
total de proyectos contenidos dentro de un documento con extensión de formato
de Excel o “.xls” y uno en Visual Studio C# para hacer un conteo del número total
de documentos de un archivo “.xls”; a estos programas se les agregarán botones
con funciones adicionales.

Objetivos Específicos

ƒ Compilar el fundamento teórico de la evolución de las hojas de cálculo y el


software que usaré basándome en el índice para realizar mejor la tarea de
programación.

ƒ Hacer dos programas en Visual Basic para depurar documentos de tipo


CN40 y ZH30.

ƒ Usar una API de Java “Apache POI - API Java” para Acceder Ficheros o
archivos con formatos de Microsoft.

ƒ Crear un programa con el uso del API Apache POI que determine el número
total de registros de un documento con extensión .xls.

ƒ Crear otros dos botones adicionales para crear un catálogo y otro para
crear archivos de tipo CN40 y ZH30.

III
ƒ Crear un programa en Visual Studio .NET usando C# para acceder a
cualquier archivo de Excel que el usuario elija con un navegador de archivos y que
permita buscar algún empleado dentro del archivo.

ƒ Crear los botones que realicen las siguientes funciones:

9 Seleccionar archivo y que se ponga la dirección de este en un cuadro


de texto en pantalla.

9 Reemplazar palabras completas en el documento dadas por el


usuario.

9 Buscar empleados o palabras claves e informar si existen o no en el


documento.

9 Crear y abrir un documento de Excel.

Justificación

Debido a que el proceso de depuración de documentos para las bases de datos es


tardado considero que es necesario realizar programas basados en macros que
resuelvan este problema reduciendo el tiempo de depuración de horas a minutos,
esto depende de la cantidad de megabytes del archivo, además planeo crear otros
programas que sirvan de apoyo extra para los trabajadores del IMP utilizando el
software más reciente de los lenguajes de programación Java y C#, para que con
un solo clic se creen los documentos necesarios para el usuario.

Los alcances de esta tesis fueron los cuatro programas realizados y las
limitaciones eran simplemente la falta de desconocimiento sobre algunas librerías
o funciones de los lenguajes de programación que facilitan la programación dado
que no es necesario programar algo que ya está hecho y es de uso público.

No hubo muchos inconvenientes a la hora de estar programando en Visual Basic


los programas pues el análisis de requerimientos estaba muy detallado en tablas;

IV
pero para los que si hubo un poco fueron los programas hechos con Java y C# por
lo que mencionaba anteriormente que era la falta de conocimiento de funciones.

Metodología del Desarrollo

Para comenzar con esta tesis era necesario realizar una investigación acerca de
los programas que estaba utilizando; en el IMP se me encargó realizar los
programas que iban a utilizar para depurar documentos en Visual Basic.

Primero comencé realizando depuraciones manuales para comprender como


debían trabajar los programas, donde se me indicaba cuales columnas de las
hojas de cálculo iban a ser utilizadas y a partir de esa observación la información
la acomodé en tablas.

En base a la creación de los programas en Visual Basic me surgió la idea de crear


otros programas que sirvieran para crear catálogos, documentos, hacer
búsquedas etc. Para que también fueran usados por los trabajadores del IMP que
sirvieran de ayuda para reducir el proceso de depuración haciéndolo más rápido,
reduciendo los procesos a simples clics de un usuario en los programas creados
con Java y C#.

Para realizar los programas utilicé la programación orientada a eventos; este tipo
de programación es usada por Visual Basic, el usuario interactúa con botones que
contienen las acciones programadas. Por cada clic del usuario del programa en
algún botón se genera un evento.

También utilicé la programación orientada a objetos “POO”; la programación


orientada a objetos está basada en herencia entre clases para conformar objetos
que pueden usar métodos o acciones que estos pueden realizar; según la clase de
la cual son creados.

V
Índice

Introducción I

Planteamiento del problema II

Objetivos III

Justificación IV

Metodología del Desarrollo V

Capitulo 1 Instituto Mexicano Del Petróleo (IMP)

1.1. Acerca del IMP 1

1.2. Biblioteca Digital Del Instituto Mexicano Del Petróleo 2

1.3. Direcciones Corporativas 6

1.4. Proyectos de Innovación y Casos de éxito 7

1.4.1. Proceso para el hidrotratamiento catalítico de hidrocarburos pesados


del petróleo 8

1.4.2. Pruebas de trazadores aplicadas al control de agua. 9

1.5. Bibliografía 10

Capitulo 2 Software para desarrollo de Aplicaciones

2.1. ¿Qué es una hoja de cálculo? 11

2.1.1. La primera hoja de cálculo (VisiCalc) 13

2.1.2. Orígenes de la primera hoja de cálculo VisiCalc 14


2.2. Excel 17

2.2.1. ¿Qué es Excel? 17

2.2.2. Antecedentes 17

2.2.3. Ventajas y desventajas de Office Excel 2007 21

2.2.4. Libros de trabajo 25

2.2.5. Operaciones con las Hojas 25

2.2.6. Macros 30

2.2.7. Beneficios de las macros 31

2.3. Visual Basic 32

2.3.1. ¿Qué es Visual Basic? 32

2.3.2. Características de Visual Basic 33

2.3.3. Objetos en Visual Basic 35

2.3.4. Eventos en Visual Basic 36

2.3.5. Descripción del entorno Visual Basic 37

2.4. Java 41

2.4.1. Historia de Java 42

2.4.2. Características de Java 47

2.4.3. API de Java para Excel 49

2.4.3.1. Apache POI 50


2.5. Visual C# .NET 51

2.5.1. ¿Qué es Visual C#? 51

2.5.2. .NET Framework 52

2.5.3. Desarrollo de Aplicaciones. 53

2.6. Bibliografía 55

Capitulo 3 Desarrollo de los Programas

3.1. Introducción del análisis de requerimientos 59

3.2. Creación de tablas de requerimientos 60

3.3. Creación de los Programas de Depuración en Visual Basic 68

3.4. Programación en Java usando el API Apache – POI 84

3.5. Programación en Visual C# .NET 111

3.6. Bibliografía 128

Capitulo 4 Implementación de los Programas

4.1. Pruebas 130

Conclusiones 135

Anexos 137
Índice de Figuras

Capitulo 1 Instituto Mexicano Del Petróleo (IMP)

Figura 1.1 Torre del IMP 1

Figura 1.2 Logotipo de la Biblioteca del IMP 2

Figura 1.3 Edificio de la Biblioteca del IMP 3

Figura 1.4 Campus IMP Sede 4

Figura 1.5 Corporativa institucional 5

Figura 1.6 Valores Institucionales 5

Figura 1.7 Proyectos de Innovación 7

Capitulo 2 Software Para Programar

2.1. ¿Qué es una hoja de cálculo?

Figura 2.1 Pantalla de Microsoft Excel versión 2007 12

Figura 2.2 Pantalla de OpenOffice.org Calc versión 3.0.1 13

Figura 2.3 Pantalla VisiCalc 16

Figura 2.4 VisiCalc Screen, early Alpha version 1/4/79 16

2.2. Excel

Tabla 2.1 Versiones de Microsoft Excel 20

Figura 2.5 Elementos de la pantalla de Excel 23

Figura 2.6 Pestañas de las Hojas. 25


Figura 2.7 Desplazamiento 26

Figura 2.8 Flechas 27

Figura 2.9 Insertar nueva hoja 27

Figura 2.10 Insertar título 27

Figura 2.11 Opciones 28

Figura 2.12 Selección de hoja 28

Figura 2.13 Inserción 29

Figura 1.14 Eliminar A 29

Figura 2.15 Eliminar B 30

Figura 2.16 Ejemplo de código visual Basic (VBA) aplicado “Macro” 30

2.3. Visual Basic

Figura 2.17 Objetos en Visual BASIC 35

Figura 2.18 Eventos 36

Figura 2.19 Entorno de VB (Visual Basic) 37

Figura 2.20 Proyecto 38

2.4. Java

Figura 2.21 Logotipo de Sun Microsystems 43

Figura 2.22 Logtipo de Java 44

Figura 2.23 Herencia de Clases 49


2.5. Visual C# .NET

Figura 2.24 Logotipo de Visual C# .NET 54

Capitulo 3 Desarrollo de los Programas

3.2. Creación de tablas de requerimientos

Figura 3.1 Instructivo para descargar documentos CN40 y ZH30 61

Figura 3.2 Tabla 1 CN40_RDX 62

Figura 3.3 Tabla 2 ZH30 63

Figura 3.4 Tabla 3 CN40_RDX proyectos F o D 64

Figura 3.5 Tabla 4 Solicitante 65

Figura 3.6 Tabla 5 RDX_PROYECTO 66

Figura 3.7 Tabla 6 RDX_PROYECTOS_D 67

Figura 3.8 Botón de Macros en Excel 69

Tabla 3.1. Ejemplo y explicación del código para ordenar columnas 70

Figura 3.9 Ejemplo de catálogo A 76

Figura 3.10 Selección de BUSCARV 76

Figura 3.11 Ejemplo de función BUSCARV 77

Figura 3.12 Ejemplo del llenado de datos en la función BUSCARV 78

Figura 3.13 Ejemplo de un error en Excel 79

Figura 3.14 Ejemplo de una fórmula Excel 79

Figura 3.15 Ejemplo de IFERROR 80


Figura 3.16 Ejemplo de ISERROR 81

Figura 3.17 Pantalla del programa 1 en VB 82

Figura 3.18 Pantalla del programa 2 en VB 82

3.4. Programación en Java usando el API Apache – POI

Figura 3.19 Inserción de un JPanel 85

Figura 3.20 Paleta contenedora de objetos 86

Figura 3.21 Vista de diseño 86

Figura 3.22 Pantalla de la página para descargar Apache POI 87

Figura 3.23 Contenido del paquete POI 88

Figura 3.24 Bibliotecas del JDK 88

Figura 3.25 Jar con las Bibliotecas de Apache POI 89

Figura 3.26 Inserción de “poi-3.6-20091214” a Bibliotecas 89

Figura 3.27 Vista de Diseño 90

Figura 3.28 Vista de Fuente 91

Figura 3.29 Índice de la API Apache POI 92

Figura 3.30 Nuevo documento de Excel 92

Figura 3.31 Error al crear un objeto del tipo HSSWorkbook 95

Figura 3.32 Especificaciones de la Clase HSSFWorkbook 95

Figura 3.33 Ejemplo de código HSSFWorkbook 96

Figura 3.34 Mensaje de error 100


Figura 3.35 Ventana del contador de proyectos 103

Figura 3.36 Mensaje dentro de un try 104

Figura 3.37 Java API 106

Figura 3.38 Buscador de archivos 108

Figura 3.39 Mensaje de error de un catch si no existen filtros 108

Figura 3.40 Proyectos totales 110

3.5. Programación en Visual C# .NET

Figura 3.41 Página de inicio 111

Figura 3.42 Botón de nuevo proyecto 112

Figura 3.43 Opciones de programación 113

Figura 3.44 Nueva ventana forma de diseño 113

Figura 3.45 Nueva ventana forma de diseño 114

Figura 3.46 Interfaz gráfica del Buscador de empleados 115

Figura 3.47 Botón que abre el seleccionador de archivos 116

Figura 3.48 Ejemplo de código de un buscador de archivos 117

Figura 3.49 Botón Seleccionar Archivo 118

Figura 3.50 Programación que manda al cuadro de texto la dirección del Archivo
Buscado 119

Figura 3.51 Selección de archivo 119

Figura 3.52 Agregar Referencia 120


Figura 3.53 Código del botón Seleccionar Archivo 121

Figura 3.54 Función del botón Crear y Abrir Documento En Excel 122

Figura 3.55 Botón Reemplazar 122

Figura 3.56 Mensaje del botón Reemplazar 123

Figura 3.57 Fragmento de código del botón Reemplazar 123

Figura 3.58 Mensaje de empleado encontrado 124

Figura 3.59 Mensaje error por no encontrar el empleado 124

Figura 3.60 Buscar empleado 125

Figura 3.61 Mensaje de búsqueda de empleado 126

Figura 3.62 Resultado de la búsqueda 126

Figura 3.63 Pantalla Final 127

Capitulo 4 Implementación de los Programas

Figura 4.1 Documentos .form 131

Figura 4.2 Crea Documentos Excel.jar 132

Figura 4.3 Generar archivo con Build 133

Figura 4.4 Mensaje del Build 133

Figura 4.5 Aplicaciones Creadas 134

Figura 4.6 Mensaje de Error al ejecutar la aplicación 134


CAPITULO 1
Instituto Mexicano Del Petróleo (IMP)
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

1.1 Acerca del IMP

El Instituto Mexicano del Petróleo (IMP), fue creado el 23 de agosto del año 1965,
es el Centro de Investigación de México dedicado al área petrolera, cuyos
objetivos principales son la investigación y desarrollo tecnológico, la ingeniería y
servicios técnicos y la capacitación, así como el otorgamiento de grados
académicos, la comercialización de los resultados de la investigación y desarrollo
tecnológico, la suscripción de alianzas estratégicas y tecnológicas.

Como Centro público de investigación, el Instituto Mexicano del Petróleo tiene la


Misión de transformar el conocimiento en tecnología y servicios de valor para la
industria petrolera; y la Visión de ser un Centro público de investigación de clase
mundial con personal reconocido, con tecnologías y servicios que contribuyen al
desarrollo de la industria petrolera.

Figura 1.1 Torre del IMP.


Fuente: www.imp.mx

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

Actualmente, mediante un renovado esfuerzo y una mayor sinergia1 con PEMEX,


el IMP busca integrarse a los objetivos y grandes proyectos de esta empresa, al
ofrecerle investigación, capacitación y prestación de servicios de alto contenido
tecnológico, que le permitan aumentar su eficiencia, productividad y crecimiento.

1.2 Biblioteca Digital Del Instituto Mexicano Del Petróleo

En el Instituto Mexicano del Petróleo existen diversas áreas encargadas de


administrar y llevar a cabo proyectos en relación con el tema del petróleo en
México.

En el IMP no sólo se desarrolla investigación y se crean productos, también se


provee de servicios a la industria petrolera, para hacerse de recursos para sus
actividades de investigación con el apoyo de la mejor tecnología.

La biblioteca del IMP fue creada para proporcionar a la industria, información


especializada como soporte en la toma de decisiones, así como para el uso de la
ciencia de la información en proyectos de investigación y desarrollo tecnológico.

Figura 1.2 Logotipo de la Biblioteca del IMP.


Fuente: www.imp.mx

Específicamente en el área de biblioteca digital del IMP se planea almacenar


todos los libros, folletos, revistas entre otras publicaciones relacionadas con el
                                                            
1 Integración de sistemas que conforman un nuevo objeto. Acción de coordinación de dos o más causas (elementos)
cuyo efecto es superior a la suma de efectos individuales.

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

petróleo en formato digital indexándolos2 y que de esa manera los empleados del
IMP puedan tener acceso a la información rápidamente con la confianza de que
las fuentes son verídicas y han sido revisadas por profesionales.

En esta área se recibe una enorme cantidad de información también sobre los
proyectos que se realizan en el instituto en donde se indican los nombres de los
líderes, el área, entre otros datos acerca de los proyectos de investigación y
desarrollo; esta información llega a empleados de la biblioteca digital desde otras
aéreas en hojas de cálculo en Excel con formato “.xls”, que después de sufrir un
proceso manual de depuración3 se suben a una base de datos4 periódicamente
para tenerla actualizada.

Figura 1.3 Edificio de la Biblioteca del IMP.


Fuente: www.imp.mx

                                                            
2 Indexar: registrar ordenadamente la información para elaborar su índice.

3 Proceso de identificar y corregir errores.

4 Es un conjunto de datos organizados de modo tal que resulte fácil acceder a ellos, gestionarlos y actualizarlos.

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

La Biblioteca del IMP, mantiene un acervo multidisciplinario de libros y revistas


especializados en los temas de la industria petrolera y ramas afines, que pone a
disposición a través de los servicios de consulta, préstamo y recuperación de
artículos.

Figura 1.4 Campus IMP Sede.


Fuente: www.imp.mx

En el IMP estuve colaborando con la Biblioteca como becaria, en la figura 1.4 se


muestra un mapa del Campus IMP Sede y las calles entre las que esta y en la
flecha que dice “BIBLIOTECA” indiqué donde se ubica la biblioteca.

El Instituto Mexicano del Petróleo sede se encuentra ubicada en Eje Central


Lázaro Cárdenas No. 152 Col. San Bartolo Atepehuacan, Delegación Gustavo A
Madero, al norte de la Ciudad de México. Cuenta con 33 edificios, en donde se
realizan principalmente actividades de investigación, innovación y desarrollo de
tecnologías para el apoyo a PEMEX y a la industria nacional.

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

Figura 1.5 Corporativa institucional.


Fuente: www.imp.mx

Figura 1.6 Valores Institucionales.


Fuente: www.imp.mx

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

En la imagen 1.5 se observa la misión y visión del IMP, lo cual forma parte de su
cultura organizativa.

En la figura 1.6 se muestran los valores institucionales.

1.3 Direcciones Corporativas

En el IMP existen tres direcciones corporativas que son:

o Dirección Corporativa de Planeación y Desarrollo Institucional

o Dirección Corporativa de Operación

o Dirección Corporativa de Finanzas y Administración

Las tres direcciones corporativas del Instituto Mexicano del Petróleo tienen como
objetivo la planeación, programación, administración de recursos, contabilidad,
control, evaluación, desconcentración, descentralización5, productividad, eficiencia
y calidad del servicio6.

                                                            
5 La descentralización consiste en el traspaso del poder y toma de decisión hacia núcleos periféricos de una
organización.

Tema 1.3 y 1.4 son artículos de la página: www.imp.mx/corporativo/

6 A la calidad de servicio en ingles se le conoce como QoS o Calidad de Servicio (Quality of Service, en inglés) son las
tecnologías que garantizan la transmisión de cierta cantidad de datos en un tiempo dado (throughput). Es especialmente
importante para ciertas aplicaciones tales como la transmisión de video o voz.

Fuentes: http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcfintro.html#wp1000873

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

1.4 Proyectos de Innovación y Casos de éxito

En la tesis los documentos a ser depurados contienen información sobre


proyectos desde el nombre del líder, el título del proyecto, entre otros datos; a
continuación mostraré algunos de esos proyectos.

En el IMP se realizan proyectos que innovan la forma en la que se hacen los


procesos y el uso del petróleo; todos estos proyectos tienen como objetivo darle
un mejor uso a la materia prima, los proyectos tienen asignado un líder el cual
tiene a su cargo otras personas que lo ayudan a lograr su objetivo repartiéndose el
trabajo de manera equitativa, para que todos participen aportando sus
conocimientos y experiencia para crear un desarrollo que sea útil para hacer más
eficiente el aprovechamiento de los recursos, dichos desarrollos o proyectos
cuando son concluidos de manera satisfactoria son presentados en la página
oficial del IMP por ese motivo a continuación pondré algunos de ellos, la figura 1.4
es un logotipo de la página del IMP de los proyectos de Innovación, los proyectos
del IMP se planean con varios meses de anticipación y pueden durar varios años
dependiendo del tema del que se trate.

Figura 1.7 Proyectos de Innovación.


Fuente: www.imp.mx

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

1.4.1 Proceso para el hidrotratamiento catalítico de hidrocarburos pesados


del petróleo

Líder del proyecto: Dr. Jorge Ancheyta Juárez

Es una tecnología que estuvo en proceso de desarrollo desde 1999, con el fin de
facilitar la refinación de los crudos pesados que produce Petróleos Mexicanos y
aumentar su valor. Las aplicaciones básicas de este proceso se encuentran en la
conversión de crudos pesados a crudos intermedios, de mayor valor en el
mercado, y en el procesamiento inicial de los crudos pesados de carga a una
refinería. Los estudios técnico-económicos que se han realizado para evaluar la
aplicación de esta tecnología en la industria petrolera nacional, muestran ventajas
importantes para la tecnología IMP.

Los beneficios de este proyecto son:

En comparación con respecto a las tecnologías de hidrodesintegración las


ventajas principales son:

™ menores costos de inversión

™ menor consumo de hidrógeno y de catalizadores,

™ una operación mucho más segura y estable.

El mejoramiento en la calidad de los crudos que se obtiene mediante la aplicación


de esta tecnología es significativo, ya que además del mayor rendimiento de
destilados, los crudos mejorados presentan bajos contenidos de azufre, metales,
asfaltenos y de precursores de la formación de carbón; baja corrosividad y baja
tendencia a la formación de depósitos. Estas características facilitan el manejo,
refinación y rendimiento de estos crudos y se reflejan en un mayor valor en el
mercado.

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

1.4.2 Pruebas de trazadores aplicadas al control de agua

Líder del proyecto: Jetzabeth Ramírez Sabag

Diseñar las pruebas de trazadores, con base en la problemática del campo, a fin
de establecer un diagnóstico sobre el agua producida.

Caracterizar los canales de flujo, de tal forma que se pueda calcular los
volúmenes, ritmos y ubicación de los tratamientos para el control de agua.

Evaluar los tratamientos implantados para el control del agua con base a una
prueba pre y una post tratamiento.

Beneficios obtenidos con este proyecto:

Con el uso de pruebas de trazadores para el control de agua, se estima que el


beneficio económico para el cliente es importante, dado que evitaría realizar
tratamientos con poca probabilidad de éxito, y en algunos casos, evitaría perder
pozos. También, evitaría la afluencia de agua, reduciendo: costos de operación,
mantenimiento de pozos, separación agua/aceite, costo de equipos, y daño
ambiental.

 
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP) 

1.5 Bibliografía

Aquí está la bibliografía usada para el capítulo 1; primero está el nombre de la


página y después la fecha aproximada en la que fue visitada.

[1.1] Instituto mexicano del petróleo, www.imp.mx, Octubre/2009.

[1.2] Instituto mexicano del petróleo, http://www.imp.mx/acerca/, Octubre /2009.

[1.3] Instituto mexicano del petróleo, http://biblioteca.imp.mx/, Octubre/2009.

[1.4] Instituto mexicano del petróleo,


http://biblioteca.imp.mx/abnetcl.exe/O7013/ID2592221d?ACC=101, Octubre/2009

[1.5] Instituto mexicano del petróleo, http://www.imp.mx/corporativo/?imp=pydi,


Octubre /2009.

[1.6] Instituto mexicano del petróleo,


http://www.imp.mx/corporativo/?imp=operacion, Octubre/2009.

[1.7] Instituto mexicano del petróleo, http://www.imp.mx/corporativo/fya/,


Octubre/2009

[1.8] Instituto mexicano del petróleo,


http://www.imp.mx/investigacion/innovacion/?nt=hidrocatal, Octubre/2009

10 

 
CAPITULO 2
Software para desarrollo de Aplicaciones
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.1 ¿Qué es una hoja de cálculo?

Una hoja de cálculo es un programa que permite manipular datos1 numéricos y


alfanuméricos2 dispuestos en forma de tablas3 los cuales se pueden modificar,
eliminar, agregar, guardar y/o imprimir. Habitualmente es posible realizar cálculos
complejos con fórmulas y funciones hasta dibujar distintos tipos de gráficas.

Las hojas de cálculo son también conocidas como hojas electrónicas, cuentan con
funciones de cálculo especializadas en diversas áreas que son: financiera,
estadística, matemáticas, etc.

Características:

¾ Permiten dar formato a los datos y presentarlos en una forma clara y


profesional.

¾ Las fórmulas registradas dentro de la hoja se actualizan automáticamente


cuando un dato varía.

¾ Pueden generar gráficas, contando con una gran variedad de las mismas.

En el mercado existen varias hojas electrónicas, entre las más conocidas están
Excel, Lotus 123, VisiCalc y QuatroPro.

Excel: Aplicación para manejar hojas de cálculo de Microsoft.

                                                            
1 Representación simbólica. Para mayor información sobre las referencias bibliográficas ver la bibliografía de éste
capitulo.
2 Letras.
3 Tabla: la cual es la unión de filas y columnas.

11 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Lotus 123: Programa creado por Lotus Development Corporation4, fue el primero
en usar hojas de cálculo en la historia hecho por Jonathan Sachs.

VisiCalc: Fue la primera hoja de cálculo disponible para el uso de computadoras


personales.

Quattro Pro: Fue desarrollado por la empresa Borland International, fue el primero
en permitir hojas múltiples de cálculo en solo un archivo usando “tabs” o pestañas.

Actualmente el mercado está liderado por Microsoft Excel en cuanto a hojas de


cálculo, pero también se está dando el uso de software libre como OpenOffice.org
con su hoja de cálculo “OpenOffice.org Calc”5.

Figura 2.1 Pantalla de Microsoft Excel versión 2007.


Fuente: Microsoft Excel

                                                            
4 Empresa posteriormente adquirida por IBM.
5 Es es un programa que permite realizar operaciones con números organizados en una cuadrícula, es muy similar a

Excel. 

12 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.2 Pantalla de OpenOffice.org Calc versión 3.0.1.


Fuente: OpenOffice.org

2.1.1 La primera hoja de cálculo (VisiCalc)

Fue la primera hoja de cálculo para computadoras personales dándole una utilidad
como una poderosa herramienta de negocios.

Dan Bricklin el creador de VisiCalc dijo que observaba en la escuela Harvard


Business School un modelo financiero, cuando el profesor encontraba un error o
deseaba cambiar un parámetro, tenía que tediosamente borrar y reescribir un
número de entradas secuenciales en una tabla, Bricklin se percato que él podía
replicar el proceso en una computadora usando una “hoja de cálculo electrónica”
(electronic spreadsheet) para ver los resultados de las fórmulas subyacentes, el
programa le permitía al usuario insertar matrices de 5 columnas y 20 filas.

En 1979 Bricklin le dice a un profesor de económicas de la Universidad de Harvard


su idea de la hoja de cálculo. Este ridiculiza todo el asunto, le dice que una
aplicación de ese estilo no tiene sentido en los ordenadores de tiempo compartido
13 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

y que en el mercado de microordenadores6 nunca llegaría a ser rentable. Aún así


Bricklin pensaba en que su idea era buena y se la presenta a Dan Flystra de
Personal Software quién ve futuro en la idea de Bricklin, y le presta una máquina
Apple II, para que la desarrolle junto a Bob Frankston. Durante el desarrollo de la
aplicación, Bricklin y Bob Frankston deciden fundar la empresa Software Arts,
aunque de su futura comercialización se encargaría Personal Software.

Más tarde Personal Software cambiaría de nombre a VisiCorp para resaltar más
su relación con su producto estrella. Curiosamente Flystra rechazaría unos años
después la compra de un programa llamado Lotus 1-2-3 que se lo ofrecía Mitch
Kapor. Lotus 1-2-3 se convertiría en la hoja de cálculo estrella a finales de los 80
principios de los 90.

Como VisiCalc7 no era perfecto y no tenía derechos de autor 8pronto salieron a la


venta alrededor de 1979 a 1987 otras compañías que vendían sus propias hojas
de cálculo pero por supuesto teniendo en cuenta que VisiCalc inspiro a otros a
hacer lo mismo agregando ciertas características adecuadas a requerimientos de
los usuarios y el mercado fue creciendo más rápidamente.

2.1.2 Orígenes de la primera hoja de cálculo VisiCalc

En 1979 llegaron nuevos conceptos acerca de las computadoras personales, la


gente no conocía las hojas de cálculo por eso el programa se llamo VisiCalc o
calculadora visible, 15 años después con Windows 95 las computadoras
personales y el internet se comenzaron a hacer de uso común para cualquier

                                                            
6 Computadoras actuales.
7 Visible Calculations ó cálculos visibles
8 El derecho de autor (del francés droit d'auteur) es un conjunto de normas y principios que regulan los derechos morales

y patrimoniales que la ley concede a los autores (los derechos de autor), por el solo hecho de la creación de una
obra literaria, artística, científica o didáctica, esté publicada o inédita.
Fuente:http://es.wikipedia.org/wiki/Derechos_de_autor

14 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

actividad, desde esa perspectiva la gente se comenzaba a preguntar para que


servían las computadoras personales aparte de servir para utilizar juegos.

La gran mayoría de las personas usa mucho la calculadora en vez de usar un


papel y realizar todas las operaciones donde los resultados tienen un grado de
incertidumbre, pero VisiCalc es una calculadora en una pantalla donde se pueden
ver todos los datos, modificarlos de manera que sea más sencillo hacer cálculos,
etc.

VisiCalc representa una gran hoja de papel organizada en filas y columnas con
entradas, moviendo simplemente el cursor en una entrada se pueden poner
valores y expresiones que se calcularan en la pantalla, incluso se pueden poner
comentarios y títulos con un límite dependiendo de la capacidad de la
computadora personal moviendo filas y columnas como sea necesario.

Los beneficios de VisiCalc en esa época eran que daba la oportunidad a los
usuarios de hacerse preguntas como: ¿qué tal si? en referencia a los valores que
se podían poner en pantalla, cuando un valor es cambiado se hace un re cálculo
automáticamente lo que hace de este programa fácil de usar, en la figura 2.3 y 2.4
se muestran fotografías de la pantalla de VisiCalc.

15 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.3 Pantalla VisiCalc.


Fuente: http://www.tcapp.com/pub/VisiCalc/refcard_5.gif

Figura 2.4 VisiCalc Screen, early Alpha version 1/4/79


Fuente: http://www.bricklin.com/history/saiearly.htm

16 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.2 Excel

Este capítulo contiene una explicación de lo que es Excel, para que sirve y
algunos de los beneficios y desventajas que ofrece para los usuarios, también la
explicación de cómo usar algunas de las funciones de este software.

2.2.1 ¿Qué es Excel?

Microsoft Excel es un software usado en áreas contables y financieras que permite


el manejo de hojas de cálculo eficazmente, es distribuido y desarrollado por la
empresa Microsoft para tomar decisiones con más fundamentos que mejoren la
productividad.

Lo que realiza Excel, son ejercicios aritméticos. Como por ejemplo: balances,
cálculos de calificaciones escolares o universitarias y todo aquello similar a estos
procedimientos, Excel es el primer tipo de software con el cual se podían realizar
cálculos independientes por cada celda.

2.2.2 Antecedentes

Microsoft comercializó originalmente un programa de una hoja de cálculo llamado


Multiplan en 1982, que se hizo muy popular en los sistemas CP/M9, pero en los
sistemas MS-DOS10 perdió popularidad contra Lotus 1-2-3. Microsoft publicó la
primera versión de Excel para Mac en 1985, y la primera versión de Windows en
1987. Lotus fue lenta al llevar 1-2-3 para Windows y en 1988 Excel había
comenzado a vender 1-2-3 y lo que propició que Microsoft alcanzara la posición de
los principales desarrolladores de software para PC y lo hiciera ver como un

                                                            
9 Control Program/Monitor que es un sistema operativo creado por Gary Kildall en 1970.
10 Microsoft Disk Operating System ó Sistema operativo de disco de Microsoft. 

17 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

competidor válido y mostró su futuro de desarrollo del software GUI11. Microsoft


saco a la venta nuevas versiones regulares, cada dos años. La versión actual para
la plataforma Windows es Excel 12, también denominada Microsoft Office Excel
2007. La versión actual para Mac OS X es la plataforma Microsoft Excel 2008.

En 1993, Excel fue objeto de demanda por otra empresa que ya tenía a la venta
un paquete de software llamado "Excel" en el sector financiero. Como resultado de
la controversia Microsoft estaba obligado a hacer referencia al programa como
"Microsoft Excel" en todos sus comunicados de prensa oficiales y documentos
jurídicos. Sin embargo, con el tiempo esta práctica ha sido ignorada, y Microsoft
aclaró definitivamente la cuestión cuando se adquirió la marca del otro programa.
Microsoft también alentó el uso de las letras XL como abreviatura para el
programa, mientras que éste ya no es común, el icono del programa en Windows
todavía consiste en una estilizada combinación de las dos letras, y la extensión de
archivo12 por defecto del formato Excel es “.xls”.

Excel ofrece muchas interfaces de usuario ajustadas a las más nuevas hojas de
cálculo electrónico, pero la esencia sigue siendo el mismo que en la hoja de
cálculo original, VisiCalc: el programa muestra las celdas organizadas en filas y
columnas, y cada celda contiene datos o una fórmula, con relativas o absolutas
referencias a otras celdas.

Excel fue la primera hoja de cálculo que permite al usuario definir la apariencia de
las hojas de cálculo que son: las fuentes, atributos de carácter y apariencia de las
celdas. También introdujo re-computación inteligente de celdas, donde celdas
dependientes de otra celda que han sido modificadas se actualizan al instante.

                                                            
11 Graphical User Interface o interfaz grafica de usuario. 
12 La extensión de un fichero es la parte del nombre de un fichero que se encuentra a partir del punto.

18 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Excel tiene una amplia capacidad gráfica, y permite a los usuarios realizar la
combinación de correspondencia con las celdas.

Cuando Microsoft primeramente empaquetó Microsoft Word y Microsoft


PowerPoint en Microsoft Office en 1993, rediseñó las GUIs de las aplicaciones
para la coherencia con Excel.

Desde 1993, Excel ha incluido Visual Basic para Aplicaciones (VBA), un lenguaje
de programación basado en Visual Basic, que añade la capacidad para
automatizar tareas en Excel y para proporcionar las funciones definidas por el
usuario (UDF) para su uso en las hojas de trabajo. VBA es una poderosa adición a
la aplicación que, en versiones posteriores, incluye un completo entorno de
desarrollo integrado (IDE Como turbo por ejemplo: C++, DevC++,Rhide, etc…). La
grabación de macros13 puede producir código VBA para repetir las acciones del
usuario, lo que permite la automatización de simples tareas. VBA permite la
creación de formularios y controles en la hoja de trabajo para comunicarse con el
usuario.

La funcionalidad de la automatización proporcionada por VBA causó a Excel


convertirse en un objetivo para crear virus en macros. Este fue un grave problema
en el mundo corporativo hasta que los productos antivirus comenzaron a detectar
estos virus. Microsoft tomó medidas tardíamente para prevenir el uso indebido
mediante la adición de la capacidad para deshabilitar las macros completamente,
para permitir las macros al abrir un libro o para confiar en todas las macros
firmadas con un certificado de confianza.

                                                            
13 Conjunto de instrucciones que se ejecutan en forma sucesiva por una aplicación como una hoja de cálculo o un

procesador de palabras y sirven para reproducir procesos o tareas repetitivas de teclas o instrucciones con el "mouse".
En la actualidad se han vuelto más complicados y poderosos debido a que se pueden programar en Visual Basic.

19 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Las versiones desde la 5.0 a la 9.0 de Excel contienen varios huevos de pascua
14
(Easter eggs en inglés), pero desde la versión 10 Microsoft ha adoptado medidas
para eliminar este tipo de características indocumentadas de sus productos.

Versiones de office Excel:

Microsoft Windows

1987 Excel 2.0 para Windows

1990 Excel 3.0

1992 Excel 4.0

1993 Excel 5.0

1995 Excel for Windows 95 (version 7.0) - incluida en Office 95

1997 Excel 97 - incluida en Office 97. Esta versión de Excel incluye un


simulador de vuelo como huevo de pascua.

1999 Excel 2000 (versión 9.0) incluida en Office 2000

2001 Excel 2002 (versión 10) incluida en Office XP

2003 Excel 2003 (versión 11) incluida en Office 2003

2007 Excel 2007 (versión 12) incluida en Office 2007

Tabla 2.1 Versiones de Microsoft Excel


Fuente: Microsoft Excel

                                                            
14 Es una función oculta dentro de un programa que sólo podremos probar si conocemos una serie de pasos "secretos".

Normalmente los Huevos de Pascua sirven para que los programadores pongan los créditos de su programa, o hasta a
veces algún sencillo juego. 

20 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.2.3 Ventajas y desventajas de Office Excel 2007

Ventajas

¾ Permite al usuario tener a la vista en su barra de herramientas solo las que


quiere usar y muestra los comandos necesarios cuando los necesita.

¾ Se puede importar15, explorar y organizar datos masivos con hojas de


cálculo muy amplias que pueden tener un máximo de 1 millón de filas y
16.000 columnas, gracias a que es compatible con multiprocesadores16 se
pueden tener cálculos más rápidos en hojas de cálculo llenas de fórmulas.

¾ Permite la creación de gráficos con aspecto profesional permitiendo al


usuario la elección del tipo de fuente17 con sus respectivas características
como son el sombreado y otros efectos.

¾ Se pueden filtrar, expandir y aplicar formatos haciendo referencia a tablas


grandes para ver el contenido en estas.

¾ Se pueden crear vistas de tablas dinámicas fácilmente pues por ser


dinámicas permiten reorientar los datos de una manera rápida simplemente
con arrastrar campos.

¾ Se pueden encontrar excepciones en los datos fácilmente pues


gráficamente se muestran degradados de color en mapas, datos e íconos
indicadores de rendimiento.

                                                            
15 Incorporar datos.
16 Varios procesadores trabajando de forma simultánea ó al mismo tiempo.
17 Hace referencia al tipo de letra, tamaño.

21 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

¾ Las hojas de cálculo pueden ser compartidas con más seguridad por una
hoja de cálculo con formato HTLM18 y así otros usuarios tendrían acceso a
la información con un explorador web donde ellos pueden filtrar y
especificar parámetros deseados para interactuar con la información.

¾ Cuenta en el menú con ayuda para que el usuario trabaje con la


información empresarial más actual.

¾ Se reduce el tamaño de las hojas de cálculo y se mejora la recuperación de


archivos dañados a la vez debido a que se usa el formato XML19 que
permite el ahorro de requisitos de almacenamiento reduciendo la carga.

¾ Es compatible con varias bases de datos.

¾ Tiene un editor de visual Basic.

¾ Excel es el más popular de los programas que manejan libros y hojas de


cálculo, se estima que está presente en casi todas las computadoras del
mundo. Por ello la compañía que lo desarrolla (Microsoft) ha venido
mejorando las características y el desempeño de este conocido programa.

Desventajas

• No es gratuito.

• Es complicado el uso de algunos comandos de Visual Basic cuando se


tienen que realizar ciertas operaciones en columnas para evitar
excepciones.

                                                            
18 Lenguaje de programación para hacer páginas web. 
19 Sencillo formato de texto, especialmente para documentos web.

22 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.5 Elementos de la pantalla de Excel.


Fuente: Microsoft Excel.

Elementos de la pantalla de Excel

En la barra de menú se encuentran los comandos disponibles para las diferentes


tareas que se pueden llevar a cabo.

En la que se encuentran:

1. Barra de Inicio Rápido (Nueva característica en Office 2007).

2. Barra de Título de la ventana de Excel, incluye el nombre del libro abierto.

3. Botones clásicos de las ventanas de Windows (minimizar, maximizar y cerrar).

4. Agrupación de todas las Barras de Herramientas de Excel. Esta forma de


presentar las barras de herramientas es otra de las nuevas características en
Office 2007. Se dividen en fichas o etiquetas, la ficha activa en la figura 2.5 es la
opción “Inicio” en la cual se incorporan todas las funciones referidas al formato.
Con un doble clic sobre cualquiera de las etiquetas se ocultan las herramientas.
23 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

5. Conjunto de Herramientas agrupadas dentro de las fichas. En el caso de la


figura 2.5 se ven todas las herramientas “Formato” incorporadas dentro de la ficha
“Inicio”.

6. Columnas de la hoja.

7. Filas de la hoja.

8. Celda activa.

9. Indica la celda activa

10. Asistente para funciones.

11. Hojas del libro, mediante estos controles podemos desplazarnos rápidamente
por las hojas del libro e insertar nuevas hojas al libro.

12. Barra de desplazamiento horizontal que permite desplazar el contenido de


forma lateral.

13. Zoom sobre la hoja. Estos controles son nuevos y permiten ampliar o reducir el
porcentaje de “zoom”20 de forma rápida y precisa.

14. Controles para cambiar la vista de la hoja.

15. Barra de estado. Muestra los mensajes que corresponden a lo que se está
realizando. En este caso aparece listo, lo cual indica que el programa está
preparado para que el usuario elija un comando o escriba datos en una celda.
Además informa sobre el estado de las teclas de bloqueo de mayúsculas, bloqueo
de números, etc.

                                                            
20 Acercamiento a la página.

24 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.2.4 Libros de trabajo

Los documentos en Excel se denominan libros. En la versión 2007 de Excel estos


ficheros o archivos tendrán una extensión “.xlsx” a diferencia de versiones
anteriores cuya extensión era “.xls”. También esta nueva versión soporta los tipos
de ficheros antiguos.

Excel es capaz de guardar nuestros libros en otros formatos. Un libro está


compuesto por varias hojas de cálculo. Es posible seleccionar varias hojas para
realizar las mismas tareas en todas ellas de forma simultánea.

Cada vez que abra un libro nuevo de trabajo se abrirá con tres hojas de cálculo.

La hoja activa aparece con el nombre en negrita. Haciendo clic en las etiquetas, es
posible desplazarse entre las hojas de un libro.

Figura 2.6 Pestañas de las Hojas.


Fuente: Microsoft Excel

2.2.5 Operaciones con las Hojas

Para organizar el libro es posible insertar hojas nuevas, eliminar hojas, cambiar su
nombre, moverlas, copiarlas, etc.

También se puede organizar la pantalla usando varias ventanas para ver partes
diferentes de una hoja, hojas distintas del mismo libro de trabajo o bien varios
libros de trabajo.
25 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Es posible seleccionar varias hojas para realizar las mismas tareas en todas ellas
simultáneamente, como eliminar varias hojas en un solo paso o introducir los
mismos datos en varias hojas a la vez. Para seleccionar varias hojas se debe
hacer clic en la etiqueta de la primera hoja y manteniendo pulsada la tecla Ctrl,
después dar clic en la etiqueta de cada una de las hojas a seleccionar.

Esta forma de seleccionar las hojas se puede usar cuando las hojas a seleccionar
no estén juntas o contiguas.

Cuando las hojas a seleccionar se encuentran contiguas se hace de la siguiente


forma, se hace clic en la primera hoja a seleccionar y manteniendo pulsada la
tecla Shift se hace clic en la última hoja a seleccionar.

La manera más sencilla de moverse a través del libro de trabajo es utilizar los
botones de desplazamiento, que aparecen en la siguiente figura:

Figura 2.7 Desplazamiento.


Fuente: Microsoft Excel

Estos controles no cambian la hoja activa, simplemente desplazan las etiquetas de


las hojas que no se pueden mostrar. En la figura 2.8 se muestra un ejemplo en el
cual sólo se tiene a la vista la etiqueta de la “Hoja 1” en este caso estos controles
nos permitirán ver las hojas ocultas por falta de espacio.
26 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.8 Flechas.


Fuente: Microsoft Office Excel.

Para insertar una nueva hoja de cálculo como se mencionó anteriormente, un libro
de trabajo contiene inicialmente tres hojas, pero pueden insertarse otras nuevas.
La cantidad máxima de hojas vendrá limitada tan sólo por la memoria disponible.

Para insertar nuevas hojas de cálculo en Excel se dispone de las siguientes


opciones:

1. Hacer clic en el ícono (Figura 2.9).

Figura 2.9 Insertar nueva hoja.


Fuente: Microsoft Office Excel.

Las nuevas hojas aparecerán a la derecha de la última hoja existente.

3. Para insertar una hoja de cálculo nueva antes de otra ya existente, es necesario
seleccionar esa hoja de cálculo y, a continuación, en la ficha Inicio, en el grupo
celdas, hacer clic en Insertar y, a continuación, en insertar hoja.

Figura 2.10 Insertar título.


Fuente: Microsoft Office Excel.

27 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2. La segunda forma de hacerlo es dar clic con el botón secundario del ratón sobre
una hoja apareciendo el siguiente menú de opciones (ver figura 2.11):

Figura 2.11 Opciones.


Fuente: Microsoft Office Excel.

Se selecciona la opción “Insertar” y aparecerá el siguiente cuadro de diálogo:

Figura 2.12 Selección de hoja.


Fuente: Microsoft Office Excel.

Para crear la nueva hoja de cálculo se selecciona “Hoja de cálculo” y después se


pulsa el botón Aceptar.

La nueva hoja aparecerá a la derecha de la hoja existente.

28 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

3. Para insertar una hoja de cálculo nueva antes de otra ya existente, se debe
seleccionar esa hoja de cálculo y, a continuación, en la ficha Inicio, en el grupo
Celdas, dar clic en Insertar y, a continuación, en Insertar hoja.

Figura 2.13 Inserción.


Fuente: Microsoft Office Excel.

Para eliminar una hoja de cálculo, los pasos a seguir son: dar un clic secundario
(derecho) sobre la hoja a eliminar; y en el menú que se despliega (ver figura 2.14)
seleccionar “Eliminar”.

Figura 2.14 Eliminar A.


Fuente: Microsoft Office Excel.

O de otra manera sería: dar un clic sobre la hoja a eliminar, después dar clic la
ficha Inicio, en el grupo Celdas, después clic en “Eliminar” y por último en “Eliminar
hoja”.
29 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 5.15 Eliminar B.


Fuente: Microsoft Office Excel.

2.2.6 Macros

Macro, del griego μακρο que significa grande (ver figura 2.16). En el ámbito
informático es la abreviatura del término “macroinstrucción”.

Figura 2.16 Ejemplo de código visual Basic (VBA) aplicado “Macro”.


Fuente: Microsoft Excel.

Una Macro o macroinstrucción es una serie de instrucciones que se almacenan


para que se puedan ejecutar de manera secuencial mediante una sola llamada u
30 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

orden de ejecución. Una macro-instrucción es por tanto una instrucción compleja,


formada por otras instrucciones más sencillas.

Las macros en Excel son un grupo de instrucciones programadas bajo entorno


VBA (visual Basic para aplicaciones), cuya tarea principal es la automatización de
tareas repetitivas y la resolución de cálculos complejos para el usuario.

Las macros suelen almacenarse en el ámbito del propio programa21 que las utiliza
y se ejecutan pulsando una combinación especial de teclas o un botón
especialmente creado y asignado para realizar tal acción.

2.2.7 Beneficios de las macros

Tienen el fin de evitar al programador la tediosa repetición de partes idénticas de


un programa, los ensambladores22 y compiladores23 cuentan con macro-
procesadores24 que permiten definir una abreviatura para representar una parte de
un programa y utilizar esa abreviatura cuantas veces sea necesario. Para utilizar
una Macro, primero debe de ser declararla. En la declaración se establece el
nombre que se le tendrá la Macro así como el conjunto de instrucciones que
representará.

El programador deberá escribir el nombre de la Macro en cada uno de los lugares


donde se requiera la aplicación de las instrucciones que ella representa. La
declaración solo se realiza una vez, pero la utilización o invocación de la Macro
también conocido como “macro-llamada” puede hacerse todas las veces
                                                            
21 Conjunto de instrucciones estructuradas y ordenadas las cuales un ordenador puede interpretar y ejecutar.
22Se refiere a un tipo de programa informático que se encarga de traducir un archivo fuente escrito en un lenguaje
ensamblador para que la computadora lo pueda leer. Fuente: http://www.alegsa.com.ar/Dic/ensamblador.php
23Traduce los ficheros escritos en lenguajes de programación (comprensibles para los humanos) en código máquina
(unos y ceros). Fuente: www.zaragoza-sl.com/difusion/node/80 
24 El macro-procesador elabora dos tablas para el manejo de las macros.

31 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

requeridas. La utilización de macros posibilita la reducción del tamaño del código


fuente25 con la reutilización de este.

Excel es un programa que tiene un enorme potencial, pero la mayoría de las


personas lo manejan de una forma muy simple, utilizando solo opciones básicas.
Excel cuenta con un lenguaje muy poderoso llamado Visual Basic, este lenguaje
permite resolver los problemas más fácilmente mediante el uso de código que el
usuario puede programar; con Excel es necesario tener mucha creatividad, cada
persona puede crear estructuras diferentes pero que trabajen igual.

2.3 Visual Basic

Visual Basic es un lenguaje de programación de los llamados "visuales", puesto


que parte de la programación que se realiza con él se basa en la utilización de
elementos visuales. La palabra "Visual" hace referencia al método que se utiliza
para crear la interfaz gráfica de usuario. En lugar de escribir numerosas líneas de
código para describir la apariencia y la ubicación de los elementos de la interfaz,
simplemente podemos agregar objetos prefabricados en su lugar dentro de la
pantalla, que ahorran mucho tiempo de programación y que sobrepasan el
concepto de la programación convencional en cuanto a la estructura secuencial
del programa.

2.3.1 ¿Qué es Visual Basic?

Visual Basic es un lenguaje de programación26 que desarrollo Alan Cooper para la


empresa Microsoft. El lenguaje de programación es un dialecto o variación de
BASIC27, con funciones importantes añadidas.

                                                            
25 Conjunto de instrucciones escritas en algún lenguaje de programación de computadoras.
26 Lenguaje de programación es un conjunto de sintaxis y reglas que definen los programas de una computadora para

controlarla.
32 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Su primera versión fue presentada en 1991 y fue creado con la intención de


simplificar la programación utilizando un ambiente de desarrollo completamente
gráfico que facilitara la creación de interfaces gráficas y en cierta medida también
la programación misma.

Visual Basic (Visual Studio) constituye un IDE28 que ha sido empaquetado como
un programa de aplicación, es decir, consiste en un editor de código29, un
depurador30, un compilador31 y un constructor de interfaz gráfica o GUI.

2.3.2 Características de Visual Basic

Es posible decir que Visual Basic es un lenguaje orientado a eventos32. En las


aplicaciones tradicionales o por “procedimientos”, la aplicación es la que controla
qué partes de código y en qué secuencia se ejecutan. La ejecución comienza con
la primera línea de código y continúa con una ruta predefinida a través de la
aplicación, llamando a los procedimientos según se necesiten.

En una aplicación controlada por eventos, el código no sigue una ruta


predeterminada, eso significa que ejecuta distintas secciones de código como
respuesta a los eventos que pueden desencadenarse por acciones del usuario,
por mensajes del sistema o de otras aplicaciones, o incluso por la propia
aplicación. La secuencia de estos eventos determina la secuencia en la que se

                                                                                                                                                                                     
27 “Beginners All-Purpose Symbolic Instruction Code”, Lenguaje de programación de alto nivel sencillo de entender
28 Entorno de desarrollo integrado o en inglés Integrated Development Enviroment.
29 Programa donde se escribe el código fuente para crear programas propios.
30 Programa que corrige errores en el código fuente para que pueda ser bien compilado.
31 Programa que traduce el código fuente a lenguaje de máquina.
32 Evento en programación es hacer un clic, presionar una tecla o hacer cualquier acción sobre un programa. 

33 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

ejecuta el código, por lo que la ruta a través del código de la aplicación es


diferente cada vez que se ejecuta el programa.

Es por ello que Visual Basic es un lenguaje de programación que está orientado, o
dicho de otra forma: “dirigido” por eventos, ya que las acciones se realizarán
únicamente cuando el usuario realice cualquier evento, que esté programado en el
software (Programa de Computadora).

Para manejar los objetos y controles del lenguaje hay que conocer tres conceptos
asociados a ellos:

Propiedades: Para todos los objetos y controles de Visual Basic, hay definidas una
serie de propiedades que nos permiten controlarlos como son: nombre, tamaño,
color, posición, etc., la mayoría de las propiedades serán comunes, pero
evidentemente, habrá objetos que tengan otras determinadas propiedades
específicas.

Eventos: Cada objeto lleva asociados unos determinados eventos que le pueden
ocurrir, por ejemplo a un botón, le puede ocurrir que el usuario pulse con el botón
principal del ratón sobre él, eso es el evento NombreDelBotón_Click() que es la
manera en que se programa en visual Basic un botón, bien cuando esto ocurra, se
dispara este evento, al cual un programador le puede agregar el código de lo que
se requiere que haga la aplicación cuando el usuario pulse el botón.

Los métodos: Son procedimientos asociados a un objeto, que permiten realizar


acciones como por ejemplo escribir un texto en un objeto, para este caso se usa el
método Print, con la siguiente sintaxis: NombreDelObjeto.Print "Texto deseado".

Los eventos son como métodos comunes, dependiendo de los objetos usados en
Visual Basic se encontrarán elementos específicos y exclusivos de este.

34 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.3.3 Objetos en Visual Basic

Los objetos son todos los componentes que conforman la interfaz visual de un
programa en Visual Basic, por ejemplo: los botones, formularios, imágenes, listas,
entre otros.

 
Figura 2.67 Objetos en Visual BASIC.
Fuente: Microsoft Office.

El esquema de programación es muy sencillo, para crear una aplicación, primero


se crea un formulario vacío sobre el que se pueden ir poniendo los controles
deseados, en tiempo de diseño se pueden especificar las propiedades iníciales de
esos controles.

Posteriormente se puede poner el "código respuesta" a los eventos que controlan


los objetos colocados. En ese "código respuesta", que es lo que se llama en
tiempo de ejecución, es posible modificar algunas propiedades de los objetos,
lanzar métodos, ejecutar rutinas, llamar a otros procedimientos etc.

35 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.3.4 Eventos en Visual Basic

Los eventos son acciones o sucesos que todos los objetos reconocen, a los cuales
se les puede codificar algún código; por ejemplo: cuando se hace clic sobre un
botón, o cuando se presiona una tecla en específico.

Figura 2.18 Eventos.


Fuente: Microsoft Office.

Es muy importante que cuando se diseña un programa en Visual Basic (VB) se


diseñe primero el aspecto visual con los objetos, para posteriormente establecer
los distintos eventos para cada objeto y al último escribir los códigos
correspondientes a cada acción.

36 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.19 Entorno de VB (Visual Basic).


Fuente: Microsoft Office.

2.3.5 Descripción del entorno Visual Basic

Al ejecutar VB, después de cargar el entorno, aparece un cuadro como en la figura


2.19.

VB Ofrece tres pestañas:

1. Nuevo, con las diferentes opciones que permiten crear VB, EXE estándar33,
muestra un formulario vacío desde el cual se puede comenzar a desarrollar
una aplicación.

2. Existente, permite abrir proyectos que ya existen para continuar


implementándolos.

3. Recientes, lo mismo pero sobre los últimos proyectos que se hayan estado
desarrollando.

                                                            
33 De la abreviación del inglés “executable”, que se traduce en ejecutable, por ejemplo: se puede ejecutar en sistema

operativo que soporte esa aplicación de tipo como Windows 7.

37 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Cuando se elige “EXE” estándar aparece la siguiente ventana (ver figura 2.20).
Pero con diferente tamaño, allí se muestra un proyecto abierto que cuenta con un
formulario vacío que posteriormente si el programador lo desea o requiere puede
insertar tantos como desee.

Figura 2.20 Proyecto.


Fuente: Microsoft Office.

La ventana principal está formada además de por la barra de menús34 y la barra


de botones superiores, de un conjunto de ventanas con funciones diversas, cada
una de ellas es configurable en cuanto tamaño, o incluso se pueden ocultar para
ganar espacio para otras.

Las principales son:

™ Ventana del Proyecto: Es la ventana que va a contener el objeto activo del


proyecto, en la imagen superior se muestra que contiene el formulario
vacío, que se usará para el diseño gráfico. Pero cuando sea necesario
añadir código, la ventana de código también estará contenida aquí.
                                                            
34 Es una lista de opciones, que aparece en la pantalla del la computadora de la que el usuario hace una selección.

38 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

™ Explorador de proyectos: Ventana superior derecha, permite visualizar los


objetos que contiene el proyecto actual agrupándolos por categorías, al
principio solo hay un formulario colgando de la carpeta formularios. además
en la parte superior izquierda de esta ventana hay dos botones que
permiten intercambiar la vista de diseño gráfico con la ventana de código en
la ventana del proyecto. Para pasar a la ventana de código bastaría con
hacer doble clic sobre cualquier control.

™ Ventana de propiedades: situada debajo de la anterior, contiene el conjunto


de propiedades, con el valor actual correspondiente, de cada uno de los
objetos. Allí es posible modificar los valores iníciales de esas propiedades,
en lo que se conoce como tiempo de diseño.

™ Ventana de posición del formulario: situada debajo de la anterior, permite la


colocación del formulario en la pantalla, representado la misma con una
imagen a escala35.

™ Caja de herramientas: situada a la izquierda, contiene los controles que se


pueden ir colocando en el formulario, para ello bastará con hacer doble clic
sobre uno de ellos, o pulsar sobre el control y "dibujarlo" sobre el formulario.

                                                            
35 Lista jerárquica de valores.

39 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.4 Java

Java es un lenguaje de programación que creó la empresa Sun Microsystems en


principios de los años 90, este lenguaje es orientado a objetos. Para comprender
mejor este término es necesario comprender que un objeto es algo bien
determinado como por ejemplo las moléculas, una Xbox 360 elite, un Nintendo DS
lite, un círculo, un triangulo, cuadrado, etc. estos objetos tienen ciertas
características que los conforman conocidas en programación con el nombre de
atributos, un objeto también puede realizar ciertas operaciones conocidas como
métodos.

Java es un lenguaje de alto nivel muy potente y versátil, multiplataforma lo que


significa que corre o puede ser ejecutado en casi cualquier sistema operativo
desde Solaris, Linux, Windows entre otros, es muy usado para crear aplicaciones
en celular que por lo general son juegos, Java permite que estos no ocupen
mucha memoria de dispositivos celulares haciendo las aplicaciones más livianas,
rápidas y compatibles, por lo general Java tiene actualizaciones cada mes y en
internet la página de la empresa Sun cuenta con una API36 donde desarrolladores
de todo el mundo pueden hacer consultas sobre cómo utilizar ciertos métodos o
realizar operaciones de acuerdo a sus requerimientos.

Java es un lenguaje de programación con mucho éxito a nivel mundial pues ha


resuelto muchos de los problemas que se les presentan a los programadores
contemporáneos cumpliendo con su objetivo principal por el cual fue creado que
es el de mejorar la productividad, ser práctico y brindar a un programador una
enorme cantidad de beneficios.

                                                            
36 Application Programming Interface contiene funciones y procedimientos de el lenguaje Java es como un manual.

40 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Java cuenta con bibliotecas37 que permiten que el programa que se está
desarrollando corra de manera más rápida, el programador puede elegir solo las
bibliotecas que contienen las funciones que necesita agilizando el proceso.

Describiendo las funcionalidades de Java de una manera más sencilla:

Java permite jugar en línea, participar en sesiones de chat con internautas38 en


cualquier parte del mundo, calcular los intereses de una hipoteca y ver imágenes
en tres dimensiones, entre otras muchas aplicaciones. Es también esencial para
las aplicaciones de Intranet39 y otras soluciones de comercio electrónico que
constituyen la base informática de la gran mayoría de las empresas hoy en día.

2.4.1 Historia de Java

Java fue diseñado por James Gosling de Sun Microsystems en 1990 como
software de dispositivos electrónicos como calculadoras, microondas etc.

Java había sido creado bajo tres razones que son:

1. Aumentaba la necesidad de interfaces más cómodas e intuitivas que los


sistemas de ventanas que proliferaban hasta el momento y no llenaban las
expectativas.

2. Fiabilidad del código y facilidad de desarrollo. El creador de Java James


Gosling observó que muchas de las características que ofrecían lenguajes
de programación como C o C++ aumentaban dramáticamente el elevado
costo de pruebas y depuración. Por ello se enfoco en crear un lenguaje de

                                                            
37 Una biblioteca o librería en java contiene todas las funciones que se utilizan agrupadas y ordenadas.
38 Internauta hace referencia a las personas que navegan en internet.
39 Red de ordenadores privados que utiliza tecnología Internet para compartir de forma segura cualquier información o

programas, es comúnmente usado en las empresas.

41 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

programación donde intentaba solucionar los fallos que encontraba en


lenguajes como C++.

3. Enorme diversidad de controladores electrónicos40. Los dispositivos


electrónicos se controlan mediante la utilización de microprocesadores41
baratos, que varían cada poco tiempo y que utilizan diversos conjuntos de
instrucciones. Java permite escribir un código común para todos estos
dispositivos.

La tecnología Java fue creada como una herramienta de programación para ser
usada en un proyecto de set-top-box que es: STB, su traducción literal al español
es: “aparato que se coloca encima del televisor”,  es el nombre con el que se
conoce el dispositivo encargado de la recepción, ese proyecto se usó en una
operación denominada “The Green Project” en Sun Microsystems en 1991. El
equipo (Green Team), estaba compuesto por trece personas y era dirigido por
James Gosling que trabajó durante 18 meses su desarrollo.

 
Figura 2.21 Logotipo de Sun Microsystems.
Fuente: www.sun.com

El lenguaje se llamó Oak, pero por ser una marca ya registrada se le denominó
Green y finalmente se renombró a Java.

                                                            
40Un controlador es un componente de software diseñado para proporcionar compatibilidad a nuevo dispositivo o
hardware
41 Es la parte más importante del ordenador, se encarga de realizar todos los cálculos y controla su funcionamiento. 

42 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

El término Java fue tomado de una cafetería a la que solían asistir algunos de los
miembros del equipo Green Team. Pero no está claro si es un acrónimo o no,
aunque algunas fuentes señalan que podría tratarse de las primeras letras de sus
creadores: James Gosling, Arthur Van Hoff, y Andy Bechtolsheim. Otros abogan
por el siguiente acrónimo, Just Another. La hipótesis que más fuerza tiene es la
que Java debe su nombre a un tipo de café disponible (ver figura 2.21).

Figura 2.72 Logtipo de Java.


Fuente: www.java.com

Un pequeño signo que da fuerza a esta teoría es que los 4 primeros bytes de los
archivos “.class” que genera el compilador, son en hexadecimal, 0xCAFEBABE.
Otros simplemente dicen que el nombre fue obtenido al parecer de una lista
aleatoria de palabras.

Los objetivos de Gosling eran implementar una máquina virtual42 y un lenguaje con
una estructura y sintaxis43 similar a C++. Entre junio y julio de 1994, tras una
sesión maratoniana de tres días entre John Gaga, James Gosling, Joy Naughton,
Wayne Rosing y Eric Schmidt, el equipo reorientó la plataforma hacia la Web.

                                                            
42Es un software que emula a una computadora y puede ejecutar programas como si fuese una computadora real (JVM
“Java Virtual Machine”).
43 Se refiere a la gramática y la ortografía de un lenguaje que le permite programar. 

43 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Sintieron que la llegada del navegador Web Mosaic, propiciaría que Internet se
convirtiese en un medio interactivo, como el que pensaban era la televisión por
cable. Naughton creó entonces un prototipo de navegador, WebRunner, que más
tarde sería conocido como HotJava44.

En 1994, se les hizo una demostración de HotJava y la plataforma Java a los


ejecutivos de Sun. Java 1.0a pudo descargarse por primera vez en 1994, pero
hubo que esperar al 23 de mayo de 1995, durante las conferencias de SunWorld,
a que vieran la luz pública Java y HotJava, el navegador Web. El acontecimiento
fue anunciado por John Gage, el Director Científico de Sun Microsystems. El acto
estuvo acompañado por una pequeña sorpresa adicional, el anuncio por parte de
Marc Andreessen, Vicepresidente Ejecutivo de la empresa Netscape, que Java
sería soportado en sus navegadores. El 9 de enero del año siguiente, 1996, Sun
fundó el grupo empresarial JavaSoft para que se encargase del desarrollo
tecnológico. Dos semanas más tarde la primera versión de Java fue publicada.

La promesa inicial de Gosling era Write Once, Run Anywhere45, proporcionando


un lenguaje independiente de la plataforma y un entorno de ejecución (JVM46)
ligero y gratuito para las plataformas más populares de forma que los binarios
(bytecode) de las aplicaciones Java pudiesen ejecutarse en cualquier plataforma.

El entorno de ejecución era relativamente seguro y los principales navegadores


web pronto incorporaron la posibilidad de ejecutar applets47 Java incrustadas en
las páginas web.

                                                            
44 HotJava es un navegador web modular y extensible de Sun Microsystems que puede ejecutar applets Java.
45 En español significa: Escríbelo una vez, ejecútalo en cualquier lugar
46 Máquina Virtual de Java. 
47 Son aplicaciones que se ejecutan en un servidor de internet que es una computadora central de un sistema de red.

-Red es donde están conectadas dos o más computadoras.


44 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Java ha experimentado numerosos cambios desde la versión primigenia, JDK48


1.0, así como un enorme incremento en el número de clases y paquetes que
componen la biblioteca estándar.

Desde J2SE 1.4, la evolución del lenguaje ha sido regulada por el JCP49, que usa
Java Specification Requests50 (JSRs) para proponer y especificar cambios en la
plataforma Java. El lenguaje en sí mismo está especificado en la Java Language
Specification (JLS)51, o Especificación del Lenguaje Java. Los cambios en los JLS
son gestionados en JSR 901.  

                                                            
48 JDK o Java Develpment Kit (ver Capítulo 3 tema 3.4.Programación en Java usando el API Jakarta - POI).

Java Community Process: el organismo que guía y dirige la evolución de la plataforma Java a través de la creación y
49

mantenimiento de las distintas especificaciones que la componen.


50 Especificación Requerimientos.
51 Para explicar por qué ocurren las excepciones. 

45 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Comunicado de prensa:

JDK 1.0 (23 de enero de 1996) — Primer lanzamiento.

JDK 1.1 (19 de febrero de 1997) — Principales adiciones incluidas: comunicado de


prensa

J2SE 1.2 (8 de diciembre de 1998) — Nombre clave Playground. Esta y las


siguientes versiones fueron recogidas bajo la denominación Java 2 y el nombre
"J2SE" (Java 2 Platform, Standard Edition), reemplazó a JDK para distinguir la
plataforma base de J2EE (Java 2 Platform, Enterprise Edition) y J2ME (Java 2
Platform, Micro Edition). Otras mejoras añadidas incluían: comunicado de prensa

La máquina virtual (JVM) de Sun fue equipada con un compilador JIT (Just in Time)
por primera vez

Metadatos — también llamados anotaciones, permite a estructuras del lenguaje como


las clases o los métodos, ser etiquetados con datos adicionales, que puedan ser
procesados posteriormente por utilidades de proceso de metadatos. (Especificado
por JSR 175.)

2.4.2 Características de Java

En Java los sistemas son más fáciles de expresar y comprender, cuando se


escribe el código se escribe una solución al problema de una manera casi directa.

En Java los errores se manejan usando excepciones, las excepciones notifican los
errores en consecuencia a algo dentro del código, el uso de excepciones es una
buena forma de tener controlados los programas grandes y complejos.

A comparación de lenguajes anteriores que manejaban códigos muy largos de


manera compleja y que son poco eficientes gracias a Java estos límites
desaparecieron, cuando alguien quiere escribir un programa que imprima en

46 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

pantalla por ejemplo “me gustan los chocolates”, no es necesario usar POO52 pero
esas características siempre estarán ahí cuando sean requeridas por el
programador.

Java además de ser muy práctico permite a los programadores que nos
ahorremos la lenta, tediosa y aburrida tarea de reescribir el código ya existente en
el programa generando objetos para interactuar; En Java se crean clases53, a
partir de estas es posible crear objetos, cuando creamos una nueva clase y la
juntamos con otra que ya teníamos podemos crear a partir de estas otra clase y
así sucesivamente permitiéndonos hacer cambios a las clases derivadas de estas
conocidas como clases hijas y de las creadoras llamándolas clases padre, esto es
similar a un árbol genealógico en Java el proceso es conocido como herencia (ver
figura 2.3).

En Java no se manejan apuntadores como en C++54, los apuntadores son


variables55 que guardan direcciones de memoria y sirven para hacer referencia a
variables contenidas en un programa, cuando se requiera que sean utilizadas.

                                                            
52 Programación Orientada a Objetos en inglés Object-oriented programming.
53 Una clase es una agrupación de datos variables.
54 Lenguaje de programación creado a mediados de 1980.
55 Espacio de memoria que almacena un valor, pueden tomar diferentes valores. 

47 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Figura 2.23 Herencia de Clases.


Fuente: Elaboración propia.

Java es Multihilo que en inglés es “multithreading”, eso significa que puede


ejecutar varios procesos al mismo tiempo así, mientras un hilo se encarga del
proceso de comunicación, otro puede interactuar con el usuario, al mismo tiempo
otro presenta una animación en pantalla y otro realiza cálculos matemáticos.

Puede generar dos tipos de programas que son applets y aplicaciones


independientes que se comportan como cualquier programa mientras que los
applets son pequeños programas que aparecen en las páginas Web, como
aparecen los gráficos o el texto, pero con la capacidad de ejecutar acciones
relativamente muy complejas, como son las de animar imágenes, establecer
conexiones de red, presentar menús y cuadros de diálogo para luego emprender
acciones, etc.

2.4.3 API de Java para Excel

Existen varias API que son utilizadas por los programadores para construir sus
aplicaciones sin necesidad de volver a programar funciones ya hechas por otros,
reutilizando código que se sabe que está probado y que funciona correctamente.

48 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Para abrir archivos del tipo Microsoft existen el API llamada Jakarta POI, JExcel
que sirve para leer, escribir y modificar documentos de Excel .xls y otras más.

Estas API son de código abierto es decir que pueden ser usadas por cualquiera
sin costo alguno, contienen las líneas de código necesarias para acceder a
archivos de Microsoft, permitir la modificación de estos, actualización,
manipulación.

2.4.3.1 Apache POI

Es un API de Java para acceder a archivos con formato Microsoft.

El propósito del proyecto POI consiste en APIs para manipular varios formatos de
archivos basados en el formato de Documento Compuesto OLE 256 de Microsoft,
utilizando solamente Java. En concreto, se pueden leer y escribir archivos
Microsoft Excel utilizando Java. También se pueden leer y escribir archivos Word
utilizando Java. POI es una solución Java Excel así como su solución Java Word.
En cualquiera de los casos, es una API completo para portar otros formatos de
Documento Compuesto OLE 2.

Entre los archivos basados en el formato de Documento Compuesto OLE 2 de


Microsoft se incluyen la mayor parte de los archivos de Microsoft Office tales como
XLS y DOC57.

Como visión general es que POI escribe archivos, Excel. POI es el nombre del
proyecto que contiene varios componentes, uno de los cuales, se llama HSSF58 y
escribe archivos de Excel.

                                                            
56Tecnología de Microsoft para compartir información entre distintas aplicaciones de Windows. Permite la creación de
documentos o programas incorporando elementos de otros.
57 Es una extensión que hace referencia a documentos de tipo Word.

49 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.5 Visual C# .NET

Los lenguajes de programación como C y C++ han sido los más usados durante
los últimos 20 años por el alto grado de control que brindan al programador para
crear aplicaciones de negocios y comerciales. Al comparar Microsoft Visual Basic
con C o C++ es muy notorio que estos son más potentes por lo tanto implica que
al ser usados para programar le tome más tiempo al programador.

Era necesario que hubiera un lenguaje de programación entre Microsoft Visual


Basic y C/C++ que permitiera crear aplicaciones rápidamente y que a su vez
permitieran un alto grado de control, un lenguaje que se integrase bien con el
desarrollo de aplicaciones Web o de Internet y muchas otras tecnologías
emergentes59, para que los programadores que no quisieran cambiarse de C/C++
a Visual Basic no perdieran el control del bajo nivel al que estaban
acostumbrados.

Con Visual C# se combinan las mejores ideas de C/C++ y Java, se facilita la tarea
de transición60 de los programadores de C/C++, proporcionando a su vez un
lenguaje sencillo, este lenguaje se presentó en Orlando Florida en el año 2000.

2.5.1 ¿Qué es Visual C#?

Microsoft Visual C# 2010 es un lenguaje de programación que fue especialmente


diseñado para crear una amplia gama de aplicaciones que se ejecutan en .NET
Framework. C# es simple, eficaz, seguro y orientado a objetos. Con sus diversas
innovaciones, C# permite desarrollar aplicaciones de una manera muy rápida y
mantiene la expresividad y elegancia de los lenguajes de tipo C.
                                                                                                                                                                                     
58proyecto de Java que permite la escritura de archivos “.xlsx” que indica la extensión del tipo de archivo de hojas de
cálculo de Excel 2007. 
59 Que nacen de otra cosa o se generan.
60 Una transición es la acción y efecto de pasar de un modo de ser o estar, a otro muy distinto del anterior. 

50 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Visual Studio admite Visual C# con un editor de código completo en donde se


incluyen plantillas de proyecto, diseñadores, asistentes para código, un depurador
eficaz y fácil de usar, además de otras herramientas. La biblioteca de clases .NET
Framework ofrece acceso a una amplia gama de servicios de sistema operativo y
a otras clases útiles que fueron adecuadamente diseñadas que aceleran el ciclo
de desarrollo de manera significativa.

2.5.2 .NET Framework

Microsoft .NET Framework, es un componente de software que se incluye en los


sistemas operativos de Microsoft como Windows XP, Windows Vista o Windows 7.
Provee soluciones para requerimientos comunes de los programas y gestiona o
administra la ejecución de programas escritos específicamente para este
Framework.

Esto sirve para que Microsoft tenga todas las aplicaciones creadas para la
plataforma Windows, sean basadas en el .NET Framework. El objetivo principal de
esto es crear un marco de desarrollo de software sencillo, reduciendo las
vulnerabilidades y aumentando la seguridad de los programas desarrollados por
los programadores.

Las soluciones previamente codificadas que forman la biblioteca .NET, cubren un


largo rango de necesidades de la creación de programas. Los programadores las
emplean y combinan con sus propios códigos en sus programas. El Framework
incluye soluciones en áreas como: la interfaz de usuario61, acceso a datos,

                                                            
61 Es el medio con que el usuario puede comunicarse con una máquina.

51 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

conectividad a bases de datos, criptografía62, desarrollo de aplicaciones web,


algoritmos numéricos63 y comunicación de redes64.

Con esta plataforma Microsoft incursiona de lleno en el campo de los servicios


web y establece al XML65 como norma en el transporte de información en sus
productos y lo promociona como tal en los sistemas desarrollados utilizando sus
herramientas.

.NET Framework fue diseñado con tres objetos en mente:

1. Lograr la creación de aplicaciones para Windows más estables.

2. Simplificar el desarrollo de aplicaciones y servicios web para funcionar también


en móviles (celulares, palm, etc.).

3. El entorno fue desarrollado para proporcionar un solo grupo de bibliotecas que


pudieran trabajar en varios lenguajes (C#, VC++.NET, JScript.NET).

2.5.3 Desarrollo de Aplicaciones

Se pueden construir aplicaciones tradicionales Windows aparte del desarrollo web


con .NET Framework basadas en Windows Forms.

                                                            
62 La criptografía es el arte y la ciencia de la seguridad de la información.
63 Conjunto de instrucciones que permiten la resolución de un problema paso a paso.
64Es una red de enlaces y nodos o intersecciones de estas, ordenados para la comunicación a distancia, donde los
mensajes pueden pasarse de una parte a otra de la red sobre diversos enlaces y a través de varios nodos.
65XML es un lenguaje de programación parecido a HTML, XML no consta de etiquetas predefinidas lo cual brinda una
amplia posibilidad para representar una gran variedad de objetos.

HTML (Lenguaje de Marcas de Hipertexto), es el lenguaje de marcado predominante para la construcción de páginas
web. 

52 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

Windows Forms es una especie de cruce entre formularios de Visual Basic 6.0 y
los formularios de Visual C++, estos formularios están completamente orientados
a objetos y basados en clases.

La programación en Visual C# brinda aplicaciones que no están disponibles en


otros lenguajes de programación, como las medidas de seguridad las cuales
pueden ser determinadas en una aplicación si desde un disco un archivo se puede
leer o escribir, se pueden insertar firmas digitales las cuales brindan la seguridad
de que la aplicación fue escrita de una fuente de confianza .NET Framework, así
como información de componentes y versión dentro del código real. Gracias a esto
el software66 se instala cuando se le pide, automáticamente o sin la intervención
de un usuario, lo cual sirve para reducir costos de una empresa.

Figura 2.24 Logotipo de Visual C# .NET


Fuente: Microsoft .NET

                                                            
66 Es una aplicación que permite a los usuarios finales hacer determinadas tareas. Algunos ejemplos de software son

antivirus, editores de texto, etc.

53 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

2.6 Bibliografía

Los pies de página del capítulo contienen información sobre algunas palabras o
términos que no son muy comúnmente conocidos por la mayoría de las personas;
sirven al lector para saber de que se está hablando sin necesidad de investigar en
algún diccionario u otro medio facilitando la fluidez en la lectura.

Estos pies de página no son completamente obtenidos desde algún libro o página
web en específico a menos que allí se especifique; son el resultado de la
investigación en varios medios para obtener una definición propia que se ajuste
más al contexto de los capitulos de la tesis; recomiendo visitar las siguientes
páginas y libros para aquellos que deseen profundizar en ciertos temas y conocer
la bibliografía usada para la creación de los capitulos.

TEMA: Hojas de Cálculo

[2.1] Hojas Electrónicas - UNAM,


http://entren.dgsca.unam.mx/excel/intro/intro.html, Octubre/2009.

[2.2] Microsoft Excel – Hojas de cálculo,


http://ortihuela.galeon.com/excel2000.htm, Octubre/2009.

TEMA: La primera hoja de cálculo (VisiCalc)

[2.3] Dan Bricklin’s Web site - VisiCalc Executable for the IBM PC ,
http://www.bricklin.com/history/vcexecutable.htm, Octubre/2009.

[2.4] davidgp.com - Antes que Microsoft Excel existió Visicalc,


http://www.davidgp.com/2008/04/15/antes-que-microsoft-excel-existio-visicalc,
Octubre/2009.

54 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

TEMA: Excel ¿Qué es Excel?

[2.5] El Programa Excel – monografías.com,


http://www.monografias.com/trabajos10/el_prog/el_prog.shtml, Octubre/2009.

[2.7] Microsoft Office Excel, http://office.microsoft.com/es-


es/excel/fx100487623082.aspx, Octubre/2009.

[2.7] (Sólo usado para hacer referencias, esta enciclopedia de internet puede ser
modificada por gente de todo el mundo para enriquecer su contenido, los datos
erróneos no son aceptados pues siempre se revisa) Microsoft Excel - Wikipedia,
http://es.wikipedia.org/wiki/Microsoft_Excel, Octubre/2009.

[2.8] Scribd – Manual de Excel, http://www.scribd.com/doc/38655/Manual-de-


Excel-2007, Octubre/2009.

TEMA: Antecedentes de Excel

[2.9] Hidden DVD Easter Eggs, http://www.hiddendvdeastereggs.com/,


Octubre/2009.

[2.10] Microsfot Excel- Wikipedia http://es.wikipedia.org/wiki/Microsoft_Excel,


Octubre/2009.

[2.11] Trucos – Huevos de Pascua,


http://www.danielclemente.com/trucos/#huevos, Octubre/2009.

TEMA: Macros

[2.12] Macro - Wikipedia, http://es.wikipedia.org/wiki/Macro, Octubre/2009.

[2.13] Web and Macros, http://www.webandmacros.com/macros_en_excel.htm,


Octubre/2009.

55 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

TEMA: Visual Basic

[2.14] Programación Orientada a Eventos - Blog Informático,


http://www.bloginformatico.com/etiqueta/programacion-orientada-eventos,
Octubre/2009.

[2.15] Visual Basic inicios en la programación Eventos - Blog Informático,


http://www.bloginformatico.com/visual-basic-inicios-en-la-programacion-orientada-
a-eventos.php, Octubre/2009.

[2.16]ADR Formación.com – Introducción a Visual Basic,


http://www.adrformacion.com/curso/visualbasic/leccion1/introduccion_visual_basic.
htm, Octubre/2009.

[2.17] BASIC – Wikipedia, http://es.wikipedia.org/wiki/BASIC, Octubre/2009.

[2.18] Visual Basic – Monografías.com


http://www.monografias.com/trabajos10/visual/visual.shtml#QUEES,
Octubre/2009.

TEMA: Java

[2.19] Computación Cinvestav.mx – POO (Programación orientada a objetos),


Abdiel E. Cáceres González (2004). Centro de Investigación y de Estudios
Avanzados – IPN, México D.F., México.
http://computacion.cs.cinvestav.mx/~acaceres/courses/udo/poo/files/slides/POO-
03.pdf, Octubre/2009.

[2.20] Lenguaje de programación Java – Wikipedia,


http://es.wikipedia.org/wiki/Lenguaje_de_programación_Java, Octubre/2009.

[2.21] Java.com - Java, http://www.java.com/es/download/whatis_java.jsp,


Octubre/2009.
56 

 
CAPITULO 2 – Software para desarrollo de Aplicaciones

TEMA: Historia de Java

[2.22] Historia del lenguaje Java,


http://www.cad.com.mx/historia_del_lenguaje_java.htm, Octubre/2009.

TEMA: Características de java

[2.23] ¿Qué es Java?, http://www.iec.csic.es/criptonomicon/java/quesjava.html,


Octubre/2009.

TEMA: API de Java para Excel

[2.24] Windows API -Wikipedia, http://en.wikipedia.org/wiki/Windows_API,


Octubre/2009.

[2.25] The Apache POI Project - POI-HSSF and POI-XSSF - Java API To Access
Microsoft Excel Format Files, http://poi.apache.org/spreadsheet/index.html,
Octubre/2009.

TEMA: Información sobre C#

[2.26] Ferguson Jeff; Patterson Brian; Beres Jason (2003). La biblia de C#. Ed.
Anaya Multimedia. España. Página 36, Octubre/2009.

[2.27] Microsoft.com - MSDN, http://msdn.microsoft.com/es-


es/library/kx37x362(VS.80).aspx, Octubre/2009.

[2.28] Diccionario Informático - .NET Framework,


http://www.alegsa.com.ar/Dic/.net%20framework.php, Octubre/2009.

[2.29] Bruce Eckel; Jorge Gonzáles Barturen (2002). Piensa en Java. Ed. Prentice
Hall, 2ª. Edición, Madrid, Octubre/2009.

57 

 
CAPITULO 3
Desarrollo de los Programas
CAPITULO 3 – Desarrollo de los Programas 

3.1 Introducción del análisis de requerimientos

Para comenzar lo más importante es hacer el análisis de los requerimientos del


programa, el programa debe depurar documentos con formato Microsoft Excel
“.xls” rápidamente y sin errores, es importante destacar que Microsoft implementó
Visual Basic en Excel para la creación de macros1 que faciliten las tareas
repetitivas.

En el IMP como becaria se me encargó realizar una macro que depure


documentos CN40 y ZH302, para eso es importante un análisis en un cuadro con
los nombres de las columnas que se requieren de dichos documentos, esto es
necesario por que, los nombres de las columnas tienen una ubicación especifica
tanto en el documento tanto en CN40 como en el ZH30 y cuando este está
depurado cambian tanto la ubicación de las columnas3 como los nombres de estas
y todo es debido a una base de datos que se llama RDX4, RDX se encuentra
organizada de una manera diferente tal y como queda el documento CN40 y ZH30
ya depurados.

Es decir suponiendo que cada semana llega un documento CN40 y ZH30 estos
contienen las columnas que se requieren para RDX, pero no se puede obtener
directamente la información de estos documentos por que vienen protegidos, con
columnas extra, nombres distintos y la ubicación de las columnas es diferente a la
ubicación de columnas de la base.

                                                            
1 Ver capítulo 2 Tema 2.2.7 Macros.
2 CN40 y ZH30 son documentos de Excel que tienen información de los empleados del IMP, proyectos etc.
3 En Excel las columnas se ubican con letras ejemplo: A, B… AB, etc.
4 Es una base de datos del IMP la cual guarda toda la información contenida en archivos CN40 y ZH30, entre otros. 

58 

 
CAPITULO 3 – Desarrollo de los Programas 

3.2 Creación de tablas de requerimientos

Como este trabajo va a ser usado por personas que trabajan directamente con
RDX y otras que no, es necesario que explique el procedimiento de obtención de
los archivos CN40 y ZH30 (ver figura 3.1 que es un Instructivo sobre cómo
descargar documentos CN40 y ZH30).

En las figuras de las tablas se puede observar el resultado del análisis de


requerimientos de RDX, con mayor claridad así como en las observaciones los
cambios a realizar para la depuración (ver figuras 3.2, 3.3, 3.4, 3.5, 3.6 y 3.7).

En la figura 3.3 está la relación de los nombres de las columnas de información


originales en el documento ZH30.xls y como se adecuaron las columnas de tal
manera que corresponda a la BD-RDX, para más información ver el documento
“Generación de Reporte ZH30 Y ZPROD”.

Recopilar del documento toda la información de los proyectos F y D descargados


que se guarda en un nuevo documento con otro nombre por ejemplo: SAP
20090202 2009.xls que se adecuó a los campos requeridos en la tabla de
proyectos de la base de datos RDXs haciendo un reconocimiento de los nombres
de los campos.

En la tabla 3 está la relación de los nombres de las columnas de información


originales en el documento SAP 20090202 2009.xls y como se adecuaron las
columnas de tal manera que corresponda a la BD-RDXs, para más información ver
la tabla 3 CN40_RDX.

59 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.1 Instructivo para descargar documentos CN40 y ZH30.


Fuente: De elaboración propia.

60 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.1 Tabla 1 CN40_RDX


Fuente: De Elaboración propia.

61 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.2 Tabla 2 ZH30


Fuente: De Elaboración propia.

La figura (Figura 3.5) muestra como se debe depurar la información de la hoja que
se llamará “SOLICITANTE” para que se pueda agregar a un documento CN40.

62 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.3 Tabla 3 CN40_RDX proyectos F o D.


Fuente: De Elaboración propia.

 
63 

 
CAPITULO 3 – Desarrollo de los Programas 

Al igual que en la figura 3.5, la figura 3.6 y 3,7 muestra las tablas de que
información contendrán la hoja depurada “RDX_PROYECTO” (figura 3.5) y
“RDX_PROYECTOS_D”.

Figura 3.4 Tabla 4 Solicitante.


Fuente: De Elaboración propia.

64 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.5 Tabla 5 RDX_PROYECTO.


Fuente: De elaboración propia.

65 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.6 Tabla 6 RDX_PROYECTOS_D.


Fuente: De elaboración propia.

En la tabla se muestran los números con las columnas en el orden que deben
estar para la base, CN40 o ZH30 hacen referencia a una hoja del documento, el
nombre original es el nombre de origen que trae el archivo por default, otros
departamentos lo usan de esa manera; en la columna “BASE DE DATOS RDX,
NOMBRE DE CAMPOS” están los nombres por los cuales se deben substituir los
nombres originales.

En la columna “OBSERVACIONES” están anotadas las cosas importantes o


procesos extra requeridos, los archivos CN40 traen documentos F y D, en
observaciones se especifica que proyectos F o D van a ser depurados de cierta
manera.

66 

 
CAPITULO 3 – Desarrollo de los Programas 

3.3 Creación de los Programas de Depuración en Visual Basic

Ahora que he completado satisfactoriamente las tablas de requerimientos para la


creación de las macros; este proceso más que nada consistía en el
reconocimiento de los datos y columnas para facilitar la programación.

Como el archivo que se descarga de la intranet del IMP viene protegido con
contraseñas5 no se puede directamente trabajar con él, la información que
contienen las columnas es confidencial pues es información de todos los
empleados y debido a esto es forzoso tener que crear un documento nuevo de
Excel por ejemplo: “RDXfecha.xls” al mismo tiempo que se tiene abierto un
documento recién descargado de la intranet para poder realizar copias completas
de las hojas que tienen que ser usadas para ser depuradas, estos documentos
recién descargados contienen hojas adicionales con nombres como
graficas_CN40, resultados… etcétera mas toda la información de empleados y
proyectos lo que lo hacen ser documentos realmente pesados6, las hojas que se
tienen que pegar son CN40 en la Hoja1, Resumen_CN40 en la Hoja2 y de igual
manera para el ZH30 en otro documento nuevo en la Hoja1 y pegar el contenido
para la macro de este.

Para comenzar a programar una macro en la opción de vista se muestra el botón


de macros (ver figura 3.8).

                                                            
5 Una contraseña o clave (en inglés password), es una forma de autenticación que utiliza información secreta para

controlar el acceso a Información confidencial, frecuentemente constituida por una cadena de caracteres, que puede
afectar a la seguridad de los datos.
6 Al decir documentos pesados hago referencia a que se tardan en abrir y ocupan espacios de varios megabytes,
mientras que algunos creados por alguna persona por ejemplo para administrar sus gastos personales andan pesando
aprox. 11.3 KB (11,618 bytes), esto es completamente variable.  

67 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.8 Botón de Macros en Excel.


Fuente: Microsoft Office

Para comenzar de acuerdo a mis requerimientos lo primero que hay que hacer es
identificar columnas, para ello las tablas me proveen de la información de donde
se encuentran, por lo tanto como el primer caso es solo localizarlas para comenzar
utilicé la opción “Grabar macro”, de esta manera todo los cambios que yo realice
en el documento de manera manual serán grabados, también los errores que
cometa, pero gracias a que puedo acceder al código y modificarlo estos errores
pueden ser fácilmente suprimidos, las opciones que se muestran bajo de la figura
3.8 son las de método abreviado, estas sirven por si quisiera que esa macro se
ejecute al presionar la tecla control más algún otro carácter.

En la siguiente tabla (ver tabla 3.1) está el ejemplo en código de programación en


Visual Basic de cómo se irían ordenando las columnas en el documento de
tipo“.xls” para la depuración:

68 

 
CAPITULO 3 – Desarrollo de los Programas 

 
Tabla 3.1. Ejemplo y explicación del código para ordenar columnas.

CÓDIGO EXPLICACIÓN
Sheets("Hoja1").Select Seleccionar la Hoja1.
Columns("A:A").Select Selecciona completamente la columna
A.
Selection.Copy Copia la selección.

Sheets("Hoja3").Select Selecciona la Hoja3.

Columns("A:A").Select Selecciona toda la columna A.

ActiveSheet.Paste En la selección pega todo lo que había


copiado de la Hoja1.
Fuente: De elaboración propia.

Prácticamente este procedimiento se estaría utilizando para ubicar todas las


columnas que contiene CN40 o ZH30 en las nuevas posiciones requeridas por la
base de datos, es tan sencillo que se parece a el análisis de requerimientos para
la creación de un programa de un robot en inteligencia artificial7 en donde tienes
que dar instrucciones detalladas sin olvidar ningún paso, los seres humanos
realizamos los procedimientos casi de manera automática como por ejemplo
preparar un sándwich, pero cuando se nos pide escribir las instrucciones para
realizarlo solemos omitir unas muy importantes que son tomar, soltar, levantar,
sencillo y a la vez complicado pues no pensamos en todo lo que hacemos con
detalle.

                                                            
7 Es una rama de la computación que se dedica a la creación de programas para máquinas como son robots o

electrodomésticos y computadoras, estos programas sirven para tratar de imitar el comportamiento y la comprensión
humana.

69 

 
CAPITULO 3 – Desarrollo de los Programas 

El usuario que use la macro no tendrá que cambiar los nombres pues por default
un nuevo documento contiene 3 Hojas.

Sí es importante que las hojas tengan nombres asociados a la base de datos


RDX, para eso en el código de la creación de la macro coloqué este pequeño
fragmento de código que cambia el nombre de Hoja1 por CN40:

Sheets("Hoja1").Name = "CN40"

Sheets("Hoja1") hace referencia a la Hoja1,

“.Name” es un método que sirve para cambiar el nombre, este se pone


adelante como = “nombre” y entre comillas el nombre que se quiere.

Como la Hoja CN40 contiene todos los proyectos F y D es necesario separarlos de


acuerdo a las tablas, para esto surgió la idea de comparar los nombres, solamente
importan los documentos D y F pero deben estar en hojas diferentes, la
comparación comenzaría por llegar al primer proyecto diferente de D y detenerse,
después seleccionar todos los proyectos debajo de D que son los F y pegarlos en
otra hoja.

Pero como la macro debe ser dinámica es necesario un contador de proyectos


totales, otro contador de proyectos D que se apoya de la comparación de
proyectos diferentes de F y el total de proyectos que sería la resta de proyectos
totales menos los proyectos (D -1) para restar el nombre o titulo de la columna.

70 

 
CAPITULO 3 – Desarrollo de los Programas 

Matemáticamente hablando sería de esta manera:

Nombre de la columna = 1

Proyectos Totales = Contador - Nombre de la columna

Donde “Contador” debe estar ubicado en una columna donde no existan campos
vacios, la que cumple con este requerimiento es NUM_PROYECTO, la opción de
obtener el número y usarlo directamente no estaba permitida por el formato del
número que era algo similar a “D.00225 ó F.29600”, su nombre parece indicar que
hace referencia a un número entero pero realmente solo hace referencia a como
se numeran los proyectos en RDX.

“Proyectos Totales” será la variable que contenga el número total obtenido de


Contador de filas.

El nombre de la columna no es un proyecto pero se sumara cuando se realicen las


iteraciones del contador de filas, por lo tanto es necesario restarlo.

A continuación el código que hace el conteo de proyectos (Los comentarios se


escriben con una apóstrofe8, estos no afectan el código, en la mayoría de los
lenguajes se usan “//” para comentarios de una línea y para párrafos “/**/”):

                                                            
8 Es el símbolo (‘).

71 

 
CAPITULO 3 – Desarrollo de los Programas 

Sheets("Hoja1").Select

Columns("A:A").Select

Contador = 1 'Esta es la creación de la variable Contador con valor inicial de 1.

Do While Not IsEmpty(Cells(Contador, 1)) 'aquí se muestra una comparación, donde


mientras el espacio no este vacío se toma como válido y se suma a Contador.

Contador = Contador + 1 'la suma

Loop 'Repite un bloque de instrucciones mientras una condición Boolean o


Boleana9 sea Verdadera o hasta que la condición se convierta en Verdadera.

Contador = Contador – 1

Al final de Loop que es cuando ya se tiene el número total de proyectos se resta el


Título, en vez de crear otra variable que se llame proyectos totales simplemente le
estoy dejando a Contador el total.

Para identificar entre proyectos D y F la comparación sería el código:

                                                            
9 Significa que solo puede tomar 2 valores que son verdadero o falso.

72 

 
CAPITULO 3 – Desarrollo de los Programas 

'Para cambiar las celdas según un valor dado:

Sheets("CAT").Select 'selecciona el catálogo “CAT” pues este contiene en su


primera columna todos los proyectos

X = 1 ' servirá para hacer referencia a la celda que esté seleccionada

For i = 1 To Contador ' gracias a que se incrementara hasta el número total de


proyectos que contiene contador es posible irse moviendo de celda en celda

If Cells(i, X).Value = _

"Activo" Or Cells(i, X).Value = _

"" Or Cells(i, X).Value = " " Then

'lo anterior es como se hace la condición, si la celda seleccionada es igual a


alguno de los valores entre comillas Activo, o espacios que representan vacio
entonces esa celda seleccionada

Rows(i).Select 'celda activa o seleccionada

ActiveCell = "0" 'le asigna a la celda activa el valor de cero

End If 'termina el if o la condición

Next i

'Next i sirve para comenzar con la siguiente iteración del For, digamos que se
incrementa i automáticamente y compara su valor con Contador para ver si
continua con las iteraciones o no y termina todo.

73 

 
CAPITULO 3 – Desarrollo de los Programas 

Con el código anterior para identificar si se trata de un proyecto D o F simplemente


es necesario cambiar los valores entre comillas del If y en vez de cambiar el
nombre contenido solamente se sumaría a una variable llamada por ejemplo:
“contadorD”.

Para obtener F simplemente como mencionaba antes se resta contadorD a


Contador.

Existen unas columnas que tienen que ser cambiadas, estas están especificadas
en la Figura 3.4 llamada: “Tabla 3 CN40_RDX proyectos F o D”, las columnas son
de “CVE_DIRECCION” para la base RDX que era en el CN40 llamada
Especialidad, esta columna contiene más de 10 valores diferentes, por lo tanto no
considero que sea una buena opción utilizar una estructura de control if10 que
compare los valores hasta que su índice sea igual a el valor de contador, para este
caso es necesario utilizar un catálogo, este contiene diferentes valores en 2
columnas, en una de ellas se encuentran los valores que trae por default la
columna “CVE_DIRECCION” sin depurar, y la otra columna tiene los valores a los
que equivalen los valores contenidos, por lo tanto para cambiarlos usaré la función
BUSCARV11.

En la figura 3.9 Está un ejemplo de unos datos en Excel que necesitan ser
depurados con el uso de un catálogo y la función BUSVARV.

                                                            
10En programación un if es conocido como una estructura de control, la cual permite que se pueda ejecutar una acción o

no dependiendo de una condición.


11 BUSCARV es una función de Excel compuesta por una fórmula que sirve para buscar un valor en un conjunto de datos

y retornar o regresar el valor asociado al valor encontrado. 

74 

 
CAPITULO 3 – Desarrollo de los Programas 

Explicando esto de manera gráfica, en la siguiente figura suponiendo que tengo


una columna con valores a cambiar y una matriz12 de catálogo:

Figura 3.9 Ejemplo de catálogo A.


Fuente: Microsoft Office

Figura 3.10 Selección de BUSCARV.


Fuente: Microsoft Office.

                                                            
12En matemáticas es conocida como una ordenación rectangular de elementos algebraicos que pueden sumarse y

multiplicarse, para acceder a ella en programación se les conoce como un conjunto de variables de un mismo tipo y se
accede a ellas por medio de índices.

75 

 
CAPITULO 3 – Desarrollo de los Programas 

Es necesario aplicar la función BUSCARV, dando clic en “fx” se dan las opciones
para acceder a las funciones disponibles junto con su explicación para esos datos
seleccionados representados con un cuadro punteado (ver figura 3.10).

Una vez seleccionada la función BUSCARV se presenta el siguiente cuadro en el


cual se deben ingresar los valores correspondientes para realzar la acción de
búsqueda:

Figura 3.11 Ejemplo de función BUSCARV.


Fuente: Microsoft Office.

En valor buscado es necesario seleccionar el icono enfrente del cuadro de texto


seleccionar todos los valores a cambiar, en matriz a buscar solo encerrar todo el
contenido del catálogo13, el indicador de columnas se pone el número de la
columna por la cual se desea cambiar, es decir la columna que tiene las claves y
en ordenado se puede poner falso si no está ordenado o verdadero si lo está.

                                                            
13 Es una lista o inventario ordenado y clasificado de cualquier tipo de objetos (monedas, documentos, artículos etc.).

76 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.12 Ejemplo del llenado de datos en la función BUSCARV.


Fuente: Microsoft Office.

Una de las cosas más complicadas y difíciles es el tener que lidiar con celdas con
errores, a una base de datos no puedes subir un dato que contenga #N/A14 y este
es un error que aparece normalmente cuando uso la función BUSCARV y por lo
visto esto ocurre también cuando se usan las funciones: BUSCAR, BUSCARH,
COINCIDIR, en mi caso esto es debido a que existen, por ejemplo, nuevos
empleados o zonas que no están contenidos en un catálogo que uso para hacer
comparaciones y obtener claves, por lo tanto, cuando esto ocurre en vez de poner
un símbolo como este “#N/A” que indica que no se encuentra ese dato en el
catálogo se ponga un cero u otra información dependiendo del tipo de datos que
contenga la columna, ya sea de tipo carácter, numérico o fecha.

Para solucionar este problema he aquí un ejemplo con un error de tipo #DIV/0!
Encerrado en un rectángulo, este error se da por qué no se pueden hacer
divisiones entre cero, con el uso de la función IFERROR15 cualquier error puede
ser modificado para que no aparezcan estos tipos de datos acompañados de un
símbolo “#”:

                                                            
14 #N/A y #DIV/0 Son ejemplos de errores que tiene Excel mostrar al usuario que se produjo un error al aplicar alguna

función seleccionada, existen diferentes tipos de errores, no siempre se da un #N/A pero es de los más comunes.
15 Es una función como BUSCARV, pero esta se usa para el manejo de errores, es implementada a partir de la versión

2007 de Microsoft Office. 

77 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.13 Ejemplo de un error en Excel.


Fuente: Microsoft Office.

En esta otra figura se muestran las operaciones o formula que contiene una de las
celdas:

Figura 3.14 Ejemplo de una fórmula Excel.


Fuente: Microsoft Office.

78 

 
CAPITULO 3 – Desarrollo de los Programas 

Pero para modificar la celda con error a la ecuación anterior le antepongo el


IFERROR, en el ejemplo al realizar la suma de todos los precios después se debe
hacer una división entre el número de clientes, cuando hay cero clientes en la
ecuación aparece el error, para que no aparezca algún aviso con este símbolo “#”
es necesario que coloque toda la ecuación anterior dentro de IFERROR la forma
sería la siguiente:

Ecuación y “lo que quiero que aparezca en vez de un error #” 

Justamente como aparece en la figura 3.15:

Figura 3.15 Ejemplo de IFERROR.


Fuente: Microsoft Office.

Usar el IFERROR (ver figura 3.15) es como decirle al programa si hay un error pon
lo que está entre comillas, si no hay error no pongas nada más que el resultado de
las operaciones que se están realizando con la fórmula.

En el caso anterior si encuentra un error entones pondrá en esa celda “No


Contracts”16.

                                                            
16 En español significa no hay contratos, pero se puede poner lo que se desee.

79 

 
CAPITULO 3 – Desarrollo de los Programas 

Otra forma de darle solución a los errores es usando la función llamada


“ISERROR17” que es similar a la de IFERROR pero con algunas diferencias en la
forma en la que se escribe:

Figura 3.16 Ejemplo de ISERROR.


Fuente: Microsoft Office.

Dentro del IF estarán las condiciones, lo que está dentro del ISERROR son las
operaciones a realizar, después lo que está en comillas es lo que se desea colocar
si se encuentra un error al realizar estas operaciones, en este caso sería un vacio,
después se coloca una coma para poner toda la operación a realizar nuevamente,
que se va a realizar si no hay un error.

El ISERROR era una opción muy empleada por los programadores para resolver
los problemas con los avisos de error para la versión Microsoft Excel 2003, pero
con la versión 2007 se implemento el IFERROR que es más fácil de usar puesto
que no es necesario introducirlo dentro de un IF como el ISERROR y tampoco es
necesario poner de nuevo todas las operaciones, pues con una vez es más que
suficiente.

                                                            
17 Una forma de dar solución a los errores, más utilizada en la versión 2003 de Microsoft Excel.

80 

 
CAPITULO 3 – Desarrollo de los Programas 

Ahora que he explicado algunas de las funciones más importantes que he estado
realizando de acuerdo a las tablas de análisis de requerimientos es hora de
explicar de una manera más simple y resumida como ha sido todo este proceso:

En total son 2 programas, uno para depurar documentos que son del tipo CN40 y
otro para los de tipo ZH30 en la figura se muestran las interfaces graficas o
pantallas de los programas.

Figura 3.17 Pantalla del programa 1 en VB.


Fuente: Elaboración propia.

Figura 3.18 Pantalla del programa 2 en VB.


Fuente: Elaboración propia.

81 

 
CAPITULO 3 – Desarrollo de los Programas 

La macro tiene que crear las hojas CN40_RDX, PROYECTOS_F,


RDX_PROYECTO, PROYECTOS_F_y_D, SOLICITANTE y
RDX_PROYECTOS_D, cada una de estas hojas contendrá información depurada
que se encuentra en las hojas ZH30, CN40 y Resumen_CN40.

Después de la creación de las hojas la macro realiza la tarea de reconocimiento


de ubicación de la información, es decir copiar y pegar las columnas para cada
hoja creada el contenido de CN40 y RESUMEN_CN40 todo de acuerdo a las
figuras de las tablas del análisis de requerimientos; una vez terminada esta tarea
viene la tarea de depuración de información que es programar todas las
anotaciones de las tablas en la columna observaciones.

Una parte importante del proceso de depuración de las columnas es el cambiar el


título de estas para que la base de datos RDX las reconozca y las use para
realizar una actualización a sus datos, al terminar este proceso es importante que
los datos que contienen las hojas sean del mismo tipo de los que contiene la base
de datos, no podría dejar que nombre del empleado que es cambiado por clave
del empleado contenga una cadena de caracteres con el nombre del empleado si
en la base RDX esta columna contiene en vez de nombres números, para eso fue
la realización de procesos con el uso de catálogos donde se buscan los nombres y
se cambian por sus claves asociadas, con el uso de la función BUSCARV se
realizan los procesos para poner claves, si algún empleado no estaba contenido
en los catálogos por razones de cambios o actualización la función BUSCARV
genera errores al momento de colocar las claves , los errores que se generan en
las columnas depuradas suelen ser de un tipo que la base de datos no reconoce,
por lo tanto es necesario cambiarlos por dígitos como cero, para poder realizar
cambios a estas funciones existe el uso de IFERROR, que es solo una indicación
que sirve al programa para poner valores deseados en caso de error y que no se
coloquen otros caracteres que podría.

82 

 
CAPITULO 3 – Desarrollo de los Programas 

3.4 Programación en Java usando el Apache POI

En el IMP en el área de la biblioteca digital es importante conocer el número de


proyectos de cada archivo, por lo tanto para saber el número es necesario abrir los
documentos, esto toma un poco de tiempo, debido a que el contenido es enorme,
para ahorrar está tarea elaboré un programa en Java que trae el número total de
documentos, también que crea documentos que son necesarios para trabajar con
los programas en Visual Basic que creé en el tema anterior (ver tema 3.3), así el
usuario solo tendrá que dar unos cuantos clics para obtener lo que desea, ya sea
saber un número total de proyectos que contiene un archivo, crear documentos
que se usarán con la base de datos o insertar datos en celdas específicas.

Para comenzar a programar en Java utilicé el IDE NetBeans18 versión 6.8 ya que
este es de los más completos para comenzar a programar, otro que también es
muy adecuado es Eclipse, el cual permite la utilización de varios lenguajes de
programación.

El paso más importante es revisar la documentación; antes de trabajar con Excel


es necesario que conozca como acceder a este tipo de archivos (.xls), ya que en
Java usando NetBeans solo tengo las bibliotecas del JDK (Java Development Kit),
que es un software para el desarrollo de programas o aplicaciones) y por default
usando ciertas bibliotecas puedo acceder a ficheros de tipo texto o (.txt).

Cada que Sun lanza una nueva versión del JDK, este se acompaña de una serie
de bibliotecas con clases estándar que sirven como referencia para todos los
programadores que usan Java.

Estas clases se pueden incluir en los programas creados con Java, sin que existan

                                                            
18 NetBeans es una plataforma para el desarrollo de aplicaciones de escritorio usando Java.

83 

 
CAPITULO 3 – Desarrollo de los Programas 

fallos de portabilidad19. Además, están completamente documentadas (mediante


páginas Web), y organizadas en paquetes (o bibliotecas) en un árbol de herencia.

Al conjunto de paquetes se le conoce como la API de Java (Application


Programming Interface).

Una vez que adquirí el IDE de NetBeans se elaboró la interfaz gráfica, existe la
posibilidad de hacerla mediante código puro o en el modo de vista de diseño, si se
crea desde cero con código puro es tardado, y se tendría que escribir desde la
creación de cada botón, acción y hasta ubicación. Por lo tanto para ahorrarme
estos pasos utilicé la vista de diseño.

Figura 3.79 Inserción de un JPanel.


Fuente: De elaboración propia.

Inserte un JPanel como en la figura 3.19, este tiene una plantilla similar a Visual
Basic (Form) como en la figura 3.20 donde se muestra una Paleta con los objetos
que pueden ser insertados en el JPanel, desde allí coloqué los botones y los
ubiqué en el lugar adecuado.
                                                            
19 Es un concepto clave importante en cuanto a programación de alto nivel y una de las características que tienen los

programas para ejecutarse en diferentes plataformas como Windows XP, Vista, 7, Linux, Solaris, etc.

84 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.80 Paleta contenedora de objetos.


Fuente: De elaboración propia.

Mi vista de diseño quedó de esta manera (ver figura 3.21):

Figura 3.21 Vista de diseño.


Fuente: De elaboración propia.

Posteriormente se programan las acciones de los botones; para acceder al modo


de vista de código o Fuente, simplemente es necesario que seleccione ese botón
85 

 
CAPITULO 3 – Desarrollo de los Programas 

en la pantalla o de doble clic sobre el botón, Java genera automáticamente todo el


código de la interfaz grafica que realice por lo tanto no es necesario que programe
otras cosas.

En Java, para trabajar con archivos de Excel, existe el Apache POI - The Java API
for Microsoft 20 Documents en la figura 3.22.

Figura 3.22 Pantalla de la página para descargar Apache POI.


Fuente: www.apache.org

El paquete que he descargado de esta página (ver figura 3.23) contiene ejemplos,
documentos de información sobre esta API, librerías etc.

                                                            
20 El API Java para documentos Microsoft.

86 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.23 Contenido del paquete POI.


Fuente: De elaboración propia.

En NetBeans por default están incluidas las bibliotecas del JDK (ver figura 3.24),
es necesario que en ese espacio coloque el Apache POI para que pueda usar
todas las clases que necesitaré para crear, acceder y modificar archivos con
extensión .xls que hacen referencia a archivos Microsoft Excel.

Figura 3.24 Bibliotecas del JDK.


Fuente: De elaboración propia.

87 

 
CAPITULO 3 – Desarrollo de los Programas 

El paquete que contiene POI viene dentro de un archivo .jar que es similar al .zip
para comprimir archivos pero de Java, en la figura 3.25 está el archivo de la nueva
versión de Apache POI 3.6, capaz de soportar Documentos de Microsoft 2007.

Figura 3.25 Jar con las Bibliotecas de Apache POI.


Fuente: De elaboración propia.

Para insertar un paquete es necesario que la inserte posicionándome sobre la


parte que contiene las bibliotecas y con clic derecho le de en la opción de "Agregar
archivo JAR/Carpeta" (ver figura 3.26), después automáticamente se agrega a la
lista de paquetes usados arriba del JDK (figura 3.27).

Figura 3.26 Inserción de “poi-3.6-20091214” a Bibliotecas.


Fuente: De elaboración propia.

La figura siguiente (figura 3.27) muestra el entorno de programación en Java en su


vista de diseño que es bastante útil para ayudar a los programadores a decidir
como deberáa quedar la pantalla de sus programas.

88 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.27 Vista de Diseño.


Fuente: De elaboración propia.

Para pasar a la vista de programación o Fuente (ver figura 3.28) solo basta con
dar doble clic sobre alguno de los botones para comenzar a programar sus
acciones; los botones creados con el editor en vista de diseño tienen por default
un ActionListener21 que sirve para realizar una acción cuando el programa se este
ejecutando y se pulse el botón.

                                                            
21Es una interface que sirve para dar acción a un botón creado; las Interfaces son clases "prefabricadas" con propósitos
definidos.

89 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.28 Vista de Fuente.


Fuente: De elaboración propia.

Como mencionaba anteriormente es necesario saber qué es lo que se quiere


realizar para después con eso ver que se va a necesitar para comenzar a
programar de una manera más ordenada.

El programa debe crear documentos con un formato dado para hacer catálogos
insertando nombres a las columnas, debe realizar el conteo total de proyectos
totales y generar documentos para CN40 y ZH30 que serán usados
posteriormente con los proyectos creados en Visual Basic, de esta manera estaría
ahorrando la tarea de creación de documentos manualmente22.

Gracias a la documentación de Apache POI encontré qué se necesita para crear


un archivo con extensión ".xls", como llenar las celdas con datos, leer y escribir
                                                            
22 Documentos que se crean por el usuario sin ayuda de algún programa.

90 

 
CAPITULO 3 – Desarrollo de los Programas 

etc. Para esto solo era necesario que fuera al índice de la guía rápida de Apache
POI para encontrar mis requerimientos (ver figura 3.29).

Figura 3.29 Índice de la API Apache POI.


Fuente: http://java.sun.com/.

Dentro de las opciones del índice vienen incluidos códigos de ejemplos de cómo
hacer cada una de las acciones seleccionadas (ver figura 3.30).

Figura 3.30 Nuevo documento de Excel.


Fuente: http://java.sun.com/.
91 

 
CAPITULO 3 – Desarrollo de los Programas 

En la figura anterior está el código de ejemplo que sirve para crear un nuevo libro
de Excel o documento .xls también conocido como Workbook; explicando esto
más a detalle se da a entender lo siguiente:

En el número 1 el código indica que se está creando un objeto de tipo Workbook


llamado wb, en el número 2 también se crea un objeto pero de tipo
FileOutputStream llamado fileout, el FileOutputStream indica como su nombre que
sirve para dar un nombre de tipo cadena de texto al archivo creado; es necesario
que al nombre que contenga el objeto fileout tenga escrita la extensión para que la
computadora lo reconozca inmediatamente.

En la línea número 3 al archivo de Excel "wb" se le agrega el método o función


write que sirve para escribir el nombre del archivo, entre paréntesis esta el fileOut
que lo contiene.

Por último se cierra el fileout en el número 8.

La diferencia entre los dos programas es muy pequeña, esta es la extensión del
archivo ".xls" para versiones de archivos Microsoft Excel de tipo 2003 y ".xlsx" para
archivos con versiones del año 2007; gracias a la actualización de Apache POI es
posible utilizar el mismo código para este tipo de ficheros, lo único que cambia
como había mencionado es solo la extensión, para mi caso solo usaré la extensión
".xls".

Para crear dentro de un (Workbook) Archivo ".xls" una hoja es necesario usar
HSSFSheet, crear un objeto de este tipo y posteriormente asignar los parámetros
requeridos; un ejemplo de esto son los siguientes fragmentos de código:

HSSFWorkbook wbX = new HSSFWorkbook();

92 

 
CAPITULO 3 – Desarrollo de los Programas 

El código anterior sirve para decirle al compilador: "Quiero un objeto llamado wbX
de tipo HSSWorkbook (Un documento de Excel) esto es igual a crear este nuevo
objeto".

HSSFSheet PRUEBA = wbX.createSheet();

En este otro se crea un objeto u hoja nueva llamada “PRUEBA” de tipo


HSSFSheet.

HSSFSheet sheet = workbook.createSheet("Validación");

Y por último se crea igual una hoja llamada sheet dentro de un Workbook, esta
hoja se llamará "Validación".

Cuando hay un objeto creado en Java para acceder a sus métodos o por decirlo
de otra manera lo que se puede hacer con el objeto, es necesario que se ponga
después del nombre del objeto un punto; se pueden hacer combinaciones de
métodos, inserciones de cadenas, etc... Uno de los problemas con los que me he
venido topando es con el de importar las clases que usan ciertos métodos.

Cuando comencé a crear mis objetos de tipo HSSFWorkbook me aparecieron


unos errores en NetBeans que decían undefined class o clase no definida y
justamente me subrayaba con rojo donde decia "HSSFWorkbook" como en la
figura 3.31 lo que aquí pasaba era que justamente no estaba indicando de donde
se iba a tomar la referencia de éste método y ya verificando en la API de Apache
POI me puedo dar cuenta de que es lo que necesito importar del paquete
descargado que contiene todas estas clases para trabajar con Excel.
93 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.91 Error al crear un objeto del tipo HSSWorkbook.


Fuente: De elaboración propia.

En la figura 3.32 de la API es donde se muestra con una flecha que tengo que
importar para trabajar con HSSFWorkbook:

Figura 3.10 Especificaciones de la Clase HSSFWorkbook


Fuente: http://java.sun.com/.

Al importar23 org.apache.poi.hssf.usermodel.HSSFWorkbook los errores


desaparecieron y se establecieron correctamente las referencias (ver figura 3.33).

                                                            
23 Para importar clases en Java se utiliza la palabra reservada “import”, las clases importadas se pueden encontrar o no

en las bibliotecas del JDK o si es un nuevo paquete como en mi caso descargadas de la página de Apache POI.

94 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.11 Ejemplo de código HSSFWorkbook.


Fuente: De elaboración propia.

Una de las cosas más importantes de trabajar con archivos es la importancia de


indicar al programa la ubicación de estos, si este se crea ¿Dónde se creará?,
también para archivos de entrada y salida; de esto me di cuenta porque pensando
en el requerimiento de mi programa que es el de crear los documentos para
"CN40 y ZH30" y "Catálogo" es necesario indicar a la computadora el lugar para
hacerlo, si no simplemente no lo hará. Como en el IMP se trabaja mucho con
archivos desde el directorio “C://” utilizaré este como la ubicación principal para
crear el catálogo, también para generar los documentos para CN40 y ZH30, de
esa manera la búsqueda será muy fácil para el usuario.

Un ejemplo de mi código para crear un documento nuevo y su ubicación es la


siguiente:

public static String outputFile="D://catalogo.xls";

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet DepuradoRDP = wb.createSheet();

95 

 
CAPITULO 3 – Desarrollo de los Programas 

Del siguiente código explicaré que fOut es un archivo de tipo FileOutputStream


que recibe la cadena outputFile la cual contiene la ubicación y nombre del archivo
a crear "catalogo.xls"; wb es el archivo creado, este trae el método write delante
del punto y dentro el fOut, esto sirve para ponerle el nombre.

FileOutputStream fOut = new FileOutputStream(outputFile);

wb.write(fOut);

Para modificar un documento e ir creando el catálogo es necesario ir insertando


en las celdas los nombres de las columnas como en este código:

// La línea siguiente sirve para crear una fila llamada row en el


documento DepuradorRDP que es de tipo Workbook.

HSSFRow row = DepuradoRDP.createRow((short)0);

El siguiente ciclo for es para ir colocando dentro de las columnas el título


correspondiente, donde título es una variable de tipo entero que empieza
inicializándose en cero, después como condición para realizar lo que está dentro
del ciclo for es ser menor que 15, pues solo son 15 el número de celdas que
tienen que tener un nombre para el catálogo que es la condición para que se
detenga y por último un incremento de uno para hacer el ciclo repetitivo.

96 

 
CAPITULO 3 – Desarrollo de los Programas 

for (int titulo = 0; titulo < 15; titulo++) {

//con la siguiente condición se van ubicando las celdas:

HSSFCell cell = row.createCell((short) titulo);

Por último los if, dentro de estos lo que está en los primeros paréntesis es lo que
se debe de cumplir para realizar lo que está entre corchetes que es: seleccionar la
celda y asignarle un valor con el método setCellValue, entre comillas el nombre
que se va a poner en esa celda.

if(titulo==0) {cell.setCellValue("NUM_PROYECTO"); }

if(titulo==1) {cell.setCellValue("TITULO"); }

if(titulo==2) {cell.setCellValue("TIPO_PROYECTO"); }

if(titulo==3) {cell.setCellValue("FECHA_INICIO"); }

if(titulo==4) {cell.setCellValue("FECHA_TERMINO"); }

}// Fin del For

Y el mismo código sería para crear la siguiente fila del catálogo, con sus
respectivos cambios en los nombres de las columnas y variables.

Mientras estoy programando al hacer pruebas al botón para la creación del


catálogo he estado teniendo problemas para saber si lo que hice ya se realizó, por

97 

 
CAPITULO 3 – Desarrollo de los Programas 

lo tanto considero importante utilizar un try/catch que es el manejo de excepciones


en Java.

Try en español significa intentar y catch significa “capturar”; dentro de los


corchetes del try se encuentran todas las instrucciones a realizar, a veces estas
instrucciones pueden fallar o no ejecutarse y por eso Java marcaría un error, pero
para conocer el verdadero motivo es necesario el catch que sirve para que indique
que fue lo que causo el error o simplemente que si esa acción se realiza del catch
es porque el try no funcionó. Un ejemplo de lo que es el try/catch en los botones
del programa es que cuando realizo una acción no tengo conocimiento si esta se
hizo o no.

Con el botón "Crear Catálogo" se debería crear el catálogo en la unidad de disco


duro "C:/", para saber si este botón cumple con su función agregué una ventana
con un mensaje conocida como JOptionPane usando el método después del punto
JOptionPane.showMessageDialog para que salga una ventana que indique que la
acción se realizó, al parecer esta idea parecía funcionar pero hasta cuando no se
realiza la creación del catálogo sale esta ventana indicando que todo es correcto
cuando en realidad no lo es (ver figura 3.34), lo que está ocurriendo es que si no
se cumple que se cree el catálogo el compilador de Java corre la siguiente
sentencia que es el JOptionPane.ShowMessageDialog. Si estas instrucciones las
inserto dentro de un try es más probable que sepa que algo no está funcionando y
con el catch mandar un mensaje que diga que el archivo no ha sido creado
correctamente.

98 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.12 Mensaje de error.


Fuente: De elaboración propia.

Por lo tanto un try intenta realizar todas las instrucciones que contiene y si estas
no se cumplen el catch realizará otras instrucciones que son las que se van a
realizar cuando se detecte un error, el catch se escribe de esta manera: catch
(Exception e), lo que está en los paréntesis es el tipo de objeto que tiene
"Exception", que en mi caso es el mensaje de error.

Ejemplo de código try/catch dentro de un botón:

Try{

/código...

} catch (Exception e) {

//código…

99 

 
CAPITULO 3 – Desarrollo de los Programas 

try{

HSSFWorkbook wb = new HSSFWorkbook();

HSSFSheet DepuradoRDP = wb.createSheet();

HSSFRow row = DepuradoRDP.createRow((short)0); //PARA LA FILA 1

//PONE LOS NOMBRES A LAS COLUMNAS

for (int titulo = 0; titulo < 15; titulo++) {

HSSFCell cell = row.createCell((short) titulo);

if(titulo==0) {cell.setCellValue("NUM_PROYECTO"); }

if(titulo==1) {cell.setCellValue("TITULO"); }

...

if(titulo==15) {cell.setCellValue("NO_EMPLEADO"); }

100 

 
CAPITULO 3 – Desarrollo de los Programas 

HSSFRow row2 = DepuradoRDP.createRow((short)1);

for (int titulob = 0; titulob < 15; titulob++) {

HSSFCell cell = row2.createCell((short) titulob);

if(titulob==0) {cell.setCellValue("NUM_PROYECTO"); }

if(titulob==1) {cell.setCellValue("CVE_DIVISION"); }

......

if(titulob==14) {cell.setCellValue("CVE_DIRECCION_NEGOCIO"); }

} //.-.-.-.-.---.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.termina el try

//indica donde es creado el fOut

FileOutputStream fOut = new FileOutputStream(outputFile);

wb.write(fOut);

//SI SE CUMPLE EL TRY

JOptionPane.showMessageDialog(null, "El Archivo De Catálogo Ha Sido


Creado Correctamente " + "" +
"","",JOptionPane.INFORMATION_MESSAGE); }catch(Exception e) {
System.out.println("ERROR AL CREAR EL ARCHIVO!! " + e );

JOptionPane.showMessageDialog(null, "ERROR AL CREAR EL


ARCHIVO!!" + "" + "","",JOptionPane.ERROR_MESSAGE); //icono de la
pantalla } 

101 

 
CAPITULO 3 – Desarrollo de los Programas 

Como he programado el código que va dentro del catch la máquina virtual de Java
no será la que indique el error que se produjo sino lo que yo escribí en el catch
que se tiene que hacer a causa de un error en el try; pero si quisiera que la
maquina virtual Java sea quien indique el error entonces pondría dentro del catch
"e.printStackTrace(); ", donde "e" es el objeto de tipo Exception.

Ahora es momento de programar el botón "Crear archivos para CN40 y ZH30",


este botón sirve para crear documentos de Excel ".xls" en la dirección "C:/"; en
este botón incluí el manejo de excepciones con el uso del try/catch para que el
usuario pueda percatarse de que se han creado los dos archivos correctamente y
tenga la seguridad de que están allí listos para usarse, considero que programar la
función principal de este botón fue realmente sencilla y con una función importante
la cual es reducir el número de tareas de un usuario que tiene que depurar
documentos.

En la siguiente figura el botón "Crear archivos para CN40 y ZH30 " señalado con
la flecha funciona correctamente creando los archivos en el directorio "C:/", en la
figura se observan los documentos creados del lado derecho.

Figura 3.13 Ventana del contador de proyectos.


Fuente: De elaboración propia.

102 

 
CAPITULO 3 – Desarrollo de los Programas 

Cuando se crean correctamente los documentos como el código que estoy


programando esta dentro de un try/catch coloqué aparte unas ventanas con avisos
para saber qué ocurre con el programa (ver figura 3.36).

Figura 3.14 Mensaje dentro de un try.


Fuente: De elaboración propia.

Y para terminar de explicar los botones lo haré con el botón "cuenta proyectos
totales" el cual admito que fue el más difícil de programar, porque pensé en que no
podía poner la dirección del archivo de manera estática como con los botones
para crear archivos, el contador de archivos va a contar archivos pero no de un
proyecto en específico, lo que quiero decir es que debe ser dinámico, que el
usuario pueda tener la libertad de elegir cual será archivo del que necesita saber
el número de proyectos totales sin abrirlo.

Si yo programo directamente que el botón contador de archivos tenga una


dirección de un archivo de Excel estática es decir que esté en el programa
específicamente junto con su nombre por ejemplo: "C:/archivoacontar.xls" no
servirá para facilitar esta tarea sino que si se implementa (lo cual sería dudoso) en
vez de facilitar la tarea aumentaría la tarea, puesto que el programa de este botón
solo leería un archivo llamado archivoacontar.xls en una dirección específica en
"C:/", y si se usara, el usuario preferiría abrir directamente el documento y esperar
a que cargue completamente en vez de cambiar el nombre y ubicación al
103 

 
CAPITULO 3 – Desarrollo de los Programas 

documento del cual se desea obtener el número de proyectos; esto no es nada


cómodo.

La idea que tuve después fue crear un buscador de archivos que me permita
elegirlos para que el programa del botón "cuenta proyectos totales" pueda hacer el
conteo de el número de proyectos que contiene un proyecto seleccionado por el
usuario.

En Internet no hay muchos códigos para hacer un buscador o "File searcher", todo
lo que he encontrado es realmente complicado, van desde crear variables de tipo
cadena que el usuario tiene que ir introduciendo para poner la dirección de un
archivo lo cual me parece una pérdida de tiempo.

Continuando con mi investigación en el API de Java encontré una clase que


funciona de una manera excelente y me evita la tarea de programar cadenas para
después ser leídas etc... Esta clase se llama "JFileChooser" en la figura 3.37 que
muestra de donde sale el JFileChooser en forma de herencia, allí también se
muestran ejemplos de cómo se utiliza.

104 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.15 Java API.


Fuente: http://java.sun.com/.

La siguiente línea sirve para crear el Buscador de archivos llamado fc de tipo


JfileChooser:

JFileChooser fc = new JFileChooser();

fc.showOpenDialog(this); // sin esta línea no se muestra el buscador de archivos

Después se inserta el contenido del objeto fc que contiene la dirección del archivo
a una cadena llamada documentoALeer, pero como fc es de tipo JFileChooser es
necesario que lo convierta en Cadena o String para que no me marque un error de
compatibilidad:

105 

 
CAPITULO 3 – Desarrollo de los Programas 

String documentoALeer= fc.getSelectedFile().toString();

//Dentro del botón insertaré el try/catch para saber si hay problemas con el
contador.

try{

Elaboré un nuevo documento de Excel llamado libro pero este en vez de ser
creado en una ruta específica le pasé el contenido de la cadena documentoALeer
que tiene la dirección del archivo seleccionado por el usuario.

HSSFWorkbook libro = new HSSFWorkbook(new FileInputStream


(documentoALeer));

En la figura (figura 3.38) es apreciable como el objeto fc de tipo JFileChooser


despliega la ventana de buscador de archivos al presionar el botón "cuenta
proyectos totales", es muy útil pues así no es necesario que el usuario del
programa tenga que modificar el código para seleccionar algún archivo del cual
dese obtener el número de proyectos totales.

106 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.16 Buscador de archivos.


Fuente: De elaboración propia.

Uno de los problemas que tiene mi código en este momento es que como se
puede ver en la figura anterior se ven todos diferentes tipos de los archivos con
sus respectivas extensiones, y como el programa que está dentro del botón está
hecho especialmente para trabajar con documentos de Excel produce un error
cuando selecciono por error otro tipo de archivo que no tenga extensión ".xls", se
muestra un mensaje de error dentro de un catch (ver figura 3.39).

Figura 3.17 Mensaje de error de un catch si no existen filtros.


Fuente: De elaboración propia.
107 

 
CAPITULO 3 – Desarrollo de los Programas 

Ahora es necesario que aplique filtros para seleccionar solo archivos de Excel,
aprovechando la compatibilidad agregué un filtro extra para que funcione con los
archivos de tipo ".xlsx" de Microsoft Excel 2007 y no con cualquier otro tipo de
documento ajeno a Excel.

Aquí un ejemplo de código de filtros:

FileNameExtensionFilter filter = new FileNameExtensionFilter("Archivos .xls",


"xls");

fc.setFileFilter(filter);

En el código anterior cree un objeto llamado filter de tipo


24
FileNameExtensionFilter , lo que está entre paréntesis son dos parámetros, el
primero se muestra en el buscador de archivos como una opción para ver ese tipo
de archivos, el segundo parámetro separado por la coma entre comillas es la
extensión del archivo, y por ultimo solo tengo que agregar el filtro a fc.

Ahora que ya tengo funcionando de manera correcta el hacer la selección del


archivo es momento de que dentro del archivo seleccionado se haga el conteo de
proyectos, lo cual solo explicaré de manera breve.

int rows = sheet.getPhysicalNumberOfRows(); 

                                                            
24 En la clase que permite poner limitaciones de las extensiones de los archivos con los que se usan en el programa, con
filtros que permiten que sólo se visualicen los archivos compatibles.

108 

 
CAPITULO 3 – Desarrollo de los Programas 

El fragmento de código anterior sirve para obtener el número total de filas.

int r=0; 

for ( r=0; r <= rows; r++) 

HSSFRow row = sheet.getRow(r); 

int cells = row.getPhysicalNumberOfCells(); 

System.out.println("total de columas:  "+cells ); 

System.out.println("TOTAL DE PROYECTOS: "+ rows); 

Después con un ciclo for y una variable llamada “r” se hace el conteo; r es igual a
cero, r debe ser menor que rows, rows es el número total de filas, si esta condición
se cumple por cada ciclo r se incrementa.

Si se cumplen las condiciones anteriores por cada iteración se verifica que la celda
o “cell” no esté vacía; para que se impriman en la pantalla de Netbeans el
contenido de cells y las celdas están los “System.out.println”.

El número total de proyectos estará contenido en “r”, esta variable se imprime en


pantalla (ver figura 3.40).

Figura 3.40 Proyectos totales.


Fuente: De elaboración propia.
109 

 
CAPITULO 3 – Desarrollo de los Programas 

3.5 Programación en Visual C# .NET

Programando con Microsoft Visual Studio 2010 Professional beta 2.

Al abrir el editor Microsoft Visual Studio 2010 se muestra una página de inicio
como en la siguiente figura:

Figura 3.418 Página de inicio.


Fuente: Microsoft .NET

En la página de inicio se muestra una barra de herramientas donde un


programador puede elegir las opciones que quiera para generar proyectos en los
diferentes tipos de lenguajes que soporta Visual Studio 2010 Professional.

Para comenzar un nuevo proyecto se usa el botón: New Project… y debajo de ese
botón está el de abrir proyecto existente (Open Project). El lenguaje de los
botones depende de la versión de Visual Studio en uso instalada en el lenguaje
preferido por el usuario programador.

110 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.419 Botón de nuevo proyecto.


Fuente: Microsoft .NET

Para comenzar selecciono la opción de nuevo proyecto (ver figura 3.42) y a


continuación en el menú de la Figura 3.43 elijo la opción de programación de
Visual C# y una Windows Forms Aplication25; después automáticamente en la
pantalla se muestra una ventana (ver Figura 3.44) en su forma de diseño, hay
programadores que prefieren realizar el código desde cero sin la utilización de
esta herramienta que es la vista de diseño simplemente para programar en código
puro, para mí es una herramienta sumamente útil más que nada por el tiempo que
ahorra a la hora de programar y la sencillez con la que se utiliza visual Studio
2010, si ya está hecho no le veo la necesidad de volverlo a hacer, tal vez sería útil
como modo de aprendizaje el saber cómo realizar las cosas en código puro pero
también no cerrarse a las nuevas posibilidades que brindan los nuevos programas
pues lo más importante es que todo se haga más fácil y se resuelvan los
problemas con la evolución de los lenguajes de programación y sus respectivos
IDE26 .

                                                            
25 Aplicación de Windows.
26 Entorno de Desarrollo Integrado, es un programa informático compuesto por un conjunto de herramientas de

programación para compilar, depurar, programar en un lenguaje y crear un ejecutable del código creado.

111 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.420 Opciones de programación.


Fuente: Microsoft .NET

Figura 3.421 Nueva ventana forma de diseño.


Fuente: Microsoft .NET

Esta forma de programación es gráfica, allí se pueden colocar los objetos


contenidos en la barra de herramientas o Toolbox en una Form o plantilla como en
la figura 3.44.

112 

 
CAPITULO 3 – Desarrollo de los Programas 

Uno de los objetivos específicos es el de crear un programa que permita buscar


archivos de Excel (extensión .xls), por lo tanto la planilla debe contener un botón
que como función tenga la de buscar en una ruta que el usuario elija, con ruta me
refiero a la dirección que tiene el documento como por ejemplo:

C:\Usuarios\Patsy\Escritorio\ejemplo.xls

Donde C indica la unidad del disco duro donde se encuentra, cada diagonal se
indica para separar un directorio o carpeta y por último el nombre del archivo
“ejemplo.xls”.

Figura 3.45 Nueva ventana forma de diseño.


Fuente: Microsoft .NET

113 

 
CAPITULO 3 – Desarrollo de los Programas 

Para comenzar a programar lo primero que hice fue crear la interfaz grafica o
pantalla del programa, la cual contiene todos los objetos con los que el usuario del
programa pueda interactuar, esos objetos son los botones en los cuales
posteriormente programé para que realicen ciertas acciones al ser presionados.

En el tema 3.4 programé los botones usando una vista de diseño con Java, de la
misma manera lo hice con C#, la diferencia de la vista de diseño que tiene
Netbeans comparada con la de Visual Studio 2010 es muy similar, puedes insertar
objetos de un cuadro de herramientas, poner las propiedades de los objetos, elegir
el lugar donde ponerlos etc. (ver figura 3.45).

Figura 3.46 Interfaz gráfica del Buscador de empleados.


Fuente: De elaboración propia usando Microsoft .NET

114 

 
CAPITULO 3 – Desarrollo de los Programas 

En la figura 3.46 está mi pantalla del buscador de empleados, este programa en


Visual C# .NET su función principal será la de buscar empleados y avisar si estos
existen o no por medio de mensajes al usuario.

Este programa será un buscador de archivos de Excel que permita buscar dentro
de estos archivos empleados del IMP para ver si existen o no sin la necesidad de
abrir el documento y buscar dentro de él si existe o no.

También tiene la opción de reemplazar datos en todo el documento sin importar la


ubicación de las celdas y crear un documento de Excel instantáneamente y abrirlo
para que el usuario pueda hacer anotaciones de algunos datos u otras cosas
dependiendo de las necesidades que se tengan.

 
Figura 3.47 Botón que abre el seleccionador de archivos.
Fuente: Microsoft .NET

En la figura 3.47 está el botón “Seleccionar Archivo”, en Java me costó trabajo


encontrar alguna clase que tuviera esta función y comparando con Visual C# .NET
creo que se me facilitó más en Visual C# .NET y esto se debe a que el MSDN27 se
me hace mucho más sencillo que las APIs de Java o posiblemente esto se debe a
que aprendí como utilizar estos recursos y después de mi experiencia con el uso
de APIs con Java este proceso es más sencillo.

                                                            
27 Son siglas en ingles que significan “Microsoft Developer Network” y en español significa “Red de desarrollo de
Microsoft”, sería como el equivalente de las APIs de Java pero para los lenguajes de programación de Microsoft ya que
al igual que para Java las APIs ofrecen apoyo al programador para “C#” MSDN lo hace.

115 

 
CAPITULO 3 – Desarrollo de los Programas 

 
Figura 3.48 Ejemplo de código de un buscador de archivos.
Fuente: De elaboración Propia usando Microsoft .NET

En la figura 3.48 inserté el fragmento de código que hice para realizar el buscador
de archivos de tipo “.xls”, realmente es muy sencillo de comprender gracias al
MSDN pues allí vienen ejemplos y muy bien detallado el cómo hacer ese código
en varios lenguajes de programación como Visual Basic .NET, F# y por supuesto
que también “C#”.

En el código anterior la primer línea es parte del código que se autogeneró por
usar la vista de diseño, hace referencia a que cuando el programa se esté
ejecutando y algún usuario de clic en ese botón se ejecutará la acción que yo
programé que es la de buscar archivos; pero para esto es necesario usar
“OpenFileDialog” que sirve para crear un objeto que nombre “browseFile” que está
en inglés y significa buscador de archivo.

Esta forma de crear el objeto de ese tipo es similar a Java pues también se utiliza
la palabra reservada new, paréntesis y “punto y coma” para terminar la sentencia,
después de crear ese objeto es necesario aplicar los filtros de los tipos de archivos
que quiero que lea para no tener errores de formato y compatibilidad, después
viene una línea que tiene la función “title” que sirve para ponerle un nombre a la
ventana de buscar archivos.

116 

 
CAPITULO 3 – Desarrollo de los Programas 

Una vez ejecutando el programa y presionando el botón “Seleccionar archivo”


aparece una pantalla como la siguiente (ver figura 3.49):

Figura 3.49 Botón Seleccionar Archivo.


Fuente: De elaboración propia usando Microsoft .NET

Y claramente se puede ver que en la pantalla está el título “Buscador de archivos


RDX”, arriba de los botones Abrir y Cancelar está el filtro que introduje que es solo
para archivos “.xls” y también se ven algunos documentos en la capeta “Escritorio”
que se pueden abrir con el buscador.

En la figura (3.46) se observa que delante del botón “Seleccionar archivo” está un
cuadro de texto, este lo incluí para pasarle a un String28 con el contenido del
objeto creado que activo el botón de Seleccionar archivo que en este caso sería la
dirección o ubicación del archivo seleccionado, así ese se mostrará en la pantalla.

                                                            
28 Hago referencia a una cadena de texto.

117 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.50 Programación que manda al cuadro de texto la dirección del Archivo Buscado.
Fuente: De elaboración propia usando Microsoft .NET

En la figura (3.50) está dentro de un try/catch lo que se tiene que hacer con ese
cuadro de texto; “txtDireccionArchivo” es el nombre del cuadro de texto, delante de
ese cuadro puse “.Text” que sirve para indicarle que tiene que contener un texto
que en este caso es “browseFile.fileName” el fileName sirve para que el
browseFile le pase en forma de texto el contenido que se le asignó cuando el
usuario seleccionó el archivo, que es una cadena de dirección.

Como está dentro del try se mostrara al usuario el mensaje de que el archivo es
correcto (ver figura 3.51) o que si este no lo es, un mensaje con error.

Figura 3.51 Selección de archivo.


Fuente: De elaboración propia usando Microsoft .NET

118 

 
CAPITULO 3 – Desarrollo de los Programas 

Ahora explicaré el siguiente botón que se llama “Crear y Abrir Documento En


Excel” que sirve para lo mismo que dice su nombre.

Pero antes de explicar el código de este botón (figura 3.53) hablaré del problema
de que tenía y era que en el MSDN encontraba ejemplos de códigos para crear un
documento pero me aparecían errores que decían que no se encontraba la
referencia. Entonces buscando en internet me di cuenta de cómo poner las
referencias (ver figura 3.52) que se necesitan para trabajar con Excel.

Figura 3.52 Agregar Referencia.


Fuente: De elaboración propia usando Microsoft .NET

119 

 
CAPITULO 3 – Desarrollo de los Programas 

Aun teniendo en using “Microsoft.Office.Interop.Excel” no me era posible trabajar


con esas funciones pues sin las referencias agregadas no las reconocía.

Ya que los problemas de las referencias están resueltos explicaré la función de


este botón con su código (ver figura 3.53).

Figura 3.53 Código del botón Seleccionar Archivo.


Fuente: De elaboración propia usando Microsoft .NET

Explicando brevemente la función de este código digo que lo primero que hace es
crear una nueva aplicación que llamé “Excel”, esa aplicación llamada Excel es de
tipo Archivo de Microsoft Excel, a Excel se le agrega está característica, después
de crear y abrir el documento crea una hoja y de esa selecciona las primeras 3
celdas de la fila 1 y les pone los nombres que están entre comillas. Después se le
pregunta al usuario si desea guardar ese documento o no (ver figura 3.54).

120 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.54 Función del botón Crear y Abrir Documento En Excel.


Fuente: De elaboración propia usando Microsoft .NET

Otra función importante de este programa es la de poder reemplazar todas las


palabras o códigos que se quieran por cierta palabra o lo que se quiera en todo el
documento sin importar la celda de la que se trate.

Figura 3.55 Botón Reemplazar.


Fuente: De elaboración propia usando Microsoft .NET

Por ejemplo, si alguna persona en el documento reporta que su nombre está mal
escrito sin acceder al documento simplemente se puede ingresar el nombre
erróneo en el cuadro de texto que está debajo de la etiqueta Reemplazar y en el

121 

 
CAPITULO 3 – Desarrollo de los Programas 

otro que está debajo del “por” colocar el nombre correcto, así, si esta persona era
algún líder de varios proyectos, automáticamente se cambiaría su nombre para
cada registro de proyecto (ver figura 3.56).

Figura 3.56 Mensaje del botón Reemplazar.


Fuente: De elaboración propia usando Microsoft .NET

El código del botón “Reemplazar” funciona como está explicado en los


comentarios con las diagonales “//” (ver figura 3.57):

Figura 3.57 Fragmento de código del botón Reemplazar.


Fuente: De elaboración propia usando Microsoft .NET

122 

 
CAPITULO 3 – Desarrollo de los Programas 

El siguiente botón funciona casi de la misma manera que el de reemplazar valores


de una celda, pero en este caso, cuando se encuentran valores iguales, solamente
se muestra un aviso en pantalla de que por ejemplo, el empleado existe en el
documento (ver figura 3.58), pero si este no existe se muestra un mensaje de error
(ver figura 3.59).

Figura 3.58 Mensaje de empleado encontrado.


Fuente: De elaboración Ppopia usando Microsoft .NET

Figura 3.59 Mensaje error por no encontrar el empleado.


Fuente: Microsoft .NET

Y por último solo falta explicar el botón buscar, cuya función principal sería la de
buscar por algún empleado en especifico, si existe entonces en el cuadro de texto
derecho se escribirá el mensaje de que existe además de mostrar una alerta en
pantalla.

123 

 
CAPITULO 3 – Desarrollo de los Programas 

En la figura 3.60 está un ejemplo de cómo buscar por algún empleado, en el


cuadro de texto buscar se introduce la clave del empleado para verificar.

Figura 3.60 Buscar empleado.


Fuente: De elaboración propia usando Microsoft .NET

Si el documento que se introduce con el botón “Seleccionar” archivo no contiene


ese empleado se muestra en pantalla un mensaje de Microsoft de que no está,
pero si este sí existe, manda un mensaje de que sí existe el empleado buscado en
el documento (ver figura 3.61).

124 

 
CAPITULO 3 – Desarrollo de los Programas 

Figura 3.61 Mensaje de búsqueda de empleado.


Fuente: De elaboración propia usando Microsoft .NET

En la figura 3.62 se observa el cuadro de texto que contiene el resultado de la


búsqueda señalado con una flecha.

Figura 3.62 Resultado de la búsqueda.


Fuente: De elaboración propia usando Microsoft .NET
125 

 
CAPITULO 3 – Desarrollo de los Programas 

Como al principio solo estaba realizando pruebas, agregué otro cuadro de texto
pero no lo utilicé entonces, la pantalla terminada queda como en la figura 3.63.

Figura 3.63 Pantalla Final.


Fuente: De elaboración propia usando Microsoft .NET

Los GroupBox1 y GroupBox2 son solo unos indicadores para agrupar


componentes en la pantalla, los puse para que notara la separación de los
elementos que sirven para realizar una acción.

En los anexos de la página 135 se encuentran los diagramas de flujo de los programas.

126 

 
CAPITULO 3 – Desarrollo de los Programas 

3.6 Bibliografía

TEMA: Desarrollo de los Programas - Java

[3.1] The Apache POI Project, http://poi.apache.org/spreadsheet/quick-


guide.html#NewSheet, Noviembre/2009.

TEMA: Para buscador de archivos

[3.2] Java – sun.com,


http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JFileChooser.html,
Noviembre/2009.

[3.3] Java: JFileChooser, http://leepoint.net/notes-


java/GUI/containers/20dialogs/30filechooser.html, Noviembre/2009.

[3.4] Action listener intro, http://www.miliuco.net/java/action_listener_intro.html,


Noviembre/2009.

[3.5] The Apache POI Project, http://poi.apache.org/spreadsheet/index.html,


Diciembre/2009.

[3.6] Java Para Todos - javacafesv,


http://javacafesv.blogspot.com/2009/05/programacion-de-gui-con-
componentens.html, Diciembre/2009.

TEMA: C#

[3.7] msdn, http://msdn.microsoft.com/en-us/library/e4x1k99a(VS.80).aspx,


Diciembre/2009.

[3.8] Entorno de desarrollo integrado – wikipedia.org


,http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado, Diciembre/2009.

127 

 
CAPITULO 3 – Desarrollo de los Programas 

[2.9] Ferguson Jeff; Patterson Brian; Beres Jason (2003). La biblia de C#. Ed.
Anaya Multimedia. España. Diciembre/2009.

[2.10] Bruce Eckel; Jorge Gonzáles Barturen (2002). Piensa en Java. Ed. Prentice
Hall, 2ª. Edición, Madrid. Diciembre/2009.

128 

 
CAPITULO 4
Implementación de los Programas
CAPITULO 4 – Implementación de los Programas

Cuando terminé los programas junto con su documentación e instructivo en el


IMP, me pidieron presentar mi trabajo a una líder de proyecto y a una nueva
empleada que necesitaban realizar estos procesos aparte de mi asesora del
servicio social.

Entonces les enseñe el manual y les mostré cómo funcionan los programas
porque aunque algunas personas pueden ver un manual siempre es necesario
que se apoyen de alguien que les muestre como hacerlo, para responder algunas
dudas u otras cuestiones.

Después de mostrarles me agradecieron el que les pudiera ayudar con ese


trabajo; mi asesora del IMP me informó que los documentos que yo había
depurado antes manualmente y con las macros fueron subidos a las bases de
datos, para esto esos documentos antes fueron revisados y no contenían errores.

4.1 Pruebas

Los programas que realicé en los IDEs sólo se ejecutan en los IDE como por
proyectos, pero si yo utilizo otra computadora que no tenga ese IDE en específico
como puede ser: NetBeans o Visual C# no me será posible ejecutar esos
programas debido a que solo son proyectos.

Para que los proyectos de los programas que realicé no solo se queden como
proyectos y los pueda ejecutar en cualquier computadora es necesario que los
haga ejecutables. Los programas ejecutables son archivos binarios que son
interpretados por una computadora como programas.

En el caso de los programas que realicé con Visual Basic, el mismo programa te
dice que los guardes, estos se guardan con la extensión “.frm”1 (ver figura 4.1),
                                                            
1 Hace referencia a un archivo de tipo Form que puede interpretarse en Excel con Visual Basic.

129 

 
CAPITULO 4 – Implementación de los Programas

entonces cuando alguien quiera usarlos para ejecutar los programas que están
dentro de los botones de cada “Form” simplemente los tiene que seleccionar,
ejecutar y presionar algún botón dependiendo lo que el usuario quiera hacer.

Figura 4.1 Documentos .form


Fuente: De elaboración propia.

Para el caso del programa que hice en Java es necesario que la computadora en
la cual se va a ejecutar tenga Java; que puede ser descargado de la página oficial,
para encontrarla solo basta utilizar algún buscador y escribir Java. Todas las
computadoras del IMP cuentan con Java; HP2 es el proveedor de equipos y sus
empleados de soporte dejan a las computadoras con el software que necesitan los
trabajadores.

Por lo tanto para ejecutar el programa “Contador de Proyectos y Creador de


documentos” (ver capítulo 3.4) solo es necesario tener el archivo “.jar” que
Netbeans genera automáticamente dentro de la carpeta “dist” del proyecto creado
(ver figura 4.2).

                                                            
2Abreviatura de Hewlett-Packard. Es una empresa de tecnologías de la información que trabaja en 170 países del
mundo. Fuente: http://welcome.hp.com/

130 

 
CAPITULO 4 – Implementación de los Programas

Figura 4.2 Crea Documentos Excel.jar


Fuente: De elaboración propia.

Es necesario tener la carpeta completa llamada “dist” porque el archivo “.jar” que
se genera necesita tener referencias de las bibliotecas que necesita utilizar, en
este caso Apache – POI que se encuentra dentro de la carpeta “dist” en otra
llamada “lib”.

Toda la carpeta “dist” es como si fuera una aplicación portable3, se puede crear un
acceso directo en el escritorio para acceder más rápidamente a la aplicación.

Para crear la aplicación ejecutable del programa que realicé en Visual Studio .NET
con C# seleccioné del menú la primera opción llamada “Build Solution” y
automáticamente Visual Studio generó la aplicación ejecutable del proyecto (ver
figura 4.3).

                                                            
3 En este caso no es una referencia a una aplicación que puede ejecutarse en cualquier plataforma, sino a una

aplicación que puede llevarse en una memoria USB sin necesidad de ser guardada en un disco duro local, la cual no se
instala pero se ejecuta automáticamente cuando se le da doble clic sobre ella; esta aplicación puede guardar datos de
librerías y sus subcarpetas en la carpeta temporal “temp” de Windows 7 u otras versiones anteriores. En la carpeta
temporal como su nombre lo indica todo puede ser borrado sin que se afecte a los programas, los programas solo usan
esta carpeta, los programas la usan para ser mas rápidos o porque son portables y para que no se instalen.

131 

 
CAPITULO 4 – Implementación de los Programas

Figura 4.3 Generar archivo con Build


Fuente: De elaboración propia usando Visual Studio .NET.

Como la solución se creó satisfactoriamente en la pantalla de Visual Studio se


generó un aviso como en la siguiente figura (figura 4.4) allí se indica la ruta o
dirección de donde se generó el archivo ejecutable.

Figura 4.4 Mensaje del Build


Fuente: De elaboración propia usando Visual Studio .NET.

Dentro de la carpeta “Build” se generó la aplicación ejecutable (ver figura 4.5).

132 

 
CAPITULO 4 – Implementación de los Programas

Figura 4.5 Aplicaciones Creadas.


Fuente: De elaboración propia usando Visual Studio .NET.

Al ejecutar la aplicación no tuve ningún problema, el problema se presentó cuando


la traté de ejecutar en otra computadora

Figura 4.6 Mensaje de Error al ejecutar la aplicación.


Fuente: De elaboración propia usando Visual Studio .NET.

El mensaje indica que para ejecutar esta aplicación es necesario que la


computadora tenga el Framework versión 4.0; para solucionar esto, en la Google
simplemente busque por esta nueva versión y la instalé; así el archivo se pudo
ejecutar correctamente en la computadora.

133 

 
CONCLUSIONES

Conclusiones

El objetivo general es el desarrollo de un código en Visual Basic compuesto por


instrucciones de macros, el cual cumplí satisfactoriamente. De todos los
programas los creados con Visual Basic fueron los más complicados debido a todo
el cúmulo de requerimientos que se necesitaban cumplir de acuerdo a las tablas
de análisis.

En cuanto al programa hecho en Java que realiza conteo del número de


documentos fue necesario que utilizara una API de Java llamada “Apache - POI”
para usar sus librerías y acceder a archivos de tipo Microsoft pues en las librerías
del JDK no están contenidas las necesarias para acceder a este tipo de ficheros;
éste programa fue completado satisfactoriamente cumpliendo con el objetivo
principal para el que fue programado; aparte de esa función le agregué otros dos
botones adicionales, uno de los botones crea un catálogo y el otro genera archivos
con formato “.xls” los cuales nombra como CN40 y ZH30, el objetivo de estos
últimos dos era el crear los archivos con un simple clic, lo cual sí cumplí utilizando
la API de Java para programar cada botón. Con el IDE Netbeans me apoyé en
cuanto a la vista de diseño que automáticamente genera el código de la pantalla y
las interfaces de los eventos de los botones, para que cuando el usuario haga un
clic se realice el código de este.

Y por último, sobre el programa que realicé utilizando con Visual Studio C# .NET
debo decir que también cumplí con todos los objetivos, que fueron desde informar
si existe alguna palabra, nombre o clave de algún empleado dentro del documento
que se elija por el usuario; crear y abrir documentos de Excel y el botón que
permite buscar alguna palabra ingresada por el usuario y reemplazarla
completamente en todas las celdas donde ésta se encuentre dentro del

134 

 
CONCLUSIONES

documento, esto es muy útil para cuando se desea cambiar un dato incorrecto y
éste se repite en varias celdas.

Cumplí con todos los objetivos que planee de manera satisfactoria apoyándome
de los libros, Internet, APIs y MSDN, con algunas dificultades debido a que no
conocía algunas librerías necesarias de Java o C# para utilizar ciertas funciones
como son las de crear un buscador de archivos como el que tienen los sistemas
operativos de Windows o Linux.

En general, creo que cualquier cosa que uno quiera programar es posible sobre
todo en lenguajes como Java pues es de distribución libre y todo mundo puede
participar desde enviar errores del IDE Netbeans anónimamente a los creadores,
creando APIs, compartiendo códigos etc.

135 

 
ANEXOS
Diagrama de Flujo del botón “PREPARADOC” del programa para depurar
documentos CN40 en Visual Basic.

Inicio 

Sheets.Add After:=Sheets(Sheets.Count)

Sheets.Add After:=Sheets(Sheets.Count)

Sheets.Add After:=Sheets(Sheets.Count)

Sheets.Add After:=Sheets(Sheets.Count)

Sheets.Add After:=Sheets(Sheets.Count)

Sheets("Hoja1").Select Sheets("Hoja1").Nam
e = "CN41"

Sheets("Hoja2").Select Sheets("Hoja2").Name
= "Resumen_CN41"

Sheets("Hoja3").Select Sheets("Hoja3").Name
= "CAT"

Sheets("Hoja4").Select Sheets("Hoja4").Nam
e=
"PROYECTOS_F"

Sheets("Hoja5").Select Sheets("Hoja5").Nam
e=
“PROYECTOS_F_y_

137 
 
Sheets("Hoja6").Select Sheets("Hoja6").Na
me =
"SOLICITANTE"

Sheets("Hoja7").Select Sheets("Hoja7").Nam
e=
"RDX_PROYECTO”

Sheets("Hoja8").Select Sheets("Hoja8").Nam
e=
"RDX PROYECTOS

Sheets("CAT").Select 

ActiveCell.FormulaR1C1 = 
Range("A1").Select  "NUM_PROYECTO" 

ActiveCell.FormulaR1C1 = "TITULO" 
Range("B1").Select 

138 
 
ActiveCell.FormulaR1C1 = 
Range("C1").Select  "TIPO_PROYECTO" 

ActiveCell.FormulaR1C1 = 
Range("D1").Select  "FECHA_INICIO" 

ActiveCell.FormulaR1C1 = 
Range("E1").Select  "FECHA_TERMINO" 

ActiveCell.FormulaR1C1 = 
Range("F1").Select  "CVE_CENTRO_COSTOS" 

ActiveCell.FormulaR1C1 = 
Range("G1").Select  "CVE_DIVISION" 

ActiveCell.FormulaR1C1 = 
Range("H1").Select  "CVE_ZONA" 

ActiveCell.FormulaR1C1 = 
Range("I1").Select  "FECHA_INI_CARGA" 

139 
 
ActiveCell.FormulaR1C1 = 
Range("J1").Select  "FECHA_FIN_CARGA" 

ActiveCell.FormulaR1C1 = 
Range("K1").Select  "ENVIAR_CORREO" 

ActiveCell.FormulaR1C1 = 
Range("L1").Select  "CVE_SOLICITANTE" 

ActiveCell.FormulaR1C1 = 
Range("M1").Select  "CVE_SUPERVISOR" 

ActiveCell.FormulaR1C1 = 
Range("N1").Select  "CVE_DIRECCION" 

ActiveCell.FormulaR1C1 = 
Range("O1").Select  "TIPO_RUTA_PROYECTO" 

ActiveCell.FormulaR1C1 = 
Range("P1").Select  "NO_EMPLEADO" 

ActiveCell.FormulaR1C1 = 
Range("A2").Select  "NUM_PROYECTO" 

140 
 
Range("A2").Select  ActiveCell.FormulaR1C1 = 
"NUM_PROYECTO" 

Range("B2").Select  ActiveCell.FormulaR1C1 = 
"CVE_DIVISION" 

Range("C2").Select  ActiveCell.FormulaR1C1 = 
"CVE_CENTRO_COSTOS" 

Range("D2").Select  ActiveCell.FormulaR1C1 = 
"DESC_CENTRO_COSTOS" 

Range("E2").Select  ActiveCell.FormulaR1C1 = "TITULO" 

Range("F2").Select  ActiveCell.FormulaR1C1 = 
"CVE_LIDE_PROYECTO" 

Range("G2").Select  ActiveCell.FormulaR1C1 = 
"NOM_RESP" 

Range("H2").Select  ActiveCell.FormulaR1C1 = 
"FECHA_INICIO" 

Range("I2").Select  ActiveCell.FormulaR1C1 = 
"FECHA_TERMINO" 

Range("J2").Select  ActiveCell.FormulaR1C1 = 
"CVE_PRODUCTO" 

Range("K2").Select  ActiveCell.FormulaR1C1 = 
"DELEGACION" 

Range("L2").Select  ActiveCell.FormulaR1C1 = 
"ENVIAR_CORREO" 

141 
 
 

Range("M2").Select  ActiveCell.FormulaR1C1 = 
"CVE_SOLICITANTE" 

Range("N2").Select  ActiveCell.FormulaR1C1 = 
"CVE_SUPERVISOR" 

Range("O2").Select  ActiveCell.FormulaR1C1 = 
"CVE_DIRECCION_NEGOCIO" 

Range("A3").Select  ActiveCell.FormulaR1C1 = 
  "#SOLICITANTE"

Range("B3").Select  ActiveCell.FormulaR1C1 = 
  "SOLICITANTE"

Range("C3").Select  ActiveCell.FormulaR1C1 = 
  "SUBSIDIARIA"

Range("D3").Select  ActiveCell.FormulaR1C1 = 
  "RESPONSABLE"

Fin 

142 
 
Diagrama de Flujo del botón “DEPURAR” del programa para depurar documentos
CN40 en Visual Basic.

Inicio

Sheets("Resumen_CN40").Select 'poner las fechas con formato


ActiveWindow.LargeScroll ToRight:=-1 numérico
Range("J1:K1").Select Selection.NumberFormat =
Selection.ClearContents "m/d/yyyy"
Columns("J:K").Select

Sheets("CN40").Select ActiveSheet.Paste
Columns("A:A").Select
Selection.Copy ' copia la columna que 'pega la columna A de la hoja
selecciono “A” CN40 a la columna A de la hoja
Sheets("PROYECTOS_F").Select PROYECTOS_F
'selecciona la hoja PROYECTOS_F  
Columns("A:A").Select ' Selecciona
la columna A

El proceso anterior se repite para las columnas A, C, D, 
E, G, H, I y CU  de la Hoja CN40 y para las columnas J, K 
y AC de la Hoja Resumen_CN40. 

ActiveCell.FormulaR1C1 = "S" 

    Range("L1").Select      Range(Selection, 
Selection.End(xlDown)).Select 
    Selection.Copy 
    ActiveSheet.Paste 
    Range("L2").Select 

143 
 
El proceso de pegar desde la Hoja “CN40” a la de “PROYECTOS_F” se 
realizará para las columnas AW y BC; de la Hoja “Resumen_CN40” 
será la columna P. La ubicación especifica de donde se pegarán estas 
columnas esta  en las tablas de requerimientos. 

Columna 'Variable para contar las columnas 

Columna = 1 

IsEmpty(Cells Si 'Restar el título 
(Columna, 1)) 
Columna = Columna ‐ 1 

No

Columna = Columna + 1  Columna 

Sheets("CAT").Select 

X = 1 

144 
 
 

For i = 1   If Cells(i, X).Value = "" Or 

Cells(i, X).Value = " " Or Cells(i, 
X).Value = "  " Or Cells(i, 
To Columna 
X).Value = "   "

Rows(i).Select 

    ActiveCell = 
"DESCONOCIDO" 

'pone claves en CVE_DIRECCION_NEGOCIO 

Sheets("PROYECTOS_F").Select 

Range("Q2").Select 

    ActiveCell.FormulaR1C1 = _ 

        "=VLOOKUP(C[‐2],'[CATALOGO 
CVE_ZONA.xls]Hoja1'!R1C4:R8C5,2,FALSE)"   Sheets("PROYECTOS_F").Select 

For i = 1, X = 1  If Cells(i, X).Value = "D" Then 

To Columna 

Rows(i).Select 

    ActiveCell = "" 

145 
 
'Borra las  D desplazándose hacia arriba‐‐‐‐‐‐‐‐‐‐‐ 

    Range(Selection, Selection.End(xlUp)).Select 

    Application.CutCopyMode = False 

    Selection.Delete Shift:=xlUp 

Copiar pegar e insertar las 
columnas faltantes. Realización de 
comparaciones con el uso de 
catálogos, etc. Estos procesos son 
como los anteriores del diagrama. 

'Se imprime en pantalla lo siguiente: 

MsgBox "PROYECTOS F TOTALES " & Columnados ‐ 1 

MsgBox "PROYECTOS D TOTALES " & Columna ‐ Columnados 

MsgBox "PROYECTOS TOTALES EN PROYECTOS_F_y_D= " & Columna ‐ 1 

MsgBox "SOLO D" & ProyDytitulo

Fin 

El botón “REGENERAR CAT” realiza las mismas funciones que el botón 1 “PREPARARDOC” 
pero con la diferencia de que en este ya no se crean hojas nuevas. 

146 
 
Diagrama de Flujo del botón “Preparar ZH30” del programa para depurar
documentos ZH30 en Visual Basic.

Inicio 

'Crear una hoja nueva 

Sheets.Add 
After:=Sheets(Sheets.Count) 

'Selecciona la hoja  'Nombra la Hoja 

Sheets("Hoja2").Select Sheets("Hoja2").Name = "CAT" 

Sheets("Hoja3").Select  Sheets("Hoja3").Name = 
"DEPURADO_ZH32" 

Fin 

147 
 
Diagrama de Flujo del botón “Depurar ZH30” del programa para depurar
documentos ZH30 en Visual Basic.

Inicio 

Copiar de la Hoja 1 la columna A 
y pegarla en la columna A de la 
Hoja “DEPURADO_ZH30” 

'Seleccionar columna E y pegar la columna A que 
quedo guardada en E. 

Columns("E:E").Select 

    ActiveSheet.Paste 

'Colocar en la celda E1 “correo@imp.mx” 
ActiveCell.FormulaR1C1 = "correo@imp.mx" 
    Range("E1").Select 
    Selection.Copy 
    Range(Selection, Selection.End(xlDown)).Select 
    ActiveSheet.Paste 

'Copiar E1 

Range("E1").Select 

    Selection.Copy 

'Seleccionar toda la columna y pegar el contenido de E1. 

Range(Selection, Selection.End(xlDown)).Select 

    ActiveSheet.Paste 

148 
 
'Seleccionar toda la columna C de la Hoja 1 y copiarla,
después seleccionar la Hoja “CAT”
PEGA DIVISION DE PERSONAL EN CAT PARA
COMPARAR CON UN CATALOGO
"RDP_ZONA_EMP.xls" Y PONER LAS CLAVES
'pega en a y b la descripción de división

Sheets("Hoja1").Select
Columns("C:C").Select
Application.CutCopyMode = False
Selection.Copy

'PEGA DIVISION DE PERSONAL EN CAT PARA COMPARAR CON UN


CATALOGO "RDP_ZONA_EMP.xls" Y PONER LAS CLAVES
'pega en a y b la descripción de división.
'COMPARA CON el CATALGO
Range("B1").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(C[-1],'[RDP_ZONA_EMP.xls]Squirrel SQL
Export'!R1C1:R87C2,2,FALSE)"
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Columns("B:B").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("DEPURADO_ZH32").Select
Columns("F:F").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

V 'Restar titulo 
IsEmpty(Cells(Colu
mnafx, 1))  Columnafx = 
Columnafx ‐ 1 
F

Columnafx = Columnafx + 1 
Columnafx 

149 
 
 

'Recortar y pegar el valor de las columnas faltantes de acuerdo a las tablas de


requerimientos. 

'Imprime en pantalla el valor de Columnafx

MsgBox "tota del proyectos F del ZH32: " & Columnafx 

Fin 

Diagrama de Flujo del botón “Cuenta proyectos totales” del programa hecho en
Java.
1

Inicio 

Celda 
vacía  
Selecciona un archivo. 
F

Contador = Contador + 1 
C://Direccion archivo

La ubicación del archivo es  

C://Direccion archivo  Contador = Contador ‐ 1 

2
1 2 

Columnas totales  

Proyectos totales = Contador 

Fin
150 
 
Diagrama de Flujo del botón “Crear Catálogo” del programa hecho en Java.

Inicio

V
Crear archivo .XLS 
El archivo ha sido creado 
catalogo.xls  correctamente.

El archivo no ha sido creado. 

Fin

Diagrama de Flujo del botón “Crear archivos para CN40 y ZH30” del programa
hecho en Java.
Inicio

V
Crear archivo .XLS
Documento para CN40.xls El archivo ha sido creado
correctamente.

El archivo no ha sido creado. 

Crear archivo .XLS El archivo ha sido creado 


correctamente.
catalogo.xls
F V 

El archivo no ha sido creado. 

Fin  151 
 
Diagrama de Flujo del botón “Seleccionar Archivo” del programa hecho en C#.

Inicio 

Buscador de archivos RDX 

C://Direccion del archivo 

El archivo seleccionado 
Si archivo 
es incorrecto. 
nombre.xls

v

El archivo seleccionado 
es correcto. 

//Imprime en cuadro de texto 
C://Direccion del 
C://Direccion del archivo  archivo 

Fin 

152 
 
Diagrama de Flujo del botón “Crear y Abrir Documento en Excel” del programa
hecho en C#.

Inicio 

Crear archivo  y abrir  Libro.xls 

Seleccionar columna A1  Nombre 

Seleccionar columna B1  Apellido 

Seleccionar columna C1  Identificación 

Fin 

Diagrama de Flujo del botón “Reemplazar” del programa hecho en C#.

Inicio

Si el cuadro de texto 
seleccionar archivo = Dirección 

Falto seleccionar un 
archivo 
v

153 
 
 

Ingresar texto en cuadro de texto 
Reemplazar= ejemplo1 

Por = ejemplo2 

Comparar en el 
documento en todas las 
celdas si celda x =  V 
ejemplo 1

Celda x = ejemplo2 
F

Éxito al reemplazar ejemplo1 
por ejemplo2

Fin

154 
 
Diagrama de Flujo del botón “Buscar” del programa hecho en C#.

Inicio

Ingresar texto en cuadro de texto 
Buscar 

Buscar = ejemplo empleado 

Comparar en el 
documento en todas las 
celdas si celda x =  V 
ejemplo empleado

Si se encuentra “ejemplo 
F empleado” en el documento

//Imprime en el cuadro de texto 
//Resultados de la Búsqueda: 

Si se encuentra “ejemplo empleado” en el 
documento 

//Imprime en el cuadro de texto Resultados 
//de la Búsqueda: 

No se encuentra “ejemplo empleado” en el 
documento 

Fin

155 
 

S-ar putea să vă placă și