ES3032661T3 - Spreadsheet-based programming language adapted for report generation - Google Patents

Spreadsheet-based programming language adapted for report generation

Info

Publication number
ES3032661T3
ES3032661T3 ES12861998T ES12861998T ES3032661T3 ES 3032661 T3 ES3032661 T3 ES 3032661T3 ES 12861998 T ES12861998 T ES 12861998T ES 12861998 T ES12861998 T ES 12861998T ES 3032661 T3 ES3032661 T3 ES 3032661T3
Authority
ES
Spain
Prior art keywords
report
spreadsheet
worksheet
template
software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES12861998T
Other languages
English (en)
Inventor
Michael Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bibo Labs Inc
Original Assignee
Bibo Labs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bibo Labs Inc filed Critical Bibo Labs Inc
Application granted granted Critical
Publication of ES3032661T3 publication Critical patent/ES3032661T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/183Tabulation, i.e. one-dimensional [1D] positioning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

Sistemas informáticos, software y métodos para implementar un lenguaje de programación basado en hojas de cálculo adaptado para la generación de informes, comprendiendo dicho sistema: una computadora opcionalmente en red que comprende un procesador, un sistema operativo configurado para ejecutar instrucciones ejecutables y un dispositivo de memoria; un programa informático que incluye instrucciones ejecutables por el dispositivo de procesamiento digital para crear un entorno para implementar un lenguaje de programación basado en hojas de cálculo para la generación de informes, donde dicho entorno comprende: un módulo de software para almacenar la estructura de uno o más conjuntos de datos externos designados dentro de una hoja de cálculo, donde las referencias a cada conjunto de datos se crean mediante fórmulas basadas en celdas; un módulo de software para interpretar funciones de procedimiento, donde las funciones de procedimiento se designan mediante etiquetas en una plantilla de diseño de informes; y un módulo de software para generar informes. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Lenguaje de programación basado en hojas de cálculo adaptado para la generación de informes
Campo de la invención
La presente invención se refiere, en general, a la generación de informes utilizando un lenguaje de programación basado en hojas de cálculo dentro de una hoja de cálculo de plantilla de diseño de informes utilizando etiquetas que designan funciones de procedimiento que especifican el contenido y la forma del informe. Además, se genera un formulario basado en parámetros basado en una hoja de metadatos comprendida en la hoja de cálculo de plantilla de diseño de informes, que brinda al usuario la posibilidad de filtrar y limitar un conjunto de datos y/o clasificar un conjunto de datos resultante.
Antecedentes de la invención
Las herramientas de informes empresariales existentes requieren que los usuarios participen activamente en todo el proceso de diseño en aplicaciones de terceros y entornos de desarrollo. Los usuarios deben ser expertos en la técnica de desarrollo de software hasta cierto punto para poder crear informes. Una vez completado el desarrollo, los medios de distribución existentes son limitados. Si una organización ha adoptado alguna herramienta de informes de terceros (por ejemplo, Crystal Reports), un administrador debe instalar el software en cada ordenador individual que tenga acceso al informe, además de abrir el acceso directo a la base de datos. Esto limita potencialmente la ubicación geográfica de la aplicación y potencialmente crea oportunidades para violaciones de seguridad.
El documento US2004/221233 A1 divulga un sistema y un método para generar informes a partir de una fuente de datos utilizando una plantilla de procesamiento de texto que tiene al menos un campo que expresa un comando y al menos un campo que expresa una referencia a la fuente de datos. Un procesador genera un informe utilizando la fuente de datos y la plantilla de procesamiento de texto para definir texto condicional, diseño y formato basado en la información determinada en el tiempo de ejecución.
El documento WO 03/098500 A1 divulga un modelo basado en hoja de cálculo que utiliza una hoja de cálculo para generar un informe en el que la hoja de cálculo comprende los datos para el informe y etiquetas y parámetros para la personalización del informe. Se genera una interfaz de usuario a partir de los parámetros que permite al usuario proporcionar los valores para los parámetros para la personalización del informe.
El documento WO 03/007118 A2 divulga la creación de una plantilla dentro de una hoja de cálculo que comprende fórmulas, escritas en un "lenguaje de fórmulas de hoja de cálculo", que están asociadas a una fuente de datos. Se proporciona una interfaz de usuario en un navegador donde el usuario puede especificar ciertos criterios (de filtro) que se utilizan como parámetros para la plantilla de hoja de cálculo para la generación del informe que luego se presenta en el navegador.
Resumen de la invención
La presente invención se define de acuerdo con las reivindicaciones independientes. Se definen realizaciones específicas en las reivindicaciones dependientes.
Existe una necesidad, largamente sentida y no satisfecha, de plataformas, entornos y herramientas de desarrollo de informes empresariales simples que aumenten la accesibilidad al diseño de informes y a los informes mismos. Las herramientas eficaces de informes empresariales facilitan el diseño y permiten una distribución simple y segura. Las invenciones divulgadas en este documento permiten a los usuarios diseñar informes aprovechando su conocimiento preexistente de hojas de cálculo y maximizando esa base de conocimiento y ampliándola con un lenguaje de etiquetas de marcado. El sistema utiliza una estructura de sistema de archivos simple para representar la jerarquía de los informes almacenados y muestra estos objetos a través de una interfaz de usuario basada en web. Al distribuir un Localizador Uniforme de Recursos (URL), se puede filtrar, clasificar y formatear de forma segura uno o más conjuntos de datos en una hoja de cálculo genérica.
En consecuencia, en un aspecto, se divulgan en este documento sistemas informáticos para implementar un lenguaje de programación basado en hojas de cálculo adaptado para la generación de informes, dicho sistema que comprende: un ordenador opcionalmente en red que comprende un procesador, un sistema operativo configurado para realizar instrucciones ejecutables y un dispositivo de memoria; un programa informático que incluye instrucciones ejecutables por el dispositivo de procesamiento digital para crear un entorno para implementar un lenguaje de programación basado en hojas de cálculo para la generación de informes, en el que dicho entorno comprende: un módulo de software para almacenar la estructura de uno o más conjuntos de datos externos designados dentro de una hoja de cálculo, en el que las referencias a cada conjunto de datos se crean a través de fórmulas basadas en celdas; un módulo de software (por ejemplo, un intérprete) para interpretar funciones de procedimiento, en el que las funciones de procedimiento se designan a través de etiquetas en una plantilla de diseño de informes; y un módulo de software para generar informes. En algunas realizaciones, uno o más conjuntos de datos externos son bases de datos. En otras realizaciones, una o más bases de datos son bases de datos relacionales, bases de datos no relacionales, bases de datos orientadas a objetos, bases de datos de objetos, bases de datos de modelo entidad-relación, bases de datos asociativas o bases de datos XML. En algunas realizaciones, uno o más conjuntos de datos externos son conjuntos de datos tabulares. En otras realizaciones, uno o más conjuntos de datos tabulares son archivos de texto separados por comas, archivos de texto delimitados por tabulaciones o archivos binarios con un conjunto de datos nativo integrado con un conjunto de datos estructurado tabular. En algunas realizaciones, el módulo de software para almacenar la estructura de uno o más conjuntos de datos externos designados almacena la estructura como referencias simbólicas. En algunas realizaciones, el intérprete de software interpreta dichas funciones de procedimiento para ejecutar una consulta. En otras realizaciones, una consulta incluye opcionalmente uno o ambos de: parámetros de búsqueda y de clasificación. En algunas realizaciones, el entorno comprende además un módulo de software para guardar consultas para su ejecución posterior. En otras realizaciones, cada consulta guardada está representada por una URL que ejecuta la consulta cuando se activa. En algunas realizaciones, la plantilla de diseño de informes es una hoja de cálculo. En otras realizaciones, la hoja de cálculo es cualquier versión de Microsoft Excel. En otras realizaciones, la hoja de cálculo es cualquier versión y derivado de OpenOffice Calc. En otras realizaciones, la hoja de cálculo es cualquier versión y derivado de Lotus 1-2-3. En algunas realizaciones, el módulo de software para generar informes aplica las propiedades de una plantilla de diseño de informes a un informe. En algunas realizaciones, el módulo de software para generar informes genera informes como datos binarios en forma de una o más hojas de cálculo, documentos XML, documentos HTML, documentos de software de informes, documentos de procesador de textos o documentos de software de presentación.
En otro aspecto, se divulgan en este documento medios legibles por ordenador codificados con un programa informático que incluye instrucciones ejecutables por un ordenador para crear un entorno de informes que comprende: un módulo de software para almacenar la estructura de uno o más conjuntos de datos externos designados dentro de una hoja de cálculo, en el que las referencias a cada conjunto de datos se crean a través de fórmulas basadas en celdas; un intérprete de software para interpretar funciones de procedimiento, en el que las funciones de procedimiento se designan a través de etiquetas en una plantilla de diseño de informes; y un módulo de software para generar informes. En algunas realizaciones, el módulo de software para generar informes aplica las propiedades de una plantilla de diseño de informes a un informe. En algunas realizaciones, la codificación es permanente, sustancialmente permanente, semipermanente o no transitoria. En algunas realizaciones, el intérprete de software interpreta dichas funciones de procedimiento para ejecutar una consulta. En otras realizaciones, una consulta incluye opcionalmente uno o ambos de: parámetros de búsqueda y clasificación. En algunas realizaciones, el entorno de informes comprende además un módulo de software para guardar consultas para su ejecución posterior. En otras realizaciones, cada consulta guardada está representada por una URL que ejecuta la consulta cuando se activa.
En otro aspecto, se divulgan en este documento métodos implementados por ordenador para generar un informe, que comprenden las etapas de: almacenar la estructura de uno o más conjuntos de datos externos designados dentro de una hoja de cálculo retenida en la memoria del ordenador; hacer referencias a cada conjunto de datos a través de fórmulas basadas en celdas en dicha hoja de cálculo retenida en la memoria del ordenador; e interpretar, por el módulo de software, una o más plantillas de diseño de informes para dar formato a una salida. En algunas realizaciones, interpretar una o más plantillas de diseño de informes para dar formato a una salida comprende las etapas de: leer una o más plantillas en la memoria; leer una o más etiquetas que definen instrucciones de programación en la memoria; leer uno o más conjuntos de datos en la memoria; generar una nueva hoja de cálculo; aplicar las propiedades de la plantilla a la nueva hoja de cálculo; insertar filas y columnas en la nueva hoja de cálculo basado en cada conjunto de datos; realizar las instrucciones de programación definidas; y generar la nueva hoja de cálculo en formato de datos binarios. En algunas realizaciones, el resultado es un informe. En otras realizaciones, el informe son datos binarios en forma de una o más hojas de cálculo, documentos XML, documentos HTML, documentos de software de informes, documentos de procesador de textos o documentos de software de presentación.
En otro aspecto, se divulgan en este documento medios legibles por ordenador codificados con un programa informático que incluye instrucciones ejecutables por un ordenador para crear un entorno de informes que comprende: un módulo de software para hacer referencia a uno o más conjuntos de datos a través de fórmulas basadas en celdas en una hoja de cálculo; y un módulo de software para interpretar una o más plantillas de diseño de informes para dar formato a una salida, en el que las funciones de procedimiento se designan en la plantilla de diseño de informes a través de etiquetas. En algunas realizaciones, las fórmulas basadas en celdas son ingresadas hasta cierto punto por un usuario. En algunas realizaciones, las fórmulas basadas en celdas son ingresadas hasta cierto punto por un sistema informático a través de un asistente de generación automática. En algunas realizaciones, las funciones de procedimiento son ingresadas hasta cierto punto por un usuario. En algunas realizaciones, las funciones de procedimiento son ingresadas hasta cierto punto por un ordenador a través de un asistente de generación automática. En algunas realizaciones, el resultado es un informe. En algunas realizaciones, la codificación es permanente, sustancialmente permanente, semipermanente o no transitoria.
En otro aspecto, se divulgan en este documento métodos implementados por ordenador para identificar instrucciones de programación para la generación de informes, que comprenden almacenar etiquetas específicas en una hoja de cálculo en la memoria del ordenador, por ejemplo, memoria no volátil y no transitoria, para identificar instrucciones de programación seleccionadas del grupo que consiste de: designar entrada; designar salida; designar cálculos matemáticos; designar ejecución condicional de instrucciones; y designar repetición de instrucciones. En algunas realizaciones, se utilizan una o más etiquetas en pares de etiquetas que consisten de una etiqueta de apertura y una etiqueta de cierre. En algunas realizaciones, se utilizan una o más etiquetas como etiquetas individuales.
Breve descripción de los dibujos
La Fig. 1 muestra un proceso no limitativo para implementar un lenguaje de programación basado en hojas de cálculo adaptado para la generación de informes; en este caso, un proceso en el que una hoja de trabajo de metadatos y una hoja de trabajo de plantilla de diseño se almacenan en hojas de cálculo y el resultado es un informe en formato de hoja de cálculo.
La Fig. 2 muestra un ejemplo no limitativo de una fórmula de hoja de cálculo.
La Fig. 3 muestra un ejemplo no limitativo de una plantilla simple; en este caso, una plantilla para datos básicos del cliente.
La Fig. 4 muestra un ejemplo no limitativo de la salida de la plantilla de la Fig. 3 después de ejecutar un conjunto de datos externo a través de un intérprete y generar el lenguaje procedimental propietario de acuerdo con las etiquetas.
La Fig. 5 muestra un ejemplo no limitativo de una plantilla de informe compleja; en este caso, una plantilla de informe con un bucle anidado representado con las etiquetas adicionales <detail> </detail>.
La Fig. 6 muestra un ejemplo no limitativo de la plantilla de la Fig. 5 con las referencias a los conjuntos de datos externos resaltados.
La Fig. 7 muestra un ejemplo no limitativo del informe resultante de las plantillas de las Fig. 5 y 6 después de que se sondea un conjunto de datos externo en el intérprete.
La Fig. 8 muestra un ejemplo no limitativo de la fórmula recién formada a partir de la Fig. 7 para demostrar que el intérprete introspecciona y reajusta los valores de las celdas basado en los conjuntos de datos externos resultantes y las respectivas inserciones de filas para las iteraciones.
La Fig. 9 muestra un ejemplo no limitativo de una metahoja y la definición de los parámetros de búsqueda y clasificación en una hoja de cálculo.
La Fig. 10 muestra un ejemplo no limitativo de parámetros de búsqueda y clasificación que se representan en un formulario HTML para filtrar y clasificar el conjunto de datos externo. En este ejemplo, los parámetros también se guardan como marcas de consulta y se pueden referenciar por la URL.
La Fig. 11 muestra un ejemplo no limitativo de una plantilla; en este caso, una plantilla que incluye los lenguajes de marcado de hojas de cálculo presentados en el Ejemplo 1.
La Fig. 12 muestra un ejemplo no limitativo de un informe presentado en el Ejemplo 1; en este caso, un informe con imágenes y códigos de barras integrados en las celdas respectivas.
La Fig. 13 muestra un ejemplo no limitativo de una hoja de metadatos; en este caso, una hoja de metadatos que almacena una lista de consultas dispares que se emitirán a través de un motor de consulta entre bases de datos para realizar una consulta entre bases de datos como se describe en el Ejemplo 5.
Las Fig. 14-16 muestran ejemplos no limitativos de subconsultas de componentes de una consulta entre bases de datos como se describe en el Ejemplo 5; en este caso, las hojas de metadatos que provienen de múltiples fuentes de datos dispares, incluidas Oracle, Salesforce y Mongo.
La Fig. 17 muestra un ejemplo no limitativo de una hoja de metadatos de una tabla entre bases de datos como se describe en el Ejemplo 5.
La Fig. 18 muestra un ejemplo no limitativo de una selección de campo entre bases de datos como se describe en el Ejemplo 5.
Descripción detallada de la invención
Diversas definiciones
A menos que se defina lo contrario, todos los términos técnicos utilizados en este documento tienen el mismo significado que comúnmente entiende un experto en la técnica a la que pertenece esta invención. Tal como se utiliza en esta especificación y en las reivindicaciones adjuntas, las formas singulares "un", "una" y "el" incluyen referencias plurales a menos que el contexto indique claramente lo contrario. Cualquier referencia a "o" en este documento pretende abarcar "y/o" a menos que se indique lo contrario.
Tal como se utiliza en este documento, "conjunto de datos" significa un conjunto de filas o registros.
Tal como se utiliza en este documento, "hoja de trabajo" significa una página individual u hoja en un programa de hoja de cálculo.
Tal como se utiliza en este documento, "fila" significa un registro individual de datos estructurado implícitamente en una tabla, hoja de trabajo, hoja de cálculo o base de datos. En algunas realizaciones, una fila de datos es un conjunto de celdas que se ejecuta horizontalmente en una hoja de trabajo.
Tal como se utiliza en este documento, "columna" significa un conjunto de celdas que se ejecuta verticalmente en una hoja de trabajo.
Tal como se utiliza en este documento, "celda" indica dónde se ingresan los datos en una tabla, hoja de trabajo, hoja de cálculo o base de datos. En algunas realizaciones, una celda se encuentra en la intersección entre una fila y una columna.
Tal como se utiliza en este documento, "fórmula" significa una ecuación matemática utilizada para calcular un valor.
Lenguaje de programación basado en hojas de cálculo
En algunas realizaciones, los sistemas, plataformas, entornos, aplicaciones y métodos divulgados en este documento crean o utilizan un lenguaje de programación basado en hojas de cálculo. En algunas realizaciones, un lenguaje de programación de hojas de cálculo es un lenguaje que sigue ciertos métodos de etiquetado dentro de una hoja de cálculo, lo que permite que un intérprete externo abstraiga las etiquetas y funciones en diferentes tipos de funciones o entidades programáticas.
En algunas realizaciones, una hoja de cálculo adecuada consiste de múltiples hojas de trabajo dentro de una hoja de cálculo. En otras realizaciones, una hoja de trabajo designada representa el conjunto o los conjuntos de datos externos y los medios para recuperar del conjunto de datos o los conjuntos de datos. En otras realizaciones, hay hojas de trabajo adicionales dentro de la hoja de cálculo que se utilizan para diseños de plantillas que hacen referencia a la hoja de trabajo de metadatos cuando es necesario.
La Fig. 1 representa un proceso ejemplar, no limitativo, para generar un informe a través de la implementación de un lenguaje de programación basado en hojas de cálculo. El proceso ejemplar de la Fig. 1 Incluye una primera fase de generación de un formulario web basado en parámetros para acomodar la entrada del usuario. En algunas realizaciones, el sistema carga una hoja de cálculo 105 en la memoria e introspecciona una hoja de metadatos 100 contenidas en el mismo. Desde la hoja de metadatos, el sistema encuentra los campos respectivos que se utilizan para filtrar y clasificar. En otras realizaciones, el sistema luego genera una página web 110, que muestra los campos disponibles para ser clasificados. Estos parámetros se preparan para ser introducidos en el intérprete una vez que el usuario ejecuta la generación del informe 120.
El proceso ejemplar de la Fig. 1 también incluye una segunda fase de generación de informes, que es de múltiples etapas con etapas (A)-(G):
(A) El sistema recupera el conjunto de datos o los conjuntos de datos externos basado en parámetros definidos por el usuario. En algunas realizaciones, el sistema incorpora todos los parámetros que estaban disponibles en el informe y extrae datos de una fuente de datos externa a través de los medios de una consulta 130. En otras realizaciones, se ejecuta una consulta en una variedad de fuentes de datos diferentes, que incluye, pero no limitada a, bases de datos relacionales, servicios web en línea, bases de datos LDAP y archivos planos. Una realización particular es la ejecución de una declaración SQL contra una base de datos relacional (por ejemplo, Oracle). En esta realización, el intérprete envía la declaración SQL al RDBMS de Oracle y el RDBMS devuelve un conjunto de resultados filtrado que se clasifica según los parámetros que el usuario había definido en la página de parámetros (por ejemplo, un formulario HTML).
(B) El intérprete lee la hoja de trabajo de plantilla en la memoria. En algunas realizaciones, el sistema lee en la memoria cada hoja de trabajo de plantilla 140 disponible. En algunas realizaciones, una o más hojas de trabajo de plantilla están, por ejemplo, en la misma hoja de cálculo que la hoja de trabajo de metadatos 105. En otras realizaciones, una o más hojas de trabajo de plantilla están, por ejemplo, en una hoja de cálculo 145 separada. En otras realizaciones, cada hoja de trabajo de plantilla tiene una serie de propiedades que incluyen, pero no limitadas a, la orientación de la página, el formato de impresión, el tamaño de página, el nombre de la hoja de trabajo, la fuente predeterminada, el color de fondo y otras funciones. Estas propiedades, en algunas realizaciones, se conservan en la memoria para ser aplicadas a la salida binaria resultante objetivo.
(C) El intérprete analiza cada hoja de trabajo y lee todas las etiquetas en la memoria. En algunas realizaciones, a medida que el intérprete recorre cada hoja de trabajo, lee las etiquetas respectivas de todas las hojas de trabajo de plantilla dentro de la hoja de cálculo 160. En otras realizaciones, el intérprete luego identifica y marca las filas y columnas donde se ejecutarán las funciones de procedimiento.
(D) El intérprete crea un nuevo informe y copia cada hoja de trabajo de la plantilla en el nuevo informe designado con la exclusión de la hoja de metadatos. En algunas realizaciones, el intérprete crea una nueva hoja de cálculo que sirve como base del informe resultante que se entregará al usuario 170. En otras realizaciones, el sistema crea una nueva hoja de trabajo en el informe objetivo con la excepción de la hoja de trabajo de metadatos. En otras realizaciones, el intérprete copia todas las propiedades del sistema de la plantilla de cada una de las hojas de origen en la hoja de trabajo recién formada en el informe objetivo.
(E) El intérprete inserta filas y columnas relativas a las etiquetas designadas y al tamaño del conjunto de datos externo. En algunas realizaciones, el intérprete recalcula la cantidad de filas necesarias en base al tamaño de los conjuntos de datos externos por hoja de trabajo. Por ejemplo, si la plantilla tiene un número definido de filas que se repetirán como 3 y el conjunto de resultados contiene 10 resultados, entonces el intérprete insertará 30 filas en la hoja de trabajo objetivo. En otras realizaciones, el sistema inserta el número determinado de filas y columnas en la hoja de trabajo objetivo. A medida que el sistema inserta las filas y columnas, crea un índice en la memoria para identificar el número de fila y el número de columna en relación con el original.
(F) El intérprete introspecciona cada celda después de que se hayan insertado las filas y las columnas de datos. En algunas realizaciones, el sistema luego escanea cada celda a través de un analizador de celdas para determinar si la celda tiene o no una fórmula 180. En otras realizaciones, si la celda tiene una fórmula, la invención descompone la referencia de la celda para ver si se hizo referencia o no a uno o más conjuntos de datos externos. En otras realizaciones, si se hace referencia a uno o más conjuntos de datos externos, los datos se copian luego del(de los) conjunto(s) de datos externo(s) y sustituyen el valor de la celda en la fórmula. En otras realizaciones, si la referencia de celda no hacía referencia a un conjunto de datos externo, entonces la fila y la columna de la celda se vuelven a calcular en relación con la posición actual. Por ejemplo, en la plantilla de referencia, la fórmula original en la celda C5 podría potencialmente representar "=A5 B2", pero debido a la cantidad de filas que se insertaron, una fórmula en la celda C105 necesita una nueva fórmula de "=B105+B102".
(G) Limpieza. En algunas realizaciones, la última etapa es limpiar el informe designado. En otras realizaciones, se eliminan todas las etiquetas de marcado que permanecen en las filas objetivo que se utilizaron como referencias para funciones de procedimiento o se utilizaron como referencias para conjuntos de datos externos. Esto deja una hoja de cálculo limpia que incorpora los conjuntos de datos externos en las celdas respectivas y se ejecuta a través de las iteraciones designadas mientras construye los índices necesarios para marcar y designar la posición de los respectivos conjuntos de filas.
Conjuntos de datos externos
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento acceden, leen y almacenan la estructura de uno o más conjuntos de datos externos designados. En algunas realizaciones, se accede, lee y almacena la estructura de un conjunto de datos. En otras realizaciones, se accede, lee y almacena a las estructuras de una pluralidad de conjuntos de datos, simultáneamente, sustancialmente simultáneamente o en serie. En diversas realizaciones, se accede, lee y almacena la estructura de 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000 o más conjuntos de datos, incluidos los incrementos.
En algunas realizaciones, la estructura de cada conjunto de datos se almacena dentro de una hoja de cálculo. En otras realizaciones, se crean referencias a cada conjunto de datos a través de fórmulas basadas en celdas en una hoja de cálculo. Muchos conjuntos de datos son adecuados para su uso con los sistemas, plataformas, entornos, aplicaciones y métodos divulgados en este documento. A modo de ejemplos no limitativos, los conjuntos de datos adecuados incluyen conjuntos de datos tabulares y conjuntos de datos orientados a objetos.
En algunas realizaciones, los conjuntos de datos tabulares adecuados incluyen bases de datos como Oracle, Microsoft SQL Server, Informix, Sybase y MySQL. Otras bases de datos adecuadas incluyen, por ejemplo, IBM DB2, Postgres y dBASE. En algunas realizaciones, los conjuntos de datos tabulares adecuados incluyen archivos planos como archivos planos delimitados por caracteres (por ejemplo, CSV, delimitados por tabulaciones, etc.), archivos planos de longitud fija (por ejemplo, COBOL), archivos planos binarios y archivos planos ASCII propietarios (por ejemplo, DBF).
En algunas realizaciones, los conjuntos de datos orientados a objetos adecuados incluyen, a modo de ejemplos no limitativos, XML y JSON.
Los conjuntos de datos adecuados son de cualquier tamaño. Por ejemplo, el tamaño de un conjunto de datos es potencialmente de cientos de millones de filas antes de que el sistema filtre y clasifique el conjunto de datos. En diversas realizaciones, un conjunto de datos es, a modo de ejemplos no limitativos, 1, 10, 1x1°2, 1x103, 1x104, 1x1°5, 1x10®, 1x107, 1x108, 1x109, 1x101°, 1x1011, 1x1012, 1x1013, 1x1014, 1x1015, 1x1016, 1x1017, 1 x io 18,<1>x<1>° 19,<1>x<1>° 2°, o más filas, incluidos los incrementos en las mismas.
Los conjuntos de datos adecuados residen en una variedad de ubicaciones. En algunas realizaciones, un conjunto de datos es una base de datos local o un archivo plano. En otras realizaciones, un conjunto de datos reside en la misma memoria o dispositivo de almacenamiento que el software divulgado en este documento. En otras realizaciones, un conjunto de datos reside en la misma red (por ejemplo, LAN o WAN) que el software divulgado en este documento. En algunas realizaciones, se puede acceder a un conjunto de datos a través de Internet. En otras realizaciones, un conjunto de datos reside en una fuente de datos de terceros (por ejemplo, un proveedor de nube).
Funcionalidad de consulta entre bases de datos
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento acceden, leen y almacenan la estructura de uno o más conjuntos de datos externos designados. En ciertas realizaciones adicionales, el uno o más conjuntos de datos externos se guardan en una base de datos "en memoria" que no mantiene ningún mecanismo de almacenamiento de base de datos. En algunas realizaciones, el sistema mantiene una lista completa de consultas en objetos de metadatos, en el que cada consulta se representa simbólicamente como una tabla individual. En otras realizaciones, cuando se ejecuta una consulta, después de que todos los conjuntos de resultados independientes se convierten en tablas, el sistema une las tablas y capas en un procesamiento adicional para devolver un conjunto de resultados finalizado para la consulta. En otras realizaciones, el conjunto de resultados finalizado se utiliza para crear un informe.
A modo de ejemplo no limitativo, dicha consulta entre bases de datos inicia una pluralidad de consultas simultáneas, en la que cada una de ellas se representa simbólicamente como una tabla individual. En diversas realizaciones, una consulta entre bases de datos inicia 2, 3, 4, 5, 6, 7, 8, 9, 1°, 11, 12, 13, 14, 15, 16, 17, 18, 19, 2° o más consultas simultáneas. En diversas realizaciones, una consulta entre bases de datos inicia 1°, 2°, 3°, 4°, 5°, 6°, 7°, 8°, 9°, 1°° o más consultas simultáneas, incluidos los incrementos en las mismas. En diversas realizaciones adicionales, una consulta entre bases de datos inicia 1°°, 2°°, 3°°, 4°°, 5°°, 6°°, 7°°, 8°°, 9°°, 1 °°° o más consultas simultáneas, incluidos los incrementos en las mismas. En otras diversas realizaciones adicionales, una consulta entre bases de datos inicia 1°°°, 2 °°°, 3 °°°, 4 °°°, 5 °°°, 6 °°°, 7 °°°, 8 °°°, 9 °°°, 1 °°°° o más consultas simultáneas, incluidos los incrementos en las mismas. A la luz de la divulgación proporcionada en este documento, los expertos en la técnica reconocerán que una consulta entre bases de datos divulgada en este documento mantiene una lista de cualquier número adecuado de consultas en objetos de metadatos e inicia cualquier número adecuado de consultas simultáneas. A modo de ejemplo adicional, cada uno de los conjuntos de resultados reside dentro de la base de datos en memoria como objetos de tabla y los objetos de tabla se procesan y ejecutan a través del motor entre bases de datos para ensamblar un conjunto de resultado final.
En algunas realizaciones, una consulta entre bases de datos está basada en una lista o variedad de consultas dispares que emitirá el motor de consultas entre bases de datos. En otras realizaciones, estas consultas se almacenan dentro de una hoja de metadatos. En otras realizaciones, el ensamblaje de consultas para cada subconsulta está basada en las etiquetas de campo de la hoja de metadatos, en el que cada subconsulta o consulta secundaria es una consulta directa a una base de datos.
En algunas realizaciones, una consulta entre bases de datos almacena consultas de referencia como tablas con alias. En otras realizaciones, los puntos de unión se definen utilizando fórmulas de referencia de hoja de cálculo que utilizan el signo igual para hacer referencia al campo correspondiente desde donde ese campo podría potencialmente extraer información. En otras realizaciones, después de que el motor de consulta entre bases de datos recupera y consulta todas las fuentes de datos respectivas, el motor construye un nuevo conjunto de resultados. En algunas realizaciones, el nuevo conjunto de resultados está basado en asignaciones de campos definidos en la hoja de metadatos, en el que los campos hacen referencia a las hojas de metadatos a través de la metodología de fórmula de referencia divulgada en este documento.
Fórmulas basadas en celdas
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento utilizan fórmulas basadas en celdas para hacer referencia a cada conjunto de datos externo. Las fórmulas basadas en celdas en programas de hojas de cálculo como Microsoft Excel, Open Office Calc y hojas de cálculo de Google utilizan una ecuación matemática para calcular un valor. A la luz de la divulgación proporcionada en este documento, los expertos en la técnica reconocerán que estos programas normalmente designan una fórmula con un signo igual (=). Las fórmulas basadas en celdas son, por ejemplo, cadenas que representan algún tipo de cálculo o referencia a otra celda.Ver, por ejemplo,la Fig. 2. Por ejemplo, una fórmula de referencia de celda puede constituir "=B2" en la celda "A1". Esta es simplemente una fórmula de referencia. A modo de ejemplo adicional, una fórmula también puede constituir una función matemática: "=1+2". La fórmula también puede estar constituida por una combinación de celdas que se utilizarán para manejar funciones matemáticas: "=C12*13*C83". Cada hoja de cálculo incorpora un intérprete basado en celdas para mostrar la compilación resultante de estas fórmulas.
Refiriéndose a la Fig. 3, por ejemplo, la celda resaltada en A3 tiene una fórmula que contiene lo siguiente: "=H2". En esta realización no limitante, la celda H2 se designa como un dato de muestra representativo para hacer referencia a un conjunto de datos externo. A modo de ejemplo adicional, esta celda referenciada simboliza la posición de mapeo de datos de los conjuntos de datos externos cuando se insertan en el informe objetivo.
Funciones de procedimiento
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento incluyen funciones de procedimiento para especificar el contenido y el formato de un informe.
En algunas realizaciones, las funciones de procedimiento se llevan a cabo una sola vez. En otras realizaciones, las funciones de procedimiento se repiten en bucle. Un bucle es una forma de repetir un proceso o una declaración una determinada cantidad de veces o hasta que se produzca un evento particular. En otras realizaciones, un bucle tiene identificadores que marcan dónde comienzan y terminan las filas. En otras realizaciones adicionales, los bucles se anidan de tal manera que uno o más bucles están integrados dentro de otros bucles.
En otras realizaciones, las funciones de procedimiento se designan a través de etiquetas en una plantilla de diseño de informes. En diversas realizaciones, una etiqueta es una letra, un número, un código, una palabra, una frase o un símbolo. En otras diversas realizaciones, una etiqueta está encerrada o entre corchetes por un carácter distintivo o una serie de caracteres tales como corchetes (por ejemplo, <, >, [, ], {, }, (, ), etc.). En algunas realizaciones, las etiquetas se utilizan en pares. En otras realizaciones, un par de etiquetas incluye una etiqueta de apertura y una etiqueta de cierre. En otras realizaciones, las etiquetas se utilizan individualmente. En algunas realizaciones, una función de procedimiento se designa a través de una etiqueta. En otras realizaciones, una función de procedimiento está designada por más de una etiqueta.
Los siguientes son ejemplos no limitativos de etiquetas adecuadas y funciones de procedimiento asociadas:
<i> o <item> cualquiera de las etiquetas representa el comienzo de un bucle.
</i> o </item> cualquiera de las etiquetas representa el cierre de un bucle.
<d> o <detail> cualquiera de las etiquetas representa el comienzo de un bucle anidado.
</d> o </detail> cualquiera de las etiquetas representa el final de un bucle anidado.
</p> o </pagebreak> cualquiera de las etiquetas representa el salto de página.
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento incluyen un intérprete de software para interpretar funciones de procedimiento. En otras realizaciones, un intérprete de software interpreta funciones de procedimiento leyendo etiquetas en una plantilla de diseño de informes.
En algunas realizaciones, un intérprete lee las etiquetas en el sistema y es capaz de, por ejemplo, las siguientes funciones:
1. Representar un formulario basado en parámetros que brinda al usuario la capacidad de filtrar y limitar un conjunto de datos y/o clasificar un conjunto de datos resultante; y 2
2. Importar una plantilla y fusionarla con un conjunto de datos externo. En otras realizaciones, el intérprete luego lee todas las etiquetas para comprender las funciones de procedimiento a ejecutar en una nueva hoja de cálculo designada. En otras realizaciones adicionales, se aplican las funciones de procedimiento y la nueva hoja de cálculo designada hereda las propiedades de las respectivas plantillas, incluidas celdas, filas, columnas, hojas de trabajo y hojas de cálculo.
Plantillas de diseño de informes
Los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento utilizan cualquier plantilla de diseño de informes adecuada. En algunas realizaciones, las plantillas adecuadas siguen una estructura explícita que reserva una hoja de trabajo individual como la hoja de metadatos que contiene las propiedades de un conjunto de datos externo. En otras realizaciones, hay otras hojas de trabajo de plantilla que hacen referencia a través de fórmulas a los conjuntos de datos externos definidos junto con etiquetas para definir el inicio y el final de los bucles.
En algunas realizaciones, una plantilla de diseño de informe es el lienzo inicial que un usuario o desarrollador crea para diseñar un informe. En otras realizaciones, la plantilla constituye lo siguiente:
1. Una hoja de metadatos; y
2. Una hoja de trabajo de plantilla.
En algunas realizaciones, cada hoja de trabajo de plantilla lleva las etiquetas y referencias simbólicas a los conjuntos de datos externos. Por ejemplo, contienen la lógica que un usuario podría utilizar para generar un informe con respecto a sumas, promedios, proporciones u otros cálculos complejos soportados por la hoja de cálculo.
En algunas realizaciones, cada plantilla representa una forma de cómo se verá potencialmente el informe de salida resultante con datos de muestra. La Fig. 3 representa una plantilla de informe de cliente ejemplar con filas de etiquetas reservadas del sistema resaltadas en las filas 2 y 4, así como en las columnas G y H. En esta realización, las filas reservadas del sistema representan funciones de procedimiento (filas 2 y 4 con las etiquetas <item></item>) o conjuntos de datos externos (columnas G y H). En algunas realizaciones, las plantillas representan cuatro funciones principales:
1. Representación estética del informe;
2. El rango del conjunto de filas en bucle;
3. Conjuntos de datos externos; y
4. Lógica integrada dentro de las celdas en forma de fórmulas.
En algunas realizaciones, a medida que se carga y se ejecuta el intérprete, cada plantilla se copia en la hoja de cálculo de salida designada mientras mantiene sus respectivas propiedades de página, fila, columna y celda. En otras realizaciones, el intérprete leerá uno o más conjuntos de datos externos y los mapeará a cada hoja de trabajo de plantilla objetivo dentro de la hoja de cálculo de salida designada, mientras mantiene las funciones estéticas y lógicas diseñadas de la hoja de trabajo de plantilla original.
La Fig. 4 representa un informe de cliente ejemplar generado basado en la plantilla de informe ejemplar de la Fig. 3. En este ejemplo, se ha ejecutado un conjunto de datos externo a través de un intérprete y el lenguaje de procedimiento se ha generado de acuerdo con las etiquetas en la plantilla.
La Fig. 5 representa una plantilla de informe ejemplar que es de naturaleza más compleja. En este ejemplo, una plantilla de informe incluye un bucle anidado representado con las etiquetas adicionales <detail> </detail>. La Fig. 6 muestra un ejemplo no limitativo de la plantilla de la Fig. 5 con las referencias a los conjuntos de datos externos resaltados.
La Fig. 7 muestra un ejemplo no limitativo del informe resultante de las plantillas de las Fig. 5 y 6 después de que se sondea un conjunto de datos externo en el intérprete.
La Fig. 8 muestra un ejemplo no limitativo de la fórmula recién formada de la Fig. 7 para demostrar que el intérprete introspecciona y reajusta los valores de las celdas basado en los conjuntos de datos externos resultantes y las respectivas inserciones de filas para las iteraciones.
Hoja de metadatos
En algunas realizaciones, una hoja de cálculo de plantilla contiene una o más hojas de trabajo de metadatos. En otras realizaciones, cada hoja de trabajo de metadatos incluye lo siguiente:
1. Una definición de uno o más conjuntos de datos externos: la definición del(de los) conjunto(s) de datos externos incluye(n) las tablas y los campos de un DBMS relacional externo.
2. Filtros de búsqueda: los filtros de búsqueda ayudan a recortar y limitar los conjuntos de resultados devueltos por la fuente de datos externa a algo de mayor valor para el usuario.
3. Filtros de clasificación: el filtro de clasificación organiza y reorganiza los conjuntos de datos desde una extracción de datos directa a una matriz de datos clasificada.
La Fig. 9 representa una hoja de metadatos ejemplar que contiene dos secciones. En esta realización no limitativa, una sección está marcada como opciones de clasificación. La sección de clasificación está entre las filas 27 y 29. La fila 29 representa las posibles opciones de clasificación que se cargarán en el formulario de informe puesto a disposición del usuario. La sección de búsqueda está disponible para el usuario a través de las filas 31-33. Además, en esta realización, cada una de estas secciones se lee en el sistema y crea una aplicación para el usuario en forma de HTML para que el usuario defina sus parámetros de entrada.
La Fig. 10 representa la forma resultante en esta realización particular.
Generación de informes
Los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento crean cualquier informe adecuado. En algunas realizaciones, un informe es la salida generada por el intérprete en formato binario. En diversas realizaciones adicionales, el formato binario es el formato binario de las aplicaciones de hojas de cálculo, incluidas, pero no limitadas a: Excel 95, Excel 97, Excel 2000, Excel XP, Excel 2003, Excel 2007, Excel 2010, Open Office Calc 1.0, Open Office Calc 2.0 y Open Office Calc 3.0. En otras realizaciones, la forma binaria del informe es el formato binario de una aplicación de procesamiento de textos. En algunas realizaciones, el informe es un archivo de texto plano. En algunas realizaciones, el informe es un archivo PDF.
Usos y aplicaciones
Los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento son adecuados para cualquier tipo de consultaad hocsobre una variedad de fuentes de datos para generar un informe. En algunas realizaciones, una consulta adecuada se realiza sobre un amplio rango de conjuntos de datos externos dispares para generar un informe. En otras realizaciones, una consulta adecuada es una consulta entre bases de datos, en el que los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento inician una pluralidad de consultas simultáneas, cada consulta representada simbólicamente como una tabla individual.
Ordenador
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos descritos en este documento incluyen un ordenador (por ejemplo, un dispositivo de procesamiento digital) o el uso del mismo. En otras realizaciones, el ordenador incluye una o más unidades centrales de procesamiento (CPU) de hardware que llevan a cabo las funciones del dispositivo. En otras realizaciones adicionales, el ordenador comprende además un sistema operativo configurado para realizar instrucciones ejecutables. En algunas realizaciones, el ordenador está conectado opcionalmente a una red informática. En otras realizaciones, el ordenador está conectado opcionalmente a Internet de modo que accede a la World Wide Web. En otras realizaciones adicionales, el ordenador está conectado opcionalmente a una infraestructura informática en la nube. En otras realizaciones, el ordenador está conectado opcionalmente a una intranet. En otras realizaciones, el ordenador está conectado opcionalmente a un dispositivo de almacenamiento de datos.
De acuerdo con la descripción en este documento, los ordenadores adecuados incluyen, a modo de ejemplos no limitativos, ordenadores servidores, ordenadores de escritorio, ordenadores portátiles, ordenadores notebook, ordenadores sub-notebook, ordenadores netbook, ordenadores netpad, ordenadores decodificadores, ordenadores de mano, dispositivos de Internet, teléfonos inteligentes móviles, ordenadores tipo tableta y asistentes digitales personales. Los expertos en la técnica reconocerán que muchos teléfonos inteligentes son adecuados para su uso en el sistema descrito en este documento. Los expertos en la técnica también reconocerán que determinados televisores, reproductores de vídeo y reproductores de música digital con conectividad de red informática opcional son adecuados para su uso en el sistema descrito en este documento. Los ordenadores tipo tableta adecuadas incluyen aquellas con configuraciones tipo folleto, pizarra y convertible, conocidas por los expertos en la técnica.
En algunas realizaciones, el ordenador incluye un sistema operativo configurado para realizar instrucciones ejecutables. El sistema operativo es, por ejemplo, un software que incluye programas y datos que gestiona el hardware del dispositivo y proporciona servicios para la ejecución de aplicaciones. Los expertos en la técnica reconocerán que los sistemas operativos de servidor adecuados incluyen, a modo de ejemplos no limitativos, FreeBSD, OpenBSD, NetBSD®, Linux, Apple® Mac OS X Server®, Oracle® Solaris®, Windows Server®, y Novell® NetWare®. Los expertos en la técnica reconocerán que los sistemas operativos de ordenadores personales adecuados incluyen, a modo de ejemplos no limitativos, Microsoft® Windows®, Apple® Mac OS X®, UNIX®, y sistemas operativos similares a UNIX como GNU/Linux®. En algunas realizaciones, el sistema operativo lo proporciona la computación en la nube. Los expertos en la técnica también reconocerán que los sistemas operativos de teléfonos inteligentes móviles adecuados incluyen, a modo de ejemplos no limitativos, Nokia® Symbian® OS, Apple® iOS® Research in Motion®, BlackBerry OS®, Google® Android®, Microsoft® Windows Phone® OS, Microsoft® Windows Mobile® OS, Linux® y Palm® WebOS®.
En algunas realizaciones, el ordenador incluye un dispositivo de almacenamiento y/o memoria. El dispositivo de almacenamiento y/o memoria es uno o más aparatos físicos utilizados para almacenar datos o programas de forma temporal o permanente. En algunas realizaciones, el dispositivo es una memoria volátil y requiere energía para mantener la información almacenada. En algunas realizaciones, el dispositivo es una memoria no volátil y retiene la información almacenada cuando el dispositivo de procesamiento digital no está encendido. En otras realizaciones, la memoria no volátil comprende memoria flash. En algunas realizaciones, la memoria no volátil comprende memoria de acceso aleatorio dinámica (DRAM). En algunas realizaciones, la memoria no volátil comprende memoria de acceso aleatorio ferroeléctrica (FRAM). En algunas realizaciones, la memoria no volátil comprende una memoria de acceso aleatorio de cambio de fase (PRAM). En otras realizaciones, el dispositivo es un dispositivo de almacenamiento que incluye, a modo de ejemplos no limitativos, los CD-ROM, los DVD, los dispositivos de memoria flash, las unidades de disco magnético, las unidades de cintas magnéticas, las unidades de disco óptico y el almacenamiento basado en computación en la nube. En otras realizaciones, el dispositivo de almacenamiento y/o memoria es una combinación de dispositivos como los divulgados en este documento.
En algunas realizaciones, el ordenador incluye una pantalla para enviar información visual a un usuario. En algunas realizaciones, la pantalla es un tubo de rayos catódicos (CRT). En algunas realizaciones, la pantalla es una pantalla de cristal líquido (LCD). En otras realizaciones, la pantalla es una pantalla de cristal líquido con transistor de película fina (TFT-LCD). En algunas realizaciones, la pantalla es una pantalla de diodo orgánico emisor de luz (OLED). En diversas realizaciones adicionales, una pantalla OLED es una pantalla OLED de matriz pasiva (PMOLED) o una pantalla OLED de matriz activa (AMOLED). En algunas realizaciones, la pantalla es una pantalla de plasma. En otras realizaciones, la pantalla es un proyector de vídeo. En otras realizaciones adicionales, la pantalla es una combinación de dispositivos como los divulgados en este documento.
En algunas realizaciones, el ordenador incluye un dispositivo de entrada para recibir información de un usuario. En algunas realizaciones, el dispositivo de entrada es un teclado. En algunas realizaciones, el dispositivo de entrada es un dispositivo señalador que incluye, a modo de ejemplos no limitativos, un ratón, una bola de seguimiento, un panel táctil, una palanca de, un controlador de juego o un lápiz óptico. En algunas realizaciones, el dispositivo de entrada es una pantalla táctil o una pantalla multitáctil. En otras realizaciones, el dispositivo de entrada es un micrófono para capturar voz u otra entrada de sonido. En otras realizaciones, el dispositivo de entrada es una cámara de vídeo para capturar movimiento o entrada visual. En otras realizaciones adicionales, el dispositivo de entrada es una combinación de dispositivos como los divulgados en este documento.
Medio no transitorio legible por ordenador
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento incluyen uno o más medios no transitorios legibles por ordenador codificados con un programa que incluye instrucciones ejecutables por el sistema operativo de un dispositivo de procesamiento digital. En otras realizaciones, un medio legible por ordenador es un componente tangible de un dispositivo de procesamiento digital. En otras realizaciones adicionales, un medio legible por ordenador se puede extraer opcionalmente de un dispositivo de procesamiento digital. En algunas realizaciones, un medio legible por ordenador incluye, a modo de ejemplos no limitativos, los CD-ROM, los DVD, dispositivos de memoria flash, memoria de estado sólido, unidades de disco magnético, unidades de cinta magnética, unidades de disco óptico, sistemas y servicios informáticos en la nube y similares. En diversas realizaciones, la codificación es permanente, sustancialmente permanente, semipermanente o no transitoria.
Programa informático
En algunas realizaciones, los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento incluyen uno o más programas informáticos. Un programa informático incluye una secuencia de instrucciones, ejecutables en la CPU del dispositivo de procesamiento digital, escritas para realizar una tarea específica. A la luz de la divulgación proporcionada en este documento, los expertos en la técnica reconocerán que un programa informático puede escribirse en diversas versiones de diversos lenguajes. Los lenguajes de programación adecuados incluyen, a modo de ejemplos no limitativos, Java, VB, VB.NET, C#, C, C++, CFML, Python, Perl, Ruby, PHP, Objective C, JavaScript, Delphi, Lisp, Pascal, Ada, Assembly, ABAP y Cocoa, o combinaciones de los mismos. En algunas realizaciones, se crea un programa informático sobre un marco de software. Los marcos de software adecuados incluyen, a modo de ejemplos no limitativos, Spring, Struts, Django, Ruby on Rails, ASP.NET, Struts, Lift, Tapestry, Seam, Wicket, Symfony, Yii, Drupal, Joomla, Grails, JBoss, Shale, Sling, Eclipse RAP, Oracle ADF, OpenXava, Richfaces, Google Web Toolkit, IceFaces, WebObjects, TurboGears, Zope, ColdFusion, BFC, DotNetNuke, MonoRail, Flex y AJAX, o combinaciones de los mismos.
En algunas realizaciones, un programa informático comprende una secuencia de instrucciones. En algunas realizaciones, un programa informático comprende una pluralidad de secuencias de instrucciones. En diversas realizaciones, un programa informático comprende un archivo, una sección de código, un objeto de programación, una estructura de programación o combinaciones de los mismos. En otras diversas realizaciones, un programa informático comprende una pluralidad de archivos, una pluralidad de secciones de código, una pluralidad de objetos de programación, una pluralidad de estructuras de programación o combinaciones de los mismos. En algunas realizaciones, un programa informático se entrega desde una ubicación. En otras realizaciones, un programa informático se entrega desde una pluralidad de ubicaciones. En otras realizaciones, un programa informático se entrega desde una plataforma o servicio informático en la nube. En diversas realizaciones, un programa informático incluye uno o más módulos de software. En diversas realizaciones, un programa informático incluye, en parte o en su totalidad, una o más aplicaciones web, una o más aplicaciones móviles, una o más aplicaciones independientes, uno o más complementos de navegador web, extensiones, funciones adicionales, o elementos adicionales, o combinaciones de los mismos.
Módulos de software
Los sistemas, las plataformas, los entornos, las aplicaciones y los métodos divulgados en este documento incluyen, en diversas realizaciones, módulos de software, servidor y base de datos. En vista de la divulgación proporcionada en este documento, los módulos de software se crean a través de técnicas conocidas por los expertos en la técnica utilizando máquinas, software y lenguajes conocidos en la técnica. Los módulos de software divulgados en este documento se implementan de multitud de formas. En diversas realizaciones, un módulo de software comprende un archivo, una sección de código, un objeto de programación, una estructura de programación o combinaciones de los mismos. En otras diversas realizaciones, un módulo de software comprende una pluralidad de archivos, una pluralidad de secciones de código, una pluralidad de objetos de programación, una pluralidad de estructuras de programación o combinaciones de los mismos. En diversas realizaciones, los uno o más módulos de software comprenden, a modo de ejemplos no limitativos, una aplicación web, una aplicación móvil y una aplicación independiente. En algunas realizaciones, los módulos de software se encuentran en un programa o aplicación informática. En otras realizaciones, los módulos de software están en más de un programa o aplicación informática. En algunas realizaciones, los módulos de software están alojados en una máquina. En otras realizaciones, los módulos de software están alojados en más de una máquina. En otras realizaciones, los módulos de software están alojados en plataformas informáticas en la nube. En algunas realizaciones, los módulos de software están alojados en una o más máquinas en una ubicación. En otras realizaciones, los módulos de software están alojados en una o más máquinas en más de una ubicación.
Ejemplos
Los siguientes ejemplos ilustrativos son representativos de realizaciones de las aplicaciones de software, sistemas y métodos descritos en este documento y no pretenden ser limitantes de ningún modo.
Ejemplo 1 — Creación de un informe guardado
El CEO de una empresa le pide a su jefe de ventas que cree un informe de sus dos principales clientes que incluya su límite de crédito, los ingresos del año pasado y la relación crédito a cuentas por cobrar en un informe individual con un total en la parte inferior del informe con el límite de crédito total, los ingresos totales del año pasado y un promedio de la relación crédito a ingresos. El jefe de ventas hace lo siguiente:
I. Abre la plantilla prefabricada;
II. Identifica los encabezados de columna en el informe(verla Fig. 11);
III. Etiqueta el principio y el final de la fila(verla Fig. 11);
IV. Crea una fórmula para la suma en la parte inferior del límite de crédito, el último ingreso y agrega una relación promedio de crédito a ingresos;
V. Guarda la salida en la carpeta de la aplicación; y
VI. Escribe "General Motors Company, Pepperdine Demo" en la barra de búsqueda, guarda la consulta y envía al CEO un enlace a la página designada con la consulta guardada.
El CEO abre este enlace marcado y ejecuta el informe cuando le resulta conveniente sin la intervención de desarrolladores, gerentes o personal.Verla Fig 12. Este sencillo proceso toma de 5 - 10 minutos para desarrollar un nuevo informe sin necesidad de que un desarrollador comprenda un nuevo lenguaje de procedimiento.
Ejemplo 2 — Uso de un informe guardado para crear una hoja de especificaciones
Un diseñador de desarrollo de productos quiere una hoja de especificaciones con una lista de materiales que incluya los pesos, costes y cantidades de todos los componentes respectivos para producir un producto final. Carga la URL del sistema y escribe el número de unidad de mantenimiento de stock (SKU) del producto en un formulario de búsqueda y recupera el informe resultante. El informe está formateado de acuerdo con las especificaciones del fabricante. El diseñador comprueba y verifica que todos los datos sean correctos. La hoja de cálculo se envía por correo electrónico al fabricante para continuar con el desarrollo del producto.
Ejemplo 3 — Informe de exportación de un solo día
Una empresa de transporte de mercancías quiere un recuento de todos los contenedores que ha exportado durante el día, desglosado por los respectivos países. El presidente de la empresa ejecuta un informe con la fecha de inicio y la fecha de finalización de ese día en particular. El sistema enumera todos los SKU, contenedores, buques y países clasificados en ese mismo orden.
Ejemplo 4 — Informe de ventas
La gerente de ventas de una empresa necesita compilar un informe de fin de mes de todas las comisiones pagaderas a su fuerza de ventas. Ella ingresa el 12/1/2011 como fecha de inicio y el 12/31/2011 como fecha de finalización de su informe clasificado por el vendedor. El informe tiene todos los montos en dólares y las tasas de comisión en forma de tabla, y cada línea contiene un subtotal de cantidad * precio * tasa de comisión. En la parte inferior de la hoja de cálculo hay cálculos que incluyen un resumen del total de unidades enviadas durante ese mes, el precio promedio de todos los bienes vendidos durante el mes y la tasa de comisión total a pagar durante el mes.
Ejemplo 5 — Consulta entre bases de datos
Una consulta entre bases de datos utiliza una base de datos en memoria que no mantiene ningún mecanismo de almacenamiento de base de datos. El sistema mantiene una lista completa de consultas en objetos de metadatos. Cada consulta se representa simbólicamente como una tabla individual. Una vez que todos los conjuntos de resultados independientes se convierten en tablas, la base de datos XDB une las tablas y las capas en un procesamiento adicional para devolver un conjunto de resultados finalizado.
Descripción básica
Una realización particular implica dos consultas:
Consulta 1: SELECT customer_id, customer_name FROM cliente
Alias de tabla: xdb1
El conjunto de resultados resultante producirá el siguiente conjunto de datos:
Consulta 2: SELECT order_id, customer_id, order_date FROM pedidos
Alias de tabla: xdb2
El conjunto de resultados resultante producirá el siguiente conjunto de datos:
A cada consulta se le asigna un alias de tabla. En este ejemplo, la Consulta 1 tiene el alias xdbl y la Consulta 2 tiene el alias xdb2.
La consulta entre bases de datos es:
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2 ON xdb lcus tom erjd = xdb2.customer_id
La consulta entre bases de datos inicia dos consultas simultáneas. Cada uno de los conjuntos de resultados residirá dentro de la base de datos en memoria como objetos de tabla. Luego, los objetos de la tabla se procesan y se ejecutan a través del motor de base de datos XDB para ensamblar un conjunto de resultados final.
El flujo de trabajo en este ejemplo es:
En primer lugar, el motor entre bases de datos recibe la consulta:
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2 ON xdb lcus tom erjd = xdb2.customer_id
En segundo lugar, el motor entre bases de datos emite las siguientes consultas a distintas bases de datos remotas:
Consulta 1: SELECT customer_id, customer_name FROM cliente
Consulta 2: SELECT order_id, customer_id, order_date FROM pedidos
En tercer lugar, el motor entre bases de datos recibe un conjunto de resultados de cada una de Consulta 1 y Consulta 2 simultáneamente y ensambla un nuevo conjunto de resultados para devolverlo al cliente XDB. El sistema revisa la cantidad de columnas que se seleccionaron y construye un conjunto de resultados de dos columnas (xdb1.customer_name, xdb2.order_date) basado en la cantidad de filas después de que se unieron los dos conjuntos de resultados basados en la declaración de unión interna.
Consulta entre bases de datos con respecto a hojas de metadatos
La consulta entre bases de datos se basa en una lista o variedad de consultas dispares que emitirá el motor de consultas entre bases de datos. Estas consultas se almacenan realmente dentro de una hoja de metadatos que se describe en este documento.
Refiriéndose a la Fig. 13, en una realización particular, las hojas de metadatos están etiquetadas dentro del sistema con un prefijo de "bibomd".
El ensamblaje de consultas para cada subconsulta se basa en las etiquetas de campo de la hoja de metadatos. Cada subconsulta o consulta secundaria es una consulta directa a una base de datos.
Refiriéndose a las Fig. 14-16, se muestran múltiples hojas de metadatos provenientes de múltiples fuentes de datos.Ver, por ejemplo,la Fig. 14 (Oracle), la Fig. 15, (Salesforce), y la Fig. 16 (Mongo).
Consulta entre bases de datos con respecto a objetos de campo con alias
Refiriéndose a la Fig. 17, una consulta entre bases de datos descrita en este documento almacena las consultas de referencia como tablas con alias como las de la columna D. Los puntos de unión se definen utilizando las fórmulas de referencia de Microsoft Excel usando el signo igual para hacer referencia al campo correspondiente desde donde ese campo podría potencialmente extraer. En este ejemplo específico, los alias de la tabla son los mismos que los nombres de las hojas de metadatos que se declararon anteriormente. Coinciden textualmente en el nombre. La celda resaltada, F26, contiene una fórmula para otra hoja de trabajo denominada "bibomd_sforce" en la celda E84. Esta referencia/mapeo se utiliza para "unir" los conjuntos de datos resultantes con alias en la columna D como tablas.
Selección y construcción de campos de consulta entre bases de datos
Después de que XDB recupera y consulta todas las fuentes de datos respectivas, el motor XDB necesita construir un nuevo conjunto de resultados. El nuevo conjunto de resultados se basa en las asignaciones de campos definidas en la hoja de metadatos. Los campos hacen referencia a las hojas de metadatos a través de la metodología de fórmula de referencia.
Refiriéndose a la Fig. 18, si uno fuera a mapear AccountNumber como un campo del conjunto de resultados de Salesforce, el sistema utilizaría una fórmula de referencia a la hoja de trabajo "bibomd_sforce" dirigida a la celda E90. El proceso de mapeo generaría un conjunto de resultados agregados a partir de las distintas fuentes de datos.

Claims (13)

REIVINDICACIONES
1. Un sistema informático para implementar un lenguaje de programación basado en hojas de cálculo adaptado para la generación de informes, dicho sistema que comprende:
un ordenador en red que comprende:
un procesador;
un sistema operativo configurado para ejecutar instrucciones ejecutables;
un dispositivo de memoria; y
una hoja de cálculo de plantilla de diseño de informes que contiene una hoja de trabajo de plantilla y una hoja de trabajo de metadatos,
en el que dicha hoja de trabajo de plantilla comprende etiquetas que designan funciones de procedimiento que especifican el contenido y la forma de un informe, en el que dichas etiquetas comprenden una etiqueta que designa un comienzo de un bucle, un final de un bucle, un comienzo de un bucle anidado, un final de un bucle anidado o un salto de página, y
en el que dicha hoja de trabajo de metadatos comprende una definición de uno o más conjuntos de datos externos, filtros de búsqueda y filtros de clasificación; y
un programa informático que incluye instrucciones realizables por el sistema operativo y ejecutables por el procesador para crear un entorno para implementar un lenguaje de programación basado en hojas de cálculo para la generación de informes, en el que en dicho entorno el lenguaje de programación basado en hojas de cálculo utiliza métodos de etiquetado dentro de la hoja de cálculo de plantilla de diseño de informes, dicho programa informático que comprende:
un primer módulo de software que comprende un intérprete de software configurado para leer dichas etiquetas (160)
para determinar las funciones de procedimiento a ejecutar en una nueva hoja de cálculo que sirve como base del informe de modo que el intérprete de software especifica el contenido y el formato del informe interpretando las funciones de procedimiento (180) que definen el
contenido y el formato del informe, en el que el intérprete de software lee las etiquetas en la hoja de trabajo de plantilla de la hoja de cálculo de plantilla de diseño de informes para determinar las funciones de procedimiento a ejecutar en la nueva hoja de cálculo en la que el intérprete de software (i) genera un formulario basado en parámetros (110)
basado en la hoja de metadatos que da
a un usuario la capacidad de filtrar y limitar un conjunto de datos y/o clasificar un conjunto de datos resultante (120) y
(ii) importa la hoja de trabajo de plantilla (140)
y la fusiona con uno o más conjuntos de datos externos,
para crear una nueva hoja de cálculo (190) que sirve como base del informe resultante que se entregará al usuario;
un segundo módulo de software configurado para almacenar referencias al uno o más conjuntos de datos externos designados, en el que dichas referencias a cada conjunto de datos externo designado se crean a través de fórmulas basadas en celdas adecuadas en la hoja de trabajo de plantilla de la hoja de cálculo de plantilla de diseño de informes; y
un tercer módulo de software configurado para generar dicho informe (195),
en el que las funciones de procedimiento designadas por las etiquetas se aplican a la nueva hoja de cálculo como parte de la generación del informe, en el que dicho informe está en el formato de una aplicación de hoja de cálculo, una aplicación de procesamiento de textos, un archivo de texto plano o un archivo pdf.
2. El sistema de la reivindicación 1, en el que el uno o más conjuntos de datos externos designados son bases de datos.
3. El sistema de la reivindicación 2, en el que una o más de las bases de datos son bases de datos relaciónales, bases de datos no relacionales, bases de datos orientadas a objetos, bases de datos de objetos, bases de datos de modelo entidad-relación, bases de datos asociativas o bases de datos XML.
4. El sistema de la reivindicación 1, en el que uno o más conjuntos de datos externos designados son conjuntos de datos tabulares.
5. El sistema de la reivindicación 4, en el que el uno o más de los conjuntos de datos tabulares comprenden archivos de texto separados por comas, archivos de texto delimitados por tabulaciones o archivos binarios con un conjunto de datos nativos integrado con un conjunto de datos estructurados tabulares.
6. El sistema de la reivindicación 1, en el que el intérprete de software está configurado para interpretar las funciones de procedimiento para ejecutar una consulta.
7. El sistema de la reivindicación 6, en el que dicha consulta incluye opcionalmente uno o ambos de: parámetros de búsqueda y clasificación.
8. El sistema de la reivindicación 6, que comprende además un módulo de software para guardar la consulta para su ejecución posterior.
9. El sistema de la reivindicación 8, en el que la consulta guardada está representada por una URL que ejecuta la consulta cuando se activa.
10. El sistema de la reivindicación 1, en el que la hoja de cálculo es cualquier versión de Microsoft Excel, cualquier versión y derivado de OpenOffice Calc, o cualquier versión y derivado de Lotus 1-2-3.
11. El sistema de la reivindicación 1, en el que el tercer módulo de software está configurado además para generar el informe como datos binarios en forma de una o más hojas de cálculo, documentos XML, documentos HTML, documentos de software de informes, documentos de procesador de textos o documentos de software de presentación.
12. El sistema de la reivindicación 1, en el que el intérprete de software está configurado además para, después de leer dichas etiquetas para determinar las funciones de procedimiento, eliminar dichas etiquetas como parte de la generación del informe.
13. Un método para la generación de informes, operado por un aparato informático en red que comprende: un procesador;
un dispositivo de memoria que almacena una hoja de cálculo de plantilla de diseño de informes que contiene una hoja de trabajo de plantilla y una hoja de trabajo de metadatos;
dicha hoja de trabajo de plantilla comprende etiquetas que designan funciones de procedimiento que especifican el contenido y la forma de un informe, en el que dichas etiquetas comprenden una etiqueta que designa un comienzo de un bucle, un final de un bucle, un comienzo de un bucle anidado, un final de un bucle anidado o un salto de página; y
en el que dicha hoja de trabajo de metadatos comprende una definición de uno o más conjuntos de datos externos, filtros de búsqueda y filtros de clasificación;
el método que comprende, por el procesador:
leer dichas etiquetas (160)
para determinar las funciones de procedimiento a ejecutar en una nueva hoja de cálculo que sirve como base del informe de modo que el intérprete de software especifica el contenido y el formato del informe interpretando las funciones de procedimiento (180) que definen el contenido y el formato del informe, en el que el intérprete de software lee las etiquetas en la hoja de trabajo de plantilla de la hoja de cálculo de plantilla de diseño de informes para determinar las funciones de procedimiento a ejecutar en la nueva hoja de cálculo en la que el intérprete de software (i) genera un formulario basado en parámetros (110)
basado en la hoja de metadatos que da
a un usuario la capacidad de filtrar y limitar un conjunto de datos y/o clasificar un conjunto de datos resultante y (ii) importa la hoja de trabajo de plantilla (140) y la fusiona con uno o más conjuntos de datos externos, para crear una nueva hoja de cálculo (190) que sirva como base del informe resultante que se entregará al usuario;
almacenar referencias al uno o más conjuntos de datos externos designados, en el que dichas referencias a cada conjunto de datos externo designado se crean a través de fórmulas basadas en celdas adecuadas en la hoja de trabajo de plantilla de la hoja de cálculo de plantilla de diseño de informes; y
generar dicho informe (195),
en el que las funciones de procedimiento designadas por las etiquetas se aplican a la nueva hoja de cálculo como parte de la generación del informe, en el que dicho informe está en el formato de una aplicación de hoja de cálculo, una aplicación de procesamiento de textos, un archivo de texto plano o un archivo pdf.
ES12861998T 2011-12-29 2012-12-27 Spreadsheet-based programming language adapted for report generation Active ES3032661T3 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161581515P 2011-12-29 2011-12-29
PCT/US2012/071788 WO2013101914A1 (en) 2011-12-29 2012-12-27 Spreadsheet-based programming language adapted for report generation

Publications (1)

Publication Number Publication Date
ES3032661T3 true ES3032661T3 (en) 2025-07-23

Family

ID=48698608

Family Applications (1)

Application Number Title Priority Date Filing Date
ES12861998T Active ES3032661T3 (en) 2011-12-29 2012-12-27 Spreadsheet-based programming language adapted for report generation

Country Status (14)

Country Link
US (1) US10824802B2 (es)
EP (2) EP2798487B1 (es)
JP (1) JP6134737B2 (es)
KR (1) KR101977972B1 (es)
CN (1) CN104285209B (es)
AU (1) AU2012362383B2 (es)
CA (1) CA2862387C (es)
ES (1) ES3032661T3 (es)
HR (1) HRP20250753T1 (es)
HU (1) HUE072416T2 (es)
PL (1) PL2798487T3 (es)
RS (1) RS67042B1 (es)
SM (1) SMT202500242T1 (es)
WO (1) WO2013101914A1 (es)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483456B2 (en) 2011-09-19 2016-11-01 Jeffrey Dean Honsowetz Grid data management
US9292571B1 (en) * 2013-01-18 2016-03-22 Microstrategy Incorporated Joining database tables
US9244971B1 (en) 2013-03-07 2016-01-26 Amazon Technologies, Inc. Data retrieval from heterogeneous storage systems
US9189515B1 (en) * 2013-03-08 2015-11-17 Amazon Technologies, Inc. Data retrieval from heterogeneous storage systems
US9164977B2 (en) * 2013-06-24 2015-10-20 International Business Machines Corporation Error correction in tables using discovered functional dependencies
US9600461B2 (en) * 2013-07-01 2017-03-21 International Business Machines Corporation Discovering relationships in tabular data
USD749618S1 (en) * 2013-07-19 2016-02-16 Robert Bosch Gmbh Display screen with a graphical user interface
US9830314B2 (en) 2013-11-18 2017-11-28 International Business Machines Corporation Error correction in tables using a question and answer system
US10013396B2 (en) * 2015-01-29 2018-07-03 Dropbox, Inc. Modifying native documents with formulas in a preview
US10095740B2 (en) 2015-08-25 2018-10-09 International Business Machines Corporation Selective fact generation from table data in a cognitive system
JP1553723S (es) * 2015-10-30 2016-07-11
JP1553722S (es) * 2015-10-30 2016-07-11
CN105488019B (zh) * 2015-11-30 2018-05-29 云南电网有限责任公司电力科学研究院 一种电能质量监测装置检测报告自动生成方法
CN106021303B (zh) * 2016-05-05 2019-12-17 北京轻元科技有限公司 一种用于持续集成报告发布的系统和方法
US10303757B2 (en) * 2016-08-19 2019-05-28 Cognex Corporation Apparatuses, systems, and methods for providing a visual program for machine vision systems
KR102035277B1 (ko) * 2016-10-28 2019-10-22 단국대학교 천안캠퍼스 산학협력단 화장품 노출인자 분석 장치 및 방법
CN106446598A (zh) * 2016-11-15 2017-02-22 上海派森诺生物科技股份有限公司 项目报告自动生成方法
US10540153B2 (en) 2016-12-03 2020-01-21 Thomas STACHURA Spreadsheet-based software application development
US10216494B2 (en) 2016-12-03 2019-02-26 Thomas STACHURA Spreadsheet-based software application development
US11726753B2 (en) 2016-12-03 2023-08-15 Thomas STACHURA Spreadsheet-based software application development
JP1606618S (es) * 2017-09-21 2018-06-11
US10877735B1 (en) 2017-09-25 2020-12-29 Amazon Technologies, Inc. Automated generation of software applications using analysis of submitted content items
CN107845033A (zh) * 2017-11-08 2018-03-27 上海壹账通金融科技有限公司 风控报告生成方法、装置、设备及计算机可读存储介质
US10740550B1 (en) 2017-11-20 2020-08-11 Amazon Technologies, Inc. Network-accessible data management service with web-of-sheets data model
JP7153725B2 (ja) * 2017-12-03 2022-10-14 スタフラ,トーマス スプレッドシートに基づくソフトウェアアプリケーションの開発
US10705805B1 (en) 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
CN110083339A (zh) * 2018-01-26 2019-08-02 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
US11216706B2 (en) * 2018-03-15 2022-01-04 Datorama Technologies Ltd. System and method for visually presenting interesting plots of tabular data
CN108647196B (zh) * 2018-04-16 2022-10-25 北京航空航天大学 数字飞行器仿真报告中表格的人工智能生成方法和装置
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
CN109241514A (zh) * 2018-09-10 2019-01-18 深圳市泰洲科技有限公司 数据自动导入方法、装置、计算机设备及存储介质
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
US12223262B1 (en) * 2019-03-27 2025-02-11 Amazon Technologies, Inc. Expressions management service for data sheet-based applications
CN110427599A (zh) * 2019-06-06 2019-11-08 北京辰森世纪科技股份有限公司 报表小计的统计方法及装置、存储介质、电子装置
EP4004761A1 (en) * 2019-07-22 2022-06-01 Ming Zou Computer implemented method, computer program and physical computing environment
CN111126019B (zh) * 2019-11-28 2024-01-05 泰康保险集团股份有限公司 基于模式定制的报表生成方法、装置和电子设备
CN111178027B (zh) * 2019-12-09 2023-03-31 北京尊冠科技有限公司 基于在线创建模板和在线指定数据的报告生成系统和方法
CN111144082B (zh) * 2019-12-23 2023-05-12 中国建设银行股份有限公司 多表格迭代计算方法、装置、电子设备及存储介质
CN111158650B (zh) * 2019-12-25 2023-06-27 中国建设银行股份有限公司 报表模板、报表的生成方法、装置
CN111241091B (zh) * 2019-12-29 2023-05-16 云帐房网络科技有限公司 一种商业报表数据的分布式列式数据存储转换方法及系统
TWI796545B (zh) * 2020-01-15 2023-03-21 訊光科技系統股份有限公司 文件式智能程式產生方法及其電子裝置
USD974370S1 (en) * 2020-04-03 2023-01-03 Markup Llc Display screen portion with graphical user interface
CN111680478B (zh) * 2020-06-17 2024-04-16 华自科技股份有限公司 基于组态软件的报表生成方法、装置、设备和存储介质
CN111723129B (zh) * 2020-06-24 2024-03-29 中国工商银行股份有限公司 报表生成方法、报表生成装置和电子设备
KR102230729B1 (ko) * 2020-08-31 2021-03-23 (주)비아이매트릭스 템플릿 기반 엑셀 문서 온라인 작업 시스템
CN112233498B (zh) * 2020-10-14 2023-01-06 烟台鼎钰电子科技有限公司 一种表格式可编程显示控制器
USD957452S1 (en) * 2020-11-19 2022-07-12 Autel Intelligent Technology Corp., Ltd. Display screen or portion thereof of a device with transitional graphical user interface
CN112541033B (zh) * 2020-12-01 2023-05-05 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备
KR102499832B1 (ko) * 2020-12-18 2023-02-15 (주)비아이매트릭스 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템
US12450426B1 (en) * 2020-12-21 2025-10-21 Mehrdad Samadani Method and system for cellular computation and display
CA3150102A1 (en) * 2021-02-24 2022-08-24 Think Research Corporation Systems, methods and devices for structured dynamic electronic forms
US11797430B2 (en) 2021-12-03 2023-10-24 T-Mobile Usa, Inc. Configuration-driven data conversion and hosting for software development systems and methods
US11599718B1 (en) 2022-03-23 2023-03-07 Acuitive Solutions, Inc. Database system for storing electronic spreadsheets
CN115169303B (zh) * 2022-06-16 2025-12-16 国网福建省电力有限公司经济技术研究院 一种报表的生成方法及终端
CN115408453B (zh) * 2022-09-14 2026-01-23 中国平安人寿保险股份有限公司 一种配置化报表生成方法、装置、计算机设备及存储介质
US12513551B2 (en) * 2022-11-15 2025-12-30 Rakuten Mobile, Inc. Generating a configuration dump report of a wireless network
CN116306545A (zh) * 2023-03-16 2023-06-23 中国建设银行股份有限公司 表格生成方法、装置、设备、介质及程序产品
CN117454862A (zh) * 2023-12-25 2024-01-26 青岛民航凯亚系统集成有限公司 一种基于引擎模式的报表生成方法及自助bi系统

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161656A (ja) 1997-11-27 1999-06-18 Asahi Chem Ind Co Ltd データベース検索・抽出システムおよびデータベース検索・抽出用制御プログラムを記録した記録媒体
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6631497B1 (en) 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6816630B1 (en) * 2000-05-22 2004-11-09 Electro-Sensors, Inc. System and method for creating and processing data forms
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
AU2002313103A1 (en) * 2002-05-16 2003-12-02 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US20040111666A1 (en) * 2002-12-05 2004-06-10 Hollcraft James G. Software replicator functions for generating reports
US20040221233A1 (en) 2003-04-29 2004-11-04 David Thielen Systems and methods for report design and generation
US6965978B2 (en) * 2003-05-15 2005-11-15 Microsoft Corporation Memory tracking tool
US7197696B1 (en) 2003-06-05 2007-03-27 Pavan Vidyadhar Muzumdar System, method and computer program product to populate data into spreadsheets and execute functions and programs within the same
US7694315B2 (en) * 2004-02-13 2010-04-06 Microsoft Corporation Schema-based machine generated programming models
US20060085444A1 (en) * 2004-10-19 2006-04-20 Microsoft Corporation Query consolidation for retrieving data from an OLAP cube
US7426688B2 (en) * 2004-11-02 2008-09-16 Hewlett-Packard Development Company, L.P. Embedded spreadsheet commands
US7487446B2 (en) 2004-11-10 2009-02-03 Microsoft Corporation Using a word processor with accounting data
US20060107196A1 (en) * 2004-11-12 2006-05-18 Microsoft Corporation Method for expanding and collapsing data cells in a spreadsheet report
US7647551B2 (en) * 2004-12-15 2010-01-12 Microsoft Corporation System and method for formatting a cell in response to data stored in a separate location
US20060136436A1 (en) * 2004-12-22 2006-06-22 At&T Corp. Arrangement enabling thin client to access and present data in custom defined reports
US7792847B2 (en) * 2005-09-09 2010-09-07 Microsoft Corporation Converting structured reports to formulas
US7805433B2 (en) * 2005-10-14 2010-09-28 Microsoft Corporation Multidimensional cube functions
JP4140919B2 (ja) * 2006-03-14 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表計算などの処理を行うシステムおよびその方法
US20080104542A1 (en) * 2006-10-27 2008-05-01 Information Builders, Inc. Apparatus and Method for Conducting Searches with a Search Engine for Unstructured Data to Retrieve Records Enriched with Structured Data and Generate Reports Based Thereon
JP2008234370A (ja) * 2007-03-21 2008-10-02 Just Syst Corp 文書処理装置及び文書処理方法
US8095870B2 (en) * 2007-06-06 2012-01-10 Oracle International Corporation Extensible document transformation language: an innovative way of generating business document and report
US20090055341A1 (en) 2007-08-22 2009-02-26 American Express Travel Related Services Company, Inc. Regulatory Survey Automation System (RSAS)
US8407668B2 (en) * 2007-10-26 2013-03-26 Microsoft Corporation Model based spreadsheet scripting language
US8341512B2 (en) * 2007-10-31 2012-12-25 Microsoft Corporation Method for capturing design-time and run-time formulas associated with a cell
US8856182B2 (en) * 2008-01-25 2014-10-07 Avaya Inc. Report database dependency tracing through business intelligence metadata
US9104738B2 (en) * 2008-06-19 2015-08-11 Tropare, Inc. Leveraging collaborative cloud services to build and share apps
US8788928B2 (en) * 2009-07-15 2014-07-22 Clandscale, Inc. System and methodology for development of stream processing applications utilizing spreadsheet interface
AU2010201974A1 (en) * 2009-10-23 2011-05-12 Iconstruct (Aus) Pty Ltd System and Method for Managing Information
CN102053975A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 数据库系统和跨数据库查询优化方法
US20110173529A1 (en) * 2010-01-11 2011-07-14 Microsoft Corporation Template processing engine for business systems
JP2011227631A (ja) * 2010-04-16 2011-11-10 Wincube Co Ltd 業務管理用システム
US8843814B2 (en) * 2010-05-26 2014-09-23 Content Catalyst Limited Automated report service tracking system and method
US8677230B2 (en) * 2011-09-15 2014-03-18 Morgan Stanley Network-based data consolidation, calculation and reporting engine

Also Published As

Publication number Publication date
KR20140126311A (ko) 2014-10-30
SMT202500242T1 (it) 2025-09-12
CN104285209A (zh) 2015-01-14
EP2798487A1 (en) 2014-11-05
EP2798487C0 (en) 2025-05-07
EP2798487A4 (en) 2015-09-09
RS67042B1 (sr) 2025-08-29
HRP20250753T1 (hr) 2025-11-07
AU2012362383B2 (en) 2018-05-10
JP2015504213A (ja) 2015-02-05
CN104285209B (zh) 2018-01-30
HK1205303A1 (en) 2015-12-11
HUE072416T2 (hu) 2025-11-28
EP4571566A2 (en) 2025-06-18
CA2862387A1 (en) 2013-07-04
EP4571566A3 (en) 2025-09-03
JP6134737B2 (ja) 2017-05-24
WO2013101914A1 (en) 2013-07-04
EP2798487B1 (en) 2025-05-07
AU2012362383A1 (en) 2014-07-24
KR101977972B1 (ko) 2019-05-14
CA2862387C (en) 2023-03-14
PL2798487T3 (pl) 2025-09-08
US20130290822A1 (en) 2013-10-31
US10824802B2 (en) 2020-11-03

Similar Documents

Publication Publication Date Title
ES3032661T3 (en) Spreadsheet-based programming language adapted for report generation
US20130166550A1 (en) Integration of Tags and Object Data
US8510341B2 (en) System, method and structures for a reusable custom-defined nestable compound data type for construction of database objects
US20120011118A1 (en) Method and system for defining an extension taxonomy
US8341191B2 (en) Methods and structures for utilizing reusable custom-defined nestable compound data types to permit product variations within an existing taxonomy
US20110087708A1 (en) Business object based operational reporting and analysis
US9495475B2 (en) Method of representing an XML schema definition and data within a relational database management system using a reusable custom-defined nestable compound data type
US20110072340A1 (en) Modeling system and method
US20140136472A1 (en) Methodology supported business intelligence (BI) software and system
Drum et al. Accounting automation and insight at the speed of thought
Sattar et al. Incorporating nosql into a database course
He et al. Application of the indent conversion based on XML and DOM
Maslyuk Exam Ref 70-778 Analyzing and Visualizing Data with Microsoft Power BI
HK1205303B (en) Spreadsheet-based programming language adapted for report generation
Golobisky et al. Fundamentals for the Automation of Object-Relationa Database Design
Embarak Data gathering and cleaning
Choo et al. Data Warehouse Design and Implementation for Research Literature Mining
Bramer Using a MySQL Database I
Willman Introduction to Handling Databases
Moraschi Business Intelligence with MicroStrategy Cookbook
Sattar et al. Bits& Bytes
Zehoo Oracle xml support
Chen KEMI-TORNIO UNIVERSITY OF APPLIED SCIENCES: Design and Implementation of Cafeteria Menu System Based on PHP
Muntean et al. Redesigning a Flexible Material Master Data Application with Language Dependency
Naik et al. Custom Annotation for Execution of Data Manipulation Commands in a Generic Manner–A Case Study