User talk:Henry Tiquet

From Apache OpenOffice Wiki
Jump to: navigation, search

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.
Tip.png También se pueden ver las Propiedades de control seleccionando el control y haciendo clic en el botón Properties button.png que se encuentra en la barra de herramientas Formas 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, 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).

Cuadro de lista

Un cuadro de lista es un control en el que se puede elegir entre las diferentes opciones "enlistadas" dentro de este control.

Para obtener un cuadro de lista que funcione a partir de un conjunto de celdas:

  1. En la barra de herramientas de Formas de Control hacemos clic en el botón ListBox button.png. Esto te permitirá dibujar tu cuadro de lista haciendo clic y arrastrando el ratón al tamaño que quiera.
  2. Al soltar el clic aparecerá una ventana en la cual también se puede vincular el cuadro de lista a una base de datos, hacemos clic en cancelar.
  3. Lo que obtendremos será un cuadro de lista vació, para que aparezca el contenido del conjunto de celdas dentro del cuadro de lista tenemos que vincular el conjunto de celdas con el control. Para esto hacemos clic derecho sobre el cuadro de lista (Control) para que aparezca la ventana de propiedades del control y hacemos clic en la pestaña Datos.
  4. En el campo Celda Vinculada ponemos la celda en la que se desea ver la opción seleccionada de la lista.
  5. En el campo Rango Fuente de Celdas ponemos el rango de celdas del cual vamos a obtener el contenido, por ejemplo, en la siguiente imagen se puede observar que el rango de celdas va de la celda A1 hasta la A7.
    La celda vinculada es la B2 y el rango fuente de celdas va de la celda A1 a la A7.
  6. Por último cerramos la ventana de propiedades de control.

Barra de Desplazamiento y Botón de Incremento

Estos controles tienen la capacidad de partir de un valor mínimo a un valor máximo, la diferencia entre estos controles es la forma en la que incrementan. El botón de incremento va aumentando o disminuyendo al hacer clic en las flechas y la barra de desplazamiento es posible hacerlo arrastrando el marcador dentro de la barra de desplazamiento o es posible también hacer clic en las flechas.
Barra de Desplazamiento y Botón de incremento.
  1. Para insertar una barra de desplazamiento hacemos clic en el botón Scrollbar button.png o para insertar un botón de incremento hacemos clic en el botón Spinner button.png.
  2. Para editar las propiedades del control hacemos clic derecho sobre este y seleccionamos Control... Aparecerá la ventana de Propiedades de Control. Después hacemos clic en la pestaña General (imagen anterior). Aquí es donde podremos editar el valor máximo o el valor mínimo que necesitamos en el control.
  3. Ahora para poder ver el valor del control es necesario vincular el control a una celda, esto se puede hacer en la pestaña Datos y en el campo Celda Vinculada ponemos la celda en la que estará el valor del control.
Documentation note.png Calc permite manejar valores negativos en sus controles, esto ahorra mucho trabajo ya que no es necesario utilizar formulas para convertir los valores a negativos.

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.

Estructura de un Calclet

Para que una hoja de calculo sea un calclet es necesario darle una estructura muy simple pero que hace que sean bastante prácticos, entretenidos y fáciles de utilizar. La estructura básica para un caclet es agregar una pestaña de introducción, X pestañas como desarrollo y una más como conclusión.

La Introducción

Como introducción podemos agregar una breve información a cerca del calclet, cual es el tema del que trata y si es necesario instrucciones de como navegar e interactuar con el contenido. En la imagen siguiente se muestra un ejemplo de introducción.


Ejemplo de pestaña de introducción.
Tip.png Si la información usada tiene alguna fuente en especial, esta puede ser referenciada como se muestra en el ejemplo de la imagen anterior en la que se agrega un hipervínculo que direcciona a la página web de la que se han tomado los datos de referencia.


El desarrollo

Para el desarrollo podemos utilizar todas las herramientas que Calc nos proporciona para hacer un caclet verdaderamente interesante. Uno de los puntos más importantes es el dividir los distintos subtemas que se podrían abarcar. Por ejemplo si hablamos de informática, podríamos utilizar varias pestañas con diferentes títulos como ofimática, programación, redes, etc.
Otro punto no menos importante es no saturar la pantalla, una forma sencilla de hacerlo es utilizar instrucciones cortas y precisas, otra manera es utilizando los comentarios en las celdas. En la imagen siguiente se puede observar un ejemplo de como se podría utilizar una cantidad considerable de información sin saturar la pantalla, esto apoyándose con los comentarios de celdas.

Las celdas que tienen el cuadro pequeño en color rojo contienen comentarios.

La conclusión

En la conclusión podemos agregar los objetivos de aprendizaje del calclet, tablas de datos, referencias, hipervínculos, etc, los cuales sirvan para concretar la información del calclet. Por ejemplo si de lo que hablamos es de nutrición, podemos agregar en la pestaña final la tabla del rango adecuado de peso por edad que debería tener una persona y la liga o bibliografía de donde se han obtenido estos datos.


Henry Tiquet (talk) 02:23, 10 July 2013 (UTC)

Personal tools