INTEGRACION DE CUADROS EN DOCUMENTOS
ANTECEDENTES
Mientras el número de aplicaciones disponibles para realizar tareas en un dispositivo de cómputo aumenta, la expectación de una experiencia de usuario uniforme entre estas aplicaciones también aumenta. Cuando se trabaja con objetos en una aplicación, existe una expectación que el mismo objeto funcionará equivalentemente cuando se utilicé en una segunda aplicación. Esto es especialmente verdadero para aplicaciones incluidas en el mismo grupo de software. Sin embargo, ya que muchas aplicaciones proporcionan su propio soporte para el objeto, la experiencia de usuario frecuentemente varía entre estas aplicaciones. Por ejemplo, un cuadro creado en una aplicación de cuadro poderosa frecuentemente no se soporta equivalentemente cuando el usuario intenta crear el mismo cuadro en una aplicación de presentación (por ejemplo, presentación de diapositivas). Con ciertos objetos, el usuario puede ser incapaz de crear el objeto del todo. Ciertas aplicaciones permiten que los objetos de uno o más de los otros solicitantes se inserten dentro de los documentos que la aplicación crea. Por ejemplo, un cuadro generado por una aplicación de hoja de cálculo se insertará directamente entre textos en un documento de procesador de palabra creado por una aplicación de procesador de palabra. Sin embargo, para cada situación, no toda la funcionalidad que estuvo disponible en la primera aplicación permanece disponible para el objeto cuando se inserta en la segunda aplicación. Por ejemplo, un estándar para insertar un objeto en documento de otra aplicación se denomina como el estándar de Enlace e Inserción de Objeto (OLE). OLE es un estándar de documento compuesto desarrollado por Microsoft® Corporation de Redmond, Washington. OLE permite a un desarrollador crear objetos con una aplicación y entonces enlazar o insertarlos en una segunda aplicación. Los objetos insertados retienen su formato original y los enlaces a la aplicación que los creó. Por consiguiente, cuando el documento enlazado al objeto se edita y actualiza, el objeto por si mismo también se actualiza. Sin embargo, OLE tiene desventajas distintas ya que frecuentemente almacena el objeto insertado como una imagen, crea grandes archivos y objetos que no pueden evitarse en línea. La variedad de objetos soporta soluciones disponibles de resultados en una variedad de ventajas y desventajas asociadas con cada solución.
BREVE DESCRIPCION DE LA INVENCIÓN
Los aspectos de la presente invención generalmente se relacionan con integrar cuadros en documentos. Un aspecto utiliza un documento de hoja de cálculo como la fuente para los datos de cuadro utilizados en otras aplicaciones de huésped. Previamente, los cuadros incluidos en aplicaciones en donde no estaban directamente relacionados con generación de cuadros sufrieron de una disminución de grupo de características. Muchas de las características disponibles en una aplicación de hoja de cálculo que directamente soporta la creación de cuadro no están disponibles para creación de cuadro en las otras aplicaciones de huésped. Por ejemplo, ciertas fórmulas y capacidades de clasificación que pueden utilizarse en conjunto con un cuadro en la aplicación de hoja de cálculo no están disponibles en la aplicación huésped. También, ciertos tipos de cuadro que son relativamente directos para crear en la aplicación de hoja de cálculo serán extremadamente difíciles de crear en una aplicación huésped. Un aspecto de la presente invención altera los cuadros de una aplicación huésped para que los datos de los cuadros se obtengan de un documento de hoja de cálculo. Esto permite que los cuadros en la aplicación huésped tengan el mismo grupo de características que un cuadro en la aplicación de hoja de cálculo, así como el poder de edición de la aplicación de hoja de cálculo cuando se utilizan los cuadros. Por consiguiente, si se crea el cuadro en otra aplicación huésped o se inserta de una aplicación de hoja de cálculo, al utilizar y evitar el cuadro permanece siendo el mismo, lo que proporciona experiencia de usuario más uniforme. Esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe posteriormente en la Descripción Detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
Se describen modalidades no limitantes y no exhaustivas de la presente invención con referencia a las siguientes figuras, en donde números de referencia similares se refieren a partes similares a través de las varias vistas a menos que especifique de otra forma. La Figura 1 ilustra un dispositivo de cómputo ilustrativo que puede utilizarse de acuerdo con una modalidad ilustrativa; La Figura 2 ilustra una toma de pantalla ilustrativa de un cuadro incluido en una aplicación de presentación; La Figura 3 ilustra otra toma de pantalla ilustrativa de un cuadro incluido en una aplicación de presentación; La Figura 4 ilustra un diagrama funcional de un sistema ilustrativo para utilizar una hoja de cálculo de la fuente de datos de cuadro para un cuadro incluido en una aplicación huésped; La Figura 5 ilustra un diagrama funcional de una estructura de archivo ilustrativa para persistencia de los datos de cuadro; y La Figura 6 ilustra un diagrama de flujo lógico de un procedimiento ilustrativo para interacción entre una hoja de cálculo y una aplicación huésped para proporcionar los datos de un cuadro incluidos en la aplicación huésped, de acuerdo con una modalidad de la presente invención.
DESCRIPCIÓN DETALLADA
Las modalidades de la presente invención se describen más completamente posteriormente con referencia a los dibujos anexos, que forman una parte de la misma, y que muestran modalidades ilustrativas específicas para practicar la invención. Sin embargo, las modalidades pueden ¡mplementarse en muchas formas diferentes y no deben interpretarse como limitadas a las modalidades mencionadas aquí, más que eso, estas modalidades se proporcionan para que esta descripción sea total y completa, y transporte completamente el alcance de la invención a aquellos expertos en la técnica. Las modalidades de la presente invención pueden practicarse como métodos, sistemas o dispositivos. Por consiguiente, las modalidades de la presente invención pueden tomar la forma de una implementación de hardware completamente, una implementación de software completamente o una implementación que combina aspectos de software y hardware. La siguiente descripción detallada, por lo tanto, no debe tomarse en un sentido limitante. Las operaciones lógicas de las varias modalidades de la presente invención se implementan (1) como una secuencia de pasos implementados por computadora que corren en un sistema de cómputo y/o (2) como módulos de máquina interconectados dentro del sistema de cómputo. La implementación es un asunto dependiente de elección en los requerimientos de desempeño del sistema de cómputo que implementa la invención. Por consiguiente, las operaciones lógicas que forman las modalidades de la presente invención aquí descrita se denominan alternativamente como operaciones, pasos o módulos. Con referencia a la Figura 1, un sistema ilustrativo para implementar la invención incluye un dispositivo de cómputo, tal como dispositivo de cómputo 100. El dispositivo de cómputo 100 puede configurarse como un cliente, un servidor, dispositivo móvil, o cualquier otro dispositivo de cómputo. En una modalidad muy básica, el dispositivo de cómputo 100 típicamente incluye al menos una unidad de procesamiento 102 y memoria de sistema 104. Dependiendo de la configuración exacta y tipo de dispositivo de cómputo, la memoria de sistema 104 puede ser volátil (tal como RAM), no volátil (tal como ROM, memoria instantánea, etc.) o alguna combinación de los dos. La memoria de sistema 104 típicamente incluye sistema operativo 105, una o más aplicaciones 106, y puede incluir datos de programa 107. En una modalidad, la aplicación 106 incluye un sistema de integración de cuadro 120 para implementar el sistema de la presente invención. Adicionalmente, los datos de programa 107 incluyen datos de cuadro 122. Esta modalidad básica se ilustra en la Figura 1 por aquellos componentes dentro de la línea punteada 108. El dispositivo de cómputo 100 puede tener características o funcionalidad adicionales. Por ejemplo con el dispositivo de cómputo 100 también puede incluir dispositivos de almacenamiento de datos adicionales (removibles y/o no removibles) tal como, por ejemplo, discos magnéticos, discos ópticos, o cinta. Tal almacenamiento adicional se ilustra en la Figura 1 por almacenamiento removible 109 y almacenamiento no removible 110. Los medios de almacenamiento por computadora pueden incluir medios volátiles y no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información, tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. La memoria de sistema 104, almacenamiento removible 109 y almacenamiento no removible 110 son todos ejemplos de medios de almacenamiento por computadora. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, cassettes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por el dispositivo de cómputo 100. Cualquier medio de almacenamiento de computadora puede ser parte del dispositivo 100. El dispositivo de cómputo 100 también puede tener dispositivo(s) de entrada 112 tal como teclado, ratón, pluma, dispositivo de entrada por voz, dispositivo de entrada por tacto, etc. El dispositivo(s) de salida 114 tal como una pantalla, bocinas, impresora, etc. También pueden incluirse. El dispositivo de cómputo 100 también contiene conexiones de comunicación 116 que permite que el dispositivo se comunique con otros dispositivos de cómputo 118, tal como en una red. La conexión de comunicación 116 es un ejemplo de medios de comunicación. Los medios de comunicación típicamente pueden representarse por instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, e incluye cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas o cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tal como una red por cable o conexión por cable directa, y medios inalámbricos tal como acústicos, RF, infrarrojos y otros medios inalámbricos. El término medio legible por computadora como se utiliza aquí incluye tanto medios de almacenamiento como medios de comunicación. Una modalidad ejecutada por el dispositivo de cómputo 100 proporciona el uso de un documento de hoja de cálculo como la fuente para datos de cuadro 122 para cuadros incluidos en los documentos de una aplicación huésped. La aplicación de integración de cuadro 120 proporciona la integración de los datos de cuadro de un cálculo con la representación de cuadro en la aplicación huésped.
Por consiguiente, la funcionalidad proporcionada por la hoja de cálculo para el cuadro se hace disponible dentro de la aplicación huésped. Un usuario puede editar el cuadro y cambiar la presentación del cuadro de acuerdo con la característica establecida proporcionada por la aplicación de hoja de cálculo, más que una característica establecida limitada. Excepto para un significado más amplio que permite que la descripción de las reivindicaciones aquí abarque una variedad más amplia de las modalidades alternativas, entre los términos siguientes como se utilizan aquí y a través de las reivindicaciones generalmente se definen como sigue: "Cuadro" generalmente se refiere a un gráfico, un cuadro de barra, un cuadro de línea, un cuadro del pastel, un cuadro tubular, u otra ilustración pictórica de datos que puede incluirse en un documento. Como se utiliza aquí, no hay una limitación en los tipos de cuadros que pueden incluirse en un documento particular. "Documento" generalmente se define como cualquier página con hoja, forma, u otra construcción de una aplicación que comprende texto, objetos gráficos, tablas, celdas de datos, u otros tipos de representaciones de datos. Ejemplos de documentos incluyen documentos de procesador de palabra, hojas de cálculo, cuadros, diapositivas, páginas web, hojas de trabajo, notas, mensajes de correo electrónico, mensajes instantáneos, dibujos, esquemas, imágenes, y otras disposiciones de texto y/o objetos gráficos. "Grupo de características" generalmente se define como el grupo de funciones o características asociadas con una aplicación particular. Un grupo de característica ilustrativa de una aplicación que soporta creación de cuadro incluye funcionalidad de clasificación, soporte de fórmulas, soporta tipos de cuadro, así como otras funciones y capacidades que proporcionan capacidades de manipulación de cuadro. "Aplicación huésped" generalmente se refiere a una aplicación en la cual se inserta o enlaza un cuadro. La aplicación huésped incluye una representación visual del cuadro dentro de un documento de la aplicación huésped. Las aplicaciones huésped pueden incluir aplicaciones de presentación, aplicaciones de procesador de palabra, y otras aplicaciones que pueden incluir un cuadro. "Aplicación de presentación" generalmente se refieren a una aplicación que se configura para proporcionar una pantalla de presentación a un usuario. Por ejemplo, una presentación de diapositiva puede incluir una o más diapositivas en una presentación generada estas diapositivas corresponden a documentos individuales producidos por la aplicación de presentación. Un ejemplo de una aplicación de presentación incluye el programa de software de PowerPoint® producido por Microsoft® Corporation de Redmond, Washington. "Hoja de cálculo" generalmente se define como un documento a base de datos que incluye una rejilla de celdas que contienen datos. Un ejemplo de una hoja de cálculo incluye una hoja de trabajo generada en el programa de software Excel® producido por Microsoft® Corporation de Redmond, Washington. Otro ejemplo de una hoja de cálculo incluye una rejilla de datos generada en el programa de software Access® producido por Microsoft® Corporation de Redmond, Washington. Cada hoja de cálculo se asocia con la funcionalidad para producir un cuadro que corresponde a los datos incluidos en la hoja de cálculo. "Aplicación de hoja de cálculo" generalmente se refiere a una aplicación que se configura para producir una hoja de cálculo (ver "definición de hoja de cálculo anterior). La Figura 2 ¡lustra una toma pantalla de aplicación de presentación ilustrativa que incluye un cuadro. La aplicación de presentación 200 corresponde a una versión previa de una aplicación de presentación que controla el soporte de datos de cuadro internamente. La aplicación de presentación 200 incluyó el campo de vista de diapositiva 210, el campo de diapositiva 220, y campo de datos de cuadro 230. El campo de lista de diapositiva 210 enlista las diapositivas disponibles para ver y editar incluidas en el archivo de presentación actual cargado en la aplicación de presentación 200. El campo de lista de diapositiva 210 también contiene una indicación escrita o visual de la diapositiva que actualmente se observa. Una lista de diapositiva es común para la mayoría de las aplicaciones de presentación y se conoce en la técnica. Por lo tanto, el campo de lista de diapositiva 210 no se discute en detalle adicional aquí. El campo de diapositiva 220 incluyó el contenido de la diapositiva que se observa actualmente. En el ejemplo actual, el contenido de diapositiva incluyó el cuadro 222. El cuadro 222 se muestra como cuadro de barra. Cuando el cuadro 222 se seleccionó para insertarse en el campo de diapositiva 220, la aplicación de presentación 200 también inició el campo de datos de cuadro 230. El campo de datos de cuadro 230 se proporcionó como una ventana de aparición instantánea que se sobrepone la ventana de la aplicación de presentación 200. El campo de datos de cuadro fue parte del contenido proporcionado por la aplicación de presentación 200. El campo de datos de cuadro incluyó celdas de datos (por ejemplo, 232), celdas de etiqueta de columna y de fila (por ejemplo, 234), celdas de datos de cuadro (por ejemplo, 236), y celdas de etiqueta de eje de cuadro (por ejemplo, 238). La correlación entre los datos incluidos en las celdas de datos de cuadro y las celdas de etiqueta de eje de cuatro resultaron en el formateo de los datos dentro del cuadro 222. Con la aplicación de presentación 200 que proporciona su propio soporte para ingresar datos de cuadro, la funcionalidad asociada con crear y evitar un cuadro se limitó. Además, la ventana que corresponde al campo de datos de cuadro 230 constantemente necesitó el manejo para la posición y ajuste dependiendo de la porción de la presentación que se observa. La Figura 3 ilustra otra toma de pantalla ilustrativa de un cuadro incluido en una aplicación de presentación de acuerdo con una modalidad. La aplicación de presentación 300 es similar a la aplicación de presentación 200 mostrada en la Figura 2. La aplicación de presentación 300 incluye campo de lista de diapositiva 310 y campo de diapositiva 320. El campo de diapositiva 320 también incluye cuadro 322 que es similar al cuadro 222 mostrado en la Figura 2. Sin embargo, la aplicación de presentación 300 no incluye una ventana o campo similar al campo de datos de cuadro 230. En lugar de eso, la aplicación de presentación 300 inicia la aplicación de hoja de cálculo 350 para proporcionar los datos de cuadro para el cuadro 322. La aplicación de hoja de cálculo 350 incluye hoja de cálculo
352 que incluye un orden de celdas. La celdas son de varios tipos, que incluyen celdas de datos (por ejemplo, celdas de datos 354) y celdas de etiqueta de columna y fila (por ejemplo, etiqueta de columna 356). Dentro de la celdas de datos (por ejemplo, 354) son celdas definidas por los datos que contienen. En un ejemplo las celdas de datos incluyeron datos que corresponden a un cuadro tal como cuadro 320. Un tipo de celda de datos de cuadro incluye valor para el cuadro (por ejemplo, celda de valor 360). Otro tipo de celda de datos asociada con un cuadro incluye una etiqueta de eje que etiqueta un eje o dimensión del cuadro (por ejemplo, etiqueta de eje 358). Al proporcionar los datos para el cuadro 322 de acuerdo con la aplicación de hoja de cálculo 350, el cuadro 322 es capaz de tomar ventaja del grupo de característica completo proporcionado por la aplicación de hoja de cálculo 350 para manipular cuadros. La aplicación de hoja de cálculo 350 se proporciona para el cuadro 322 tan pronto como las ediciones o manipulaciones al cuadro 322 se realizan en los datos de cuadro. El procedimiento ilustrativo para controlar ediciones y cambios a los datos de cuadro se describe en mayor detalle posteriormente con respecto a la Figura 6. Al iniciar automáticamente la aplicación de hoja de cálculo 350 en respuesta a cambios al cuadro 322, la operación entre la aplicación de presentación 300 y la aplicación de hoja de cálculo 350 es relativamente uniforme. En diseños previos, para utilizar una aplicación de hoja de cálculo como la fuente de datos de cuadros, el cuadro primero necesitará cambiarse en la hoja de cálculo y entonces copiarse en la aplicación de presentación. Sin embargo, el cuadro copiado no fue capaz de beneficiarse del grupo de característica completo una vez en la aplicación huésped que estuvo disponible en la aplicación de hoja de cálculo. La presente invención resuelve estas limitaciones al clasificar relativamente de forma uniforme los datos de cuadro de la aplicación de hoja de cálculo, que permite que se proporcione un grupo de característica completa para un cuadro en la aplicación huésped. Aunque el ejemplo de la Figura 3 se dirige a un cuadro en una aplicación de presentación que tienen los datos de cuatro proporcionados por una aplicación de hoja de cálculo, se aprecia que pueden utilizarse otras combinaciones de aplicaciones. La aplicación huésped no necesariamente necesita ser una aplicación de presentación, pero a su vez puede ser otra aplicación huésped tal como una aplicación de procesador de palabra u otra aplicación en los cuales pueden incluirse cuadros. Adicionalmente, incluso aunque los datos de cuadro se muestran como proporcionados por una aplicación de hoja de cálculo, una aplicación de hoja de cálculo puede incluir otras aplicaciones, tal como aplicaciones de bases de datos o aplicaciones de datos de rejilla. La Figura 4 ilustra un diagrama funcional de un sistema ilustrativo para utilizar una hoja de cálculo como la fuente de datos de cuadro para un cuadro incluido en una aplicación huésped de acuerdo con una modalidad. El sistema 400 incluye aplicación de presentación 402, aplicación de procesamiento de palabra 404, controlador de objeto insertado 406, aplicación de integración de cuadro 408, aplicación de base de datos/hoja de cálculo 410, y cuadro de objeto en funcionamiento 414. La aplicación de hoja de cálculo 410 incluye datos de cuadro 412 que corresponden a un cuadro incluido en una de las aplicaciones huésped (402, 404). Aunque se muestran dos aplicaciones huésped (402, 404), cualquier número de aplicaciones huésped puede asociarse con el sistema 400. El controlador de objeto insertado 406 proporciona la funcionalidad para objetos de soporte incluidos en documentos de aplicación huésped que se asocian con otros programas. En una modalidad, el controlador de objeto insertado 406 corresponde a un programa de gráficos que proporciona código para integrar objetos de gráficos dentro de los documentos de aplicación huésped. El controlador de objeto insertado 406 proporciona a la interfase entre la aplicación de integración de cuadro 408 y las aplicaciones huésped (402, 404). El controlador de objeto insertado 406 traduce las instrucciones proporcionadas por la aplicación de integración de cuadro 408 en instrucciones en sentido por las aplicaciones puestas (402, 404) para manipular los objetos de gráficos. En otra modalidad, el controlador de objeto insertado 406 no se incluye en el sistema 400, y a su vez, la funcionalidad del controlador de objeto insertado 406 se proporciona por la aplicación de integración de cuadro 408. La aplicación de integración de cuadro 408 se comunica con la aplicación de hoja de cálculo 410 para obtener y editar los datos de cuadro 412. En una modalidad, la aplicación de integración de cuadro 408 corresponde a la aplicación de integración de cuadro 120 proporcionada en la Figura 1. La aplicación de integración de cuadro 408 se configura para sincronizar datos de cuadro 412 proporcionados por la aplicación de hoja de cálculo 410 con el cuadro incluido en la aplicación huésped (402, 404). La aplicación de hoja de cálculo 410 organiza datos de cuadro 412, responde a solicitudes de la aplicación de integración de cuadro 408, y comunica datos de cuadro 412 a la aplicación de integración de cuadro 408 a través de un grupo de interfases de COM (420, 422, 424). En una modalidad, la interfase de COM de Sincronización de Datos de Cuadro 420 permite que la aplicación de hoja de cálculo 410 notifique a la aplicación de integración de cuadro 408 de actualizaciones a los datos de cuadro 412 y jale esas actualizaciones a la aplicación de integración de cuadro 412. En la misma modalidad, la interfase de COM de Fuente de Datos de Cuadro 422 permite que la aplicación de integración de cuadro 408 inicie la aplicación de hoja de cálculo 410 y dirige acciones de usuario que afectan los datos de cuadro 412 a la aplicación de hoja de cálculo 410. La interfase de COM de Fábrica de Fuente de Datos de Cuadro 424 permite que la aplicación de integración de cuadro 408 obtenga un caso de interfase de COM de Fuente de Datos de Cuadro 422 que se asocia con la interfase de COM de Sincronización de Datos de Cuadro 420. En una modalidad adicional relacionada, un caso único de interfase de COM de Sincronización de Datos de Cuadro 420 e interfase de COM de Fuente de Datos de Cuadro 422 existen para cada cuadro. La aplicación de integración de cuadro 408 puede obtener la interfase de COM de Fábrica de Fuente de Datos de Cuadro 424 del cuadro de objeto en funcionamiento 414. La aplicación de hoja de cálculo 410 registra la interfase de COM de Fábrica de Fuente de Datos de Cuadro 424 en el cuadro de objeto en funcionamiento 414 cuando se inicia la aplicación de hoja de cálculo 410. El cuadro de objeto en funcionamiento 414 es un componente de sistema de COM que permite a los procedimientos independientes obtener una interfase de COM uno de otro. El cuadro de objeto en funcionamiento 414 se utiliza para obtener la interfase de COM de Fábrica de Fuente de Datos de Cuadro de 424 de la aplicación de hoja de cálculo 410. Las instrucciones se proporcionan a la aplicación de hoja de cálculo 410 para crear la interfase de COM de Fuente de Datos de Cuadro 422 que entonces se asocian con un libro de trabajo actualmente abierto, un libro de trabajo que se va a abrir desde sistema de archivo, o un libro de trabajo que se insertó en el archivo de la aplicación huésped (402, 404). Cuando el libro de trabajo se inserta en el archivo de aplicación huésped (402, 404), la aplicación de integración de cuadro 408 tiene la responsabilidad de señalar la aplicación de hoja de cálculo 410 que se desea una interfase de COM de Fábrica de Fuente de Datos de Cuadro (por ejemplo, 424). La aplicación de hoja de cálculo 410 registra un caso de la interfase de COM de Fábrica de Fuente de Datos de Cuadro 424 con el cuadro de objeto en funcionamiento 414 y la aplicación de integración de cuadro 408 recupera la interfase del cuadro de objeto funcionamiento 414. Una vez que la aplicación de integración de cuadro 408 tiene el caso de interfase de COM de Fábrica de Fuente de Datos de Cuadro 424, la aplicación de integración de cuadro 408 invoca un método que solicita que una interfase de COM de Fuente de Datos de Cuadro 422 se asocie con un libro de trabajo al especificar un número de parámetros. Los parámetros incluyen información que asocia la interfase de COM de Fuente de Datos de Cuadro 422 al libro de trabajo actual, un nuevo libro de trabajo que se va a llenar con datos de muestra proporcionados por la aplicación de integración de cuadro 408, un libro de trabajo identificado por nombre de archivo, o una corriente binaria de datos que ese libro de trabajo insertado para cargarse por la aplicación hoja de cálculo 410. Una vez que la interfase de COM de fábrica de fuente de datos de cuadro 424 se obtiene, el cuadro de objeto en funcionamiento 414 está fuera del giro de procedimiento. La comunicación adicional entre la aplicación de hoja de cálculo 410 y la aplicación de integración de cuadro 408 se completa a través de las interfases de COM (420, 422, 424). La discusión de la Figura 6 a continuación proporciona una discusión más detallada de un procedimiento ilustrativo relacionado con la comunicación entre la aplicación de integración de cuadro 408 y la aplicación de hoja de cálculo 410. La Figura 5 ilustra un diagrama funcional de una estructura de archivo ilustrativo para persistencia del cuadro de datos de acuerdo con una modalidad. Esta modalidad particular proporciona una estructura de archivo para datos de cuadro que corresponden a un cuadro incluido en una presentación de una aplicación de presentación. Sin embargo, otros ejemplos pueden incluir estructuras de archivo para datos de cuadro que corresponden a otros documentos y otras aplicaciones huésped que incluyen un cuadro. La estructura de archivo 500 incluye un archivo de presentación 502 que corresponde a una presentación de una aplicación de presentación, y un archivo de hoja de cálculo externo 550 que corresponde a una hoja de cálculo de una aplicación de hoja de cálculo. El archivo de presentación 512 se organiza en diapositivas 510, dibujos 520, cuadros 530, y posiblemente pueden incluir el archivo de hoja de cálculo insertado 540. Las diapositivas 510 incluyen cualquier número de diapositivas (por ejemplo, 512, 514) asociadas con una presentación particular. Si se van a incluir los datos de dibujo en una diapositiva, entonces una diapositiva (por ejemplo, 512) se asocia con un archivo de dibujo (por ejemplo, 522). Si los datos de dibujo corresponden a un cuadro, entonces el dibujo (por ejemplo, 522) además se asocia con un archivo de cuatro (por ejemplo, 532). En una modalidad, el archivo de cuadro (por ejemplo, 532) incluye el tipo de cuadro que se utiliza, la presentación del cuadro, el formato del cuadro, y otra información relacionada con la presentación del cuadro dentro de una diapositiva. En esta modalidad, los valores incluidos en el cuadro se obtienen de otro archivo (por ejemplo, 540, 550) asociado con una hoja de cálculo, pero la aplicación de presentación determina el formato para presentación de esos datos. En otra modalidad, el archivo de cuadro (por ejemplo, 532) es más similar a un señalador y dirige la aplicación de presentación a otro archivo (por ejemplo, 540, 550) que incluye los datos de cuadro. En esta modalidad, la aplicación de hoja de cálculo determina tanto los valores como el formato para utilizarse para un cuadro, y la aplicación de presentación simplemente tiene la responsabilidad de presentar el cuadro dentro de una diapositiva particular. Una ¡mplementación real del cuadro en la presentación puede dividir las responsabilidades de formatear el cuadro entre la aplicación huésped y la aplicación hoja de cálculo a lo largo de diferentes líneas que, o como grabaciones de las modalidades descritas anteriormente. Adicionalmente, un usuario puede presentarse con una selección para utilizar el formateo de la presentación o el formato de los datos incluidos en la aplicación de hoja de cálculo. Como se muestra, los datos para un cuadro pueden proporcionarse por un archivo de hoja de cálculo (por ejemplo, 540) que se inserta en el archivo de presentación, o proporcionarse por un archivo de hoja de cálculo (por ejemplo, 550) que se almacena externamente. Si la hoja de cálculo se almacena localmente con el archivo de presentación 502 o se almacena externamente y se enlaza por el archivo de presentación 502 es una selección que puede hacerse por el usuario. Por ejemplo, un usuario puede presentarse con una ventana de diálogo que permite que el usuario seleccione tener el cuadro enlazado a una hoja de cálculo externa, tener la hoja de cálculo copiada al archivo de presentación, o posiblemente sólo recuperar una imagen del cuadro. Cada selección tiene ventajas y desventajas con respecto a editar el cuadro, el tamaño de archivo del archivo de aplicación huésped, y la portabilidad del archivo. La Figura 6 ilustra un diagrama de flujo lógico de un procedimiento ilustrativo para interacción entre una hoja de cálculo y una aplicación huésped para proporcionar los datos del cuadro incluidos en la aplicación huésped, de acuerdo con una modalidad. El procedimiento 600 se inicia en donde se inserta un cuadro en un documento de aplicación de huésped y esperar la interacción por el usuario. El procedimiento continúa con la operación de recepción de acción 602. La operación de recepción de acción 602 recibe la acción de usuario del cuadro en la aplicación de integración de cuadro (ver 408 de la Figura 4). En una modalidad, la aplicación huésped registra la acción de usuario como un golpe de tecla, clic de ratón, u otra entrada de ingreso en la aplicación de huésped y asocia esa entrada como relacionada al cuadro en el documento de aplicación huésped. Una vez que la aplicación de integración de cuadro recibe la notificación de la acción de usuario, el procedimiento continúa a la operación de decisión de necesidad de hoja de cálculo 604. La operación de decisión de necesidad de hoja de cálculo 604 determina si la hoja de cálculo es necesaria para responder a la acción de usuario que afectó el cuadro. En ciertos escenarios, la acción de usuario puede cambiar una porción del cuadro sin afectar los datos de cuadro proporcionados por la aplicación de hoja de cálculo. Por ejemplo, la posición del cuadro dentro del documento puede cambiar. Tal cambio puede dirigirse a la aplicación de integración de cuadro para procesamiento. Sin embargo, el acceso a la hoja de cálculo para hacer el cambio no se necesita. Si la hoja de cálculo no se necesita para responder a la acción de usuario, el procedimiento se mueve a la operación que controla el cuadro 606. La operación de control de cuadro 606 controla la acción de usuario sin acceder a los datos de cuadro proporcionados por la hoja de cálculo. En una modalidad, la funcionalidad se incluye en la aplicación huésped para controlar estos cambios al cuadro. En otra modalidad, se hace una llamada de función por la aplicación huésped para controlar la acción de usuario para el cuadro. Una vez que se dirige la acción de usuario, el procedimiento 600 termina y el procedimiento espera a la siguiente acción de usuario o continúa haciendo otras tareas. Alternativamente, si se necesita que la hoja de cálculo responda a la acción de usuario, el procedimiento continúa con operación de decisión de visibilidad 608. La operación de decisión de visibilidad 608 determina si se necesita una hoja de cálculo visible para responder a la acción usuario. Una hoja de cálculo visible puede necesitarse cuando la acción usuario involucra proporcionar al usuario con la oportunidad de cambiar datos de cuadro, fórmulas, u otros aspectos del cuadro proporcionados por la hoja de cálculo. La hoja de cálculo puede necesitarse para permitir que el usuario interactúe con los datos de cuadro mientras están en el formato de hoja de cálculo. En contraste, el usuario puede no necesitar tener el caso visible de la hoja de cálculo iniciada. En una modalidad adicional, el caso visible de la aplicación de hoja de cálculo y el caso no visible de la aplicación de hoja de cálculo se asocian con procedimientos separados. Cuando la interacción con la aplicación hoja de cálculo se proporciona por el procedimiento no visible la acción usuario puede corresponder a un cambio que no requiere que el usuario tenga permiso a ¡nteractuar con los datos de cuadro. Si se necesita una hoja de cálculo visible, el procedimiento continúa a la operación de inicio 610. La operación de inicio 610 inicia un caso visible de la aplicación hoja de cálculo. En una modalidad, la aplicación de hoja de cálculo se inicia y las vistas de la aplicación de hoja de cálculo y la aplicación huésped se "inclinan" o se presentan de forma coincidente para que ambas aplicaciones puedan observarse substancialmente en un área de observación limitada. Inclinar las aplicaciones permite que ambas se observen en la pantalla de presentación disponible. Una vez que se inicia la aplicación de hoja de cálculo, el procedimiento continúa con la operación de creación de enlace 614. Si en lugar de un caso visible de la hoja de cálculo, sólo se necesita un enlace a la hoja de cálculo, entonces el procedimiento continúa desde la operación de decisión de visibilidad 608 hacia la operación de determinación de enlace 612. La operación de determinación de enlace 612 determina si ya se estableció un enlace a la hoja de cálculo. Por ejemplo, la hoja de cálculo puede almacenarse en el archivo de aplicación huésped. Almacenado internamente con relación a la aplicación huésped, puede no necesitar establecerse un enlace a la hoja de cálculo. En contraste, la hoja de cálculo también puede estar en una ubicación diferente en la memoria que se asocia con la aplicación de hoja de cálculo o incluso puede asociarse con un dispositivo de cómputo separado completamente. Sin embargo, cuando la hoja de cálculo es externa y/o remota cuando se compara con la aplicación huésped, un enlace ya pudo hacerse entre el cuadro incluido en aplicación huésped y la hoja de cálculo. Por ejemplo, una acción de usuario previa puede establecer un enlace entre el cuadro y la hoja de cálculo. Por consiguiente, la acción de usuario actual no necesita establecer el enlace de nuevo. Si un enlace a la hoja de cálculo todavía no se inicia, el procedimiento continúa con la operación de creación de enlace 614. La operación de creación de enlace 614 inicia el enlace entre la aplicación de hoja de cálculo y el cuadro de la aplicación huésped. En una modalidad, iniciar el enlace es similar si se inició o no un caso de la hoja de cálculo visible. En otra modalidad, el enlace se genera de acuerdo con interfases de COM que permiten que se utilice un protocolo de transmisión general entre el cuadro y la hoja de cálculo. Una vez que se crea el enlace, el procedimiento continúa con la operación de acción de envió 616. Si el enlace estuvo previamente disponible desde la operación de determinación de enlace 612, o un enlace se generó recientemente de acuerdo con el procedimiento de creación de enlace 614, una vez que se establece el enlace, la aplicación de integración de cuadro transmite notificación de la acción de usuario a la aplicación de hoja de cálculo. Después que la hoja de cálculo recibe la notificación, el procedimiento continúa en la operación de determinación de cambio 618. La operación de determinación de cambio 618 descubre de la acción usuario, si la acción de usuario afectó un cambio a los datos de cuadro. Puede ser que los datos de cuadro no cambiaron realmente por la acción de usuario. Por ejemplo, el usuario puede tener que observar los datos de cuadro. En este ejemplo, un caso visible de la aplicación de hoja de cálculo se iniciará y un enlace entre el cuadro y la hoja de cálculo se creará y tendrá que completarse la operación solicitada. Si los datos no se cambian por la acción de usuario, entonces el procedimiento 600 termina y el procedimiento espera hasta la siguiente acción de usuario o continúa con otras tareas. En contraste, si la acción de usuario altera los datos de cuadro, el procedimiento continúa con la operación de cambio de datos 620. La operación de cambio de datos 620 entonces confia de nuevo en la aplicación de integración de cuadro en que los datos cambiaron. Una vez que se recibe este mensaje de cambio de datos, el procedimiento continúa en la operación de decisión de actualización 622. La operación de decisión de actualización 622 determina si es necesaria una actualización al cuadro debido a los cambios que ocurrieron en nosotros de cuadro. En una modalidad, la actualización corresponde a una renovación de la representación de los datos de cuatro dentro del cuadro. Si no es necesaria una actualización, el procedimiento 600 termina y el procedimiento espera a la siguiente acción de usuario o continúa sin otras tareas. Sin embargo, si es necesaria una actualización, entonces el procedimiento continúa a la operación de solicitud de actualización 624. La operación de solicitud de actualización 624 solicita una actualización de los datos de cuadro desde la aplicación de hoja de cálculo. En una modalidad, la solicitud de actualización se configura como una solicitud para el grupo completo de datos de cuadro proporcionados por la aplicación hoja de cálculo. En otra modalidad, la solicitud de actualización es para cualquiera de las porciones de los datos de cuadro que cambiaron y no para el archivo de datos de cuadro completo. Una vez que se envía la solicitud de actualización, el procedimiento continúa con la operación de recepción de actualización 626. La operación de recepción de actualización 626 recibe la actualización de los datos de cuadro y aplica la actualización al cuadro en la aplicación huésped. En una modalidad, la actualización renueva solo esas porciones del cuadro que cambiaron desde que sea actualizó o creo por última vez el cuadro. En otra modalidad, la actualización reemplaza el cuadro existente con un nuevo cuadro que corresponde a los datos de cuadro más recientes proporcionados en respuesta a la solicitud. Una vez que se actualiza el cuadro, el procedimiento 600 termina y el procedimiento espera a la siguiente acción de usuario o continúa con otras tareas. Aunque la invención se describió en un lenguaje que es especifico a características estructurales y/o pasos metodológicos, se debe entender que la invención definida en las reivindicaciones anexas no necesariamente se limita a las características o pasos específicos descritos. Más que eso, las características y pasos específicos se describen como formas de implementar la invención reclamada. Ya que pueden hacerse muchas modalidades de la invención sin apartarse del espíritu y alcance de la invención, la invención reside en las reivindicaciones aquí anexas.