CN104285209A - 适用于报告生成的基于电子表格的编程语言 - Google Patents

适用于报告生成的基于电子表格的编程语言 Download PDF

Info

Publication number
CN104285209A
CN104285209A CN201280069713.2A CN201280069713A CN104285209A CN 104285209 A CN104285209 A CN 104285209A CN 201280069713 A CN201280069713 A CN 201280069713A CN 104285209 A CN104285209 A CN 104285209A
Authority
CN
China
Prior art keywords
report
electrical form
software module
inquiry
computer
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.)
Granted
Application number
CN201280069713.2A
Other languages
English (en)
Other versions
CN104285209B (zh
Inventor
迈克尔·J·陈
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
Publication of CN104285209A publication Critical patent/CN104285209A/zh
Application granted granted Critical
Publication of CN104285209B publication Critical patent/CN104285209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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 positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Abstract

用于实现适用于报告生成的基于电子表格的编程语言的基于计算机的系统、软件和方法,所述系统包括:可选地联网的计算机,该计算机包括处理器、配置为执行可执行指令的操作系统以及存储器设备;计算机程序,其包括指令,该指令可由数字处理设备执行以创建用以实现用于报告生成的基于电子表格的编程语言的环境,其中所述环境包括:用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;用于解释过程函数的软件模块,其中在报告设计模板中经由标签来指定过程函数;以及用于生成报告的软件模块。

Description

适用于报告生成的基于电子表格的编程语言
相关申请的交叉引用
本申请要求2011年12月29日提交的美国临时申请第61/581,515号的权益,该申请通过引用而全文并入于此。
发明背景
现有的企业报告工具要求用户密切参与第三方应用和开发环境中的整个设计过程。为了创建报告,用户必须在软件开发领域拥有一定水平的技能。在开发完成之后,现有的分发手段有限。如果一个机构采用了任何第三方报告工具(例如,Crystal Reports),则管理员必须在每台有权访问报告的单个计算机上安装软件,并且开放对数据库的直接访问。这潜在地限制了应用的地理位置,并且潜在地创造了安全漏洞的机会。
发明内容
对于增加对报告设计和报告本身的可访问性的简单企业报告开发平台、环境和工具存在着长期以来未得到满足的需求。有效的企业报告工具有助于设计的便利性,以及简单、安全的分发。本文所公开的发明使得用户能够通过利用他们已有的电子表格知识,以及通过将该知识基础最大化并使用标记标签语言对其加以扩展来设计报告。系统利用简单的文件系统结构来表示存储报告的层次,并通过基于网络的用户界面来显示这些对象。当分发统一资源定位符(URL)时,人们可以将一个数据集或多个数据集安全地筛选、排序和格式化成通用电子表格。
因此,在一方面,本文公开了用于实现适用于报告生成的基于电子表格的编程语言的基于计算机的系统,所述系统包括:可选地联网的计算机,其包括处理器、配置用于执行可执行指令的操作系统,以及存储器设备;计算机程序,其包括指令,该指令可由数字处理设备执行以创建用以实现用于报告生成的基于电子表格的编程语言的环境,其中所述环境包括:用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;用于解释过程函数的软件模块(例如,解释器(interpreter)),其中在报告设计模板中经由标签来指定过程函数;以及用于生成报告的软件模块。在一些实施方式中,所述一个或多个外部数据集是数据库。在进一步的实施方式中,所述一个或多个数据库是关系数据库、非关系数据库、面向对象的数据库、对象数据库、实体-关系模型数据库、关联数据库或XML数据库。在一些实施方式中,一个或多个外部数据集是表格式数据集。在进一步的实施方式中,一个或多个表格式数据集是由逗号分隔的文本文件、由制表符划界的文本文件或者具有嵌入了表格结构数据集的本地数据集(nativedataset)的二进制文件。在一些实施方式中,所述用于储存一个或多个指定的外部数据集的结构的软件模块将该结构储存为符号引用(symbolic reference)。在一些实施方式中,软件解释器解释所述过程函数以执行查询。在进一步的实施方式中,查询可选地包括以下之一或全部两者:搜索参数和排序参数。在一些实施方式中,环境进一步包括用于保存查询以供随后执行的软件模块。在进一步的实施方式中,每个保存的查询由URL所表示,该URL在被激活时执行查询。在一些实施方式中,所述报告设计模板是电子表格。在进一步的实施方式中,所述电子表格是Microsoft Excel的任何版本。在其他实施方式中,所述电子表格是OpenOffice Calc的任何版本和派生物(derivative)。在其他实施方式中,所述电子表格是Lotus1-2-3的任何版本和派生物。在一些实施方式中,所述用于生成报告的软件模块将报告设计模板的属性应用于报告。在一些实施方式中,所述用于生成报告的软件模块将报告生成为一个或多个电子表格、XML文档、HTML文档、报告软件文档、文处理程序文档或演示软件文档形式的二进制数据。
在另一方面,本文公开了计算机可读介质,其编码有计算机程序,该计算机程序包括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;软件解释器,其用于解释过程函数,其中在报告设计模板中经由标签来指定过程函数;以及用于生成报告的软件模块。在一些实施方式中,所述用于生成报告的软件模块将报告设计模板的属性应用于报告。在一些实施方式中,编码是永久的、基本上永久的、半永久的或非瞬态的。在一些实施方式中,所述软件解释器解释所述过程函数以执行查询。在进一步的实施方式中,查询可选地包括以下之一或全部两者:搜索参数和排序参数。在一些实施方式中,报告环境进一步包括用于保存查询以供随后执行的软件模块。在进一步的实施方式中,每个保存的查询由URL所表示,该URL在被激活时执行查询。
在又一方面,本文公开了生成报告的计算机实现方法,包括以下步骤:在保留于计算机存储器中的电子表格内储存一个或多个指定的外部数据集的结构;在所述保留于计算机存储器中的电子表格内通过基于单元格的公式对每个数据集进行引用;以及通过软件模块来解释一个或多个报告设计模板以格式化输出。在一些实施方式中,解释一个或多个报告设计模板以格式化输出的步骤包括以下步骤:将一个或多个模板读入存储器中;将定义编程指令的一个或多个标签读入存储器中;将一个或多个数据集读入存储器中;生成新电子表格;将模板的属性应用于所述新电子表格;基于每个数据集向所述新电子表格中插入行和列;执行所定义的编程指令;以及按二进制数据格式输出新电子表格。在一些实施方式中,所述输出是报告。在进一步的实施方式中,该报告是一个或多个电子表格、XML文档、HTML文档、报告软件文档、文字处理程序文档或演示软件文档形式的二进制数据。
在另一方面,本文公开了计算机可读介质,其编码有计算机程序,该计算机程序包括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:用于在电子表格中通过基于单元格的公式来引用一个或多个数据集的软件模块;以及用于解释一个或多个报告设计模板以格式化输出的软件模块,其中在报告设计模板中经由标签来指定过程函数。在一些实施方式中,所述基于单元格的公式在一定程度上由用户输入。在一些实施方式中,所述基于单元格的公式在一定程度上通过自动生成向导由计算机系统输入。在一些实施方式中,所述过程函数在一定程度上由用户输入。在一些实施方式中,所述过程函数在一定程度上通过自动生成向导由计算机输入。在一些实施方式中,输出是报告。在一些实施方式中,编码是永久的、基本上永久的、半永久的或非瞬态的。
在又一方面,本文公开了用以标识用于报告生成的编程指令的计算机实现方法,该方法包括在计算机存储器(例如,非易失性和非瞬态存储器)中的电子表格内储存特定标签以标识编程指令,所述编程指令选自以下各项:指定输入;指定输出;指定数学计算;指定指令的有条件执行;以及指定指令的重复。在一些实施方式中,以标签对来利用一个或多个标签,所述标签对包含开始标签和结束标签。在一些实施方式中,以单一标签来利用一个或多个标签。
附图说明
图1示出用于实现适用于报告生成的基于电子表格的编程语言的非限制性过程;在本例中是这样的过程:其中将元数据(metadata)工作表和设计模板工作表储存在电子表格中,并且输出是电子表格形式的报告。
图2示出电子表格公式的非限制性示例。
图3示出简单模板的非限制性示例;在本例中是用于基本客户数据的模板。
图4示出在通过解释器运行外部数据集并根据标签呈现专有过程语言之后,图3的模板的输出的非限制性示例。
图5示出复杂报告模板的非限制性示例;在本例中是具有用附加的<detail></detail>标签来表示的嵌套循环的报告模板。
图6示出图5的模板的非限制性示例,其中突出显示对外部数据集的引用。
图7示出在将外部数据集轮询到解释器中之后,来自图5和图6的模板的所得报告的非限制性示例。
图8示出来自图7的新形成的公式的非限制性示例,以演示解释器基于所得的外部数据集和用于迭代的相应行插入来内省和重新调整单元格的值。
图9示出电子表格中的元表(metasheet)以及搜索参数和排序参数的定义的非限制性示例。
图10示出以HTML形式呈现的用于筛选和排序外部数据集的搜索参数和排序参数的非限制性示例。在本例中,参数还被保存为查询标记并且可由URL引用。
图11示出模板的非限制性示例;在本例中,是包括实施例1中所介绍的电子表格标记语言的模板。
图12示出实施例1中所介绍的报告的非限制性示例;在本例中,是具有嵌入到相应单元格中的图像和条形码的报告。
图13示出元数据表的非限制性示例;在本例中,是这样的元数据表:其储存要由跨数据库查询引擎发出的不同查询的列表,以便进行如实施例5中所描述的跨数据库查询。
图14至图16示出如实施例5中所描述的跨数据库查询的成分子查询的非限制性示例;在本例中,是来自于包括Oracle、Salesforce和Mongo在内的多个不同数据源的元数据表。
图17示出如实施例5中所描述的跨数据库表格元数据表的非限制性示例。
图18示出如实施例5中所描述的跨数据库字段选择的非限制性示例。
具体实施方式
各种定义
除非另有定义,本文使用的所有技术术语全都具有与本发明所属领域普通技术人员所公认的理解相同的含义。在本说明书和随附权利要求书中所使用的单数形式“一”、“一个”和“此”包括复数指代,除非上下文另有明确规定。本文对“或”的任何提及都旨在包含“和/或”,除非另有说明。
本文所使用的“数据集”意指一组行或记录。
本文所使用的“工作表(worksheet)”意指电子表格程序中的单页或单表。
本文所使用的“行”意指在表格、工作表、电子表格或数据库中的单一的、隐式结构的数据记录。在一些实施方式中,一行数据是在工作表中水平延伸的一组单元格。
本文所使用的“列”意指在工作表中垂直延伸的一组单元格。
本文所使用的“单元格”指出向表格、工作表、电子表格或数据库中输入数据之处。在一些实施方式中,单元格位于行与列的交叉点处。
本文所使用的“公式”意指用于计算数值的数学等式。
基于电子表格的编程语言
在一些实施方式中,本文公开的系统、平台、环境、应用和方法创建或利用基于电子表格的编程语言。在一些实施方式中,电子表格编程语言是遵循电子表格内的某些标签方法的语言,其允许外部解释器将标签和函数抽象成不同类型的编程函数或实体。
在一些实施方式中,合适的电子表格包含电子表格内的多个工作表。在进一步的实施方式中,一个指定的工作表表示一个或多个外部数据集,以及用于从所述一个或多个数据集进行检索的手段。在进一步的实施方式中,在电子表格中存在附加的工作表用于模板设计,所述模板设计在必要时引用元数据工作表。
图1描绘了用于通过实现基于电子表格的编程语言来生成报告的非限制性示例过程。图1的示例过程包括呈现基于参数的网页表单以容纳用户输入的第一阶段。在一些实施方式中,系统将电子表格105载入存储器中,并对其中所含的元数据表(metadata sheet)100进行内省(introspect)。从元数据表中,系统找出用于筛选和排序的相应字段。在进一步的实施方式中,系统继而呈现网页110,该网页110显示待排序的可用字段。这些参数被准备好用于一旦用户执行报告生成120,就馈入解释器中。
图1的示例过程还包括报告生成的第二阶段,该第二阶段为多重阶段,具有阶段(A)–阶段(G):
(A)系统基于用户定义的参数来检索一个或多个外部数据集。在一些实施方式中,系统拉入报告上所有可用的参数,并通过查询130的手段从外部数据源提取数据。在进一步的实施方式中,在多种不同的数据源上执行查询,所述数据源包括但不限于关系数据库、在线网络服务、LDAP数据库和平面文件(flat file)。一个特定实施方式是针对关系数据库(例如,Oracle)执行SQL语句。在该实施方式中,SQL语句由解释器提交至Oracle RDBMS,并且RDBMS返回按用户已在参数页面(例如,HTML表单)中定义的参数排序的经筛选结果集。
(B)解释器将模板工作表读入存储器中。在一些实施方式中,系统向存储器中读入每个可用的模板工作表140。在一些实施方式中,一个或多个模板工作表例如位于与元数据工作表105相同的电子表格中。在其他实施方式中,一个或多个模板工作表例如位于单独的电子表格145中。在进一步的实施方式中,每个模板工作表具有多个属性,这些属性包括但不限于:页面方向、打印格式、页面尺寸、工作表名称、默认字体、背景颜色以及其他功能。在一些实施方式中,这些属性保留在存储器中,以供应用于作为目标的所得二进制输出。
(C)解释器解析每个工作表,并将所有标签读入存储器中。在一些实施方式中,随着解释器遍历每个工作表,其读取针对电子表格160内的所有模板工作表的相应标签。在进一步的实施方式中,解释器继而标识和标记要运行过程函数的行和列。
(D)解释器创建新报告,并将来自模板的每个工作表复制到指定的新报告中,但将元数据表排除在外。在一些实施方式中,解释器创建新电子表格来充当要递送给用户170的所得报告的基础。在进一步的实施方式中,系统在目标报告中创建一个新工作表,但元数据工作表除外。在进一步的实施方式中,解释器将来自模板的所有系统属性从每一个源表复制到在目标报告内新形成的工作表中。
(E)解释器插入涉及指定标签和外部数据集尺寸的行和列。在一些实施方式中,解释器根据每一工作表的外部数据集尺寸来重新计算所需的行数。例如,如果模板具有定义的待循环行数3,而结果集含有10个结果,则解释器将会向目标工作表中插入30个行。在进一步的实施方式中,系统向目标工作表中插入确定数目的行和列。随着系统插入行和列,其向存储器中创建索引,以标识涉及原始行数和列数的行数和列数。
(F)解释器在已插入数据行和列之后对每个单元格进行内省。在一些实施方式中,系统继而通过单元格解析器来扫描每个单元格,以确定单元格是否具有公式180。在进一步的实施方式中,如果单元格具有公式,则本发明分解单元格引用,以查看是否引用了一个或多个外部数据集。在进一步的实施方式中,如果引用了一个或多个外部数据集,则从一个或多个外部数据集中复制数据,并取代公式中的单元格值。在其他实施方式中,如果单元格引用没有引用外部数据集,则继而相对于当前位置重新计算单元格行和列。例如,在引用模板中,单元格C5中的原始公式可以潜在地表示“=A5+B2”,但由于已插入的行数,单元格C105中的公式需要新公式“=B105+B102”。
(G)清理。在一些实施方式中,最后步骤是清理指定报告。在进一步的实施方式中,移除保留在目标行中的用于针对过程函数的引用或用作针对外部数据集的引用的任何标记标签。这留下了洁净的电子表格,该电子表格将外部数据集并入到相应单元格中,并运行经过指定的迭代次数,同时建立必要的索引来标记和指定相应行集的位置。
外部数据集
在一些实施方式中,本文公开的系统、平台、环境、应用和方法访问、读取和储存一个或多个指定的外部数据集的结构。在一些实施方式中,访问、读取和储存一个数据集的结构。在其他实施方式中,同时地、基本上同时地或连续地访问、读取和储存多个数据集的结构。在各个实施方式中,访问、读取和储存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个或更多个数据集(包括其中的增量)的结构。
在一些实施方式中,在电子表格内储存每个数据集的结构。在进一步的实施方式中,在电子表格中通过基于单元格的公式来创建对每个数据集的引用。许多数据集都适合于随同本文所公开的系统、平台、环境、应用和方法一起使用。举非限制性示例而言,合适的数据集包括表格式数据集和面向对象数据集。
在一些实施方式中,合适的表格式数据集包括诸如Oracle、Microsoft SQL Server、Informix、Sybase和MySQL等数据库。其他合适的数据库例如包括IBM DB2、Postgres和dBASE。在一些实施方式中,合适的表格式数据集包括平面文件,诸如字符划界的平面文件(例如,CSV、制表符划界等)、定长平面文件(例如,COBOL)、二进制平面文件以及专有ASCII平面文件(例如,DBF)。
在一些实施方式中,举非限制性示例而言,合适的面向对象数据集包括XML和JSON。
合适的数据集为任何尺寸。例如,在系统对数据集进行筛选和排序之前,数据集的尺寸潜在地达数亿行。在各个实施方式中,举非限制性示例而言,数据集为1、10、1x102、1x103、1x104、1x105、1x106、1x107、1x108、1x109、1x1010、1x1011、1x1012、1x1013、1x1014、1x1015、1x1016、1x1017、1x1018、1x1019、1x1020个行或更多行,包括其中的增量。
合适的数据集存在于多个位置中。在一些实施方式中,数据集是本地数据库或平面文件。在进一步的实施方式中,数据集存在于与本文所公开的软件相同的存储器或存储设备中。在进一步的实施方式中,数据集存在于与本文所公开的软件相同的网络(例如,LAN或WAN)中。在一些实施方式中,可经由因特网访问数据集。在进一步的实施方式中,数据集与第三方数据源(例如,云提供商)共存。
跨数据集查询功能
在一些实施方式中,本文公开的系统、平台、环境、应用和方法访问、读取和储存一个或多个指定的外部数据集的结构。在某些进一步的实施方式中,所述一个或多个外部数据集被保持在“存储器内”数据库(“in memory”database)中,该数据库不维持任何数据库存储机制。在一些实施方式中,系统在元数据对象中保持查询的完整列表,其中每个查询都符号地表示为单一表格。在进一步的实施方式中,当运行查询时,在将所有的独立结果集都转换成表格之后,系统将表格与附加处理上的层联结起来,以返回查询的最终结果集。在进一步的实施方式中,最终结果集用于创建报告。
举非限制性示例而言,这样的跨数据库查询发起多个同时查询,其中每个都符号地表示为单一表格。在各个实施方式中,跨数据库查询发起2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20个或更多个同时查询。在各个实施方式中,跨数据库查询发起10、20、30、40、50、60、70、80、90、100个或更多个同时查询,包括其中的增量。在各个进一步的实施方式中,跨数据库查询发起100、200、300、400、500、600、700、800、900、1000个或更多个同时查询,包括其中的增量。在进一步的各个实施方式中,跨数据库查询发起1000、2000、3000、4000、5000、6000、7000、8000、9000、10000个或更多个同时查询,包括其中的增量。根据本文提供的公开内容,本领域技术人员将会认识到,本文公开的跨数据库查询在元数据对象中保持任何合适数目的查询的列表,并且发起任何合适数目的同时查询。举进一步示例而言,每个结果集作为表格对象存在于存储器内数据库中,并且继而通过跨数据库引擎来处理和浏览所述表格对象以组合出最终结果集。
在一些实施方式中,跨数据库查询是基于要由跨数据库查询引擎发出的不同查询的列表或搭配。在进一步的实施方式中,这些查询储存在元数据表内。在进一步的实施方式中,用于每个子查询的查询组合是基于元数据表的字段标号,其中每个子查询(sub query)或子级查询(child query)是对数据库的直接查询。
在一些实施方式中,跨数据库查询将引用查询储存为别名表格。在进一步的实施方式中,使用电子表格引用公式来定义联结点,其中所述电子表格引用公式利用等号来引用可以潜在地从中拉取字段的对应字段。在进一步的实施方式中,在跨数据库查询引擎检索和查询了所有的相应数据源之后,该引擎构建新结果集。在一些实施方式中,所述新结果集是基于元数据表中所定义的字段映射,其中字段通过本文公开的引用公式方法来引用元数据表。
基于单元格的公式
在一些实施方式中,本文公开的系统、平台、环境、应用和方法利用基于单元格的公式来引用每个外部数据集。在诸如MicrosoftExcel、Open Office Calc和Google电子表格等电子表格程序中的基于单元格的公式利用数学等式来计算数值。根据本文所提供的公开内容,本领域技术人员将会认识到,这些程序通常用等号(=)来指定公式。基于单元格的公式例如是表示对另一单元格的一些类型的计算或引用的字符串。例如,参见图2。举例而言,单元格引用公式可构成单元格“A1”中的“=B2”。这仅仅是一个引用公式。举进一步示例而言,公式还可构成数学函数:“=1+2”。公式还可包含对要用于处理数学函数的单元格的混合和匹配:“=C12*13*C83”。每个电子表格都合并了基于单元格的解释器,以显示所得的这些公式的汇编。
例如,参考图3,在A3中突出显示的单元格具有含有以下项的公式:“=H2”。在该非限制性实施方式中,单元格H2被指定为代表性的样本数据,以引用外部数据集。举进一步示例而言,这个被引用的单元格用符号表示在被插入到目标报告中时来自外部数据集的数据映射位置。
过程函数
在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括过程函数,用以规定报告的内容和格式。
在一些实施方式中,执行一次过程函数。在其他实施方式中,循环执行过程函数。循环是将过程或语句重复特定次数或者重复直到特定事件发生为止的方式。在进一步的实施方式中,循环具有标记行起始和结束之处的标识符。在进一步的实施方式中,循环是嵌套的,以便将一个或多个循环嵌入在其他循环内。
在进一步的实施方式中,在报告设计模板中经由标签来指定过程函数。在各个实施方式中,标签为字母、数字、代码、单词、短语或符号。在进一步的各个实施方式中,由一可辨别字符或一系列字符诸如括号(例如,<、>、[、]、{、}、(、)等),来封闭或括住标签。在一些实施方式中,成对地利用标签。在进一步的实施方式中,一对标签包括开始标签和结束标签。在其他实施方式中,单个地使用标签。在一些实施方式中,由一个标签来指定过程函数。在其他实施方式中,由不止一个标签来指定过程函数。
以下是合适的标签及关联的过程函数的非限制性示例:
<i>或<item>,任一标签表示循环的开始。
</i>或</item>,任一标签表示循环的结束。
<d>或<detail>,任一标签表示嵌套循环的开始。
</d>或</detail>,任一标签表示嵌套循环的结束。
</p>或</pagebreak>,任一标签表示分页符。
在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括软件解释器,用以解释过程函数。在进一步的实施方式中,软件解释器通过读取报告设计模板中的标签来解释过程函数。
在一些实施方式中,解释器将标签读入系统中,并且能够例如执行以下功能:
1.呈现基于参数的表单,该表单给予用户筛选或缩小数据集和/或排序所得数据集的能力;以及
2.导入模板,并将其与外部数据集合并。在进一步的实施方式中,解释器继而读取所有的标签以理解过程函数,以便在新的指定电子表格上执行。在进一步的实施方式中,应用过程函数,并且新的指定电子表格继承来自包括单元格、行、列、工作表和电子表格在内的相应模板的属性。
报告设计模板
本文公开的系统、平台、环境、应用和方法利用任何合适的报告设计模板。在一些实施方式中,合适的模板遵循明确结构,该明确结构保留单一工作表作为元数据表,该元数据表含有外部数据集的属性。在进一步的实施方式中,存在其他模板工作表,其通过公式来引用定义的外部数据集,并结合标签来定义循环的开始和结束。
在一些实施方式中,报告设计模板是用户或开发者为了设计报告而创建的初始画布(canvas)。在进一步的实施方式中,模板包含以下各项:
1.元数据表;和
2.模板工作表。
在一些实施方式中,每个模板工作表带有标签和对外部数据集的符号引用。例如,它们含有用户可能用以生成报告的逻辑式,其涉及总和、平均值、比值或由电子表格所支持的其他复杂计算。
在一些实施方式中,每个模板代表带有样本数据的所得输出报告的潜在模样的表单。图3描绘了示例性的客户报告模板,该模板具有在行2和行4以及列G和列H中突出显示的系统保留标签行。在该实施方式中,系统保留行表示过程函数(带有<item></item>标签的行2和行4)或外部数据集(列G和列H)。在一些实施方式中,模板表示四个主要函数:
1.报告的审美表现;
2.循环行集范围;
3.外部数据集;以及
4.以公式形式嵌入在单元格内的逻辑式。
在一些实施方式中,随着解释器被载入并运行,每个模板在保持其相应的页面、行、列和单元格属性的同时,被复制到指定的输出电子表格中。在进一步的实施方式中,解释器将会读取一个或多个外部数据集,并将其映射到指定的输出电子表格内的每个目标模板工作表中,同时保持从原始模板工作表所设计的审美和逻辑函数。
图4描绘了基于图3的示例报告模板而生成的示例客户报告。在本例中,通过解释器运行外部数据集,并根据模板中的标签来呈现过程语言。
图5描绘了在性质上更加复杂的示例报告模板。在本例中,报告模板包括以附加的<detail></detail>标签表示的嵌套循环。
图6示出了图5的模板的非限制性示例,其中突出显示了对外部数据集的引用。
图7示出了在将外部数据集轮询到解释器中之后,来自图5和图6的模板的所得报告的非限制性示例。
图8示出了来自图7的新形成的公式的非限制性示例,以演示解释器基于所得的外部数据集和用于迭代的相应行插入来进行内省并重新调整单元格的值。
元数据表
在一些实施方式中,模板电子表格含有一个或多个元数据工作表。在进一步的实施方式中,每个元数据工作表包括以下各项:
1.一个或多个外部数据集的定义:所述一个或多个外部数据集的定义包括来自外部关系型DBMS的表格和字段。
2.搜索筛选器:搜索筛选器帮助将从外部数据源返回的结果集削减和限制成对用户更有价值的项目。
3.排序筛选器:排序筛选器将来自直接数据拉取的数据集排列和重新混洗(reshuffle)成经排序数组集合。
图9描绘了含有两个部分的示例性元数据表。在该非限制性实施方式中,一个部分被标记为排序选项。排序部分位于行27与行29之间。行29表示可能的排序选项,所述排序选项要由提供给用户的报告表单所加载。搜索部分通过行31-行33提供给用户。此外,在该实施方式中,这些部分中的每个部分都读入到系统中,并以HTML形式为用户创建应用,以供用户定义其输入参数。
图10描绘了该特定实施方式中所得的表单。
生成报告
本文公开的系统、平台、环境、应用和方法创建任何合适的报告。在一些实施方式中,报告是二进制形式的来自解释器的生成的输出。在各个进一步实施方式中,二进制形式是电子表格应用的二进制格式,所述电子表格应用包括但不限于:Excel95、Excel97、Excel2000、Excel XP、Excel2003、Excel2007、Excel2010、Open Office Calc1.0、Open Office Calc2.0和Open Office Calc3.0。在其他实施方式中,报告的二进制形式是文字处理应用的二进制格式。在一些实施方式中,报告是纯文本文件。在一些实施方式中,报告是PDF文件。
用途和应用
本文公开的系统、平台、环境、应用和方法适合于任何类型的针对多种数据源的特定查询(ad hoc query)以生成报告。在一些实施方式中,合适的查询针对范围广泛的不同外部数据集以生成报告。在进一步的实施方式中,合适的查询是跨数据库查询,其中本文公开的系统、平台、环境、应用和方法发起多个同时查询,每个查询都被符号地表示为单一表格。
计算机
在一些实施方式中,本文所述的系统、平台、环境、应用和方法包括计算机(例如,数字处理设备)或者对其的使用。在进一步的实施方式中,计算机包括一个或多个执行设备功能的硬件中央处理器(CPU)。在进一步的实施方式中,计算机进一步包括配置用于执行可执行指令的操作系统。在一些实施方式中,计算机可选地连接至计算机网络。在进一步的实施方式中,计算机可选地连接至因特网,以使得其访问万维网。在进一步的实施方式中,计算机可选地连接至云计算基础架构。在其他实施方式中,计算机可选地连接至内联网。在其他实施方式中,计算机可选地连接至数据存储设备。
根据本文的描述,举非限制性示例而言,合适的计算机包括服务器计算机、台式计算机、膝上型计算机、笔记本计算机、亚笔记本计算机、上网本计算机、上网平板计算机、机顶盒计算机、手持式计算机、因特网电器、移动智能电话、平板计算机以及个人数字助理。本领域技术人员将会认识到,许多智能电话都适合于在本文所述的系统中使用。本领域技术人员还将认识到,具有可选的计算机网络连通性的挑选出的电视机、视频播放器和数字音乐播放器适合于在本文所述的系统中使用。合适的平板计算机包括本领域中技术人员所知晓的具有小本、平板和可转换式配置的平板计算机。
在一些实施方式中,计算机包括配置为执行可执行指令的操作系统。操作系统例如为包括程序和数据在内的软件,其管理设备的硬件并为应用的执行提供服务。本领域技术人员将会认识到,举非限制性示例而言,合适的服务器操作系统包括FreeBSD、OpenBSD、Linux、Mac OS XWindows本领域技术人员将会认识到,举非限制性示例而言,合适的个人计算机操作系统包括 Mac OS和类UNIX操作系统诸如GNU/在一些实施方式中,操作系统是由云计算所提供。本领域技术人员还将认识到,举非限制性示例而言,合适的移动智能电话操作系统包括OS、Research InBlackBerryWindowsOS、WindowsOS、
在一些实施方式中,计算机包括存储和/或存储器设备。存储和/或存储器设备是一个或多个用于暂时地或永久地储存数据或程序的物理装置。在一些实施方式中,该设备为易失性存储器,并且需用电力来维持所存信息。在一些实施方式中,该设备为非易失性存储器,并且在数字处理设备未通电时依然保留所存信息。在进一步的实施方式中,非易失性存储器包括闪速存储器。在一些实施方式中,非易失性存储器包括动态随机存取存储器(DRAM)。在一些实施方式中,非易失性存储器包括铁电随机存取存储器(FRAM)。在一些实施方式中,非易失性存储器包括相变随机存取存储器(PRAM)。在其他实施方式中,举非限制性示例而言,该设备为存储设备,包括CD-ROM、DVD、闪速存储器设备、磁盘驱动器、磁带驱动器、光盘驱动器和基于云计算的存储。在进一步的实施方式中,存储和/或存储器设备是诸如本文所公开的设备的组合。
在一些实施方式中,计算机包括显示器,以将视觉信息发送给用户。在一些实施方式中,显示器为阴极射线管(CRT)。在一些实施方式中,显示器为液晶显示器(LCD)。在进一步的实施方式中,显示器为薄膜晶体管液晶显示器(TFT-LCD)。在一些实施方式中,显示器为有机发光二极管(OLED)显示器。在各个进一步的实施方式中,OLED显示器为无源矩阵OLED(PMOLED)或有源矩阵OLED(AMOLED)显示器。在一些实施方式中,显示器为等离子显示器。在其他实施方式中,显示器为视频投影仪。在进一步的实施方式中,显示器为诸如本文所公开的设备的组合。
在一些实施方式中,计算机包括输入设备以从用户接收信息。在一些实施方式中,输入设备为键盘。在一些实施方式中,输入设备为指点设备,举非限制性示例而言,包括鼠标、轨迹球、轨迹板、操纵杆、游戏控制器或触控笔。在一些实施方式中,输入设备为触摸屏或多点触摸屏。在其他实施方式中,输入设备为麦克风,以捕捉语音或其他声音输入。在其他实施方式中,输入设备为视频相机,以捕捉运动或视觉输入。在进一步的实施方式中,输入设备为诸如本文所公开的设备的组合。
非瞬态计算机可读介质
在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括一个或多个编码有程序的非瞬态计算机可读介质,所述程序包括可由数字处理设备的操作系统执行的指令。在进一步的实施方式中,计算机可读介质是数字处理设备的有形组件。在进一步的实施方式中,计算机可读介质可选地可以从数字处理设备拆卸。在一些实施方式中,举非限制性示例而言,计算机可读介质包括CD-ROM、DVD、闪速存储器设备、固态存储器、磁盘驱动器、磁带驱动器、光盘驱动器、云计算系统和服务等。在各个实施方式中,编码是永久的、基本上永久的、半永久的或非瞬态的。
计算机程序
在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括一个或多个计算机程序。计算机程序包括可在数字处理设备的CPU中执行的、被编写用于执行规定任务的指令序列。根据本文所提供的公开内容,本领域技术人员将会认识到,计算机程序能够以各种语言的各种版本来编写。举非限制性示例而言,合适的编程语言包括Java、VB、VB.NET、C#、C、C++、CFML、Python、Perl、Ruby、PHP、Objective C、JavaScript、Delphi、Lisp、Pascal、Ada、Assembly、ABAP和Cocoa,或者它们的组合。在一些实施方式中,计算机程序创建于软件框架上。举非限制性示例而言,合适的软件框架包括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 WebToolkit、IceFaces、WebObjects、TurboGears、Zope、ColdFusion、BFC、DotNetNuke、MonoRail、Flex和AJAX,或者它们的组合。
在一些实施方式中,计算机程序包括一个指令序列。在一些实施方式中,计算机程序包括多个指令序列。在各个实施方式中,计算机程序包括一个文件、一个代码段、一个编程对象、一个编程结构,或者它们的组合。在进一步的各个实施方式中,计算机程序包括多个文件、多个代码段、多个编程对象、多个编程结构,或者它们的组合。在一些实施方式中,从一个位置递送计算机程序。在其他实施方式中,从多个位置递送计算机程序。在其他实施方式中,从云计算平台或服务递送计算机程序。在各个实施方式中,计算机程序包括一个或多个软件模块。在各个实施方式中,计算机程序部分地或整体地包括一个或多个网络应用、一个或多个移动应用、一个或多个独立应用、一个或多个网络浏览器插件、扩展、加载项或附加项,或者它们的组合。
软件模块
在各个实施方式中,本文公开的系统、平台、环境、应用和方法包括软件模块、服务器模块和数据库模块。根据本文所提供的公开内容,通过使用本领域已知机器、软件和语言的本领域技术人员已知的技术来创建软件模块。本文公开的软件模块是以多种方式实现的。在各个实施方式中,软件模块包括一个文件、一个代码段、一个编程对象、一个编程结构,或者它们的组合。在进一步的各个实施方式中,软件模块包括多个文件、多个代码段、多个编程对象、多个编程结构,或者它们的组合。在各个实施方式中,举非限制性示例而言,所述一个或多个软件模块包括网络应用、移动应用以及独立应用。在一些实施方式中,软件模块处于一个计算机程序或应用中。在其他实施方式中,软件模块处于不止一个计算机程序或应用中。在一些实施方式中,软件模块托管在一个机器上。在其他实施方式中,软件模块托管在不止一个机器上。在进一步的实施方式中,软件模块托管在云计算平台上。在一些实施方式中,软件模块托管在位于一个位置的一个或多个机器上。在其他实施方式中,软件模块托管在位于不止一个位置的一个或多个机器上。
实施例
以下的说明性实施例代表本文所述的软件应用、系统和方法的实施方式,但并不旨在以任何方式成为限制性的。
实施例1—已保存报告的创建
一家公司的CEO要求他的销售主管创建其公司两个最大客户的报告,该报告在单一报告上包括这些客户的信用限额、上年收入以及信用与应收账款比率,并且在报告的底部有总计,包括总信用限额、去年总收入以及平均信用与收入比率。销售主管进行以下步骤:
I.取出预制模板;
II.标识报告上的列标题(见图11);
III.给行的起始和结束添加标签(见图11);
IV.在底部创建求和公式用于信用限额、上年收入,并且添加平均信用与收入比率;
V.将输出保存到应用文件夹;以及
VI.在搜索条中键入“General Motors Company,PepperdineDemo”,保存查询,并向CEO发送通往具有已保存的查询的指定页面的链接。
CEO在方便时打开这个书签链接并运行报告,而无需开发者、经理或员工的介入。见图12。这个简单的过程大约需要5-10分钟来开发出新的报告,且不要求开发者理解新的过程语言。
实施例2—使用保存的报告来创建规格表
一位产品开发设计师想要得到带有物料清单的规格表,该物料清单包括用以生产最终商品的所有相应组件的重量、成本和数量。他为系统载入URL,并且向搜索表单中键入产品库存单位(SKU)号码并检索所得的报告。报告的格式根据制造商的规范而定。设计师检查并核实所有数据的正确性。将电子表格用电子邮件发送给制造商,以供进一步的产品开发。
实施例3—单日出口报告
一家货运代理公司想要得到按相应国家细分的其当日出口的所有集装箱的理货单。公司总裁以该特定日的开始日期和结束日期运行报告。系统列出按照与之相同的顺序排序的所有SKU、集装箱、船只和国家。
实施例4—销售报告
一家公司的销售经理需要编制一份她的销售队伍的所有应付佣金的月末报告。她输入12/1/2011作为她的报告的起始日期以及12/31/2011作为结束日期,按照销售人员排序。该报告具有表格形式的所有美元金额和佣金率,其中每个行项含有数量*价格*佣金率的小计。在电子表格的底部是一些计算,包括当月发货单位总数、当月销售所有货物平均价格点以及当月待付总佣金率的汇总。
实施例5—跨数据库查询
跨数据库查询利用不维持任何数据库存储机制的存储器内数据库。系统在元数据对象中保存查询的完整列表。每个查询都符号地表示为单一表格。在将所有的独立结果集转换成表格之后,XDB数据库将表格与附加处理上的层联结起来,以返回最终的结果集。
基本概述
一个特定实施方式,涉及两个查询:
查询1:SELECT customer_id,customer_name FROM customer
表别名:xdb1
所得的结果集将会产生以下数据集:
customer_id customer_name
1 Coke
2 Pepsi
3 KFC
4 Nestle
5 Dell
6 HP
查询2:SELECT order_id,customer_id,order_date FROM orders
表别名:xdb2
所得的结果集将会产生以下数据集:
order_id customer_id order_date
1 1 12/12/2011
2 1 12/13/2011
3 2 12/14/2011
4 2 12/15/2011
5 3 12/16/2011
6 4 12/17/2011
每个查询都被赋予表别名(table alias)。在该实施例中,查询1的别名为xdb1,并且查询2的别名为xdb2。
跨数据库查询为:
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2ON xdb1.customer_id=xdb2.customer_id
跨数据库查询发起两个同时查询。每个结果集将会作为表格对象存在于存储器内数据库中。继而通过XDB数据库引擎来处理和运行表格对象,以组合出最终结果集。
order_id customer_name order_date
1 Coke 12/12/2011
2 Coke 12/13/2011
3 Pepsi 12/14/2011
4 Pepsi 12/15/2011
5 KFC 12/16/2011
6 Nestle 12/17/2011
该实施例中的工作流程为:
首先,跨数据库引擎接收查询:
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2ON xdb1.customer_id=xdb2.customer_id
其次,跨数据库引擎向不同的远程数据库发出以下查询:
查询1:SELECT customer_id,customer_name FROM customer
查询2:SELECT order_id,customer_id,order_date FROM orders
第三,跨数据库引擎同时从查询1和查询2中的每一个接收结果集,并组合出新的结果集以传回XDB客户端。系统检查所选择的列的数目,并且构建2列结果集(xdb1.customer_name,xdb2.order_date),该2列结果集所基于的是在已基于内联结语句将两个结果集联结起来之后的行的数目。
关于元数据表的跨数据库查询
跨数据库查询是基于要由跨数据库查询引擎发出的不同查询的列表或搭配。这些查询实际上储存在本文所述的元数据表内。
参见图13,在特定实施方式中,在系统内用前缀“bibomd”为元数据表加标号。
用于每个子查询的查询组合以元数据表的字段标号为基础。每个子查询或子级查询都是对数据库的直接查询。
参见图14至图16,示出了来自于多个数据源的多个元数据表。例如,参见图14(Oracle)、图15(Salesforce)和图16(Mongo)。
关于别名字段对象的跨数据库查询
参见图17,本文所述的跨数据库查询将引用查询储存成像列D中那样的别名表。使用Microsoft Excel引用公式来定义联结点,其中使用等号来引用可以潜在地从中拉取字段的对应字段。在该特定实施例中,表别名与以上声明的元数据表名称相同。它们的名称逐字匹配。突出显示的单元格F26含有针对赋予单元格E84的标号为“bibomd_sforce”内的另一工作表的公式。该引用/映射用于将列D中有别名的所得数据集“结合”成表格。
跨数据库查询字段选择和构建
在XDB检索和查询所有的相应数据源之后,XDB引擎需要构建全新的结果集。这个新结果集以元数据表中所定义的字段映射为基础。所述字段通过引用公式的方法来引用元数据表。
参见图18,如果要将AccountNumber映射为来自Salesforce结果集的字段,则系统将会使用针对单元格E90处作为目标的“bibomd_sforce”工作表的引用公式。映射过程将会拼合出来自不同数据源的聚合结果集。
虽然本文示出和描述了本发明的优选实施方式,但对于本领域技术人员显而易见的是,这样的实施方式仅以示例方式提供。本领域技术人员现将想到不偏离本发明的多种变化、改变和替换。应当理解,在实践本发明的过程中可以采用针对本文所述发明的实施方式的各种替代方案。

Claims (33)

1.一种用于实现适用于报告生成的基于电子表格的编程语言的基于计算机的系统,该系统包括:
a.可选地联网的计算机,该计算机包括处理器、配置为执行可执行指令的操作系统,以及存储器设备;
b.计算机程序,该计算机程序包括指令,所述指令可由数字处理设备执行以创建用以实现用于报告生成的基于电子表格的编程语言的环境,其中所述环境包括:
i.用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;
ii.用于解释过程函数的软件模块,其中在报告设计模板中经由标签来指定过程函数;以及
iii.用于生成报告的软件模块。
2.根据权利要求1所述的系统,其中所述一个或多个外部数据集是数据库。
3.根据权利要求2所述的系统,其中所述一个或多个数据库是关系数据库、非关系数据库、面向对象的数据库、对象数据库、实体-关系模型数据库、关联数据库或XML数据库。
4.根据权利要求1所述的系统,其中所述一个或多个外部数据集是表格式数据集。
5.根据权利要求4所述的系统,其中所述一个或多个表格式数据集是由逗号分隔的文本文件、由制表符划界的文本文件或者具有嵌入有表格结构数据集的本地数据集的二进制文件。
6.根据权利要求1所述的系统,其中所述用于储存一个或多个指定的外部数据集的结构的软件模块将所述结构储存为符号引用。
7.根据权利要求1所述的系统,其中所述软件解释器解释所述过程函数以执行查询。
8.根据权利要求7所述的系统,其中所述查询可选地包括以下之一或者全部两者:搜索参数和排序参数。
9.根据权利要求7所述的系统,还包括用于保存查询以供随后执行的软件模块。
10.根据权利要求9所述的系统,其中每个保存的查询由URL所表示,该URL在被激活时执行所述查询。
11.根据权利要求1所述的系统,其中所述报告设计模板是电子表格。
12.根据权利要求11所述的系统,其中所述电子表格是MicrosoftExcel的任何版本、OpenOffice Calc的任何版本和派生物,或者Lotus1-2-3的任何版本和派生物。
13.根据权利要求1所述的系统,其中所述用于生成报告的软件模块将报告设计模板的属性应用于报告。
14.根据权利要求1所述的系统,其中所述用于生成报告的软件模块将报告生成为一个或多个电子表格、XML文档、HTML文档、报告软件文档、文字处理程序文档或演示软件文档的形式的二进制数据。
15.非瞬态计算机可读介质,其编码有计算机程序,该计算机程序包括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:
a.用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;
b.用以解释过程函数的软件解释器,其中在报告设计模板中经由标签来指定过程函数;以及
c.用于生成报告的软件模块。
16.根据权利要求15所述的介质,其中所述用于生成报告的软件模块将报告设计模板的属性报告于应用。
17.根据权利要求15所述的介质,其中所述软件解释器解释所述过程函数以执行查询。
18.根据权利要求17所述的介质,其中所述查询可选地包括以下之一或全部两者:搜索参数和排序参数。
19.根据权利要求17所述的介质,还包括用于保存查询以供随后执行的软件模块。
20.根据权利要求19所述的介质,其中每个保存的查询由URL来表示,该URL在被激活时执行所述查询。
21.一种生成报告的计算机实现方法,包括以下步骤:
a.在计算机存储器中的电子表格内储存一个或多个指定的外部数据集的结构;
b.在计算机存储器中的所述电子表格中通过基于单元格的公式来引用每个数据集;以及
c.通过计算机处理器来解释一个或多个报告设计模板以格式化输出。
22.根据权利要求21所述的方法,其中解释一个或多个报告设计模板以格式化输出的步骤包括以下步骤:
a.将一个或多个模板读入存储器中;
b.将定义编程指令的一个或多个标签读入存储器中;
c.将一个或多个数据集读入存储器中;
d.生成新电子表格;
e.将所述模板的属性应用于所述新电子表格;
f.基于每个数据集,向所述新电子表格中插入行和列;
g.执行所定义的编程指令;以及
h.以二进制数据格式输出所述新电子表格。
23.根据权利要求21所述的方法,其中所述输出是报告。
24.根据权利要求23所述的方法,其中所述报告是以一个或多个电子表格、XML文档、HTML文档、报告软件文档、文字处理程序文档或演示软件文档的形式的二进制数据。
25.非瞬态计算机可读介质,其编码有计算机程序,该计算机程序包括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:
a.用于在电子表格中通过基于单元格的公式来引用一个或多个数据集的软件模块;以及
b.用于解释一个或多个报告设计模板以格式化输出的软件模块,其中在所述报告设计模板中经由标签来指定过程函数。
26.根据权利要求25所述的介质,其中所述基于单元格的公式在一定程度上由用户输入。
27.根据权利要求25所述的介质,其中所述基于单元格的公式在一定程度上通过自动生成向导由计算机系统输入。
28.根据权利要求25所述的介质,其中所述过程函数在一定程度上由用户输入。
29.根据权利要求25所述的介质,其中所述过程函数在一定程度上通过自动生成向导由计算机输入。
30.根据权利要求25所述的介质,其中所述输出是报告。
31.一种标识用于报告生成的编程指令的计算机实现方法,包括在计算机存储器中的电子表格内储存特定标签以标识编程指令,所述编程指令选自以下各项:
a.指定输入;
b.指定输出;
c.指定数学计算;
d.指定指令的有条件执行;以及
e.指定指令的重复。
32.根据权利要求31所述的方法,其中以标签对来利用一个或多个标签,所述标签对包含开始标签和结束标签。
33.根据权利要求31所述的方法,其中以单一标签来利用一个或多个标签。
CN201280069713.2A 2011-12-29 2012-12-27 适用于报告生成的基于电子表格的编程语言 Active CN104285209B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN104285209A true CN104285209A (zh) 2015-01-14
CN104285209B CN104285209B (zh) 2018-01-30

Family

ID=48698608

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069713.2A Active CN104285209B (zh) 2011-12-29 2012-12-27 适用于报告生成的基于电子表格的编程语言

Country Status (9)

Country Link
US (1) US10824802B2 (zh)
EP (1) EP2798487A4 (zh)
JP (1) JP6134737B2 (zh)
KR (1) KR101977972B1 (zh)
CN (1) CN104285209B (zh)
AU (1) AU2012362383B2 (zh)
CA (1) CA2862387C (zh)
HK (1) HK1205303A1 (zh)
WO (1) WO2013101914A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021303A (zh) * 2016-05-05 2016-10-12 北京轻元科技有限公司 一种用于持续集成报告发布的系统和方法
CN106446598A (zh) * 2016-11-15 2017-02-22 上海派森诺生物科技股份有限公司 项目报告自动生成方法
CN107845033A (zh) * 2017-11-08 2018-03-27 上海壹账通金融科技有限公司 风控报告生成方法、装置、设备及计算机可读存储介质
CN109241514A (zh) * 2018-09-10 2019-01-18 深圳市泰洲科技有限公司 数据自动导入方法、装置、计算机设备及存储介质
WO2019144852A1 (zh) * 2018-01-26 2019-08-01 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
CN111144082A (zh) * 2019-12-23 2020-05-12 中国建设银行股份有限公司 多表格迭代计算方法、装置、电子设备及存储介质
CN112233498A (zh) * 2020-10-14 2021-01-15 烟台鼎钰电子科技有限公司 一种表格式可编程显示控制器
CN112541033A (zh) * 2020-12-01 2021-03-23 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备
TWI796545B (zh) * 2020-01-15 2023-03-21 訊光科技系統股份有限公司 文件式智能程式產生方法及其電子裝置

Families Citing this family (38)

* 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
USD748664S1 (en) * 2013-07-19 2016-02-02 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 (zh) * 2015-10-30 2016-07-11
JP1553722S (zh) * 2015-10-30 2016-07-11
CN105488019B (zh) * 2015-11-30 2018-05-29 云南电网有限责任公司电力科学研究院 一种电能质量监测装置检测报告自动生成方法
KR102035277B1 (ko) * 2016-10-28 2019-10-22 단국대학교 천안캠퍼스 산학협력단 화장품 노출인자 분석 장치 및 방법
US10540153B2 (en) 2016-12-03 2020-01-21 Thomas STACHURA Spreadsheet-based software application development
US11726753B2 (en) 2016-12-03 2023-08-15 Thomas STACHURA Spreadsheet-based software application development
US10216494B2 (en) * 2016-12-03 2019-02-26 Thomas STACHURA Spreadsheet-based software application development
JP1606618S (zh) * 2017-09-21 2018-06-11
US10705805B1 (en) 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
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
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
CN110427599A (zh) * 2019-06-06 2019-11-08 北京辰森世纪科技股份有限公司 报表小计的统计方法及装置、存储介质、电子装置
CN111126019B (zh) * 2019-11-28 2024-01-05 泰康保险集团股份有限公司 基于模式定制的报表生成方法、装置和电子设备
CN111178027B (zh) * 2019-12-09 2023-03-31 北京尊冠科技有限公司 基于在线创建模板和在线指定数据的报告生成系统和方法
CN111158650B (zh) * 2019-12-25 2023-06-27 中国建设银行股份有限公司 报表模板、报表的生成方法、装置
CN111241091B (zh) * 2019-12-29 2023-05-16 云帐房网络科技有限公司 一种商业报表数据的分布式列式数据存储转换方法及系统
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 (주)비아이매트릭스 템플릿 기반 엑셀 문서 온라인 작업 시스템
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
KR102499832B1 (ko) * 2020-12-18 2023-02-15 (주)비아이매트릭스 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템
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
CN117454862A (zh) * 2023-12-25 2024-01-26 青岛民航凯亚系统集成有限公司 一种基于引擎模式的报表生成方法及自助bi系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004053710A2 (en) * 2002-12-05 2004-06-24 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
US20050268064A1 (en) * 2003-05-15 2005-12-01 Microsoft Corporation Memory-usage 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
CN101038584A (zh) * 2006-03-14 2007-09-19 国际商业机器公司 用于执行计算处理的系统和方法
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
US20110016379A1 (en) * 2009-07-15 2011-01-20 Cloudscale Inc. System and Methodology for Data Processing Combining Stream Processing and Spreadsheet Computation
US20110098985A1 (en) * 2009-10-23 2011-04-28 Rob Lawson System and method for managing information
US20110295945A1 (en) * 2010-05-26 2011-12-01 Lord Daniel J Automated Report Service Tracking System and Method

Family Cites Families (26)

* 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
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
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
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
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 業務管理用システム
US8677230B2 (en) * 2011-09-15 2014-03-18 Morgan Stanley Network-based data consolidation, calculation and reporting engine

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004053710A2 (en) * 2002-12-05 2004-06-24 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
US20050268064A1 (en) * 2003-05-15 2005-12-01 Microsoft Corporation Memory-usage 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
CN101038584A (zh) * 2006-03-14 2007-09-19 国际商业机器公司 用于执行计算处理的系统和方法
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
US20110016379A1 (en) * 2009-07-15 2011-01-20 Cloudscale Inc. System and Methodology for Data Processing Combining Stream Processing and Spreadsheet Computation
US20110098985A1 (en) * 2009-10-23 2011-04-28 Rob Lawson System and method for managing information
US20110295945A1 (en) * 2010-05-26 2011-12-01 Lord Daniel J Automated Report Service Tracking System and Method

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106021303A (zh) * 2016-05-05 2016-10-12 北京轻元科技有限公司 一种用于持续集成报告发布的系统和方法
CN106446598A (zh) * 2016-11-15 2017-02-22 上海派森诺生物科技股份有限公司 项目报告自动生成方法
CN107845033A (zh) * 2017-11-08 2018-03-27 上海壹账通金融科技有限公司 风控报告生成方法、装置、设备及计算机可读存储介质
WO2019144852A1 (zh) * 2018-01-26 2019-08-01 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
CN109241514A (zh) * 2018-09-10 2019-01-18 深圳市泰洲科技有限公司 数据自动导入方法、装置、计算机设备及存储介质
CN111144082A (zh) * 2019-12-23 2020-05-12 中国建设银行股份有限公司 多表格迭代计算方法、装置、电子设备及存储介质
CN111144082B (zh) * 2019-12-23 2023-05-12 中国建设银行股份有限公司 多表格迭代计算方法、装置、电子设备及存储介质
TWI796545B (zh) * 2020-01-15 2023-03-21 訊光科技系統股份有限公司 文件式智能程式產生方法及其電子裝置
CN112233498A (zh) * 2020-10-14 2021-01-15 烟台鼎钰电子科技有限公司 一种表格式可编程显示控制器
CN112541033A (zh) * 2020-12-01 2021-03-23 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备
CN112541033B (zh) * 2020-12-01 2023-05-05 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备

Also Published As

Publication number Publication date
HK1205303A1 (zh) 2015-12-11
EP2798487A1 (en) 2014-11-05
US20130290822A1 (en) 2013-10-31
CA2862387A1 (en) 2013-07-04
CN104285209B (zh) 2018-01-30
KR20140126311A (ko) 2014-10-30
KR101977972B1 (ko) 2019-05-14
WO2013101914A1 (en) 2013-07-04
CA2862387C (en) 2023-03-14
US10824802B2 (en) 2020-11-03
AU2012362383B2 (en) 2018-05-10
EP2798487A4 (en) 2015-09-09
JP6134737B2 (ja) 2017-05-24
AU2012362383A1 (en) 2014-07-24
JP2015504213A (ja) 2015-02-05

Similar Documents

Publication Publication Date Title
CN104285209B (zh) 适用于报告生成的基于电子表格的编程语言
Bernstein et al. Information integration in the enterprise
US8140549B2 (en) Methods and arrangements of processing and presenting information
US8924415B2 (en) Schema mapping and data transformation on the basis of a conceptual model
US8060531B2 (en) Data query and location through a central ontology model
US20130166563A1 (en) Integration of Text Analysis and Search Functionality
US20070239742A1 (en) Determining data elements in heterogeneous schema definitions for possible mapping
US20060167927A1 (en) Data query and location through a central ontology model
US20130166550A1 (en) Integration of Tags and Object Data
US8407235B2 (en) Exposing and using metadata and meta-metadata
US10713425B2 (en) System and method for generating a proposal based on a request for proposal (RFP)
US9779135B2 (en) Semantic related objects
US8260772B2 (en) Apparatus and method for displaying documents relevant to the content of a website
US20050234886A1 (en) Report designer tool and method
US20130132289A1 (en) Oil and gas interest tracking system
US20090248716A1 (en) Hierarchy creation and management tool
Abdelhédi et al. User support system for designing decisional database
CN107609155B (zh) 一种基于xbrl标准的数据资产化模型的构建方法
Rzepa The long and winding road towards FAIR data as an integral component of the computational modelling and dissemination of chemistry
CN115004171A (zh) 用于与模式无关的查询模板的生成和应用的系统和方法
US9208224B2 (en) Business content hierarchy
Han et al. Making Metadata Maker: A web application for metadata production
Günter Introducing MapLan to map banking survey data into a time series database
Domdouzis et al. Relational Databases
Leonard et al. Basic Staging Operations

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1205303

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1205303

Country of ref document: HK