Esta obra está bajo una licencia Reconocimiento-No comercial 2.5 Colombia de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc/2.5/co/ o envie una carta a Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. PROGRAMACION Y EXTENSIÓN EXTENSIÓN DE OPENOFFICE Autores: ZULEIDY JOHANNA BARRERO NIETO JHON ALEXANDER FERNÁNDEZ RUEDA Director Unidad Informática: Henry Martínez Sarmiento Tutor Investigación: Álvaro Enrique Palacios Villamil Coordinadores: Leydi Diana Rincón Rincón Luis Alfonso Nieto Ramos Coordinador Servicios Web: Miguel Ibañez Analista de Infraestructura y Comunicaciones: Alejandro Bolivar Analista de Sistemas de Información: Álvaro Enrique Palacios Villamil UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES BOGOTÁ D.C. DICIEMBRE DE 2007 PROGRAMACIÓN Y EXTENSIÓN DE OPENOFFICE Director Unidad Informática: Henry Martínez Sarmiento Tutor Investigación: Álvaro Enrique Palacios Villamil Auxiliares de Investigación: Alvaro Esneyder Roncancio Andrea Patricia Garzón Andrés Felipe Pérez Murcia Andrés Felipe Sanchez Baquero Andrés Mauricio Arias Toro Brayan Ricardo Rojas Carlos Ernesto González Vargas Carlos Hernan Porras Carolina Acosta Romero Cristian Camilo Ibañez Daniel Hernan Santiago Diego Andrés Gil Elkin Giovanni Calderón Erika Zuley Guerrero Gustavo Alejandro Ospina Javier Mauricio Ravelo John Alexander Fernandez Rueda Jorge Alexander Cerón Juan Camilo Rojas Juan Carlos Peña Robayo Juan Felipe Reyes Rodriguez Jurley Sosa Karen Lorena Gutiérrez Leidy Carolina Rincón Luis Alejandro Pico Maria Inés García Ramírez Miguel Angel Valderrama Oscar Javier Rivera Claro Roberto Alejandro Sanchez León Rodrigo Acosta Sergio Fernando Garzón Tatiana Bravo Yelitza Barbosa Zareth Manzón Garnica Zuleidy Johana Barrero Nieto Este trabajo es resultado del esfuerzo perteneciente a la Unidad de Informática. de todo el equipo Se prohíbe la reproducción parcial o total de este documento, por cualquier tipo de método fotomecánico y/o electrónico, sin previa autorización de la Universidad Nacional de Colombia. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES BOGOTÁ D.C. NOVIEMBRE DE 2007 1. TABLA DE CONTENIDO 1. TABLA DE CONTENIDO ........................................................................................................3 2. INTRODUCCIÓN......................................................................................................................4 3. OBJETIVOS ................................................................................................................................5 4. JUSTIFICACION........................................................................................................................6 5. RESUMEN...................................................................................................................................7 6. ABSTRACT ................................................................................................................................8 7. ABSTRACT ................................................................................................................................9 8. Qué es y para qué sirve OOo Basic........................................................................................10 9. INSTALACION ........................................................................................................................13 10. FUNCIONES ........................................................................................................................24 11. OPERADORES .....................................................................................................................29 12. INSTRUCCIONES ...............................................................................................................31 13. OTROS CONCEPTOS ESENCIALES ...............................................................................35 14. ENTORNO DE TRABAJO ..................................................................................................41 15. OBJETIVOS CURSOS LIBRES ...........................................................................................50 16. MACROS CURSOS LIBRES................................................................................................51 17. CONCLUSIONES ................................................................................................................63 18. BIBLIOGRAFIA ....................................................................................................................64 2. INTRODUCCIÓN Cada día se evidencia más el auge y la importancia que esta tomando el software libre en la academia, por esto cabe decir que es relevante conocer por lo menos los componentes básicos Linux y sus aplicaciones, en este trabajo se resaltan las propiedades de OpenOffice.org. Basic el cual permite la creación de macros en lenguaje Basic. OpenOffice. Org. Basic viene incluido en el paquete de OpenOffice. Org. (writer, calc, etc) lo que implica que el programa no tenga que ser instalado separadamente, brindando mayor facilidad de instalación. Para las personas que ya han manejado Visual Basic, el entorno de trabajo de OOo Basic les será familiar pues las características del uno y el otro son semejantes. OOo Basic permite ejecutar una serie de comandos específicos para la realización de una acción. Esos comandos se dividen en Funciones, operadores e instrucciones. La diferencia entre ellos subyace en la forma como intervienen en la realización de una macro, por ejemplo una función genera un valor a partir de una instrucción, un operador es una herramienta que permite que algunas funciones se lleven a cabo, una instrucción permite realizar operaciones entre datos de entrada sin devolver algún valor. Programación en OpenOffice.org Basic Open office.org Basic incluye una Interfaz de programación de aplicaciones (API) que permite el control de los componentes de OpenOffice.org con distintos lenguajes de programación utilizando su Kit de desarrollo de software (SDK). Debido a los cambios en la API, las macros que se hayan creado con StarOffice 5.2 o versiones anteriores ya no sirven en las versiones posteriores. -OpenOffice.org Basic es modular El código de OpenOffice.org Basic se basa en subrutinas y funciones que se especifican entre secciones sub...end sub y function...end function. Cada Sub o Function puede llamar a otros módulos Sub y Function. Si se escribe código genérico para módulos Sub o Function, probablemente se podrá reutilizar en otros programas. 3. OBJETIVOS Objetivos generales: Familiarizar al lector con el entorno de trabajo de OOo Basic y con los conceptos mas esenciales para comprender el manejo del programa, haciendo hincapié en los comandos más utilizados en la estructura de macros, permitiendo una mejor comprensión a través de ejemplos sencillos, dejando la base teórica para dictar los cursos de ofimática avanzada en ]OpenOffice Objetivos específicos: 1. Ilustrar la manera como se debe instalar OpenOffice correctamente, haciendo una división entre la instalación en Windows y en Linux. 2. Caracterizar los elementos de OOo Basic, sus utilidades y algunas funciones que ejecuta y permiten una mayor eficiencia en los procesos 3. Especificar los requerimientos necesarios para instalar el programa (software y hardware) 4. Introducir los conceptos de Función, Operador e Instrucción de tal forma que el uso de macros sea más eficiente, no solo por tener el concepto sino por conocer los comandos básicos para ejecutarlos. 5. Recopilar las funciones, operadores e instrucciones esenciales en el manejo de macros. 6. Elaborar ejemplos particulares de acuerdo con los comandos previamente descritos. 7. Plantear objetivos para la implementación en cursos libres. 4. JUSTIFICACION Las suit’s offimaticas ofrecen grandes posibilidades a la hora de realizar cualquier labor, permiten realizar desde documentos de texto, pasando por manejadores de correo, hasta incluso, llegar a crear programas complejos de calculo o formas mas eficientes de manejar bases de datos que optimizan muchos procesos de la vida cotidiana o empresarial. Por tal motivo, lograr desarrollar un estudio completo sobre todos estos aspectos facilita enormemente el manejo de estos paquetes ofrecidos por diversas empresas, sacándole el mayor provecho a la herramienta ofimática, abriendo incluso la posibilidad a diversas empresas que utilizan esta clase de plataformas, la reducción de costos en cuanto a potencializar una herramienta con que se cuenta en vez de adquirir un software especializado para ello. Sin embargo, el estudio sobre la plataforma de Visual Basic desarrollada por Microsoft es bastante, pero el mundo empresarial debe estar enfocado a la competitividad y ahorro, por lo cual el software privativo no es una muy buena alternativa, solo que hasta el momento se ha venido sustentando en las grandes ventajas que ofrecen estos paquetes. Afortunadamente, el entorno informático no se ha quedado atrás, el desarrollo de software libre ha sido la vía de solución para lograr crear dicha competitividad y lograr conseguir los mismos e incluso más beneficios de los que ofrecen los paquetes privativos; sin embargo uno de los mayores impedimentos ha sido el “miedo” que el usuario ha tenido al enfrentarse a estos programas con un entorno nuevo para él. Por tal motivo, es necesario e indispensable que dicho estudio se empiece a hacer desde la educación escolar y mas aún se fortalezca en la formación profesional para que en el entorno productivo se logre dar un manejo completo a las herramientas de libre adquisición. La unidad de informática de la facultad de ciencias económicas no debe ser la excepción en la formación e implementación del software libre que paulatinamente se esta presentando, por tal motivo debe ser un centro de investigación en estas herramientas para lograr capacitar y concienciar a los estudiantes de la importancia que tiene optimizar los procesos en suit’s offimaticas libres con la programación en esta clase de plataformas, ya que con este conocimiento no solo se prepara adecuadamente la mentalidad del empresario del futuro, sino que también pueden ser implementados en la unidad en todos sus aspectos. 5. RESUMEN OpenOffice.org es una suite ofimática de software libre y código abierto que incluye herramientas como procesador de textos, hoja de cálculo, presentaciones, herramientas para el dibujo vectorial y base de datos. Está disponible para muchas y diversas plataformas, como Microsoft Windows, sistemas de tipo Unix con el Sistema X Window como GNU/Linux, BSD, Solaris y Mac OS X. Está pensado para ser compatible con Microsoft Office, con quien compite. Soporta el estándar ISO OpenDocument para el intercambio de datos, y puede ser utilizado sin costo alguno. OpenOffice.org posee la base solida de StarOffice, una suite ofimática desarrollada por StarDivision y adquirida por Sun Microsystems en agosto de 1999, que actualmente es la suite comercial de Sun. El código fuente de la suite fue liberado en julio de 2000, con la intención de hacer frente al dominio en el mercado de Microsoft Office proporcionando una alternativa abierta, de bajo costo y alta calidad. El código fuente de la aplicación está disponible bajo la licencia LGPL. Las versiones más recientes de StarOffice están basadas en el código base de OpenOffice.org; de forma similar a la relación existente entre Netscape Navigator y Mozilla. El proyecto y el programa son denominados "OpenOffice" de forma informal, pero los organizadores del proyecto dicen que este término es una marca registrada en posesión de otra empresa, obligándoles a adoptar "OpenOffice.org" como nombre formal, y abreviado como OOo. Existe una versión portátil de OpenOffice.org que puede ser transportada y usada directamente desde una memoria USB sin necesidad de instalarse en el computador. OpenOffice.org Basic es el nombre del lenguaje de macros incluido con OpenOffice.org. OpenOffice.org Basic tiene mucho en común con Visual Basic de manera que es una gran ventaja para aquellas personas que saben manejar Visual Basic. La suite OpenOffice.org Basic está basada en subrutinas y funciones. Están implementadas con las palabras clave “Sub” y “Function”. Se refieren generalmente a estos como procedimientos. Cada procedimiento proveerá alguna funcionalidad y puede llamar a otros procedimientos. (No está permitida la recursividad). La diferencia entre un “Sub” y una “Function” es que “Function” puede retornar un valor y por eso está permitido el uso en la parte derecha de una declaración. Una colección de procedimientos está contenido en un módulo. Un documento puede contener modulos, y pueden existir globalmente aparte de un documento. Colecciones de módulos están guardados en una librería. El uso de Openoffice se propone como resultado de este trabajo en la implementación de macros para ser enseñadas en los curso de ofimática en la unidad de informática. 6. ABSTRACT OpenOffice.org is an exciting new Office suite program that is extremely powerful and completely free to everyone. It operates on Windows, Linux, Macintosh, and Solaris, and it can easily read and write a plethora of file formats, including Microsoft Office. It is currently available in more than 30 languages, and people all over the world are migrating to OpenOffice.org for their entire office suite needs. Over sixteen million people currently use the program, and the total is increasing daily! You don’t have to pay a single dime to use OpenOffice.org — either now or in the future! Sounds too good to be true? The more you learn about OpenOffice.org, the more fascinated you’ll become. What Is OpenOffice.org? OpenOffice.org, the Office suite, includes the following four major applications: _ Writer: A full-featured word processor that also includes an HTML editor for designing Web pages _ Calc: An extremely capable spreadsheet program that also allows you to link to corporate databases _ Draw: An excellent drawing and graphics program for both 2-D and 3-D Impress: A very capable presentation program for creating electronic slide shows The suite OpenOffice.org Basic is based on subroutines and functions. They are implemented with the words key "Sub" and "Function". It's referent generally to these as procedures. Each procedure will provide some functionality and can call to other procedures. (The recursividad is not allowed). The difference among a "Sub" and a "Function" it is that "Function" a value can return and for that reason the use is allowed in the right part of a declaration. A collection of procedures is contained in a module. A document can contain modules, and they can exist globally apart from a document. Collections of modules are kept in a bookstore. The use of Openoffice intends as a result of this work in the implementation of macros to be taught in the offimátic course in computer science's unit. 7. ABSTRACT OpenOffice.org is a suite ofimática of free software and open code that it includes tools like word processor, calculation leaf, presentations, tools for the vectorial drawing and database. It is available for many and diverse platforms, as Microsoft Windows, systems of type Unix with the System X Window like GNU / Linux, BSD, Solaris and Mac YOU X. It is thought to be compatible with Microsoft Office, with who competes. Standard ISO supports OpenDocument for the exchange of data, and it can be used without cost some. OpenOffice.org possesses the accustomed to base of StarOffice, a suite ofimática developed by StarDivision and acquired by Sun Microsystems in August of 1999, that at the moment is the commercial suite of Sun. The source code of the suite was liberated in July of 2000, with the intention of making in front of the domain in the market of Microsoft Office providing an open alternative, of low cost and high quality. The source code of the application is available under the license LGPL. The most recent versions in StarOffice are based on the code base of OpenOffice.org; in a similar way to the existent relationship between Netscape Navigator and Mozilla. The project and the program are denominated "OpenOffice" in an informal way, but the organizers of the project say that this term is a mark registered in possession of another company, forcing them to adopt "OpenOffice.org" like formal name, and abbreviated as OOo. A portable version of OpenOffice.org that can be transported exists and used directly from a memory USB without necessity of settling in the computer. OpenOffice.org Basic is the name of the included language of macros with OpenOffice.org. OpenOffice.org Basic has much in common with Visual Basic so that it is a great advantage for those people that know how to manage Visual Basic. The suite OpenOffice.org Basic is based on subroutines and functions. They are implemented with the words "Sub" key and "Function." They generally refer to these as procedures. Each procedure will provide some functionality and he/she can call to other procedures. (Not the recursividad is allowed). The difference between a "Sub" one and a "Function" is that "Function" can return a value and for that reason the use is allowed in the right part of a declaration. A collection of procedures is contained in a module. A document can contain modules, and they can exist globally apart from a document. Collections of modules are kept in a bookstore. The use of Openoffice intends as a result of this work in the implementation of macros to be taught in the ofimática course in computer science's unit. 8. Qué es y para qué sirve OOo Basic1 OpenOffice.org Basic, el lenguaje de programación de macros de la suite de aplicaciones ofimáticas OpenOffice.org, permite al desarrollador (y a los usuarios que usen estas macros) programar pequeñas aplicaciones en esta suite así como automatizar muchas tareas que de otro modo llevarían muchísimo tiempo o serían prácticamente imposibles de realizar. Mediante el uso de macros podemos realizar acciones como las siguientes: obtener de Internet los valores en bolsa de ciertas compañías y crear una hoja de cálculo que se autoactulice cada vez que la abramos, abrir todos los documentos de Writer que existan en un determinado directorio y pegarlos uno detrás de otro, convertir todos los documentos de Writer de un directorio a formato PDF, crear una base de datos que nos permita gestionar los pedidos de nuestros clientes, etc. En general, mediante el uso de macros en OpenOffice podremos crear pequeñas y medianas aplicaciones ofimáticas, usando la potencia, versatilidad y facilidad de uso que nos ofrecen todos los componentes disponibles en la suite (Writer, Calc, Impress, Draw y el gestor de Bases de Datos integrado en OOo). En este primer capítulo trataremos algunos conceptos básicos que nos permitirán posteriormente avanzar con rapidez en el desarrollo de macros. Se puede profundizar y estudiar los detalles leyendo la documentación en la que se basa este artículo (ver tabla de enlaces de interés al final del artículo) OOo Basic pertenece a la familia de lenguajes Basic. Muchas partes de OOo Basic son idénticas al lenguaje Microsoft Visual Basic for Applications (usado en Microsoft Office) y Microsoft Visual Basic. Cualquiera que haya programado con cualquiera de estos lenguajes se hará rápidamente con el control de OOo Basic. OOo Basic es un lenguaje interpretado, lo cual quiere decir que el compilador no creará programas ejecutables independientes, tal y como genera el compilador de C o C++, sino que para ejecutar un programa realizado en OOo Basic es indispensable disponer de un entorno de ejecución que permita ejecutar línea a línea el código del programa. Desde dicho entorno, con la pulsación de un botón (Ejecutar macro) pondremos en marcha el intérprete de OOo Basic. Este intérprete, comprobará primero que la sintáxis del código que va a ejecutar es correcta y posteriormente lo ejecutará línea a línea. Podemos programar las macros usando el editor de desarrollo integrado (IDE) en OpenOffice.org, al que accederemos desde cualquier programa de la suite pulsando en Tools/Macros/Macro/Edit (aunque OOo 1 es.wikibooks.org/wiki/OpenOffice.org/Basic:_el_lenguaje_de_macros - 16k - está traducido al castellano, la mayor parte de la documentación y ejemplos de macros para OpenOffice están en inglés, así como los foros de soporte para la programación en OOo Basic. Seguir los ejemplos con el interfaz en inglés es más cómodo de cara al programador. En todo caso, la traducción es inmediata, y en las figuras adjuntas se muestra la localización de los distintos botones y menús para facilitar el proceso) Cómo usar el editor de OOo Basic Desde el entorno de desarrollo de macros de OOo no sólo es posible crear y editar macros, sino también ejecutarlas en modo debug (permitiendo la depuración de errores), la validación de la sintaxis usada en el código, la creación de formularios y cuadros de diálogo y la administración de bibliotecas de funciones. Llegados a este punto, la mejor forma de continuar es creando una pequeña macro a modo de ejemplo, lo que además nos ayudará a refrescar los conocimientos de Basic que ya tuviéramos. El ejemplo consistirá en crear una pequeña aplicación que pregunte al usuario por el nombre de un archivo de texto, lea el contenido de dicho archivo y lo muestre por pantalla (algo poco útil por el momento, pero que nos servirá para nuestra primera toma de contacto con el IDE de OOo Basic). Diferencias entre OOo Basic y Microsoft Visual Basic Comenzamos dando algunos aspectos que brindan ventajas o desventajas dependiendo de la necesidad del usuario, de las plataformas de OOo y Microsoft office: Categoría OpenOffice.org Microsoft Office Procesador de Exportación directa a formato Necesita drivers o programas especiales para Textos PDF poder generar PDF's Hoja de No permite especificar campo de cálculo Página en las Tablas dinámicas Hoja de Subtotales anidados en una sola cálculo operación Macros Permite deshacer las acciones Tablas dinámicas con campo de Página Para obtener subtotales anidados, hay que dar varios pasos: ordenar, obtener subtotal exterior, obtener subtotal interior No permite deshacer las acciones ejecutas por ejecutadas mediante una macro macros En cuanto a manejo de macros la plataforma de visual Basic y Ooo Basic son básicamente iguales, pues el lenguaje es el mismo y sus funciones tambien. 9. INSTALACION 8.1 Instalar OpenOffice.org bajo Windows Requerimientos: • Para utilizar OpenOffice.org necesitas: Sistema operativo: Win95/98/NT/ME/2000/XP/Vista La instalación de OOo Basic.org se realiza de manera automática al realizar la de la suite ofimática de Openoffice.org, no existen versiones oficiales de su instalación por separado, sin embargo para Linux se pueden encontrar repositorios que instalen la herramienta. Por tanto es necesario identificar la instalación de Openoffice.org en los entornos Windows y Linux. En esta guía puedes ver las bases para instalar OpenOffice.org para iguien. La instalación se divide en varios pasos: Carga del instalador Selección de la ruta en donde el instalador pondrá poner los archivos para instalar (archivos .cab). Selección de los modulos y el iguie a instalár Registro del producto El contenido de este manual ha sido extraido del archivo de instalación que debe incluirse en todas las distribuciones de la suite de oficina OpenOffice.org, y adaptado para su presentación online y posterior utilización en este informe. Este manual de instalación indica cómo hacer una instalación individual para un usuario, teniendo en cuenta que el objetivo del presente informe es hacer apenas una recopilación de donde surge la instalacion de Ooo Basic. Org y para ello es indispensable tener la suite de Openoffice.org. Si se necesita otro tipo de información (instalación en red etc.), se debe consultar el documento completo que se encuentra en cualquier distribución en CD ROM de la suite de oficina OpenOffice.org. Windows: Requisitos de sistema Requisitos de disco duro y memoria Iniciar la instalación Mensaje de bienvenida Información importante Contrato de licencia Datos del usuario Tipo de instalación Selección de componentes Directorio de instalación Fin de las opciones de instalación Asignación de los tipos de archivos Entorno de ejecución Java™ (Java™ Runtime Environment) Inicio del proceso de copia Finalización de la instalación Inicio de OpenOffice.org Requisitos de sistema Windows 95/98/NT/ME/2000/XP/Vista. Para el soporte de idiomas asiáticos se requiere como mínimo la versión de Windows 98 (se recomienda Windows 2000) PC con procesador Pentium o compatible 64 MB de memoria RAM (Como mínimo para las versiones mas antiguas), 128 o 256 para las mas recientes con con actualizaciones. Requisitos de disco duro y memoria Según las opciones que se hayan decidido instalar, se necesitará alrededor de 190 a 250 MB de espacio libre en el directorio en el que se vaya a instalar OpenOffice.org. Durante la instalación se necesitarán además unos 40 MB de espacio adicional para los archivos temporales. Los archivos temporales se eliminarán automáticamente al finalizar con éxito la instalación. Iniciar la instalación Si se ha instalado una versión anterior de OpenOffice.org, compruebe primero si existe el archivo sversion.ini en el directorio del usuario de Windows. El archivo indica la ruta y el número de versión de un OpenOffice.org ya instalado. Si se trata de un OpenOffice.org con el mismo número de versión que se va a instalar, la instalación sólo será posible si desinstalas previamente el OpenOffice.org existente. Regístrese en el sistema con su nombre de usuario, si fuera necesario, y si no, simplemente encender el ordenador y arrancar el sistema operativo. Ahora se puede usar el Explorador de Windows para ejecutar el programa de instalación de OpenOffice.org (el “Setup”). Buscando el archivo setup.exe en el subdirectorio \office60. volver al menú de navegación Mensaje de bienvenida Primero se verá una ventana con un mensaje de bienvenida. El botón Ayuda, que aparece en muchos de los cuadros de diálogo del programa de instalación, ofrece información sobre el cuadro de diálogo actual. Una vez leído el texto de ayuda, podrá regresar al programa de instalación pulsando el botón Regresar. No cierre la ventana de ayuda con el botón de cierre X del sistema de Windows (esquina superior derecha), ya que con ello se cerraría el programa de instalación. Pulsando siguiente se continúa con el proceso de instalación. Información importante Ahora aparecerá una ventana con el contenido del archivo readme.txt. Este archivo también se podrá abrir y leer desde el directorio de OpenOffice.org, después de haber completado la instalación. Una vez leído el texto, pulse Siguiente para seguir con el proceso de instalación. Contrato de licencia La siguiente ventana muestra el contenido del contrato de licencia. Debe leer atentamente el contrato de licencia. Pulse “Aceptar” si está de acuerdo con todas las cláusulas para poder continuar con la instalación. Si no está de acuerdo con el contrato, pulse “Cancelar”. En este caso, OpenOffice.org no se instalará. Datos del usuario Verá el cuadro de diálogo Introducir datos de usuario. Introduzca sus datos personales. Los datos que aquí se escriben se utilizarán, por ejemplo, para insertar automáticamente dicha información en las plantillas de cartas o faxes o en los correos electrónicos. Si en este momento no quiere introducir sus datos, puede hacerlo después de instalar OpenOffice.org con el comando Herramientas|Opciones…|OpenOffice.org que se encuentra en la ficha Datos del usuario. Pulse Siguiente para seguir con el proceso de instalación. Tipo de instalación En el siguiente cuadro de diálogo, podrás seleccionar el tipo de instalación. La Instalación completa es la recomendada para el usuario normal. En general se instalarán todos los componentes. Si selecciona esta opción, sólo se te preguntará por el directorio en el que desea instalar OpenOffice.org. La Instalación personalizada también presenta primero un cuadro de diálogo en el que podrá seleccionar el directorio para la instalación. A continuación aparecerá otro cuadro en el que podrá seleccionar los diferentes componentes que se van a instalar. Selecciona el tipo de instalación deseada. Pulsa Siguiente para seguir con el proceso de instalación. Selección de componentes Si ha seleccionado Instalación personalizada, verá a continuación un cuadro de diálogo en el que podrás seleccionar los componentes que quieres instalar. Se instalarán todos los componentes cuyas casillas, junto a los respectivos nombres, sean de color. Si no desea instalar un componente, pulse la casilla de color junto al componente que no quiere instalar. La casilla vuelve gris, lo cual significa que este componente no se instalará (o que se eliminará de la instalación). Cada vez que pulsa una casilla, ésta cambiará de color a gris y viceversa y el componente correspondiente y todos sus subcomponentes se instalarán (color) o no (gris). Al pulsar el signo + junto al nombre de un componente, se abrirá la lista de los subcomponentes. Estos subcomponentes también pueden instalarse o eliminarse de la instalación mediante un ‘clic’. Cuando un componente tenga subcomponentes que se van a instalar y otros que no, la casilla se verá semitransparente, como la casilla del filtro de texto de OpenOffice.org Writer, ya que por defecto se realiza una preselección reducida de los muchos filtros que existen. Si pulsa sobre el botón Predeterminado, se anulará todo que has seleccionado, y se restaurará la configuración predeterminada del programa de instalación. Las entradas en color rojo indican que este componente se instalará siempre y que no se puede desactivar. Seleccione los módulos y componentes deseados para la instalación, es importante que esté seleccionado la herramienta de Ooo Basic.org, así como el asistente para macros en las casillas de verificación. Pulsa Siguiente para seguir con el proceso de instalación. Directorio de instalación Verá un cuadro de diálogo en el que podrá determinar el directorio de instalación. En la parte superior del cuadro verá una lista de las unidades del sistema con información sobre la memoria requerida y el espacio disponible. Si lo desea, puedes buscar la ruta de instalación en un cuadro de diálogo pulsando Examinar…. También puede introducir directamente la ruta en el campo de texto. Si el directorio mencionado no existe se creará automáticamente tras pedir confirmación. OpenOffice.org instalará en el directorio mencionado archivos y otros subdirectorios con archivos. Pulsa Siguiente para seguir con la instalación. Asignación de los tipos de archivos En el siguiente cuadro de diálogo seleccione los tipos de archivos adicionales que se deben abrir con OpenOffice.org. De manera predeterminada OpenOffice.org se registra en el sistema operativo como programa predeterminado para estos tipos de archivos. Seleccione los tipos de archivos que OpenOffice.org debe abrir además de los propios. Pulse iguiente. Inicio del proceso de copia Pulse instalar para iniciar el proceso de copia de los archivos. Tras iniciarse el proceso de copia verá cómo va avanzando el proceso de instalación y una estimación del tiempo que falta para finalizar la instalación. Al finalizar la instalación, en el menú Inicio|Programas|OpenOffice.org 2.3 encontrará iconos para iniciar los diferentes componentes instalados de OpenOffice.org. Durante la instalación de OpenOffice.org se creará un vínculo para el Inicio Rápido de OpenOffice.org en la carpeta de Inicio de Windows. Cada vez que se inicie el sistema, el icono de Inicio Rápido aparecerá en la bandeja del sistema.2 Si hace ‘clic’ sobre dicho icono con el botón derecho del ratón, se abrirá un menú contextual desde el que podrá abrir los diversos componentes de OpenOffice.org. Encontrará más información sobre las funciones del Inicio Rápido en la Ayuda. 8.2 Instalar OpenOffice.org bajo Linux Este turorial se establece si no dispone de las ultimas versiones de distribución de Linux en donde ya viene incluida la suite offimatica al realizar la instalacion (Ubuntu 7.04 y anterior, Opensuse 10.3) Si necesita más información sobre la instalación inicial u otros aspectos, puedes ir también a: • la página de instalación, donde encontrará información sobre cómo instalar el suite de oficina OpenOffice.org en la versión en español • la página de documentación de la Comunidad de OpenOffice.org en español • la lista de correo en español (más direcciones de utilidad) • los FAQs en inglés • las listas de correo en inglés • el proyecto de OpenOffice.org dedicado exclusivamente a la recopilación de documentación de utilidad, documentation.openoffice.org • el sitio web de OpenOffice.org dedicado exclusivamente a la recopilación de documentación de utilidad, www.ooodocs.org Introducción El contenido de este manual ha sido traducido de las instrucciones originales que se encuentran en ingles en la pagina de Openoffice. org. • requisitos de sistema • requisitos de disco duro y memoria • iniciar la instalación • entorno de ejecución Java™ (Java™ Runtime Environment) • descargar el archivo .tar.gz • ejecutar "setup" • instalación del usuario • tipo de instalación y directorio • datos del usuario • directorio de tu entorno de ejecución Java™ (Java™ Runtime Environment) • finalización de la instalación e inicio de OpenOffice.org Requisitos de sistema • Linux Kernel 2.2.13 o superior • XServer (resolución mínima 800x600 y 256 colores) con administrador de ventanas (p.ej. GNOME) • PC con procesador Pentium o compatible, o un procesador PowerPC • 64 MB de memoria RAM (como minimo, 128 o 256 para las mas recientes) • instalación de glibc2 en versión 2.1.3 o superior (glibc2 v2.2.1 o mayor para PPC Linux) Requisitos de disco duro y memoria Según las opciones que hayas decidido instalar, necesitará alrededor de 190 a 250 MB de espacio libre en el directorio en el que vayas a instalar OpenOffice.org. Durante la instalación se necesitarán además unos 40 MB de espacio adicional para los archivos temporales. 2 es.openoffice.org/programa/instalar-win.html Iniciar la instalación Instalar OpenOffice.org en Linux es muy fácil. Para asegurar la mejor instalación, siga estos pasos sencillos. Descargar el archivo ".tar.gz" En el root Descargue el tarball de OpenOffice.org, y extraigalo (el archivo .tar.gz file) a un directorio temporal. /tmp es un buen lugar En este ejemplo, entendemos que hemos bajado el tarball al directorio /tmp Abre un terminal como xterm o konsole. Para extraer el tarball, primero cambiamos al directorio /tmp: cd /tmp y extraemos el tarball: tar -zxvf [nombre del tarball] Ejecutar "setup" Así, se ha creado un directorio install. Cambiando a este directorio: cd install Se ejecuta setup. Se hace con el siguiente comando: ./setup -net Con este comando se da el primer paso de la instalación Linux Siga las instrucciones de la aplicación de instalación. Cuando solicita dónde instalar los archivos de programa de OpenOffice.org se sugiere la siguiente eleccion: /opt/OpenOffice.org[número de versión] Por ejemplo, si la versión es la 1.0, el directorio sería: /opt/OpenOffice.org1.0 Instalacíon del usuario Cuando la aplicación de instalación termine, debe ejecutar la instalación del usuario ("user-setup") de OpenOffice.org Primero, cambie al directorio de programa de OpenOffice.org: cd /opt/OpenOffice.org1.0 Desde dicho directorio, ejecute el siguiente comando: ./setup [esta vez, sin -net] El setup del usuario se ejecutará Tipo de instalación y directorio Elija una instalación normal (el setup debe copiar unos 1,4 MB de archivos a tu directorio home) y seleccione guardar los archivos en su directorio de usuario en el directorio de OpenOffice.org 1.0, por ejemplo: /home/billg/OpenOffice.org1.0 Finalización de la instalación e inicio de OpenOffice.org Estará terminado el proceso de instalación. 10. FUNCIONES ¿Qué es una Función? Una función es esencialmente una sub que devuelve un valor. Las funciones se pueden usar en el lado derecho de una declaración de variable o en otros sitios en que normalmente se usarían valores, por ejemplo: MiSegundoValor = MiFunción(MiPrimerValor) ¿Qué es una Sub? Sub es la contracción de subrutina, que se utiliza para manejar una tarea concreta dentro de un programa. Las Sub se utilizan para dividir una tarea en procedimientos individuales. Dividir un programa en procedimientos y subprocedimientos mejora su legibilidad y reduce la posibilidad de errores. Una sub puede tomar algunos argumentos como parámetros, pero no devuelve ningún valor a la sub o función que la ha llamado, por ejemplo: HacerAlgoConLosValores(MiPrimerValor,MiSegundoValor) Funcion Funcion MsgBox InputBox Funcion Descripcion secundaria Sintaxis Muestra un cuadro de diálogo MsgBox (Texto As String [,Tipo que contiene un mensaje y As Integer [,TítuloDiálogo As devuelve un valor. String]]) Muestra un indicador en un InputBox (Mensaje As String[, diálogo en el que el usuario Título As String[, puede introducir texto. La Predeterminado As String[, entrada se asigna a una pos_x As Integer, pos_y As variable. Integer]]]]) Devuelve el código RGB del color que se ha pasado como QBColor valor a través de un sistema de programación antiguo basado en MS-DOS. Repeticion de Las funciones siguientes repiten contenidos el contenido de las cadenas. QBColor (NúmeroColor As Integer) Devuelve una cadena que se Space compone de una cantidad Space (n As Integer) determinada de espacios. Crea una cadena de acuerdo con el carácter especificado o el String primer carácter de una expresión de cadena que se String (n As Integer, {expresión As Integer | carácter As String}) pasa a la función. Edicion del Las funciones siguientes se contenido de usan para editar, dar formato y cadenas alinear contenidos de cadenas. Convierte un número en una Format cadena y después le da formato Format (Número [, Formato As de acuerdo con las String]) especificaciones indicadas. Suprime todas los espacios del Trim principio y del final de una Trim( Texto As String ) expresión de cadena. Devuelve una matriz de Split subcadenas a partir de una expresión de cadena. Devuelve una cadena a partir de Join varias subcadenas de una matriz. Compara dos cadenas y StrComp devuelve un valor entero que representa el resultado de la comparación. Shell Split (Texto As String, delimitador, número) Join (Texto As String Array, delimitador) StrComp (Texto1 As String, Texto2 As String[, Comparación]) Inicia otra aplicación y si fuera Shell (NombreRuta As String[, necesario define el estilo de EstiloVentana As Integer][, ventana correspondiente. Parám As String][, bSync]) Convierte una expresión de cadena o una expresión Ccur numérica en una expresión de moneda. Para los decimales y CCur(Expression) los símbolos de moneda se utiliza la configuración regional. Convierte cualquier cadena de Cdate caracteres o expresión numérica CDate (Expresión) en un valor de fecha. Convierte una expresión de Cdec cadena o una expresión numérica en una expresión CDec(Expression) decimal. CStr Convierte cualquier expresión numérica en una de cadena. CStr (Expresión) Convierte cualquier cadena o CSng expresión numérica en el tipo de CSng (Expresión) datos Simple. Convierte una expresión de CVerror cadena o una expresión numérica en una expresión CVErr(Expression) variant del subtipo "Error". Lbound UBound Let Devuelve el límite inferior de una LBound (NombreMatriz [, matriz. Dimensión]) Devuelve el límite superior de UBound (NombreMatriz [, una matriz. Dimensión]) Asigna un valor a una variable. [Let] NombreVar=Expresión Las funciones trigonométricas Trigonometricas siguientes se admiten en OpenOffice.org Basic. Función trigonométrica que devuelve la arcotangente de una Atn expresión numérica. El valor de Atn (Número) retorno está en el rango de -Pi/2 a +Pi/2. Calcula el coseno de un ángulo. Cos El ángulo se especifica en radianes. El resultado está entre Cos (Número) -1 y 1. Devuelve el seno de un ángulo. Sin El ángulo se especifica en radianes. El resultado está entre Sin (Número) -1 y 1. Calcula la tangente de un Tan ángulo. El ángulo se devuelve Tan (Número) en radianes. Devuelve la base del logaritmo Exp natural (e = 2,718282) elevado a Exp (Número) una potencia. Log Sqr Devuelve el logaritmo natural de un número. Calcula la raíz cuadrada de una expresión numérica. Log (Número) Sqr (Número) Devuelve el valor entero de una Fix expresión numérica eliminando Fix (Expresión) la parte fraccionaria del número. Abs Devuelve el valor absoluto de una expresión numérica. Abs (Número) Devuelve el número de línea en Erl que se produjo un error durante Erl la ejecución de un programa. Devuelve un código que Err identifica el error que se ha producido durante la ejecución Err del programa. Devuelve la hora a partir de un Hour valor que generan las funciones TimeSerial o TimeValue. Now Devuelve la fecha y hora del sistema como valor de tipo Date. Now Esta función devuelve la hora Time actual del sistema como cadena Time en el formato "HH:MM:SS". Evalúa una lista de argumentos que se compone de una expresión seguida por un valor. Switch (Expresión1, Valor1[, Switch La función Switch devuelve un Expresión2, Valor2[..., valor que está asociado con la Expresión_n, Valor_n]]) expresión que pasa esta función. Ejemplo… Sub EjemploSwitch Dim sGenero As String sGenero = ObtIndGenero( "María") MsgBox sGenero End Sub Function ObtIndGenero (sNombre As String) As String ObtIndGenero = Switch(sNombre = "María", "femenino", sNombre = "Juan", "masculino") End Function 11. OPERADORES ¿Qué son los Operadores? En todos los lenguajes de programación se útilizan operadores para efectuar operaciones aritmeticas. Combinando las variables y constantes en expresiones aritméticas por medio de funciones adecuadas. Una expresión es un conjunto de datos o funciones unidos por operadores aritméticos. En ocasiones en los programas se necesitan realizar comparaciones entre distintos valores, esto se realiza utilizando los operadores relaciones3 Operadores Clases Descripcion And Combina dos expresiones de manera lógica. Eqv Calcula la equivalencia lógica de dos expresiones. Se utiliza para negar una expresión invirtiendo sus valores de bit. Lleva a cabo una disyunción lógica OR en dos expresiones. Realiza una combinación de comparación exclusiva entre dos expresiones. Resta dos valores. Multiplica dos valores. Suma o combina dos expresiones. Divide dos valores. Eleva un número a una potencia. Devuelve el resto entero de una división. Los operadores de comparación comparan dos expresiones. El resultado se devuelve como expresión lógica que determina si la comparación es cierta (-1) o falsa (0). Igual que Menor que Mayor que Menor o igual que Mayor o igual que Distinto Not Or Xor “-” “*” “+” “/” “^” Mod De comparacion = < > <= >= <> Imp 3 Lleva a cabo una implicación lógica en dos expresiones. www.logicapura.com.ar/lp/articulos/guia1cap3.php - 21k - Sub Ejemplo2 Dim A as Variant, B as Variant, C as Variant, D as Variant Dim vVarOut as Variant A = 10: B = 8: C = 6: D = Null vVarOut = A > B And B > C REM devuelve -1 vVarOut = B > A And B > C REM devuelve 0 vVarOut = A > B And B > D REM devuelve 0 vVarOut = (B > D And B > A) REM devuelve 0 vVarOut = B And A REM devuelve 8 debido al resultado de la combinación entre bits AND de ambos argumentos End Sub 12. INSTRUCCIONES4 ¿Qué son las Instrucciones? se le llama instrucción a un conjunto de datos insertados en una secuencia estructurada o específica que el procesador interpreta y ejecuta. Los tipos de instrucción permitidos están definidos y determinados dentro de cada plataforma en la Arquitectura del Repertorio de Instrucciones (ARI) (ISA, instruction set architecture), que también determina los registros de origen y destino de la CPU, y en ocasiones un dato inmediato (aquellos que son especificados explícitamente en la instrucción). Normalmente una instrucción se divide en dos campos: Código de Operación: Designa la operación que va a ser realizada. En lenguaje ensamblador, se asigna a su valor numérico un mnemónico. Por ejemplo, en el MIPS tenemos una instrucción con el código de operación 0224x en lenguaje ensamblador es la operación add. Datos de la Operación: dependiendo del tipo de instrucción, este campo puede estar dividido en otros o ser único, incluso no existir. En el se suelen indicar los registros y datos con los que trabajar. El tamaño (longitud en bits) de la instrucción depende de cada arquitectura, pudiendo variar de 4 hasta 128 bits. La instrucción debe almacenarse temporalmente (en el registro de instrucción, RI) para que la CPU analice su contenido y extraiga los datos que la forman. A este paso se le llama decodificación. Instrucción Descripcion Sintaxis MsgBox Texto As String [,Tipo As MsgBox Muestra un cuadro de diálogo que contiene un mensaje. Integer [,TítuloDiálogo As String]] (As Statement) o bien MsgBox (Texto As String [,Tipo As Integer [,TítuloDiálogo As String]]) (As Function) Const Define una cadena como constante. Const Texto = Expresión [ReDim]Dim NombreVar [(inicio To Dim Declara una variable o una matriz. final)] [As TipoVar][, NombreVar2 [(inicio To final)] [As TipoVar][,...]] Set 4 Establece una referencia de objeto en es.wikipedia.org/wiki/Instrucción - 19k Set VarObjeto = Objeto una variable o propiedad. If... Then... Else Define uno o más bloques de If condición=cierta Then Bloque de instrucciones que sólo se desea instrucciones [ElseIf condición=cierta ejecutar cuando una condición dada es Then] Bloque de instrucciones cierta. [Else]Bloque de instrucciones End If Select Case condición Case expresión Define uno o más bloques de Select... Case Bloque de instrucciones [Case instrucciones, dependiendo del valor de expresión2 Bloque de una expresión. instrucciones][Case Else] Bloque de instrucciones End Select Devuelve uno de dos resultados IIf posibles de la función, dependiendo del valor lógico de la expresión evaluada. IIf (Expresión, ExpresiónCierta, ExpresiónFalsa) Devuelve la fecha actual del sistema Date como cadena o la restablece. El formato de fecha depende de la configuración Date ; Date = Texto As String local del sistema. Do [{While | Until} condición = cierta] Repite las instrucciones que haya entre bloque de instrucciones [Exit Do] Do... Loop Do y Loop mientras la condición sea bloque de instrucciones Loop o Do cierta o hasta que la condición resulte bloque de instrucciones [Exit Do] ser cierta. bloque de instrucciones Loop [{While | Until} condición = cierta] For contador=inicio To final [Step incremento] Repite las instrucciones que se For... Next encuentran en el bloque For...Next un número determinado de veces. bloque de instrucciones [Exit For] bloque de instrucciones Next [contador] Cuando un programa encuentra una instrucción While, comprueba la condición. Si ésta es False, el programa continúa directamente a continuación de While... Wend la instrucción Wend; Si es True, el bucle se ejecuta hasta que el programa While Condición [Instrucción] Wend encuentra Wend y después vuelve a la instrucción While . Si la condición sigue siendo cierta, el bucle se ejecuta de nuevo. Llama a una subrutina indicada por una etiqueta de una subrutina o una función. La instrucción que sigue a la etiqueta se GoSub...Return ejecuta mientras no se encuentre una GoSub “nombre de la subrutina” instrucción Return. Después el programa continúa con la instrucción que sigue a GoSub . Prosigue la ejecución del programa GoTo dentro de Sub o Function en la línea de procedimiento indicada por una GoTo “nombre de la variable o etiqueta etiqueta. Function Nombre[(NombVar1 [As Tipo][, NombVar2 [As Tipo][,...]]]) [As Define una subrutina que puede usarse Tipo] Function como expresión para determinar un tipo bloque de instrucciones de retorno. [Final de la función] bloque de instrucciones End Function Declare Declara y define una subrutina en un Declare {Sub | Function} Nombre Lib archivo DLL que se desee ejecutar "NombreBiblioteca" [Alias desde OpenOffice.org Basic. "NombreAlias"] [Parámetro] [As Tipo] End Finaliza un procedimiento o bloque. End, End Function, End If, End Select, End Sub Sub Nombre [(NombVar1 [As Tipo][, NombVar2 [As Tipo][,...]])] Sub Define una subrutina. bloque de instrucciones End Sub Define un objeto como el predeterminado. A menos que se declare otro nombre de objeto, todas las With propiedades y métodos hacen referencia al objeto predeterminado hasta que se llega a la instrucción End With. ejemplo Sub Ejemplo Dim lValor As Long lValor = 5000 MiPitidoMensaje( lValor ) FreeLibrary("user32.dll" ) End Sub With Objeto Bloque de instrucciones End With 13. OTROS CONCEPTOS ESENCIALES5 ¿Qué es un procedimiento? Un procedimiento es un tipo subalgoritmo, es el término para describir una secuencia de órdenes que hacen una tarea específica de una aplicación más grande. Las declaraciones de procedimientos generalmente son especificadas por: Un nombre único en el ámbito.- Nombre del procedimiento con el que se identifica y se distingue de otros. No podrá haber otro procedimiento ni función con ese nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos). Una lista de parámetros.- Especificación del conjunto de argumentos (pueden ser cero, uno o más) que el procedimiento debe recibir para realizar su tarea. El código u órdenes de procesamiento.- Conjunto de ordenes y sentencias que debe ejecutar el procedimiento. La diferencia entre un procedimiento y una función (el otro tipo de subalgotitmos) radica en que estos últimos devuelven un resultado. Los procedimientos en programación generalmente son los que realizan operaciones de entrada/salida, en general, cualquier operación más o menos compleja que no requiera devolver un valor. Variables globales y locales Las variables globales son válidas para todas las sub y funciones contenidas en un módulo. Se declaran al principio del módulo, antes de que empiece la primera sub o función. Las variables que se declaran dentro de una sub o función sólo son válidas dentro de éstas. Estas variables invalidan las variables globales con el mismo nombre así como las locales con el mismo nombre que provengan de subs o funciones de jerarquía superior. Estructuración Después de separar el programa en procedimientos y funciones (Subs y Functions), éstas se pueden guardar como archivos para reutilizarlas en otros proyectos. OpenOffice.org Basic admite Módulos y bibliotecas. Tanto subs como funciones siempre se incluyen en módulos. Los módulos pueden definirse para que sean globales o formen parte de un documento. Varios módulos pueden combinarse en una biblioteca. Las subs, las funciones, los módulos y las bibliotecas se puede copiar y trasladar de un archivo a otro mediante el diálogo Macro. OpenOffice.org Basic ofrece herramientas de ayuda para estructurar los proyectos. Admite varias "unidades" que permiten agrupar SUBS y FUNCIONES individuales en un proyecto Basic. 5 es.wikipedia.org/wiki/Procedimientos_(Programación) - 16k Bibliotecas Las bibliotecas sirven como herramienta para organizar módulos y pueden adjuntarse a un documento o una plantilla. Cuando se guarda el documento o plantilla, todos los módulos que contienen también se guardan. Una biblioteca puede contener hasta 16.000 módulos. Módulos Un módulo contiene SUBS y FUNCIONES junto con declaraciones de variables. La longitud del programa que puede guardarse en un módulo está limitada a 64 KB. Si se requiere más espacio, se puede dividir un proyecto de OpenOffice.org en varios módulos y después guardarlos en una única biblioteca. Módulos de diálogo Los módulos de diálogo combinan en un único módulo la estructura de todos los cuadros de diálogo, las propiedades de todos los elementos del diálogo y las acciones asignadas a SUBS. Debido a que los módulos de diálogo sólo pueden contener un único diálogo, a menudo se les denomina "diálogos". -Sintaxis Uso de variables A continuación se describe el uso básico de variables en OpenOffice.org Basic. Convenciones de asignación de nombres a variables Un nombre de variable puede tener hasta 255 caracteres. El primer carácter de un nombre de variable debe ser una letra A-Z o a-z. Los números también pueden usarse en los nombres de variable, pero los símbolos de puntuación y los caracteres especiales no están permitidos, con excepción del carácter de subrayado ("_"). En OpenOffice.org Basic no se hace distinción entre mayúsculas/minúsculas en los identificadores de variable. Los nombres de variable pueden contener espacios, pero en ese caso deben incluirse entre corchetes. Ejemplos de identificadores de variable: MiNumero=5 Correcto MiNumero5=15 Correcto MiNumero_5=2 Correcto 0 Mi Numero=20 No es válida, las variables con espacios deben incluirse entre corchetes [Mi Numero]=12 Correcto, variable con espacios incluida entre corchetes DéjàVu=25 No es válida, no se permiten caracteres especiales 5MiNumero=12 No es válida, la variable no puede empezar con un número Numero,Mío=1 No es válida, marcas de puntuación no permitidas 2 Declaración de variables En OpenOffice.org Basic no es necesario declarar variables explícitamente. Las declaraciones de variable pueden realizarse con la instrucción Dim. Puede declarar más de una variable a la vez separando sus nombres con una coma. Para definir el tipo de variable, use un signo de declaración de tipo después del nombre o la palabra clave apropiada. Ejemplos de declaraciones de variable: DIM a$ Declara la variable "a" como String DIM a As String Declara la variable "a" como String DIM a$, b As Integer Declara una variable como String y otra como Integer DIM c As Boolean Declara c como variable booleana que puede ser TRUE o FALSE Es muy importante al declarar variables que utilice siempre el carácter de declaración de tipo, aunque se usara en la declaración en lugar de una palabra clave. Por tanto, las instrucciones siguientes no son válidas: DIM a$ Declara "a" como String a="TestString" Falta la declaración de tipo: "a$=" Tenga en cuenta que en cuanto haya declarado una variable como de un tipo concreto ya no puede declararla con el mismo nombre y un tipo distinto. Cómo forzar declaraciones de variables Para forzar la declaración de variables, use la orden siguiente: OPTION EXPLICIT La instrucción Option Explicit tiene que ser la primera línea del módulo, antes del primer SUB. Normalmente, sólo es necesario declarar explícitamente las matrices. El resto de variables se declaran según el carácter de declaración de tipo o (si se omite) según el tipo predeterminado Single. Tipos de variable OpenOffice.org Basic admite cuatro clases de variables: • Numérica, puede contener valores numéricos. Algunas variables se utilizan para almacenar números grandes o pequeños y otras para números de coma flotante o fracciones. • Cadena, contiene cadenas de caracteres. • Lógica, contiene el valor TRUE (cierto) o FALSE (falso). • Objeto, puede almacenar objetos de diversos tipos, como tablas y documentos dentro de un documento. Variables enteras El rango de las variables enteras va de -32768 a 32767. Si asigna un valor de coma flotante a una variable entera, los valores decimales se redondean al entero más próximo. Las variables enteras se calculan rápidamente en los procedimientos y su uso es muy conveniente como variables contador en bucles. Una variable entera sólo requiere dos bytes de memoria. El carácter de declaración de tipo es "%". Dim Variable% Dim Variable As Integer Variables enteras largas El rango de las variables enteras largas va de -2147483648 a 2147483647. Si asigna un valor de coma flotante a una variable entera larga, los valores decimales se redondean al entero más próximo. Las variables enteras largas se calculan rápidamente en los procedimientos y su uso muy conveniente como variables contador en bucles de valor muy grande. Una variable entera larga requiere cuatro bytes de memoria. El carácter de declaración de tipo es "&". Dim Variable& Dim Variable as Long Variables simples Las variables simples pueden tener valores positivos o negativos desde 3,402823 x 10E38 a 1,401298 x 10E-45. Las variables simples son de coma flotante, en el que la precisión decimal decrece a medida que la parte no decimal del número aumenta. Las variables simples son adecuadas para realizar cálculos matemáticos de precisión media. Los cálculos requieren más tiempo que para las variables enteras, pero son más rápidos que las de tipo doble. Una variable simple requiere 4 bytes de memoria. El carácter de declaración de tipo es "!". Dim Variable! Dim Variable as Single Variables dobles Las variables dobles pueden tener valores positivos o negativos desde 1.79769313486232 x 10E38 a 4.94065645841247 x 10E-324. Las variables dobles son de coma flotante, en el que la precisión decimal decrece a medida que la parte no decimal del número aumenta. Las variables dobles son adecuadas para cálculos precisos. Los cálculos requieren más tiempo que las variables simples. Una variable doble requiere 8 bytes de memoria. El carácter de declaración de tipo es "#". Dim Variable# Dim Variable As Double Variables de moneda Las variables de moneda se almacenan internamente como números de 64 bits (8 bytes) y se muestran como números con cantidad de decimales fija con 15 posiciones no decimales y 4 decimales. El rango de valores va de -922337203685477,5808 a +922337203685477,5807. Las variables de moneda se usan para calcular valores de divisas con una precisión elevada. El carácter de declaración de tipo es "@". Dim Variable@ Dim Variable As Currency Variables de cadena Las variables de cadena pueden contener cadenas de compuestas por hasta 65.535 caracteres. Cada carácter se almacena como el valor Unicode correspondiente. Las variables de cadena son adecuadas para el procesamiento de texto dentro de programas y para almacenamiento temporal de caracteres no imprimibles de hasta una longitud máxima de 64 Kbytes. La memoria necesaria para almacenar variables de cadena depende del número de caracteres que ésta contenga. El carácter de declaración de tipo es "$". Dim Variable$ Dim Variable as String Variables lógicas Las variables lógicas o booleanas sólo almacenan uno de estos dos valores: True (verdadero) o False (falso). Un número 0 evalúa en FALSE, cualquier otro número evalúa en TRUE. Dim Variable As Boolean Variables de fecha Las variables de fecha sólo pueden contener valores de fecha y hora almacenados en un formato interno. Los valores asignados a las variables de fecha con Dateserial, Datevalue, Timeserial o Timevalue se convierten automáticamente al formato interno. Las variables de fecha se convierten en números normales mediante las funciones Day, Month y Year o bien Hour, Minute y Second. El formato interno permite una comparación de valores de fecha/hora calculando la diferencia entre dos números. Estas variables sólo pueden declararse con la palabra clave Date. Dim Variable As Date Valores iniciales de las variables En cuanto se declara la variable, ésta toma automáticamente el valor "Null" (nulo). Tenga en cuenta las convenciones siguientes: A las variables Numéricas se les asigna automáticamente el valor "0" en cuanto se declaran. A las variables de fecha se les asigna el valor 0 internamente; que equivale a convertir el valor a "0" con la función Day, Month y Year o Hour, Minute y Second. A las variables de cadena se les asigna una cadena vacía ("") cuando se declaran. Matrices OpenOffice.org Basic distingue matrices de una o varias dimensiones, definidas por un tipo de variables especificado. Las matrices son convenientes para editar listas y tablas en los programas. Se puede acceder a los elementos individuales de las matrices utilizando un índice numérico. Las matrices deben declararse con la instrucción Dim.Hay varias maneras de definir el rango de índices de una matriz: DIM text$(20) 21 elementos numerados del 0 al 20 DIM text$(5,4) 30 elementos (una matriz de 6 x 5 elementos) DIM text$(5 to 25) 21 elementos numerados del 5 al 25 DIM text$(-15 to 5) 21 elementos (incluido el 0), numerados del 15 al 5 El rango del índice puede incluir números positivos y negativos. Constantes Las constantes tienen un valor fijo. Sólo se definen una vez en el programa y no pueden volverse a definir más adelante: CONST NombreConst=Expresión 14. ENTORNO DE TRABAJO El entorno de trabajo de la suite openoffice.org Basic es similar al de visual Basic de Microsoft. En el se establecen varias ventanas con las cuales se pueden realizar, controlar marcar y supervisar las macros creadas desde el entorno ooBasic. Para ello se dispone de un entorno de trabajo (sript) principal en donde se digita el código de programación de las macros incluyendo el procedimiento principal y las funciones auxiliares o subrutinas. Se dispone además de una barra de herramientas en donde aparecen los comandos representativos de la ejecución de las macros y biblioteca de funciones o procedimientos creados. En el esquema que se presenta a continuación se especifica mediante un ejemplo el entorno de trabajo de Openoffice.org especificando además algunos de los principales comandos para la creación, ejecución, corrección y edición de macros: El entorno de trabajo se puede dividir en cuatro partes como tal: Lineas de codigo (Basic IDE): Es la parte principal del entorno de programación, ya que el se puede realizar, editar y visualizar el codigo de programacionb de las macros ya sean grabadas o digitadas directamente por el usuario. Barras de herramientas: Es la barra que se encuentra en la parte superior del entorno, en ella se establecen todos los comandos generales del programa en los diversos menus tales como archivo, ver, editar, herramientas, ventana y ayuda; encontando en estos las opciones generales de openoffice.org tales como abrir, guardar, imprimir, copiar, pegar, etc; ademas consta de un cuadro de controlen donde se ubican las opciones de manejo de macros y programación, en el esquema mostrado se muestan las opciones mas importantes de control y ejecución del entorno de programación. A continuación se explican algunos de ellos: Barra de herramientas de macros La Barra de herramientas de macros contiene órdenes para crear, editar y ejecutar macros. Biblioteca Permite Seleccionar la biblioteca que desea usar.El primer módulo de la biblioteca que seleccione se muestra en el Basic IDE. Listado Biblioteca Compilar Permirte Compilar (traducir a lenguaje maquina) la macro creada en ooBasic. Después de efectuar cambios en una macro o si ésta utiliza pasos únicos o de procedimiento, es necesario compilarla. Compilar UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 42 Ejecutar Ejecuta la primera macro del módulo actual. Ejecutar Detener Detiene la macro que está ejecutándose en ese momento. También se acciona al pulsar Control+Alt+S. Detener Paso a paso Ejecuta la macro y se detiene después del siguiente procedimiento. Paso a paso Paso único Ejecuta la macro y se detiene después del siguiente comando. Paso único Con la ejecución de paso único puede comprobarse que no haya errores en ninguna línea del programa Basic. Los errores se pueden rastrearse fácilmente ya que los resultados de cada paso pueden verse inmediatamente. Un puntero de la columna de puntos de ruptura del editor indica cuál es la línea actual. También puede establecer puntos de ruptura si desea forzar la interrupción del programa en una posición específica. Salto atrás Retrocede a la rutina anterior de la macro actual. Salto atrás Punto de ruptura Inserta un punto de ruptura en la línea de programa. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 43 Punto de ruptura Administrar puntos de interrupción Abre un diálogo para administrar los puntos de interrupción. Gestión de los puntos de ruptura Habilitar inspección Haciendo “clic” en este icono se podrá ver las variables de una macro. El contenido de la variable se muestra en una ventana aparte. Habilitar inspección Catálogo de objetos Abre el diálogo Objetos, en el que pueden verse objetos Basic. Catálogo de objetos UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 44 Aparecerá lo siguiente: Macros Abre el diálogo Macro donde aparecen las macros creadas en el entorno ooBasic para su utilizacion. Macros Aparecerá lo siguiente: Módulos Ejecuta el organizador de macros basiocas de openoffice.org. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 45 Módulos Aparecerá lo siguiente: Buscar paréntesis Resalta el texto que está incluido entre dos paréntesis. Se utiliza situando el cursor de texto delante de un paréntesis de apertura o cierre y luego pulsar este icono. Buscar paréntesis Insertar campos de control Abre la barra Cuadro de herramientas. Insertar campos de control Insertar texto fuente Abre el texto fuente Basic en la ventana Basic IDE. Insertar texto UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 46 fuente Guardar el texto fuente como Guarda el código fuente de la macro Basic seleccionada. Guardar el texto fuente como Ventana Pila de llamada (Llamadas): La ventana “Pila de llamada” permite supervisar la secuencia de procedimientos y funciones durante la ejecución de un programa. Los procedimientos y funciones se muestran de abajo a arriba con la llamada a la función o procedimiento más reciente en la parte superior de la lista. Ventana Observador: En la ventana de inspección se puede ver el valor de las variables durante la ejecución de un programa. Definiendo las variables en el cuadro de texto de inspección. Puede agregar la variable al cuadro de lista y ver los valores al hacer “clic” en el boton “Habilitar Inspeccion”. Puede escribir en el cuadro de texto la variable cuyo valor se visualizará en el cuadro de lista. Eliminar observador Elimina la variable seleccionada de la lista de variables observadas. Eliminar observador UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 47 Edición del valor de una variable observada Muestra la lista de las variables observadas. Uselo pulsando dos veces haciendo una pequeña pausa sobre una entrada para editar su valor. El valor nuevo se tomará como el de la variable para el programa. Para ingresar al entorno de programación de Openopffice.org es necesartio ingrsar a cualquier programa de la suite offimática de openoffice.org, luego seleccionando Herramientas>macros>Organizar macros>Openoffice.org Basic, esto abrira la ventana de macros básicas de openoffice.org, sera como la sigueinte: En esta ventana se puede realizar la ejecución de macros ya grabadas, seleccionando la opcion Mis macros>Standard>module# (sugun el programa), aparecerán las macros grabadas para el mofulo seleccionado, luego haga “clic” sobre la que desea ejecutar y selecione el boton “Ejecutar”. Si después de realizar la selección de la macro deseada hace “clic” en editar podrá ingresar al entorno de trabajo “modo de diseño” para la macro seleccionada. Haciendo la selección Standard>Nuevo, podrá ingrsar al entorno de tranbajo de openoffice.org para realizar una nueva macro. Pude tambien eliminar la macro seleccionada haciendo “clic” en eliminar. Hacienmdo “clic” en asignar podra personalizar y asignarle a la macro creada nuevos comandos. Seleccionando la opcion “Administrar” ejecutará el organizador de macros basicas de openoffice.org Basic. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 48 Al realizar la ejecución de una macro en algun programa de la suite offimatica de openoffice.org se activa el entorno openoffice.org en el modo ejecución, tambien puede modificar el codigo fuente al seleccionar “modo diseño” en la barra de herramioentas, esto abrirá openoffice.org Basic con el codigo fuente la la macro seleccionada: Modo Diseño Esta función se utiliza para cambiar rápidamente entre los modos Diseño (entorno openoffice.org Basic) y Usuario. Active para editar los campos de control del formulario, desactive para poder utilizarlos. Para acceder a este comando... Abra la barra de herramientas Campos de control de formularios o Diseño de formularios y haga “clic” en Modo Diseño Tenga en cuenta la función Abrir en modo Diseño. Si este comando está activado, el documento se abre siempre en modo Diseño, independientemente del estado en que se guardó. Desactive este comando para que el usuario no abra el documento final en modo Diseño. Si el formulario está vinculado a una base de datos y se desactiva el modo Diseño, la barra del formulario se muestra en el margen inferior de la ventana del documento. El diálogo Propiedades del formulario permite configurar la vinculación a la base de datos. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 49 15. OBJETIVOS CURSOS LIBRES • Familiarizar a los estudiantes con el entorno de programación de OOo, de tal forma que manejen el análogo de Visual Basic en Linux. • Capacitar al estudiante para resolver problemas que puedan surgir en su vida académica con el uso de herramientas de optimización como las macros programadas. • Explotar, aprovechar e implementar al máximo las herramientas libres como una forma alternativa de realizar y optimizar procesos, inculcando la iniciativa a los futuros profesionales la utilización de esta clase software para ser implementados empresarialmente. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 50 16. MACROS CURSOS LIBRES La siguiente macro encuentra las raíces de una ecuación cuadrática de la forma ax2+bx+c: Sub solucioncuadratica dim a,b,c as double Dim raiz1 As double Dim raiz2 As double 'Function Fibonnaci( Count As Integer ) a = Int(InputBox$ ("Escriba el valor de a","Entrada de valor")) b = Int(InputBox$ ("Escriba el valor de b","Entrada de valor")) c = Int(InputBox$ ("Escriba el valor de c","Entrada de valor")) if a=0 then Print "El valor de a no puede ser cero" else Raiz1=((-b)+((b^2)-(4*a*c))^(1/2))/(2*a) Raiz2=((-b)-((b^2)-(4*a*c))^(1/2))/(2*a) endif print "Las raices son "; Raiz1,raiz2 End Sub UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 51 Es este un libro de cálculo? UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 52 Un libro de cálculo está compuesto de un conjunto de hojas. Antes de poder usar los métodos específicos del libro de cálculo, se debe tener un documento libro de cálculo. Se puede verificar esto de la siguiente manera: Function IsSpreadhsheetDoc(oDoc) As Boolean On Local Error GoTo NODOCUMENTTYPE IsSpreadhsheetDoc =oDoc.SupportsService(_ "com.sun.star.sheet.SpreadsheetDocument") NODOCUMENTTYPE: If Err <> 0 Then IsSpreadhseetDoc = False Resume GOON GOON: End If End Function Imprimiendo el valor de una Celda, Cadena o Fórmula. '****************************************************************** Sub ExampleGetValue Dim oDocument As Object, oSheet As Object, oCell As Object oDocument=ThisComponent oSheet=oDocument.Sheets.getByName("Sheet1") oCell=oSheet.getCellByposition(0,0) 'A1 print oCell.getValue 'print oCell.getString 'print oCell.getFormula End sub Estableciendo el valor de una Celda, Formato, Cadena o Fórmula. '****************************************************************** UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 53 Sub ExampleSetValue Dim oDocument As Object, oSheet As Object, oCell As Object oDocument=ThisComponent oSheet=oDocument.Sheets.getByName("Sheet1") oCell=oSheet.getCellByPosition(0,0) 'A1 oCell.setValue(23658) 'oCell..NumberFormat=2 '23658.00 'oCell.SetString("oops") 'oCell.setFormula("=FUNCTION()") 'oCell.IsCellBackgroundTransparent = TRUE 'oCell.CellBackColor = RGB(255,141,56) End Sub Limpiar una celda Sub ClearDefinedRange Dim oDocument As Object, oSheet As Object, oSheets As Object Dim oCellRange As Object Dim nSheets As Long oDocument = ThisComponent oSheets = oDocument.Sheets nSheets = oDocument.Sheets.Count oSheet = oSheets.getByIndex(2) Rem the range is from 0 to n-1 oCellRange = oSheet.getCellRangeByName("range_you_set") oCellRange.clearContents(_ com.sun.star.sheet.CellFlags.VALUE | _ UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 54 com.sun.star.sheet.CellFlags.DATETIME | _ com.sun.star.sheet.CellFlags.STRING | _ com.sun.star.sheet.CellFlags.ANNOTATION | _ com.sun.star.sheet.CellFlags.FORMULA | _ com.sun.star.sheet.CellFlags.HARDATTR | _ com.sun.star.sheet.CellFlags.STYLES | _ com.sun.star.sheet.CellFlags.OBJECTS | _ com.sun.star.sheet.CellFlags.EDITATTR) End Sub UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 55 Dirección imprimible de una Celda. Function PrintableAddressOfCell(the_cell As Object) As String PrintableAddressOfCell = "Unknown" If Not IsNull(the_cell) Then PrintableAddressOfCell = the_cell.getSpreadSheet().getName + ":" + _ ColumnNumberToString(the_cell.CellAddress.Column) + (the_cell.CellAddress.Row+1) End If End Function ' Se numeran las columnas desde cero, donde este valor corresponde a 1 Function ColumnNumberToString(ByVal the_column As Long) As String Dim s$ 'Save this so I do NOT modify the parameter. 'This was an icky bug that took me a while to find Do s$ = Chr(65 + the_column MOD 26) + s$ the_column = the_column / 26 Loop Until the_column = 0 ColumnNumberToString = s$ End Function UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 56 Insertar fechas formateadas en una Celda Esta Macro Inserta la fecha en la celda actual. Da un mensaje de error si el documento actual no es una hoja de cálculo. Además el código provee la manera de formatear la fecha con el estilo que se elija. '****************************************************************** Sub InsertDateIntoCell Dim oDesktop As Object, oController As Object, oSelection As Object Dim doc As Object oDesktop = createUnoService("com.sun.star.frame.Desktop") oController = oDesktop.CurrentFrame.Controller doc = oController.Model If doc.SupportsService("com.sun.star.sheet.SpreadsheetDocument") Then oSelection = oController.Selection ' Inseratndo el dato de fecha oFunction = CreateUnoService("com.sun.star.sheet.FunctionAccess") oFunction.NullDate = doc.NullDate Dim aEmpty() oSelection.Value = oFunction.callFunction("NOW", aEmpty()) oFormats = doc.NumberFormats dim aLocale as new com.sun.star.lang.Locale oSelection.NumberFormat = oFormats.getStandardFormat(_ com.sun.star.util.NumberFormat.DATETIME, aLocale) UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 57 ' Set the format to something completely different oSelection.NumberFormat = FindCreateNumberFormatStyle(_ ' "YYYYMMDD.hhmmss", doc) Else MsgBox "This macro must be run in a spreadsheet document" End If End Sub Rellenar un rango seleccionado con texto Esta simple macro cambia a través del texto seleccionado poniendo el texto de “UIFCE”. '****************************************************************** Sub FillCells oSelect=ThisComponent.CurrentSelection oColumn=oselect.Columns oRow=oSelect.Rows For nc= 0 To oColumn.getCount-1 For nr = 0 To oRow.getCount-1 oCell=oselect.getCellByPosition (nc,nr).setString ("UIFCE") Next nr Next nc End Sub UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 58 Algunos estados del texto seleccionado '****************************************************************** 'Esta macro toma la selección actual e imprime un mensaje 'indicando el rango seleccionado y el número de celdas seleccionadas Sub Analize sSum="=SUM("+GetAddress+")" sAverage="=AVERAGE("+GetAddress+")" sMin="=MIN("+GetAddress+")" sMax="=MAX("+GetAddress+")" CellPos(7,6).setString(GetAddress) CellPos(7,8).setFormula(sSum) CellPos(7,8).NumberFormat=2 CellPos(7,10).setFormula(sAverage) CellPos(7,10).NumberFormat=2 CellPos(7,12).setFormula(sMin) CellPos(7,12).NumberFormat=2 CellPos(7,14).setFormula(sMax) CellPos(7,14).NumberFormat=2 End sub Function GetAddress 'selected cell(s) oSelect=ThisComponent.CurrentSelection.getRangeAddress oSelectColumn=ThisComponent.CurrentSelection.Columns oSelectRow=ThisComponent.CurrentSelection.Rows CountColumn=oSelectColumn.getCount CountRow=oSelectRow.getCount UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 59 oSelectSC=oSelectColumn.getByIndex(0).getName oSelectEC=oSelectColumn.getByIndex(CountColumn-1).getName oSelectSR=oSelect.StartRow+1 oSelectER=oSelect.EndRow+1 NoCell=(CountColumn*CountRow) If CountColumn=1 AND CountRow=1 then GetAddress=oSelectSC+oSelectSR Else GetAddress=oSelectSC+oSelectSR+":"+oSelectEC+oSelectER End If End Function Function CellPos(lColumn As Long,lRow As Long) CellPos= ActiveSheet.getCellByPosition (lColumn,lRow) End Function Function ActiveSheet ActiveSheet=StarDesktop.CurrentComponent.CurrentController.ActiveSheet End Function Sub DeleteDbRange(sRangeName As String) oRange=ThisComponent.DatabaseRanges oRange.removeByName (sRangeName) End Sub UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 60 Ordenar un rango '****************************************************************** Sub SortRange Dim oSheetDSC,oDSCRange As Object Dim aSortFields(0) as new com.sun.star.util.SortField Dim aSortDesc(0) as new com.sun.star.beans.PropertyValue oSheetDSC = ThisComponent.Sheets.getByName("Sheet1") oDSCRange = oSheetDSC.getCellRangeByName("A1:L16") ThisComponent.getCurrentController.select(oDSCRange) aSortFields(0).Field = 0 aSortFields(0).SortAscending = FALSE aSortDesc(0).Name = "SortFields" aSortDesc(0).Value = aSortFields() oDSCRange.Sort(aSortDesc()) End sub Insertar fecha formateada dentro de un documento de texto Esto insertará el texto “Today is <fecha> ” donde la fecha es formateada como “DD. MMM AAAA”. Esto creará el formato de fecha si no existe. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 61 '****************************************************************** Sub InsertDateField Dim oDocument As Object Dim oText As Object Dim oViewCursor As Object Dim oTextCursor As Object Dim oDateTime As Object oDocument = ThisComponent If oDocument.SupportsService("com.sun.star.text.TextDocument") Then oText = oDocument.Text oViewCursor = oDocument.CurrentController.getViewCursor() oTextCursor = oText.createTextCursorByRange(oViewCursor.getStart()) oText.insertString(oTextCursor, "Today is ", FALSE) ' Crear el formato fecha. ODateTime = oDocument.createInstance("com.sun.star.text.TextField.DateTime") oDateTime.IsFixed = TRUE oDateTime.NumberFormat = FindCreateNumberFormatStyle(_ "DD. MMMM YYYY", oDocument) oText.insertTextContent(oTextCursor,oDateTime,FALSE) oText.insertString(oTextCursor," ",FALSE) Else MsgBox "Sorry, this macro requires a TextDocument" End If End Sub UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 62 17. CONCLUSIONES • La Ayuda de OOo permite entender rápidamente los procedimientos que se deben seguir para realizar una acción. Este comando es muy completo. • Conocer las funciones operadores e instrucciones permiten ejecutar correctamente un procedimiento deseado. • El entorno de OOo Basic es muy similar al de Visual Basic. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 63 18. BIBLIOGRAFIA Ejemplo basado en el libro de macros de Andrew Pitonyak http://www.pitonyak.org/AndrewMacro.sxw Documentación OOo en castellano http://es.OpenOffice.org/servlets/ProjectDocumentList?dcID=1249&action=downl oad Listas de discusión OOo en castellano http://es.OpenOffice.org/servlets/ProjectMailingListList StarOffice 7 Basic Programmer's Guide http://docs.sun.com/db/coll/so7en /superalumnos.net Ayuda OpenOficce org. UNIVERSIDAD NACIONAL COLOMBIA FACULTAD DE CIENCIAS ECONÓMICAS UNIDAD DE INFORMÁTICA Y COMUNICACIONES 64