适用于报告生成的基于电子表格的编程语言的制作方法

文档序号:6498168阅读:199来源:国知局
适用于报告生成的基于电子表格的编程语言的制作方法
【专利摘要】用于实现适用于报告生成的基于电子表格的编程语言的基于计算机的系统、软件和方法,所述系统包括:可选地联网的计算机,该计算机包括处理器、配置为执行可执行指令的操作系统以及存储器设备;计算机程序,其包括指令,该指令可由数字处理设备执行以创建用以实现用于报告生成的基于电子表格的编程语言的环境,其中所述环境包括:用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每个数据集的引用;用于解释过程函数的软件模块,其中在报告设计模板中经由标签来指定过程函数;以及用于生成报告的软件模块。
【专利说明】适用于报告生成的基于电子表格的编程语言 相关申请的夺叉引用
[0001] 本申请要求2011年12月29日提交的美国临时申请第61/581,515号的权益,该 申请通过引用而全文并入于此。 发明背景
[0002] 现有的企业报告工具要求用户密切参与第三方应用和开发环境中的整个设计过 程。为了创建报告,用户必须在软件开发领域拥有一定水平的技能。在开发完成之后,现有 的分发手段有限。如果一个机构采用了任何第三方报告工具(例如,Crystal Reports), 则管理员必须在每台有权访问报告的单个计算机上安装软件,并且开放对数据库的直接访 问。这潜在地限制了应用的地理位置,并且潜在地创造了安全漏洞的机会。


【发明内容】

[0003] 对于增加对报告设计和报告本身的可访问性的简单企业报告开发平台、环境和工 具存在着长期以来未得到满足的需求。有效的企业报告工具有助于设计的便利性,以及简 单、安全的分发。本文所公开的发明使得用户能够通过利用他们已有的电子表格知识,以及 通过将该知识基础最大化并使用标记标签语言对其加以扩展来设计报告。系统利用简单的 文件系统结构来表示存储报告的层次,并通过基于网络的用户界面来显示这些对象。当分 发统一资源定位符(URL)时,人们可以将一个数据集或多个数据集安全地筛选、排序和格 式化成通用电子表格。
[0004] 因此,在一方面,本文公开了用于实现适用于报告生成的基于电子表格的编程语 言的基于计算机的系统,所述系统包括:可选地联网的计算机,其包括处理器、配置用于执 行可执行指令的操作系统,以及存储器设备;计算机程序,其包括指令,该指令可由数字处 理设备执行以创建用以实现用于报告生成的基于电子表格的编程语言的环境,其中所述环 境包括:用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通 过基于单元格的公式来创建对每个数据集的引用;用于解释过程函数的软件模块(例如, 解释器(interpreter)),其中在报告设计模板中经由标签来指定过程函数;以及用于生成 报告的软件模块。在一些实施方式中,所述一个或多个外部数据集是数据库。在进一步的 实施方式中,所述一个或多个数据库是关系数据库、非关系数据库、面向对象的数据库、对 象数据库、实体-关系模型数据库、关联数据库或XML数据库。在一些实施方式中,一个或 多个外部数据集是表格式数据集。在进一步的实施方式中,一个或多个表格式数据集是由 逗号分隔的文本文件、由制表符划界的文本文件或者具有嵌入了表格结构数据集的本地数 据集(native dataset)的二进制文件。在一些实施方式中,所述用于储存一个或多个指定 的外部数据集的结构的软件模块将该结构储存为符号引用(symbolic reference)。在一些 实施方式中,软件解释器解释所述过程函数以执行查询。在进一步的实施方式中,查询可选 地包括以下之一或全部两者:搜索参数和排序参数。在一些实施方式中,环境进一步包括用 于保存查询以供随后执行的软件模块。在进一步的实施方式中,每个保存的查询由URL所 表不,该URL在被激活时执行查询。在一些实施方式中,所述报告设计模板是电子表格。在 进一步的实施方式中,所述电子表格是Microsoft Excel的任何版本。在其他实施方式中, 所述电子表格是OpenOffice Calc的任何版本和派生物(derivative)。在其他实施方式中, 所述电子表格是Lotusl-2-3的任何版本和派生物。在一些实施方式中,所述用于生成报告 的软件模块将报告设计模板的属性应用于报告。在一些实施方式中,所述用于生成报告的 软件模块将报告生成为一个或多个电子表格、XML文档、HTML文档、报告软件文档、文处理 程序文档或演示软件文档形式的二进制数据。
[0005] 在另一方面,本文公开了计算机可读介质,其编码有计算机程序,该计算机程序包 括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:用于在电子表格内储存 一个或多个指定的外部数据集的结构的软件模块,其中通过基于单元格的公式来创建对每 个数据集的引用;软件解释器,其用于解释过程函数,其中在报告设计模板中经由标签来指 定过程函数;以及用于生成报告的软件模块。在一些实施方式中,所述用于生成报告的软 件模块将报告设计模板的属性应用于报告。在一些实施方式中,编码是永久的、基本上永久 的、半永久的或非瞬态的。在一些实施方式中,所述软件解释器解释所述过程函数以执行查 询。在进一步的实施方式中,查询可选地包括以下之一或全部两者:搜索参数和排序参数。 在一些实施方式中,报告环境进一步包括用于保存查询以供随后执行的软件模块。在进一 步的实施方式中,每个保存的查询由URL所表示,该URL在被激活时执行查询。
[0006] 在又一方面,本文公开了生成报告的计算机实现方法,包括以下步骤:在保留于计 算机存储器中的电子表格内储存一个或多个指定的外部数据集的结构;在所述保留于计算 机存储器中的电子表格内通过基于单元格的公式对每个数据集进行引用;以及通过软件模 块来解释一个或多个报告设计模板以格式化输出。在一些实施方式中,解释一个或多个报 告设计模板以格式化输出的步骤包括以下步骤:将一个或多个模板读入存储器中;将定义 编程指令的一个或多个标签读入存储器中;将一个或多个数据集读入存储器中;生成新电 子表格;将模板的属性应用于所述新电子表格;基于每个数据集向所述新电子表格中插入 行和列;执行所定义的编程指令;以及按二进制数据格式输出新电子表格。在一些实施方 式中,所述输出是报告。在进一步的实施方式中,该报告是一个或多个电子表格、XML文档、 HTML文档、报告软件文档、文字处理程序文档或演示软件文档形式的二进制数据。
[0007] 在另一方面,本文公开了计算机可读介质,其编码有计算机程序,该计算机程序包 括指令,该指令可由计算机执行以创建报告环境,该报告环境包括:用于在电子表格中通过 基于单元格的公式来引用一个或多个数据集的软件模块;以及用于解释一个或多个报告设 计模板以格式化输出的软件模块,其中在报告设计模板中经由标签来指定过程函数。在一 些实施方式中,所述基于单兀格的公式在一定程度上由用户输入。在一些实施方式中,所述 基于单元格的公式在一定程度上通过自动生成向导由计算机系统输入。在一些实施方式 中,所述过程函数在一定程度上由用户输入。在一些实施方式中,所述过程函数在一定程度 上通过自动生成向导由计算机输入。在一些实施方式中,输出是报告。在一些实施方式中, 编码是永久的、基本上永久的、半永久的或非瞬态的。
[0008] 在又一方面,本文公开了用以标识用于报告生成的编程指令的计算机实现方法, 该方法包括在计算机存储器(例如,非易失性和非瞬态存储器)中的电子表格内储存特定 标签以标识编程指令,所述编程指令选自以下各项:指定输入;指定输出;指定数学计算; 指定指令的有条件执行;以及指定指令的重复。在一些实施方式中,以标签对来利用一个或 多个标签,所述标签对包含开始标签和结束标签。在一些实施方式中,以单一标签来利用一 个或多个标签。

【专利附图】

【附图说明】
[0009] 图1示出用于实现适用于报告生成的基于电子表格的编程语言的非限制性过程; 在本例中是这样的过程:其中将元数据(metadata)工作表和设计模板工作表储存在电子 表格中,并且输出是电子表格形式的报告。
[0010] 图2示出电子表格公式的非限制性示例。
[0011] 图3示出简单模板的非限制性示例;在本例中是用于基本客户数据的模板。
[0012] 图4示出在通过解释器运行外部数据集并根据标签呈现专有过程语言之后,图3 的模板的输出的非限制性示例。
[0013] 图5示出复杂报告模板的非限制性示例;在本例中是具有用附加的〈detaiix/ detail〉标签来表不的嵌套循环的报告模板。
[0014] 图6示出图5的模板的非限制性示例,其中突出显示对外部数据集的引用。
[0015] 图7示出在将外部数据集轮询到解释器中之后,来自图5和图6的模板的所得报 告的非限制性示例。
[0016] 图8示出来自图7的新形成的公式的非限制性示例,以演示解释器基于所得的外 部数据集和用于迭代的相应行插入来内省和重新调整单元格的值。
[0017] 图9示出电子表格中的元表(metasheet)以及搜索参数和排序参数的定义的非限 制性示例。
[0018] 图10示出以HTML形式呈现的用于筛选和排序外部数据集的搜索参数和排序参数 的非限制性示例。在本例中,参数还被保存为查询标记并且可由URL引用。
[0019] 图11示出模板的非限制性示例;在本例中,是包括实施例1中所介绍的电子表格 标记语言的模板。
[0020] 图12示出实施例1中所介绍的报告的非限制性示例;在本例中,是具有嵌入到相 应单元格中的图像和条形码的报告。
[0021] 图13示出元数据表的非限制性示例;在本例中,是这样的元数据表:其储存要由 跨数据库查询引擎发出的不同查询的列表,以便进行如实施例5中所描述的跨数据库查 询。
[0022] 图14至图16示出如实施例5中所描述的跨数据库查询的成分子查询的非限制性 示例;在本例中,是来自于包括Oracle、Salesforce和Mongo在内的多个不同数据源的元数 据表。
[0023] 图17示出如实施例5中所描述的跨数据库表格元数据表的非限制性示例。
[0024] 图18示出如实施例5中所描述的跨数据库字段选择的非限制性示例。

【具体实施方式】 各种定义
[0025] 除非另有定义,本文使用的所有技术术语全都具有与本发明所属领域普通技术人 员所公认的理解相同的含义。在本说明书和随附权利要求书中所使用的单数形式"一"、"一 个"和"此"包括复数指代,除非上下文另有明确规定。本文对"或"的任何提及都旨在包含 "和/或",除非另有说明。
[0026] 本文所使用的"数据集"意指一组行或记录。
[0027] 本文所使用的"工作表(worksheet) "意指电子表格程序中的单页或单表。
[0028] 本文所使用的"行"意指在表格、工作表、电子表格或数据库中的单一的、隐式结构 的数据记录。在一些实施方式中,一行数据是在工作表中水平延伸的一组单元格。
[0029] 本文所使用的"列"意指在工作表中垂直延伸的一组单元格。
[0030] 本文所使用的"单元格"指出向表格、工作表、电子表格或数据库中输入数据之处。 在一些实施方式中,单元格位于行与列的交叉点处。
[0031] 本文所使用的"公式"意指用于计算数值的数学等式。 某于电子表格的编稈语言
[0032] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法创建或利用基于电 子表格的编程语言。在一些实施方式中,电子表格编程语言是遵循电子表格内的某些标签 方法的语言,其允许外部解释器将标签和函数抽象成不同类型的编程函数或实体。
[0033] 在一些实施方式中,合适的电子表格包含电子表格内的多个工作表。在进一步的 实施方式中,一个指定的工作表表示一个或多个外部数据集,以及用于从所述一个或多个 数据集进行检索的手段。在进一步的实施方式中,在电子表格中存在附加的工作表用于模 板设计,所述模板设计在必要时引用元数据工作表。
[0034] 图1描绘了用于通过实现基于电子表格的编程语言来生成报告的非限制性示例 过程。图1的示例过程包括呈现基于参数的网页表单以容纳用户输入的第一阶段。在一 些实施方式中,系统将电子表格105载入存储器中,并对其中所含的兀数据表(metadata sheetUOO进行内省(introspect)。从元数据表中,系统找出用于筛选和排序的相应字段。 在进一步的实施方式中,系统继而呈现网页110,该网页110显示待排序的可用字段。这些 参数被准备好用于一旦用户执行报告生成120,就馈入解释器中。
[0035] 图1的示例过程还包括报告生成的第二阶段,该第二阶段为多重阶段,具有阶段 (A)-阶段(G):
[0036] (A)系统基于用户定义的参数来检索一个或多个外部数据集。在一些实施方式中, 系统拉入报告上所有可用的参数,并通过查询130的手段从外部数据源提取数据。在进一 步的实施方式中,在多种不同的数据源上执行查询,所述数据源包括但不限于关系数据库、 在线网络服务、LDAP数据库和平面文件(flat file)。一个特定实施方式是针对关系数据库 (例如,Oracle)执行SQL语句。在该实施方式中,SQL语句由解释器提交至Oracle RDBMS, 并且RDBMS返回按用户已在参数页面(例如,HTML表单)中定义的参数排序的经筛选结果 集。
[0037] (B)解释器将模板工作表读入存储器中。在一些实施方式中,系统向存储器中读入 每个可用的模板工作表140。在一些实施方式中,一个或多个模板工作表例如位于与元数据 工作表105相同的电子表格中。在其他实施方式中,一个或多个模板工作表例如位于单独 的电子表格145中。在进一步的实施方式中,每个模板工作表具有多个属性,这些属性包括 但不限于:页面方向、打印格式、页面尺寸、工作表名称、默认字体、背景颜色以及其他功能。 在一些实施方式中,这些属性保留在存储器中,以供应用于作为目标的所得二进制输出。
[0038] (C)解释器解析每个工作表,并将所有标签读入存储器中。在一些实施方式中,随 着解释器遍历每个工作表,其读取针对电子表格160内的所有模板工作表的相应标签。在 进一步的实施方式中,解释器继而标识和标记要运行过程函数的行和列。
[0039] (D)解释器创建新报告,并将来自模板的每个工作表复制到指定的新报告中,但将 元数据表排除在外。在一些实施方式中,解释器创建新电子表格来充当要递送给用户170 的所得报告的基础。在进一步的实施方式中,系统在目标报告中创建一个新工作表,但兀数 据工作表除外。在进一步的实施方式中,解释器将来自模板的所有系统属性从每一个源表 复制到在目标报告内新形成的工作表中。
[0040] (E)解释器插入涉及指定标签和外部数据集尺寸的行和列。在一些实施方式中,解 释器根据每一工作表的外部数据集尺寸来重新计算所需的行数。例如,如果模板具有定义 的待循环行数3,而结果集含有10个结果,则解释器将会向目标工作表中插入30个行。在 进一步的实施方式中,系统向目标工作表中插入确定数目的打和列。随着系统插入打和列, 其向存储器中创建索引,以标识涉及原始行数和列数的行数和列数。
[0041] (F)解释器在已插入数据行和列之后对每个单元格进行内省。在一些实施方式中, 系统继而通过单元格解析器来扫描每个单元格,以确定单元格是否具有公式180。在进一步 的实施方式中,如果单元格具有公式,则本发明分解单元格引用,以查看是否引用了一个或 多个外部数据集。在进一步的实施方式中,如果引用了一个或多个外部数据集,则从一个或 多个外部数据集中复制数据,并取代公式中的单元格值。在其他实施方式中,如果单元格引 用没有引用外部数据集,则继而相对于当前位置重新计算单元格行和列。例如,在引用模板 中,单元格C5中的原始公式可以潜在地表示" = A5+B2",但由于已插入的行数,单元格C105 中的公式需要新公式"=B105+B102"。
[0042] (G)清理。在一些实施方式中,最后步骤是清理指定报告。在进一步的实施方式 中,移除保留在目标行中的用于针对过程函数的引用或用作针对外部数据集的引用的任何 标记标签。这留下了洁净的电子表格,该电子表格将外部数据集并入到相应单元格中,并运 行经过指定的迭代次数,同时建立必要的索引来标记和指定相应行集的位置。 外部数据集
[0043] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法访问、读取和储存一 个或多个指定的外部数据集的结构。在一些实施方式中,访问、读取和储存一个数据集的结 构。在其他实施方式中,同时地、基本上同时地或连续地访问、读取和储存多个数据集的结 构。在各个实施方式中,访问、读取和储存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 个或更多个数据 集(包括其中的增量)的结构。
[0044] 在一些实施方式中,在电子表格内储存每个数据集的结构。在进一步的实施方式 中,在电子表格中通过基于单元格的公式来创建对每个数据集的引用。许多数据集都适合 于随同本文所公开的系统、平台、环境、应用和方法一起使用。举非限制性示例而言,合适的 数据集包括表格式数据集和面向对象数据集。
[0045] 在一些实施方式中,合适的表格式数据集包括诸如Oracle、Microsoft SQL Server、Informix、Sybase和MySQL等数据库。其他合适的数据库例如包括IBM DB2、 Postgres和dBASE。在一些实施方式中,合适的表格式数据集包括平面文件,诸如字符划界 的平面文件(例如,CSV、制表符划界等)、定长平面文件(例如,COBOL)、二进制平面文件以 及专有ASCII平面文件(例如,DBF)。
[0046] 在一些实施方式中,举非限制性示例而言,合适的面向对象数据集包括XML和 JS0N。
[0047] 合适的数据集为任何尺寸。例如,在系统对数据集进行筛选和排序之前,数据集 的尺寸潜在地达数亿行。在各个实施方式中,举非限制性示例而言,数据集为l、l〇、lxl〇 2、 1χ103、1χ104、1χ105、1χ10 6、1χ107、1χ108、1χ109、1χ10 10、1χ10η、1χ1012、1χ1013、1χ10 14、1χ1015、 lxlO16、ΙχΙΟ17、ΙχΙΟ18、ΙχΙΟ19、1χ10 2°个行或更多行,包括其中的增量。
[0048] 合适的数据集存在于多个位置中。在一些实施方式中,数据集是本地数据库或平 面文件。在进一步的实施方式中,数据集存在于与本文所公开的软件相同的存储器或存储 设备中。在进一步的实施方式中,数据集存在于与本文所公开的软件相同的网络(例如, LAN或WAN)中。在一些实施方式中,可经由因特网访问数据集。在进一步的实施方式中,数 据集与第三方数据源(例如,云提供商)共存。 跨数据集杳询功能
[0049] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法访问、读取和储存一 个或多个指定的外部数据集的结构。在某些进一步的实施方式中,所述一个或多个外部数 据集被保持在"存储器内"数据库("in memory" database)中,该数据库不维持任何数据 库存储机制。在一些实施方式中,系统在元数据对象中保持查询的完整列表,其中每个查询 都符号地表示为单一表格。在进一步的实施方式中,当运行查询时,在将所有的独立结果集 都转换成表格之后,系统将表格与附加处理上的层联结起来,以返回查询的最终结果集。在 进一步的实施方式中,最终结果集用于创建报告。
[0050] 举非限制性示例而言,这样的跨数据库查询发起多个同时查询,其中每个都符号 地表示为单一表格。在各个实施方式中,跨数据库查询发起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 个或更多个同时查询,包括其中的增 量。根据本文提供的公开内容,本领域技术人员将会认识到,本文公开的跨数据库查询在元 数据对象中保持任何合适数目的查询的列表,并且发起任何合适数目的同时查询。举进一 步示例而言,每个结果集作为表格对象存在于存储器内数据库中,并且继而通过跨数据库 引擎来处理和浏览所述表格对象以组合出最终结果集。
[0051] 在一些实施方式中,跨数据库查询是基于要由跨数据库查询引擎发出的不同查询 的列表或搭配。在进一步的实施方式中,这些查询储存在元数据表内。在进一步的实施方式 中,用于每个子查询的查询组合是基于元数据表的字段标号,其中每个子查询(sub query) 或子级查询(child query)是对数据库的直接查询。
[0052] 在一些实施方式中,跨数据库查询将引用查询储存为别名表格。在进一步的实施 方式中,使用电子表格引用公式来定义联结点,其中所述电子表格引用公式利用等号来引 用可以潜在地从中拉取字段的对应字段。在进一步的实施方式中,在跨数据库查询引擎检 索和查询了所有的相应数据源之后,该引擎构建新结果集。在一些实施方式中,所述新结果 集是基于元数据表中所定义的字段映射,其中字段通过本文公开的引用公式方法来引用元 数据表。 某于单元格的公式
[0053] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法利用基于单元格的 公式来引用每个外部数据集。在诸如Microsoft Excel、Open Office Calc和Google电子 表格等电子表格程序中的基于单元格的公式利用数学等式来计算数值。根据本文所提供的 公开内容,本领域技术人员将会认识到,这些程序通常用等号(=)来指定公式。基于单元 格的公式例如是表示对另一单元格的一些类型的计算或引用的字符串。例如,参见图2。举 例而言,单元格引用公式可构成单元格"A1"中的"=B2"。这仅仅是一个引用公式。举进 一步示例而言,公式还可构成数学函数:"=1+2"。公式还可包含对要用于处理数学函数的 单元格的混合和匹配:"=C12*13*C83"。每个电子表格都合并了基于单元格的解释器,以 显示所得的这些公式的汇编。
[0054] 例如,参考图3,在A3中突出显示的单元格具有含有以下项的公式:"=H2"。在该 非限制性实施方式中,单元格H2被指定为代表性的样本数据,以引用外部数据集。举进一 步示例而言,这个被引用的单元格用符号表示在被插入到目标报告中时来自外部数据集的 数据映射位置。 讨稈函数
[0055] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括过程函数,用以 规定报告的内容和格式。
[0056] 在一些实施方式中,执行一次过程函数。在其他实施方式中,循环执行过程函数。 循环是将过程或语句重复特定次数或者重复直到特定事件发生为止的方式。在进一步的实 施方式中,循环具有标记行起始和结束之处的标识符。在进一步的实施方式中,循环是嵌套 的,以便将一个或多个循环嵌入在其他循环内。
[0057] 在进一步的实施方式中,在报告设计模板中经由标签来指定过程函数。在各个实 施方式中,标签为字母、数字、代码、单词、短语或符号。在进一步的各个实施方式中,由一可 辨别字符或一系列字符诸如括号(例如,〈、>、[、]、{、}、(、)等),来封闭或括住标签。在 一些实施方式中,成对地利用标签。在进一步的实施方式中,一对标签包括开始标签和结束 标签。在其他实施方式中,单个地使用标签。在一些实施方式中,由一个标签来指定过程函 数。在其他实施方式中,由不止一个标签来指定过程函数。
[0058] 以下是合适的标签及关联的过程函数的非限制性示例:
[0059] <i>或〈item〉,任一标签表示循环的开始。
[0060] </i>或〈/item〉,任一标签表示循环的结束。
[0061] <d>或〈detail〉,任一标签表示嵌套循环的开始。
[0062] </d>或〈/detail〉,任一标签表示嵌套循环的结束。
[0063] </p>或〈/pagebreak〉,任一标签表示分页符。
[0064] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括软件解释器,用 以解释过程函数。在进一步的实施方式中,软件解释器通过读取报告设计模板中的标签来 解释过程函数。
[0065] 在一些实施方式中,解释器将标签读入系统中,并且能够例如执行以下功能:
[0066] 1.呈现基于参数的表单,该表单给予用户筛选或缩小数据集和/或排序所得数据 集的能力;以及
[0067] 2.导入模板,并将其与外部数据集合并。在进一步的实施方式中,解释器继而读取 所有的标签以理解过程函数,以便在新的指定电子表格上执行。在进一步的实施方式中,应 用过程函数,并且新的指定电子表格继承来自包括单元格、行、列、工作表和电子表格在内 的相应模板的属性。 报告设计樽板
[0068] 本文公开的系统、平台、环境、应用和方法利用任何合适的报告设计模板。在一些 实施方式中,合适的模板遵循明确结构,该明确结构保留单一工作表作为元数据表,该元数 据表含有外部数据集的属性。在进一步的实施方式中,存在其他模板工作表,其通过公式来 引用定义的外部数据集,并结合标签来定义循环的开始和结束。
[0069] 在一些实施方式中,报告设计模板是用户或开发者为了设计报告而创建的初始画 布(canvas)。在进一步的实施方式中,模板包含以下各项:
[0070] 1.元数据表;和
[0071] 2.模板工作表。
[0072] 在一些实施方式中,每个模板工作表带有标签和对外部数据集的符号引用。例如, 它们含有用户可能用以生成报告的逻辑式,其涉及总和、平均值、比值或由电子表格所支持 的其他复杂计算。
[0073] 在一些实施方式中,每个模板代表带有样本数据的所得输出报告的潜在模样的表 单。图3描绘了示例性的客户报告模板,该模板具有在行2和行4以及列G和列Η中突出 显示的系统保留标签行。在该实施方式中,系统保留行表示过程函数(带有〈itemX/item〉 标签的行2和行4)或外部数据集(列G和列Η)。在一些实施方式中,模板表示四个主要函 数:
[0074] 1.报告的审美表现;
[0075] 2.循环行集范围;
[0076] 3.外部数据集;以及
[0077] 4.以公式形式嵌入在单元格内的逻辑式。
[0078] 在一些实施方式中,随着解释器被载入并运行,每个模板在保持其相应的页面、 行、列和单元格属性的同时,被复制到指定的输出电子表格中。在进一步的实施方式中,解 释器将会读取一个或多个外部数据集,并将其映射到指定的输出电子表格内的每个目标模 板工作表中,同时保持从原始模板工作表所设计的审美和逻辑函数。
[0079] 图4描绘了基于图3的示例报告模板而生成的示例客户报告。在本例中,通过解 释器运行外部数据集,并根据模板中的标签来呈现过程语言。
[0080] 图5描绘了在性质上更加复杂的示例报告模板。在本例中,报告模板包括以附加 的〈detailX/detail〉标签表示的嵌套循环。
[0081] 图6示出了图5的模板的非限制性示例,其中突出显示了对外部数据集的引用。
[0082] 图7示出了在将外部数据集轮询到解释器中之后,来自图5和图6的模板的所得 报告的非限制性示例。
[0083] 图8示出了来自图7的新形成的公式的非限制性示例,以演示解释器基于所得的 外部数据集和用于迭代的相应行插入来进行内省并重新调整单元格的值。 元数据表
[0084] 在一些实施方式中,模板电子表格含有一个或多个元数据工作表。在进一步的实 施方式中,每个元数据工作表包括以下各项:
[0085] 1. 一个或多个外部数据集的定义:所述一个或多个外部数据集的定义包括来自 外部关系型DBMS的表格和字段。
[0086] 2.搜索筛选器:搜索筛选器帮助将从外部数据源返回的结果集削减和限制成对 用户更有价值的项目。
[0087] 3.排序筛选器:排序筛选器将来自直接数据拉取的数据集排列和重新混洗 (reshuffle)成经排序数组集合。
[0088] 图9描绘了含有两个部分的示例性元数据表。在该非限制性实施方式中,一个部 分被标记为排序选项。排序部分位于行27与行29之间。行29表示可能的排序选项,所述 排序选项要由提供给用户的报告表单所加载。搜索部分通过行31-行33提供给用户。此 夕卜,在该实施方式中,这些部分中的每个部分都读入到系统中,并以HTML形式为用户创建 应用,以供用户定义其输入参数。
[0089] 图10描绘了该特定实施方式中所得的表单。 牛.成报告
[0090] 本文公开的系统、平台、环境、应用和方法创建任何合适的报告。在一些实施方 式中,报告是二进制形式的来自解释器的生成的输出。在各个进一步实施方式中,二进制 形式是电子表格应用的二进制格式,所述电子表格应用包括但不限于:Excel95、Excel97、 Excel2000、Excel XP、Excel2003、Excel2007、Excel2010、0pen Office Calcl.0、0pen Office Calc2.0和Open Office Calc3.0。在其他实施方式中,报告的二进制形式是文字处理应用 的二进制格式。在一些实施方式中,报告是纯文本文件。在一些实施方式中,报告是PDF文 件。 用涂.消1应用
[0091] 本文公开的系统、平台、环境、应用和方法适合于任何类型的针对多种数据源的特 定查询(ad hoc query)以生成报告。在一些实施方式中,合适的查询针对范围广泛的不同 外部数据集以生成报告。在进一步的实施方式中,合适的查询是跨数据库查询,其中本文公 开的系统、平台、环境、应用和方法发起多个同时查询,每个查询都被符号地表示为单一表 格。 计算机
[0092] 在一些实施方式中,本文所述的系统、平台、环境、应用和方法包括计算机(例如, 数字处理设备)或者对其的使用。在进一步的实施方式中,计算机包括一个或多个执行设 备功能的硬件中央处理器(CPU)。在进一步的实施方式中,计算机进一步包括配置用于执 行可执行指令的操作系统。在一些实施方式中,计算机可选地连接至计算机网络。在进一 步的实施方式中,计算机可选地连接至因特网,以使得其访问万维网。在进一步的实施方式 中,计算机可选地连接至云计算基础架构。在其他实施方式中,计算机可选地连接至内联 网。在其他实施方式中,计算机可选地连接至数据存储设备。
[0093] 根据本文的描述,举非限制性示例而言,合适的计算机包括服务器计算机、台式计 算机、膝上型计算机、笔记本计算机、亚笔记本计算机、上网本计算机、上网平板计算机、机 顶盒计算机、手持式计算机、因特网电器、移动智能电话、平板计算机以及个人数字助理。本 领域技术人员将会认识到,许多智能电话都适合于在本文所述的系统中使用。本领域技术 人员还将认识到,具有可选的计算机网络连通性的挑选出的电视机、视频播放器和数字音 乐播放器适合于在本文所述的系统中使用。合适的平板计算机包括本领域中技术人员所知 晓的具有小本、平板和可转换式配置的平板计算机。
[0094] 在一些实施方式中,计算机包括配置为执行可执行指令的操作系统。操作系统 例如为包括程序和数据在内的软件,其管理设备的硬件并为应用的执行提供服务。本 领域技术人员将会认识到,举非限制性示例而言,合适的服务器操作系统包括FreeBSD、 OpenBSD、NetBSD'\ Linux> Apple" Mac os x ServerOracleSolaris Windows sei-vef_:K:和Novell* NetWare'本领域技术人员将会认识到,举非限制性 不例而目,合适的个人计算机操作系统包括M.ieiOS〇ft* Windows*、Apple_ Mac OS X?、UNIX?和类UNIX操作系统诸如GNU/ Linux?。在一些实施方式中,操作系统 是由云计算所提供。本领域技术人员还将认识到,举非限制性示例而言,合适的移动智能 电话操作系统包括 Nokia% Symbian* 〇s、Apple! _iOS' Research in Motion* BlackBerry OS' Google* Android.' Microsoft* Windows Phone? 〇S、 MiciOSoft'1'. Windows Mob.ile.'K. os、Linux.li;ffPalm..K'.WebOS.又.〇
[0095] 在一些实施方式中,计算机包括存储和/或存储器设备。存储和/或存储器设备 是一个或多个用于暂时地或永久地储存数据或程序的物理装置。在一些实施方式中,该设 备为易失性存储器,并且需用电力来维持所存信息。在一些实施方式中,该设备为非易失性 存储器,并且在数字处理设备未通电时依然保留所存信息。在进一步的实施方式中,非易失 性存储器包括闪速存储器。在一些实施方式中,非易失性存储器包括动态随机存取存储器 (DRAM)。在一些实施方式中,非易失性存储器包括铁电随机存取存储器(FRAM)。在一些实 施方式中,非易失性存储器包括相变随机存取存储器(PRAM)。在其他实施方式中,举非限制 性示例而言,该设备为存储设备,包括⑶_R〇M、DVD、闪速存储器设备、磁盘驱动器、磁带驱动 器、光盘驱动器和基于云计算的存储。在进一步的实施方式中,存储和/或存储器设备是诸 如本文所公开的设备的组合。
[0096] 在一些实施方式中,计算机包括显示器,以将视觉信息发送给用户。在一些实施方 式中,显示器为阴极射线管(CRT)。在一些实施方式中,显示器为液晶显示器(LCD)。在进 一步的实施方式中,显示器为薄膜晶体管液晶显示器(TFT-LCD)。在一些实施方式中,显示 器为有机发光二极管(0LED)显示器。在各个进一步的实施方式中,0LED显示器为无源矩 阵OLED(PMOLED)或有源矩阵OLED(AMOLED)显示器。在一些实施方式中,显示器为等离子 显示器。在其他实施方式中,显示器为视频投影仪。在进一步的实施方式中,显示器为诸如 本文所公开的设备的组合。
[0097] 在一些实施方式中,计算机包括输入设备以从用户接收信息。在一些实施方式中, 输入设备为键盘。在一些实施方式中,输入设备为指点设备,举非限制性示例而言,包括鼠 标、轨迹球、轨迹板、操纵杆、游戏控制器或触控笔。在一些实施方式中,输入设备为触摸屏 或多点触摸屏。在其他实施方式中,输入设备为麦克风,以捕捉语音或其他声音输入。在其 他实施方式中,输入设备为视频相机,以捕捉运动或视觉输入。在进一步的实施方式中,输 入设备为诸如本文所公开的设备的组合。 非瞬杰计算机可读介质
[0098] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括一个或多个编 码有程序的非瞬态计算机可读介质,所述程序包括可由数字处理设备的操作系统执行的指 令。在进一步的实施方式中,计算机可读介质是数字处理设备的有形组件。在进一步的实 施方式中,计算机可读介质可选地可以从数字处理设备拆卸。在一些实施方式中,举非限制 性示例而言,计算机可读介质包括⑶_R〇M、DVD、闪速存储器设备、固态存储器、磁盘驱动器、 磁带驱动器、光盘驱动器、云计算系统和服务等。在各个实施方式中,编码是永久的、基本上 永久的、半永久的或非瞬态的。 计算机稈序
[0099] 在一些实施方式中,本文公开的系统、平台、环境、应用和方法包括一个或多个计 算机程序。计算机程序包括可在数字处理设备的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 Web Toolkit、IceFaces、WebObjects、TurboGears、Zope、ColdFusion、BFC、DotNetNuke、 MonoRail、Flex和AJAX,或者它们的组合。
[0100] 在一些实施方式中,计算机程序包括一个指令序列。在一些实施方式中,计算机程 序包括多个指令序列。在各个实施方式中,计算机程序包括一个文件、一个代码段、一个编 程对象、一个编程结构,或者它们的组合。在进一步的各个实施方式中,计算机程序包括多 个文件、多个代码段、多个编程对象、多个编程结构,或者它们的组合。在一些实施方式中, 从一个位置递送计算机程序。在其他实施方式中,从多个位置递送计算机程序。在其他实 施方式中,从云计算平台或服务递送计算机程序。在各个实施方式中,计算机程序包括一个 或多个软件模块。在各个实施方式中,计算机程序部分地或整体地包括一个或多个网络应 用、一个或多个移动应用、一个或多个独立应用、一个或多个网络浏览器插件、扩展、加载项 或附加项,或者它们的组合。 软件樽块
[0101] 在各个实施方式中,本文公开的系统、平台、环境、应用和方法包括软件模块、服务 器模块和数据库模块。根据本文所提供的公开内容,通过使用本领域已知机器、软件和语言 的本领域技术人员已知的技术来创建软件模块。本文公开的软件模块是以多种方式实现 的。在各个实施方式中,软件模块包括一个文件、一个代码段、一个编程对象、一个编程结 构,或者它们的组合。在进一步的各个实施方式中,软件模块包括多个文件、多个代码段、多 个编程对象、多个编程结构,或者它们的组合。在各个实施方式中,举非限制性示例而言,所 述一个或多个软件模块包括网络应用、移动应用以及独立应用。在一些实施方式中,软件模 块处于一个计算机程序或应用中。在其他实施方式中,软件模块处于不止一个计算机程序 或应用中。在一些实施方式中,软件模块托管在一个机器上。在其他实施方式中,软件模块 托管在不止一个机器上。在进一步的实施方式中,软件模块托管在云计算平台上。在一些 实施方式中,软件模块托管在位于一个位置的一个或多个机器上。在其他实施方式中,软件 模块托管在位于不止一个位置的一个或多个机器上。 实施例
[0102] 以下的说明性实施例代表本文所述的软件应用、系统和方法的实施方式,但并不 旨在以任何方式成为限制性的。 实施例1 一已保存报告的创建
[0103] 一家公司的CEO要求他的销售主管创建其公司两个最大客户的报告,该报告在单 一报告上包括这些客户的信用限额、上年收入以及信用与应收账款比率,并且在报告的底 部有总计,包括总信用限额、去年总收入以及平均信用与收入比率。销售主管进行以下步 骤:
[0104] I.取出预制模板;
[0105] II.标识报告上的列标题(见图11);
[0106] III.给行的起始和结束添加标签(见图11);
[0107] IV.在底部创建求和公式用于信用限额、上年收入,并且添加平均信用与收入比 率;
[0108] V.将输出保存到应用文件夹;以及
[0109] VI.在搜索条中键入"General Motors Company, Pepperdine Demo",保存查询,并 向CEO发送通往具有已保存的查询的指定页面的链接。
[0110] CE0在方便时打开这个书签链接并运行报告,而无需开发者、经理或员工的介入。 见图12。这个简单的过程大约需要5-10分钟来开发出新的报告,且不要求开发者理解新的 过程语言。 实施例2-使用保存的报告来创建规格表
[0111] 一位产品开发设计师想要得到带有物料清单的规格表,该物料清单包括用以生产 最终商品的所有相应组件的重量、成本和数量。他为系统载入URL,并且向搜索表单中键入 产品库存单位(SKU)号码并检索所得的报告。报告的格式根据制造商的规范而定。设计师 检查并核实所有数据的正确性。将电子表格用电子邮件发送给制造商,以供进一步的产品 开发。 实施例3-单日出口报告
[0112] 一家货运代理公司想要得到按相应国家细分的其当日出口的所有集装箱的理货 单。公司总裁以该特定日的开始日期和结束日期运行报告。系统列出按照与之相同的顺序 排序的所有SKU、集装箱、船只和国家。 实施例4一销售报告
[0113] 一家公司的销售经理需要编制一份她的销售队伍的所有应付佣金的月末报告。她 输入12/1/2011作为她的报告的起始日期以及12/31/2011作为结束日期,按照销售人员排 序。该报告具有表格形式的所有美元金额和佣金率,其中每个行项含有数量*价格*佣金 率的小计。在电子表格的底部是一些计算,包括当月发货单位总数、当月销售所有货物平均 价格点以及当月待付总佣金率的汇总。 实施例5-跨数据库查询
[0114] 跨数据库查询利用不维持任何数据库存储机制的存储器内数据库。系统在元数据 对象中保存查询的完整列表。每个查询都符号地表示为单一表格。在将所有的独立结果集 转换成表格之后,XDB数据库将表格与附加处理上的层联结起来,以返回最终的结果集。 基本概沭
[0115] 一个特定实施方式,涉及两个查询:
[0116] 查询 1: SELECT customer_id, customer_name FROM customer
[0117] 表别名:xdbl
[0118] 所得的结果集将会产生以下数据集:_

【权利要求】
I. 一种用于实现适用于报告生成的基于电子表格的编程语言的基于计算机的系统,该 系统包括: a. 可选地联网的计算机,该计算机包括处理器、配置为执行可执行指令的操作系统,以 及存储器设备; b. 计算机程序,该计算机程序包括指令,所述指令可由数字处理设备执行以创建用以 实现用于报告生成的基于电子表格的编程语言的环境,其中所述环境包括:
1. 用于在电子表格内储存一个或多个指定的外部数据集的结构的软件模块,其中通过 基于单元格的公式来创建对每个数据集的引用; ii. 用于解释过程函数的软件模块,其中在报告设计模板中经由标签来指定过程函数; 以及 iii. 用于生成报告的软件模块。
2. 根据权利要求1所述的系统,其中所述一个或多个外部数据集是数据库。
3. 根据权利要求2所述的系统,其中所述一个或多个数据库是关系数据库、非关系数 据库、面向对象的数据库、对象数据库、实体-关系模型数据库、关联数据库或XML数据库。
4. 根据权利要求1所述的系统,其中所述一个或多个外部数据集是表格式数据集。
5. 根据权利要求4所述的系统,其中所述一个或多个表格式数据集是由逗号分隔的文 本文件、由制表符划界的文本文件或者具有嵌入有表格结构数据集的本地数据集的二进制 文件。
6. 根据权利要求1所述的系统,其中所述用于储存一个或多个指定的外部数据集的结 构的软件模块将所述结构储存为符号引用。
7. 根据权利要求1所述的系统,其中所述软件解释器解释所述过程函数以执行查询。
8. 根据权利要求7所述的系统,其中所述查询可选地包括以下之一或者全部两者:搜 索参数和排序参数。
9. 根据权利要求7所述的系统,还包括用于保存查询以供随后执行的软件模块。
10. 根据权利要求9所述的系统,其中每个保存的查询由URL所表示,该URL在被激活 时执行所述查询。 II. 根据权利要求1所述的系统,其中所述报告设计模板是电子表格。
12. 根据权利要求11所述的系统,其中所述电子表格是Microsoft Excel的任何版本、 OpenOffice Calc的任何版本和派生物,或者Lotusl-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所述的方法,其中以单一标签来利用一个或多个标签。
【文档编号】G06F17/30GK104285209SQ201280069713
【公开日】2015年1月14日 申请日期:2012年12月27日 优先权日:2011年12月29日
【发明者】迈克尔·J·陈 申请人:比博实验室公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1