Difference between revisions of "User talk:Henry Tiquet"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Proteger hojas)
(Guía para desarrollo de Calclets)
Line 486: Line 486:
 
el resultado fue el esperado.
 
el resultado fue el esperado.
  
== Guía para desarrollo de Calclets ==
+
= Guía para desarrollo de Calclets =
  
 
Los calclets son hojas de calculo interactivas que utilizan formas de control, gráficas y formulas para cambiar valores de variables, esto crea una simulación interactiva del "como será si".
 
Los calclets son hojas de calculo interactivas que utilizan formas de control, gráficas y formulas para cambiar valores de variables, esto crea una simulación interactiva del "como será si".
 
=== Formas de control ===
 
=== Formas de control ===
 
Las formas de control (form controls) son formas a las que se le pueden asignar celdas en las cuales modificar un valor. Las variables que pueden ser asignadas a las formas dependen del tipo de la forma, pueden ser de texto, numéricas o de estado (VERDADERO - FALSO).
 
Las formas de control (form controls) son formas a las que se le pueden asignar celdas en las cuales modificar un valor. Las variables que pueden ser asignadas a las formas dependen del tipo de la forma, pueden ser de texto, numéricas o de estado (VERDADERO - FALSO).
=== Barra de herramientas de formas de control ===
+
==== Barra de herramientas de formas de control ====
 
Si la barra de herramientas "formas de control" (form controls) no está visible, puede ser activada desde el menú "Vista", "barras de herramientas", "formas de control" como se muestra en la imagen siguiente.<br />
 
Si la barra de herramientas "formas de control" (form controls) no está visible, puede ser activada desde el menú "Vista", "barras de herramientas", "formas de control" como se muestra en la imagen siguiente.<br />
  
Line 512: Line 512:
  
 
[[File:Properties_form.png|452px|thumb|none|''Ventana de propiedades de control.'']]
 
[[File:Properties_form.png|452px|thumb|none|''Ventana de propiedades de control.'']]
 +
 +
 +
=== Casillas de verificación y botones de opción ===
 +
Para comenzar a hacer interactivas nuestras hojas de calculo las casillas de verificación (check box) y los botones de opción (option button) son el mejor comienzo.
 +
 +
Para insertar cualquiera de estos dos controles primero es necesario activar el modo diseñador ([[#Propiedades_de_control|visto anteriormente]]), después hacemos clic en el botón del control que deseamos insertar.<br />
 +
Para poder utilizar estos controles es necesario vincularlos a celdas, en la siguiente imagen se explica la diferencia entre estos dos controles.
 +
[[File:Checkbox_optionb.png|670px|thumb|none|''Diferencia entre casillas y botones.'']]
 +
 +
 +
Para vincular un control a una celda hacemos clic derecho sobre el control (es necesario tener activado el modo [[#Propiedades_de_control|diseñador]]) y seleccionamos "Control..." en el menú contextual, después seleccionamos la pestaña "Datos" y escribimos el nombre de la celda a la que se desea vincular el control (A1 por ejemplo).
  
 
=== Campo para comentarios ===
 
=== Campo para comentarios ===
Line 539: Line 550:
  
 
[[File:Image_comment.png|650px|thumb|none|''Insertar imagen como comentario.'']]
 
[[File:Image_comment.png|650px|thumb|none|''Insertar imagen como comentario.'']]
 
=== Casillas de verificación y botones de opción ===
 
Para comenzar a hacer interactivas nuestras hojas de calculo las casillas de verificación (check box) y los botones de opción (option button) son el mejor comienzo.
 
 
Para insertar cualquiera de estos dos controles primero es necesario activar el modo diseñador ([[#Propiedades_de_control|visto anteriormente]]), después hacemos clic en el botón del control que deseamos insertar.<br />
 
Para poder utilizar estos controles es necesario vincularlos a celdas, en la siguiente imagen se explica la diferencia entre estos dos controles.
 
[[File:Checkbox_optionb.png|670px|thumb|none|''Diferencia entre casillas y botones.'']]
 
 
 
Para vincular un control a una celda hacemos clic derecho sobre el control (es necesario tener activado el modo [[#Propiedades_de_control|diseñador]]) y seleccionamos "Control..." en el menú contextual, después seleccionamos la pestaña "Datos" y escribimos el nombre de la celda a la que se desea vincular el control (A1 por ejemplo).
 
  
 
=== Gráficas ===
 
=== Gráficas ===

Revision as of 00:47, 9 July 2013

Compilando AOO

Introducción


Este post narra los paso que he seguido para compilar OOo en Ubuntu 12.10, los problemas con los que me he encontré en el camino, las soluciones que fui encontrando y que me han sido dadas.
Cabe mencionar que soy novato tanto en la utilización de Ubuntu como en la suite de OpenOffice, por lo cual no he terminado aun la compilación por otra parte espero y estoy seguro que será de ayuda para los que como yo no tienen experiencia.


Obteniendo lo necesario

Algo recomendable es entrar desde el principio como súper usuario o root. Esto se puede hacer habilitando la cuenta de inicio con el usuario root o desde la terminal con el comando $ sudo su.

Ahora lo que sigue es descargar el código fuente:

svn co https://svn.apache.org/repos/asf/openoffice/trunk ooo


Para poder compilar surgieron varios problemas por que necesitaba algunos otros requerimientos además del código fuente.
La implementación de Java es compatible con JDK 1.5, JDK 1.6 y Open JDK. Yo estaba trabajando con JDK 1.7 y eso no me permitia terminar la compilación.
También son necesarios algunos paquetes de perl, al principio no sabia como instalarlo y despues de un rato de prueba y error conseguí instalarlos de la siguiente manera:

$perl -MCPAN -e shell

Esto es para inicializar el modulo MCPAN.

Para instalarlos paquetes:

cpan>Archive::Zip 
cpan>LWP::UserAgent
cpan>XML::Parser
Para salir ponemos:
cpan>quit

Configurando

Esta es la configuración que está en la guia, la misma que yo estaba utilizando:

$./configure --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2

$./configure --with-epm-url=http://ftp.easysw.com/pub/epm/3.7/epm-3.7-source.tar.gz


como yo estoy utilizando el distro de «Lubuntu» este paso no podía realizarlo puesto que el distro no viene con algunos paquetes. Después de un proceso de prueba y error y de hacer algunas preguntas, corregí el error de la siguiente manera:

$apt-get install dmake 
$apt-get install epm


finalizamos este paso con el comando:

$./bootstrap

En esta parte fue en la que más me tarde porque no podía ejecutar el comando, mandándome el siguiente error:

imagen....
La solución fue la siguiente:

apt-get install mingw32

Building

En la parte de bilding solo pude llegar hasta esta parate:

$source LinuxX86Env.Set.sh 
$cd instsetoo_native
$build --all


En esta parte es en la que aun me encuentraba. Estube intentando y preguntando en las listas y en algunos canales de irc pero aun no encontraba la solución, tengo entendido que era un problema con la codificación de UTF-8.
Henry Tiquet (talk) 04:21, 9 February 2013 (UTC)

Error compilando hsqldb

Introducción

He estado compilando AOO en ubuntu 12.10 en la distro de Lubuntu, he estado siguiendo todos los pasos de la guia original. Estos son los comandos que he utilizado:

$autoconf
$configure--with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2
$./bootstrap
$sourceLinuxX86Env.set.sh
$cd instsetoo_native
$build --all	



El problema

Mientras intentaba compilar me mandaba el siguiente error:


Se producia un error al compilar el módulo hsqldb debido a un problema de compatibilidad con el jdk-7, esto es por la codificación UTF-8 por lo cual se debe hacer con el jdk 6 que si es compatible.

La solución

Como necesitaba el jdk-6 lo descargué y por consiguiente lo instalé. En la parte de configuración tube que que indicarle en donde se encontraba el jdk con el que deberia trabajar. Aquí la confuguración:

$autoconf
$configure ---with-jdk-home=/usr/lib/jvm/java-6-openjdk-i386
$./bootstrap
$sourceLinuxX86Env.set.sh
$cd instsetoo_native
$build --all

De esta manera entonces pude seguir trabajando en la compilación con el jdk-6. Cabe resaltar que estos detalles de compatibilidad no estan especificados en la guia original. Henry Tiquet (talk) 04:30, 9 February 2013 (UTC)

Tutorial Locate UI

Introducción

En este tutorial he aprendido a identificar rutas y archivos de interfaz de usuario.

Buscando

Una de las situaciones con la que me encontré fue que las rutas son diferentes. Una de las razones es por que en mi computadora la instalación de soffice no la hice en /opt sino que la hice en /home. La siguiente cuestion fue que las rutas no son las mismas que en tutorial, en el tutorial por ejemplo muestra la siguiente ruta:


/ooinstall/share/config/soffice.cfg/*



En mi máquina la ruta es la siguiente

/inst-ooo/apache_openoffice3/basis-link/share/config/soffice.cfg/*



Lo demás fue solamente seguir el tutorial interpretando las rutas correctas como en la ruta del ejemplo de arriba.



Henry Tiquet (talk) 01:27, 28 February 2013 (UTC)

Using Cpp with the OOo SDK

Introducción

Estos son los avances en la guía de C++ para programar extensiones de OpenOffice.

Programming OOoDraw and OOoImpress

En este capítulo se usa un subprograma llamado ooConect(), esta basado en bootstraping. El primer obstáculo fue que el número de puerto que aparece en la guía no funcionaba correctamente en mi computadora por cuestiones de actualizaciones del SDK. El que estaba utilizando era el 8100 y me mandaba un error diciendo que no podía conectar con el office. El puerto que necesitaba era 2083, lo reemplacé y me mandaba otro vez el error, ahora era porque necesitaba el office corriendo y escuchando al mismo tiempo, el comando para corregirlo fue el siguiente:

soffice "-accept=socket,host=localhost,port=2083;urp;StarOffice.ServiceManager"

Con esto resolví esta cuestión y me mostraba el resultado esperado:

Connected sucessfully to the office
XComponentloader successfully instanciated

Abriendo diapositivas

El siguiente paso fue abrir una nueva "diapositiva" en blanco. El obstáculo con el que me encontré en esta ocasión fue el siguiente:

Segmentation fault (core dumped)
make: *** [firstConnection.run] Error 139

Esto sucedía porque el cuando utilizamos css::uno::Reference es muy probable que nos encontremos con este error de segmentación debido al operador para deshacer referencias.Por consiguiente consulté en la lista de correos para resolver esta cuestión, donde me dieron una solución no muy sencilla. el código que me fue proporcionado en esta ocasión era un poco diferente al de la guía (cosa que jamás habría descubierto por mi mismo), también había que modificar el Makefile y dirigirlo hacia el nuevo archivo creado. de esta manera logre entonces abrir una diapositiva de Calc con el SDK de AOO.

Henry Tiquet (talk) 02:53, 13 April 2013 (UTC)

Drawing with OOoDraw

Debido a que obtuve un código un poco diferente al mostrado en el tutorial fue necesario ir adaptando el código que fui agregando. Para poder crear una forma en Drawing este fue el código que utilicé:


css::uno::Reference< css::drawing::XShape > xShape(
xDocFactory->createInstance(
OUString(RTL_CONSTASCII_USTRINGPARAM(
"com.sun.star.drawing.RectangleShape" ) ) ),
css::uno::UNO_QUERY_THROW );

Después pude ir modificando las propiedades de la forma y crear otros tipos de formas, para hacer esto lo único que necesité modificar fue lo siguiente:

"com.sun.star.drawing.RectangleShape"

Aquí es donde se define que tipo de forma se va a crear.

Para poder adaptar el código fue necesario investigar un poco acerca de algunas interfaces y servicios, por ejemplo:


com/sun/star/uno/XInterface
com/sun/star/beans/XPropertySet
com/sun/star/lang/XMultiServiceFactory

He aquí una imagen del resultado esperado:

Henry Tiquet (talk) 02:33, 18 April 2013 (UTC)

Calclets

Por ahora me encuentro trabajando en modelos químicos, hasta el momento he logrado adaptar 6 de estos.
Los Calclets son hojas de cálculo interactivas que simulan modelos, el usuario modifica una variable de una manera interactiva, utilizando barras de desplazamiento, botones, casillas de selección, etc; y l@s gráfic@s van cambiando de forma dinámica.
Estos modelos son utilizados para simular escenarios de experimento, para simular el "¿qué pasaría si?".

Es importante resaltar que los calclets fueron dejados en inglés puesto que serán de ayuda para la comunidad de AOO en la cual es manejado este idioma.

A continuación son enlistados los modelos que hasta ahora están terminados:

1.- File:Interactive Periodic Trends.ods(analiza propiedades a través de períodos, átomos e iones, etc).

2.- File:Dissolving an ionic compound.ods (analiza la disolución de un compuesto ionico).

3.- File:Spectra.ods(Analiza la descomposición de un espectro, la logitud de onda, la luz emitida, etc.).

4.- File:Potential Energy Diagram(PE diagram rev).ods (analiza la coordinación de la energía mediante la potencialización de esta, inducción de calor por ejemplo).

5.- File:Initial rates.ods (clasificaciones principales y como se generan).

6.- File:Doubling conc.ods (analiza que sucede al inducir una doble concentración).

Al principio fue un poco complicado adaptarme a trabajar con Calc ya que no estaba muy familiarizado, ahora es más facil y pude comprobar su eficacia para trabajar en forma dinámica.

Henry Tiquet (talk) 03:57, 27 April 2013 (UTC)

Mas calclets

En esta ocasión me toco seguir con calclets de modelos químicos, he logrado adaptar 8 mas los cuales estan listados a continiación:


7.- File:Chemical Kinetics Simulator.ods.

8.- File:Transforming Chemical Kinetics Data to Determine Reaction Order.ods

9.- File:Chemical Equilibrium The Kinetics of Reversible Reactions.ods.

10.- File:Using Solver to Solve Equilibrium Calculations.ods.

11.- File:Examining the Formation of a Complex Ion .ods.

12.- File:Kinetics of Optical Isomer Conversion.ods.

13.- File:Kinetics of Multi-step Reactions.ods.

14.- File:Homogeneous Catalysis.ods.


Ahora es un poco más facil trabajar en calc, ya he tomado un poco de practica y es mas rápido mi avance.

Tutorial UNO registery and Bootstrapping

Con este tutorial aprendí ka relación de los archivos cxx con los uno.so(en el caso de linux).
Al principio fue un poco difícil y tome como referencia los ejemplos del SDK, después decidí implementar el API para NetBeans.
Surgió una situación ya que las versiones estables del API para NetBeans solo están disponibles para las versiones 5.x y 6.x y yo estaba utilizando la 7.3.

Ejemplo de error de sintaxis

Después de varias horas tratando decidí entonces realizar el tutorial directamente con el SDK. Después de analizar el código lo compilé.
Me surgieron varios errores de sintaxis los cuales fui resolviendo gracias a la ayuda que proporciona la salida en terminal el SDK.

Al final logré obtener el resultado esperado.

resultado del tutorial

Cabe recalcar que pregunté en la lista en cuanto a la situación que surgió con el API, pregunté si era posible realizar este tutorial en Netbeans 7.3 y si necesitaba actualizar algo para poder trabajar con el API, la respuesta tardo un poco y mientras esperaba pude terminar el tutorial satisfactoriamente.






#include <stdio.h>
#include <sal/main.h>
#include <rtl/ustring.hxx>
#include <osl/diagnose.h>
#include <cppuhelper/bootstrap.hxx>
// generated c++ interfaces
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMultiComponentFactory.hpp>
#include <com/sun/star/registry/XImplementationRegistration.hpp>
#include <foo/XCountable.hpp>
using namespace foo;
using namespace cppu;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang
;using namespace com::sun::star::registry;
using namespace ::rtl;
//=======================================================================
SAL_IMPLEMENT_MAIN(){    
try {		
Reference< XComponentContext >xContext(::cppu::defaultBootstrap_InitialComponentContext());
		OSL_ENSURE( xContext.is(),
"### bootstrap failed!\n" );
		Reference< XMultiComponentFactory > xMgr = xContext->getServiceManager();
		OSL_ENSURE( xMgr.is(), 
                "### cannot get initial service manager!" );
	Reference< XInterface > xx = xMgr->createInstanceWithContext(
			OUString::createFromAscii("foo.Counter"), xContext);
 		OSL_ENSURE( xx.is(), "### cannot get service instance of \"foo.Counter\"!" );
  		Reference< XCountable > xCount( xx, UNO_QUERY );
OSL_ENSURE( xCount.is(),
 "### cannot query XCountable interface of service instance \"foo.Counter\"!" );
  		if (xCount.is()) { 			 
                        xCount->setCount( 42 )
                        fprintf( stdout , "%d," , (int)xCount->getCount() );
                        fprintf( stdout , "%d," , (int)xCount->increment() );
                        fprintf( stdout , "%d," , (int)xCount->increment() );
fprintf( stdout , "%d," , (int)xCount->increment() );
fprintf( stdout , "%d," , (int)xCount->increment() );
fprintf( stdout , "%d\n" , (int)xCount->decrement() );
  }
//Reference< XComponent >::query( xContext )->dispose();
//************************************************************************************* 
Reference< XSimpleRegistry > xSimpleReg(
 		xMgr->createInstanceWithContext(OUString::createFromAscii(
                           "com.sun.star.registry.SimpleRegistry"), xContext), UNO_QUERY);
 		OSL_ENSURE(xSimpleReg.is(),"NOK XSimpleRegistry\n");
   		xSimpleReg->open(OUString::createFromAscii(
        "file:///home/kiker/openoffice.org3.4_sdk/LINUXexample.out/bin/counter.uno.rdb"),
         false,false);
 // How to retrieve all the keys :
 		Reference< XRegistryKey > xRegKey= xSimpleReg->getRootKey();
 		OSL_ENSURE(xRegKey.is(),"NOK XRegistryKey\n");
 
 
 // How to get a sub-key
 		xRegKey=xRegKey->openKey(
     		OUString::createFromAscii("/UCR/com/sun/star/uno/XInterface"));
printf("//// \n");
 		OUString OUStr;
 		OString toPrintOut;
  		Sequence< sal_Int8 > seqByte;
 /*/ still a lot to do in this switch :
 		switch (xRegKey->getValueType()){
 		  case RegistryValueType_LONG : printf("long\n");
                       break;
 
 
 		  case RegistryValueType_ASCII : printf("ascii\n");
			OUStr = xRegKey->getAsciiValue();
  			toPrintOut = OUStringToOString(OUStr,RTL_TEXTENCODING_ASCII_US);
 			printf("/// %s\n",toPrintOut.pData->buffer);
 			break;
 
 
 		  case RegistryValueType_STRING : printf("string\n");
                  break;
 
 
 		  case RegistryValueType_BINARY : printf("RG_VALUETYPE_BINARY\n");
 			seqByte = xRegKey->getBinaryValue();
 			break;
 
 
 		  case RegistryValueType_LONGLIST : printf("long list\n");
                       break;
 
 
 		  case RegistryValueType_ASCIILIST : printf("ascii list\n");
                       break;
 		  case RegistryValueType_STRINGLIST : printf("string list\n");
                       break;
 		  case RegistryValueType_NOT_DEFINED : printf("not defined\n");
                       break;
 		} 
 
 
                RegistryValueType_BINARY : printf("RG_VALUETYPE_BINARY\n");
 xRegKey->getValueType();
  */ 
                seqByte = xRegKey->getBinaryValue();
 		// still a lot to do in this switch :
 // with the procedure   
                sal_Int8 Hexa[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
   int lin,col;
   sal_Int8 line[80];
   sal_Int32 len;
   len=seqByte.getLength();
 
 
   // print the lenght in decimal and with 4 hexadecimal digits (C notation 0x....)
   printf("length :  Ox\n",len,len>>12&0x000F,len>>8&0x000F,len>>4&0x000F,len&0x000F);
   len = (len/16)*16;
 // retire le modulo 16
   for(lin=0;lin<len;lin=lin+16){
       for(col=0;col<16;col++){
        line[3*col]=Hexa[seqByte[lin+col]>>4];
 	line[3*col+1]=Hexa[seqByte[lin+col]&0x0F];
 	line[3*col+2]=' ';
         if ((seqByte[lin+col]<128)&&(seqByte[lin+col]>20)){  line[50+col]=seqByte[lin+col];
         }else{
  line[50+col]='.';
 	}
       }
 /* end of for */
      line[66]=0; /* end of string...*/
        line[48]=' ';line[49]=' ';
        for (int i=0;i<66;i++)
         printf("%c",static_cast< char >(line[i]));
       printf("\n");   }
 /* end of for */
    // the last line is more complicated because not complete
   for (lin=len;lin<seqByte.getLength();lin++){
     col=lin-len;
     line[3*col]=Hexa[seqByte[lin]>>4];
     line[3*col+1]=Hexa[seqByte[lin]&0x0F];
     line[3*col+2]=' ';
     if ((seqByte[lin]<128)&&(seqByte[lin]>20)) line[50+col]=seqByte[lin];
     else
 line[50+col]='.';
   }
   for (++col;col<16;col++){
 	line[3*col]=' ';line[3*col+1]=' ';
line[3*col+2]=' ';
line[50+col]=' ';
   }
   line[66]=0;
 /* end of string...*/
   line[48]=' ';
   line[49]=' ';
   for (int i=0;i<66;i++)
     printf("%c",static_cast< char >(line[i]));
   printf("\n");
 
 
//*******************************************************************/
Reference< XComponent >::query( xContext )->dispose();
    	} catch( Exception& e) {
 	    printf("Error: caught exception:\n
       %s\n",
                OUStringToOString(e.Message,
 RTL_TEXTENCODING_ASCII_US).getStr());
 		exit(1);
   	   	}
  	return 0;
 }

Continuación con modelos químicos (Calclets)

He continuado con los modelos químicos, en esta ocación he logrado adaptar 7, todos los modelos se pueden descargar para ser utilizados, los modelos estan enlistados a continuación.

File:Calculating the pH of the strong acids.ods
File:Chlorination of Natural Waters.ods
File:Discovering Buffers.ods
File:Five percent rule.ods
File:ICE Chart Calculations for Acid-Base Equilibria.ods
File:The Behavior of Weak Acids.ods
File:The Le Chatelier Meter.ods

Por el momento tengo asignado seguir trabajando solo adaptandolos, más adelante he de crear modelos propios, es decir, a partir de tópicos ire desarrollando modelos.
Henry Tiquet (talk) 22:44, 10 May 2013 (UTC)

Calclets realizados el sábado 12 y domingo 13 de mayo de 2013

File:Exploring Radioactive Decay Kinetics.ods
File:Tracking an Acid-Base Titration.ods
File:What is an isotope.ods
File:The Chemical Elements and Their Stable Isotopes.ods
File:Buffer Capacity.ods
File:Reacting a strong acid or base with a buffer.ods
File:Buffer selection.ods
File:Exploring Acid-Base Titration Curves.ods
File:Weak Acid Behavior.ods
Henry Tiquet (talk) 02:37, 14 May 2013 (UTC)

Tutorial Toolbar

Este fue un tutorial bastante fácil. El tutorial toolbar enseña a modificar elementos de la UI desde los archivos xml. Los archivos xml son intermediarios, esto permite interactuar varios lenguajes de programación al mismo tiempo sin necesidad de tener que compilar el código que se ha modificado.
La ruta del archivo en mi máquina es la siguiente:

/home/kiker/inst-ooo/apache_openoffice3/basis-link/share/config/soffice.cfg/modules/StartModule/toolbar


En esta ruta se encuentra el archivo standardbar.xml que contiene los elementos de toolbar de inicio del soffice.
Aquí se agrega el siguiente código:

<toolbar:toolbaritem xlink:href=".uno:Quit"/> Lo que hace este código es agregar el botón de salir, para probar agregué un pedazo de código más, duplicando uno de los botones:

<toolbar:toolbaritem xlink:href=".uno:NewDoc" toolbar:visible="true"/>


el resultado fue el esperado.

Guía para desarrollo de Calclets

Los calclets son hojas de calculo interactivas que utilizan formas de control, gráficas y formulas para cambiar valores de variables, esto crea una simulación interactiva del "como será si".

Formas de control

Las formas de control (form controls) son formas a las que se le pueden asignar celdas en las cuales modificar un valor. Las variables que pueden ser asignadas a las formas dependen del tipo de la forma, pueden ser de texto, numéricas o de estado (VERDADERO - FALSO).

Barra de herramientas de formas de control

Si la barra de herramientas "formas de control" (form controls) no está visible, puede ser activada desde el menú "Vista", "barras de herramientas", "formas de control" como se muestra en la imagen siguiente.

Activar barra de controles.


La barra de herramientas de formas de control aparecerá de la siguiente manera.

Barra de herramientas de formas de control (AOO 4.0).

Propiedades de control

Para ver y editar las propiedades de los controles es necesario trabajar en modo diseñador. El modo diseñador se activa haciendo clic en el botón que se encuentra en la barra de herramientas como se muestra en la siguiente imagen.

en la imagen se muestra una barra de desplazamiento seleccionada y el modo diseñador activado.

Las propiedades se pueden ver haciendo clic derecho sobre el control y después seleccionando Control... Las propiedades de los controles se muestran en una ventada donde se pueden modificar sus atributos, dentro de esta ventana se encuentran las pestañas General, Datos y Eventos.

  1. En la pestaña General se pueden modificar atributos tales como nombre, valor máximo, valor mínimo, posición, etc.
  2. En la pestaña Datos se puede vincular una celda al control, esto se puede realizar tan solo introduciendo el nombre de la celda a la que se desea vincular el control.
  3. En la pestaña Eventos se pueden asignar macros a los diferentes eventos, esto es un poco más avanzado y está orientado a quienes tienen conocimiento de programación y manejo de macros.


Ventana de propiedades de control.


Casillas de verificación y botones de opción

Para comenzar a hacer interactivas nuestras hojas de calculo las casillas de verificación (check box) y los botones de opción (option button) son el mejor comienzo.

Para insertar cualquiera de estos dos controles primero es necesario activar el modo diseñador (visto anteriormente), después hacemos clic en el botón del control que deseamos insertar.
Para poder utilizar estos controles es necesario vincularlos a celdas, en la siguiente imagen se explica la diferencia entre estos dos controles.

Diferencia entre casillas y botones.


Para vincular un control a una celda hacemos clic derecho sobre el control (es necesario tener activado el modo diseñador) y seleccionamos "Control..." en el menú contextual, después seleccionamos la pestaña "Datos" y escribimos el nombre de la celda a la que se desea vincular el control (A1 por ejemplo).

Campo para comentarios

En Calc es posible insertar comentarios en las celdas, las celdas que contienen comentarios se pueden identificar con un cuadro rojo pequeño que se encuentra en la esquina superior derecha de la celda.
Para insertar un comentario hacemos clic derecho sobre la celda donde queremos insertar el comentario, aparecerá un menú contextual con diferentes opciones, elegimos Insertar Comentario.

Insertar un comentario de texto. Los comentarios aparecen al pasar el cursor sobre la celda.
Comentario. Se puede ver el cuadro rojo en la esquina de la celda.


Imágenes como comentarios

Mostrar comentario.

Calc también permite poner imágenes como comentarios, para hacerlo es necesario poner la imagen como fondo del comentario.

  1. Primero tenemos que hacer visible el comentario, hacemos clic derecho sobre la celda que contiene el comentario, se abre un menú contextual y seleccionamos Mostrar Comentario,
  2. después hacemos clic derecho sobre el comentario y seleccionamos Relleno... Se abrirá una ventana de opciones de relleno, en ella se puede modificar distintos atributos del comentario como son color de relleno, sombreado, transparencia, degradado, etc.
  3. La pestaña donde se puede agregar las imágenes es en Mapa de Bits (Bitmaps), seleccionamos esta última,
  4. luego hacemos clic en el botón Importar... Se abrirá una ventana para seleccionar la imagen que se desea utilizar como fondo del comentario,
  5. seleccionamos la imagen,
  6. hacemos clic en el botón Abrir y
  7. finalmente Aceptar.

Para ocultar nuevamente el comentario basta con hacer clic derecho sobre la celda que tiene el comentario y seleccionar Mostrar Comentario una vez mas para que este se oculte y aparezca solo cuando el puntero pase por encima de la celda.
Regularmente la imagen no aparece centrada, así que es necesario ajustarla.

Insertar imagen como comentario.

Gráficas

Los gráficos pueden ser las mejores herramientas par hacer de las hojas de calculo algo más dinámico. Las gráficas son creadas a partir de valores asignados a algunas celdas, a estos conjuntos de celdas se les llaman rangos. Para iniciar con las gráficas es esencial saber que tipo de gráfica queremos o lo que es más importante, que tipo de gráfica debemos utilizar.

  1. Para crear una gráfica podemos utilizar el asistente de Calc que se encuentra en la barra de herramientas Estándar, haciendo clic en el botón Chart-icon.png aparecerá una ventana donde podrá elegir el tipo de gráfica. Una vez que se ha elegido el tipo de gráfica hacemos clic en Siguiente.
    Selección de tipo, Rangos, Series de datos y elementos de gráfica.
  2. Por consiguiente se selecciona el Rango de datos. Este paso puede omitirse ya que Calc selecciona automáticamente estos datos después de agregar las series de datos (paso siguiente). Clic en Siguiente.
  3. Después se seleccionan las Series de Datos, primero hacemos clic en el botón Agregar para agregar una nueva serie de datos, se pueden agregar el número de series que sean necesarias. Dependiendo del tipo de gráfica, es necesario agregar valores para "X" y/o "Y".
  4. Para asignarle un nombre a la serie se debe seleccionar haciendo clic sobre esta, después hacemos clic en la opción Nombre que se encuentra a la derecha, finalmente hacemos clic en el botón Range selection.png y seleccionamos la celda donde está el nombre que se le dará a la serie.
  5. Para asignar los rangos de valores para "X" y "Y" es un proceso similar, se selecciona la Serie, después Valores de X (o de Y), hacemos clic en el botón Range selection.png y seleccionamos el rango de celdas de donde se tomarán los valores.
    Nombre y valores de serie.
  6. Finalmente se agregan los elementos finales como son Título y subtitulo de la gráfica y las etiquetas de los ejes "X" y "Y".
    Título y subtitulo de la gráfica y etiquetas de ejes.

Para finalizar hacemos clic en Terminar y obtendremos una gráfica como la que se muestra en la imagen de abajo.

Gráfica terminada con el asistente de Calc.

Gráficas y formas de control

Para hacer una gráfica que sea dinámica podemos relacionar sus valores (rangos) a una(s) forma(s) de control, en el ejemplo de la imagen siguiente se puede observar una forma de control (barra de desplazamiento), esta forma está vinculada a la celda B5, cuando se modifica el valor de la barra de desplazamiento también cambia el valor de la celda B5. Las demás celdas que forman parte del rango de la gráfica cambian también ya que estas dependen del valor de la celda B5 como se puede observar en la barra de formulas que se muestra en la imagen.

Los valores con los que se "alimenta" la gráfica dependen del valor que adquiere la celda que está vinculada con el control.

Al deslizar la barra de desplazamiento cambia el valor de las celdas que alimentan a la gráfica, al cambiar los valores la gráfica retoma los valores y también cambia.

Protección de celdas y hojas

Para evitar que los usuarios de los caclets modifiquen constantes o alguna fórmula dentro de las hojas de calculo podemos proteger las celdas.

Proteger celdas

Para proteger las celdas hacemos clic derecho sobre la(s) celda(s), se abrirá un menú contextual con varias opciones, seleccionamos Formato de Celdas... Se abrirá una ventana con varias pestañas con diferentes opciones de formato.

Formato de Celda.

Seleccionamos la pestaña Protección de Celda, en esta parte se puede observar las diferentes opciones de protección.

  1. Ocultar todo. Oculta todo el contenido dentro de la celda.
  2. Protegida. Impide que se hagan cualquier tipo de cambio en la celda.
  3. Ocultar formula. Oculta la formula que esté en la celda pero no el contenido de esta.
  4. Ocultar al imprimir. No permite que se imprima el contenido de la celda al momento de imprimir la hoja.

La protección de celdas solo es efectiva después de proteger la hoja en la que se encuentra la celda que se desea proteger.

Opciones de Protección de Celda.

Proteger hojas

La protección de hojas activa la protección de celdas.
La protección de hojas se realiza desde la Barra de Menús, se selecciona Herramientas, Proteger Documento, Hoja...

Proteger hoja.

Aparecerá una ventana mostrando las opciones de protección de hoja. Las hojas pueden ser protegidas con una contraseña. En la imagen siguiente se muestra la ventana de opciones de protección de hojas.

Opciones de protección de hojas.

Mensaje de protección

Cuando las celdas y las hojas están protegidas, Calc no permite que las celdas sean modificadas, antes bien es lanzada una alerta donde muestra que la celda esta siendo protegida.

Alerta lanzada al intentar modificar una celda protegida.
Personal tools