Documente Academic
Documente Profesional
Documente Cultură
PRESENTA:
PATSY DE JESÚS PINEDA
A Dios.
A mis hermanos.
A mi tía Gaby que es una gran inspiración pues cuenta con una
maestría y doctorado.
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”.
I
obtener una solución.
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
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.
Justificación
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.
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.
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.
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.
V
Índice
Introducción I
Objetivos III
Justificación IV
1.5. Bibliografía 10
2.2.2. Antecedentes 17
2.2.6. Macros 30
2.4. Java 41
2.6. Bibliografía 55
Conclusiones 135
Anexos 137
Índice de Figuras
2.2. Excel
2.4. Java
Figura 3.50 Programación que manda al cuadro de texto la dirección del Archivo
Buscado 119
Figura 3.54 Función del botón Crear y Abrir Documento En Excel 122
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.
1
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
2
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.
2 Indexar: registrar ordenadamente la información para elaborar su índice.
4 Es un conjunto de datos organizados de modo tal que resulte fácil acceder a ellos, gestionarlos y actualizarlos.
3
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
4
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
5
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.
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.
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
6
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
7
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
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.
8
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
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.
9
CAPITULO 1 - Instituto Mexicano Del Petróleo (IMP)
1.5 Bibliografía
10
CAPITULO 2
Software para desarrollo de Aplicaciones
CAPITULO 2 – Software para desarrollo de Aplicaciones
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:
¾ 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.
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.
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.
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
Fue la primera hoja de cálculo para computadoras personales dándole una utilidad
como una poderosa herramienta de negocios.
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
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
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
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.
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
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
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.
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.
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.
Microsoft Windows
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
Ventajas
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.
Desventajas
• No es gratuito.
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
En la que se encuentran:
CAPITULO 2 – Software para desarrollo de Aplicaciones
6. Columnas de la hoja.
7. Filas de la hoja.
8. Celda activa.
11. Hojas del libro, mediante estos controles podemos desplazarnos rápidamente
por las hojas del libro e insertar nuevas hojas al libro.
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.
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
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.
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.
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:
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
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.
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):
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.
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”.
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
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”.
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
31
CAPITULO 2 – Software para desarrollo de Aplicaciones
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
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.
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
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 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
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.
35
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
36
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
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
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.
38
CAPITULO 2 – Software para desarrollo de Aplicaciones
35 Lista jerárquica de valores.
39
CAPITULO 2 – Software para desarrollo de Aplicaciones
2.4 Java
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.
Java fue diseñado por James Gosling de Sun Microsystems en 1990 como
software de dispositivos electrónicos como calculadoras, microondas etc.
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
41
CAPITULO 2 – Software para desarrollo de Aplicaciones
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).
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.
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.
CAPITULO 2 – Software para desarrollo de Aplicaciones
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
45
CAPITULO 2 – Software para desarrollo de Aplicaciones
Comunicado de prensa:
La máquina virtual (JVM) de Sun fue equipada con un compilador JIT (Just in Time)
por primera vez
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.
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).
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
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.
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.
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
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.
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.
50
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
61 Es el medio con que el usuario puede comunicarse con una máquina.
51
CAPITULO 2 – Software para desarrollo de Aplicaciones
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.
66 Es una aplicación que permite a los usuarios finales hacer determinadas tareas. Algunos ejemplos de software son
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.
[2.3] Dan Bricklin’s Web site - VisiCalc Executable for the IBM PC ,
http://www.bricklin.com/history/vcexecutable.htm, Octubre/2009.
54
CAPITULO 2 – Software para desarrollo de Aplicaciones
[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.
TEMA: Macros
55
CAPITULO 2 – Software para desarrollo de Aplicaciones
TEMA: Java
CAPITULO 2 – Software para desarrollo de Aplicaciones
[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.
[2.26] Ferguson Jeff; Patterson Brian; Beres Jason (2003). La biblia de C#. Ed.
Anaya Multimedia. España. Página 36, 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
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
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).
59
CAPITULO 3 – Desarrollo de los Programas
60
CAPITULO 3 – Desarrollo de los Programas
61
CAPITULO 3 – Desarrollo de los Programas
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
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”.
64
CAPITULO 3 – Desarrollo de los Programas
65
CAPITULO 3 – Desarrollo de los Programas
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.
66
CAPITULO 3 – Desarrollo de los Programas
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.
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
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.
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.
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.
Sheets("Hoja1").Name = "CN40"
70
CAPITULO 3 – Desarrollo de los Programas
Nombre de la columna = 1
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.
8 Es el símbolo (‘).
71
CAPITULO 3 – Desarrollo de los Programas
Sheets("Hoja1").Select
Columns("A:A").Select
Contador = Contador – 1
9 Significa que solo puede tomar 2 valores que son verdadero o falso.
72
CAPITULO 3 – Desarrollo de los Programas
If Cells(i, X).Value = _
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
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
74
CAPITULO 3 – Desarrollo de los Programas
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).
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
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
77
CAPITULO 3 – Desarrollo de los Programas
En esta otra figura se muestran las operaciones o formula que contiene una de las
celdas:
78
CAPITULO 3 – Desarrollo de los Programas
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.
16 En español significa no hay contratos, pero se puede poner lo que se desee.
79
CAPITULO 3 – Desarrollo de los Programas
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.
81
CAPITULO 3 – Desarrollo de los Programas
82
CAPITULO 3 – Desarrollo de los Programas
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.
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
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.
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
CAPITULO 3 – Desarrollo de los Programas
En Java, para trabajar con archivos de Excel, existe el Apache POI - The Java API
for Microsoft 20 Documents en la figura 3.22.
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
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.
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.
88
CAPITULO 3 – Desarrollo de los Programas
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
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.
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).
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).
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:
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:
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".
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.
CAPITULO 3 – Desarrollo de los Programas
En la figura 3.32 de la API es donde se muestra con una flecha que tengo que
importar para trabajar con HSSFWorkbook:
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
95
CAPITULO 3 – Desarrollo de los Programas
wb.write(fOut);
96
CAPITULO 3 – Desarrollo de los Programas
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"); }
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.
97
CAPITULO 3 – Desarrollo de los Programas
98
CAPITULO 3 – Desarrollo de los Programas
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.
Try{
/código...
} catch (Exception e) {
//código…
99
CAPITULO 3 – Desarrollo de los Programas
try{
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
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
wb.write(fOut);
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.
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.
102
CAPITULO 3 – Desarrollo de los Programas
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.
CAPITULO 3 – Desarrollo de los Programas
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.
104
CAPITULO 3 – Desarrollo de los Programas
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
//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.
106
CAPITULO 3 – Desarrollo de los Programas
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).
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.
fc.setFileFilter(filter);
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
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”.
CAPITULO 3 – Desarrollo de los Programas
Al abrir el editor Microsoft Visual Studio 2010 se muestra una página de inicio
como en la siguiente figura:
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
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
112
CAPITULO 3 – Desarrollo de los Programas
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”.
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).
114
CAPITULO 3 – Desarrollo de los Programas
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.
Figura 3.47 Botón que abre el seleccionador de archivos.
Fuente: Microsoft .NET
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
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.
118
CAPITULO 3 – Desarrollo de los Programas
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.
119
CAPITULO 3 – Desarrollo de los Programas
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
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).
122
CAPITULO 3 – Desarrollo de los Programas
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
124
CAPITULO 3 – Desarrollo de los Programas
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.
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: C#
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
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.
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.
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.
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
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
132
CAPITULO 4 – Implementación de los Programas
133
CONCLUSIONES
Conclusiones
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("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 = 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
F
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
V 'Restar titulo
IsEmpty(Cells(Colu
mnafx, 1)) Columnafx =
Columnafx ‐ 1
F
Columnafx = Columnafx + 1
Columnafx
149
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
V
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.
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
F
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
Inicio
Si el cuadro de texto
seleccionar archivo = Dirección
F
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