CN102479341B - 具有语义指导的报表设计 - Google Patents

具有语义指导的报表设计 Download PDF

Info

Publication number
CN102479341B
CN102479341B CN201010556986.2A CN201010556986A CN102479341B CN 102479341 B CN102479341 B CN 102479341B CN 201010556986 A CN201010556986 A CN 201010556986A CN 102479341 B CN102479341 B CN 102479341B
Authority
CN
China
Prior art keywords
report
region
circulation
keyword
option
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
CN201010556986.2A
Other languages
English (en)
Other versions
CN102479341A (zh
Inventor
戴维·莫西曼
马科·尤多维西克
熊务真
菲利普·齐格勒
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.)
Business Objects Software Ltd
Original Assignee
Business Objects Software Ltd
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 Business Objects Software Ltd filed Critical Business Objects Software Ltd
Priority to CN201010556986.2A priority Critical patent/CN102479341B/zh
Priority to US12/967,231 priority patent/US9053176B2/en
Priority to CA2754567A priority patent/CA2754567C/en
Priority to EP11009293A priority patent/EP2458533A1/en
Publication of CN102479341A publication Critical patent/CN102479341A/zh
Application granted granted Critical
Publication of CN102479341B publication Critical patent/CN102479341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3322Query formulation using system suggestions
    • G06F16/3323Query formulation using system suggestions using document space presentation or visualization, e.g. category, hierarchy or range presentation and selection
    • 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/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Data Mining & Analysis (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

具有语义指导的报表设计,这里描述了用于在请求向报表的区域中放置新报表对象时向用户提供放置选项集合的系统和方法的各种实施例。一个或多个已有报表对象与报表的区域相关联。根据以下各项中的至少一个来确定放置选项集合:请求在其中放置新报表对象的区域的区域类型,以及新报表对象与一个或多个已有报表对象之间的语义关系。在一个实施例中,报表的区域包括子区域。根据新报表对象和与区域和子区域相关联的已有报表对象之间的语义关系来确定用于子区域的放置选项集合。

Description

具有语义指导的报表设计
技术领域
实施例一般涉及计算机系统,更具体而言,涉及用于提供放置选项(placementoption)集合的方法和系统,所述放置选项用于在报表的区域内放置新报表对象。
背景技术
诸如SAP公司的水晶报表(CrystalReport)的商务智能(Businessintelligence,BI)为用户提供了灵活的平台来实时创建报表。这些工具允许用户在报表的任何区域中包括新报表对象。这使得用户能够根据需求改变报表。
报表包括一个或多个区域,所述一个或多个区域可以包含一个或多个已有报表对象。目前,当报表设计者在所述一个或多个区域中的任何一个中放置新报表对象时,报表设计者并不知晓这种添加是否能保持报表呈现(reportrendering)的语义有效性。具体来说,报表设计者发现很难知晓(understand)新报表对象与报表中的相同区域内存在的一个或多个报表对象的组合是否会保持呈现的有效性。
因此,希望有一种方法,在用户试图在报表的区域内放置新报表对象时向用户提供语义正确的放置选项的集合。这将确保语义正确的报表呈现。
发明内容
这里描述了用于在请求在报表的区域内放置新报表对象时提供放置选项集合的系统和方法的各种实施例。接收在报表的区域内放置新报表对象的请求。基于以下各项中的至少一个确定放置选项集合:区域类型、以及新报表对象和与该区域关联的一个或多个已有报表对象之间的语义关系。区域的区域类型是循环类型(iterativetype)和静态类型之一。基于所述确定提供放置选项集合。
通过考虑以下结合附图提供的对优选实施例的具体描述,本发明实施例的这些和其他优点和特征将变得明显。
附图说明
权利要求从特征性方面阐述了本发明的实施例。在附图的图示中,以示例方式而非限制方式示出了本发明。在附图中,相同的参考标记指代相同的元素。通过以下结合附图进行的具体描述,将能充分理解本发明的实施例及其优点。
图1是根据一个实施例示出用于在请求在报表的区域中放置新的报表对象时提供放置选项集合的方法的流程图。
图2是根据一个实施例示出用于获得语义关系和区域类型的方法的流程图。
图3是根据一个实施例示出用于确定图1的放置选项集合的方法的流程图。
图4是根据一个实施例示出用于在所选择的放置选项是“原样放置”(place-as-is)时图1的呈现报表的方法的流程图。
图5是根据一个实施例示出用于当所选择的放置选项是“放置和循环”(place-and-iterate)时图1的呈现报表的方法的流程图。
图6是根据一个实施例示出用于在所选择的放置选项是“放置和聚合”(place-and-aggregate)时图1的呈现报表的方法的流程图。
图7是根据一个实施例示出用于在所选择的放置选项是“放置和扩展”(place-and-expand)时图1的呈现报表的方法的流程图。
图8根据一个实施例示出了示例性报表。
图9A根据另一个实施例示出了接收放置新报表对象请求的示例性报表。
图9B根据一个实施例示出了用于在图9A的报表的区域中放置新报表对象的放置选项集合。
图9C根据一个实施例示出了在图9A的报表的区域内放置的新报表对象。
图9D根据一个实施例示出了图9A的报表的呈现。
图10A根据一个实施例示出了接收放置新报表对象请求的示例性报表。
图10B根据一个实施例示出了用于在图10A的报表中放置新报表对象的放置选项集合。
图10C根据一个实施例示出了在图10A的报表中放置的新报表对象。
图10D根据一个实施例示出了图10A的报表的呈现。
图11A根据一个实施例示出了接收请求放置新报表对象的图10A的报表。
图11B根据一个实施例示出了用于在图11A的报表中放置新报表对象的放置选项的集合。
图12A根据一个实施例示出了当所选择的放置选项是“放置和循环”时在图11A的报表中放置的新报表对象。
图12B根据一个实施例示出了当所选择的放置选项是“放置和循环”时图11A的报表的呈现。
图13A根据一个实施例示出了当所选择的放置选项是“放置和扩展”时在图11A的报表中放置的新报表对象。
图13B根据一个实施例示出了当所选择的放置选项是“放置和扩展”时图11A的报表的呈现。
图14A根据一个实施例示出了用于在所选择的放置选项是“放置和聚合”时在图11A的报表中放置新报表对象的聚合选项的集合。
图14B根据一个实施例示出了当从图14A的聚合选项集合中选择了聚合选项之一时在图11A的报表中放置的新报表对象的聚合值。
图14C根据一个实施例示出了当所选的放置选项是“放置和聚合”时图11A的报表的呈现。
图15A根据另一个实施例示出了接收放置新报表对象请求的示例性报表。
图15B根据一个实施例示出了用于在图15A的报表中放置新报表对象的放置选项集合。
图16A根据一个实施例示出了当所选择的放置选项是“放置和扩展”时图15A的报表。
图16B根据一个实施例示出了当所选的放置选项是“放置和扩展”时图15A的报表的呈现。
图17A根据一个实施例示出了用于在图15A的报表中放置新报表对象的聚合选项的集合。
图17B根据一个实施例示出了当所选择的放置选项是“放置和循环”时在图15A的报表中放置的新报表对象的聚合值。
图17C根据一个实施例示出了当所选择的放置选项是“放置和扩展”时图15A的报表的呈现。
图18根据一个实施例示出了用于在请求向报表的区域中放置新报表对象时提供放置选项集合的系统的框图。
图19根据一个实施例示出了可以实现所描述的用于提供放置选项集合的技术的计算环境的框图。
具体实施方式
这里将描述用于提供具有语义指导(semanticallyguided)的报表设计的技术的实施例。在以下描述中,阐述了许多特定细节以提供对本发明实施例的全面理解。然而本领域技术人员将会认识到,在没有一个或多个特定细节的情况下也可以实践本发明,或者可以利用其它方法、组件、材料等实践本发明。在其它实例中,为避免使本发明的方面模糊,没有示出或描述公知的结构、材料或操作。
贯穿本说明书,对“一个实施例”、“本实施例”或类似短语的提及,均指结合该实施例所描述的具体特征、结构或特性包括在本发明的至少一个实施例中。因此,贯穿本说明书在各种位置这些短语的出现并不一定全部指代同一个实施例。再有,具体的特征、结构或特性可以在一个或多个实施例中以任何适当的方式组合。
图1是根据一个实施例示出用于在请求在报表的区域内放置新报表对象时提供放置选项集合的方法的流程图。报表可以具有一个或多个区域。一个或多个已有报表对象可以与报表的每个区域相关联。在一个实施例中,报表的一个或多个区域可以包括存在于报表的该区域内的一个或多个子区域。一个或多个已有报表对象可以与报表的一个或多个子区域相关联。在一个实施例中,报表是诸如水晶报表或SAPBusinessObjectsTMWebIntelligence的商务智能(BI)应用。
最初,在方框102,接收在报表的区域中放置新报表对象的请求。在一个示例性实施例中,从用户接收该请求。在一个实施例中,通过用户接口接收该请求。在一个实施例中,接收在存在于报表的区域内的子区域中放置新报表对象的请求。一个或多个已有报表对象中的每一个以及新报表对象可以包含一个或多个数据元素。
接下来,在方框104,确定放置选项的集合。在一个实施例中,基于以下各项中的至少一个来确定放置选项的集合:区域类型、以及新报表对象和与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象之间的语义关系。
在一个实施例中,当请求在存在于区域内的子区域中放置新报表对象时,基于区域(子区域)类型、以及新报表对象和与该子区域相关联的一个或多个已有报表对象以及与其中放置了该子区域的区域相关联的一个或多个已有报表对象之间的语义关系,来确定放置选项的集合。
区域类型可以是循环类型或静态类型。在一个实施例中,通过呈现与区域相关联的报表对象(已有的或新的)所关联的数据元素来呈现区域类型为静态类型的区域。在一个实施例中,通过顺序地呈现包含在与区域相关联的报表对象(已有的或新的)中的数据元素来呈现区域类型为循环类型的区域。
语义关系是一对一关系或一对多关系。在一对一关系中,一个实体与另一个实体相关联。在一对多关系中,一个实体与潜在的多个其他实体相关联。在一个实施例中,当新的或已有的报表对象的每个数据元素仅仅对应于另一个已有的或新报表对象的单个数据元素时,语义关系为一对一关系。在一个实施例中,当新的或已有的报表对象的每个数据元素对应于另一个已有的或新报表对象的多于一个的数据元素时,语义关系为一对多关系。
在一个实施例中,语义关系可以是直接关系或传递关系(transitiverelationship)。当已有报表对象或新报表对象的每个数据元素与另一个已有报表对象或新报表对象的一个或多个数据元素具有直接的(一对一或一对多)关系时,在两个已有报表对象之间或新报表对象与已有报表对象之间存在直接关系。当已有报表对象或新报表对象的每个数据元素与另一个已有的或新报表对象的一个或多个数据元素没有直接关系,但有关系时,在两个报表对象之间存在传递关系。
最后,在方框106,提供在方框104中确定的放置选项的集合。在一个实施例中,将放置选项集合提供给用户。在一个实施例中,放置选项的集合提供对于在报表的区域中放置新报表对象的语义指导。在一个实施例中,由用户选择放置选项集合中的放置选项之一。在一个实施例中,自动从放置选项集合中选择放置选项之一。在一个实施例中,在用户能够通过其选择放置选项集合中的放置选项之一的用户接口上提供放置选项的集合。
图2是根据一个实施例示出在图1的方框104获取区域类型和语义关系的方法的流程图。最初,在方框202,提取报表的当前状态以及与一个或多个已有报表对象和新报表对象相关联的元数据。在一个实施例中,元数据构成较大数据集合的子集或代表值。在一个实施例中,元数据包括与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象之间的语义关系,以及新报表对象和与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象之间的语义关系。在一个实施例中,元数据包括与报表的子区域相关联的一个或多个已有报表对象之间的语义关系、与子区域相关联的一个或多个已有报表对象和与该子区域存在于其中的区域相关联的一个或多个已有报表对象之间的语义关系、以及新报表对象和与该子区域以及该子区域存在于其中的区域相关联的一个或多个已有报表对象之间的语义关系。
报表的当前状态包括请求将新报表对象放入其中的区域的信息。在一个实施例中,该信息包括与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象的信息以及该区域的区域类型(用于在图1方框104的确定)。在一个实施例中,当在报表中创建区域时定义区域类型。如上所述,区域类型可以是静态类型或循环类型。
在一个实施例中,包括在报表的当前状态中的信息包括循环关键字(iterationkey)。区域类型为循环类型的每个报表区域都具有循环关键字。在一个实施例中,当区域被创建或被添加到报表时(例如当区域不包括已有报表对象时),循环关键字最初为空。循环关键字存储与区域类型为循环类型的区域相关联的一个或多个已有报表对象。在一个实施例中,循环关键字定义在呈现操作期间呈现与区域类型为循环类型的区域相关联的一个或多个已有报表对象的一个或多个数据元素的顺序。在一个实施例中,循环关键字存储指示呈现顺序的类型的值。在一个实施例中,顺序的类型可以是以下各项之一:按字母升序、按字母降序、按照存储与一个或多个已有报表对象相关联的一个或多个报表对象的存储器所定义的次序、或按照特定的次序。在一个实施例中,特定的次序存储在循环关键字中,该特定次序定义数据元素将被呈现的次序。
在一个实施例中,存在于报表的区域内的子区域的区域类型为循环类型。当在报表的子区域中不存在报表对象时,该子区域最初为空。子区域的循环关键字包括与子区域相关联的一个或多个已有报表对象。在一个实施例中,循环关键字定义在呈现操作中呈现与区域和子区域相关联的一个或多个已有报表对象的一个或多个数据元素的顺序,所述区域和子区域的区域类型为循环类型。
接下来,在方框204,在数据壳(datahull)中存储与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象。在一个实施例中,数据壳是与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象的汇集(collection)。在一个实施例中,子区域的数据壳包括与子区域相关联的一个或多个已有报表对象以及与区域相关联的一个或多个已有报表对象的汇集。在子区域存在于其中的区域是另一个区域(即,子区域存在于其中的区域的父类(parent)区域)的子区域的情况下,子区域的数据壳将包括该子区域中包含的一个或多个已有报表对象、与该区域相关联的一个或多个已有报表对象、以及与该区域的父类区域相关联的一个或多个已有报表对象的汇集。因此,子区域的数据壳包括该子区域的一个或多个已有报表对象以及该子区域的所有父类区域(直到最顶层)的一个或多个已有报表对象。
最后,在方框206,查询元数据以获取新报表对象与在方框204存储在数据壳中的一个或多个已有报表对象中的每一个之间的语义关系。如上所述,数据壳存储请求将新报表对象放入其中的区域相关联的一个或多个报表对象。查询在方框202中提取的元数据以获取新报表对象和与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象中的每一个之间的语义关系。在一个实施例中,当请求将新报表对象放入放置在区域内的子区域中时,查询元数据以获取新报表对象和与该子区域相关联的一个或多个已有报表对象以及与该子区域存在于其中的区域相关联的一个或多个已有报表对象之间的语义关系。
图3是根据一个实施例示出在图1的方框104中确定放置选项的集合的方法的流程图。如参照图1的方框104所讨论的,基于以下各项中的至少一个来确定用于在报表的区域中放置新报表对象的放置选项的集合:请求将新报表对象放入其中的区域的区域类型(例如循环类型或静态类型)、以及新报表对象和与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象中的每一个之间的语义关系。如方框302所示,确定请求将新报表对象放入其中的区域的区域类型是否是静态类型。在方框302的条件(即区域类型是否为静态)为真的情况下,将用于在报表区域中放置新报表对象的放置选项的集合确定为“放置和聚合”以及“放置和扩展”(方框304)。在一个实施例中,在方框302确定子区域的区域类型是否为静态,并且将用于在子区域中放置新报表对象的放置选项的集合确定为“放置和聚合”以及“放置和扩展”。
接下来,在方框302中的条件为假(即,区域类型为循环)的情况下,在方框306确定新报表对象和与该区域相关联的一个或多个已有报表对象中的每一个之间的语义关系是否为一对一。在一个实施例中,当请求将新报表对象放入放置在区域内的子区域中时,在方框306确定新报表对象和与子区域和子区域位于其中的区域相关联的一个或多个已有报表对象中的每一个之间的语义关系是否为一对一。在方框306中的条件为真(即,新报表对象与一个或多个已有报表对象之间的语义关系为一对一)的情况下,将用于在报表的区域内放置新报表对象的放置选项的集合确定为“原样放置”(方框308)。
在方框306中的条件为假(即,新报表对象与一个或多个已有报表对象之间的语义关系为一对多)的情况下,用于在报表的区域中放置新报表对象的放置选项的集合为“放置和循环”、“放置和聚合”以及“放置和扩展”(方框310)。
图4是根据一个实施例示出了从方框106中提供的放置选项的集合中选择的放置选项为“原样放置”时图1的用于呈现报表的方法的流程图。在一个实施例中,用户选择放置选项。在一个实施例中,放置选项被自动选择。如图3的方框306和308中所示,当区域类型为循环、且新报表对象和与请求将新报表对象放入其中的区域相关联的一个或多个已有报表对象之间的语义关系为一对一时,放置选项被确定为“原样放置”。最初,在方框402,确定请求将新报表对象放入其中的区域的循环关键字是否为空(即,请求将新报表对象放入其中的区域不包括一个或多个已有报表对象)。在方框402中的条件为真(即,该区域的循环关键字为空)的情况下,将该新报表对象添加到该区域的循环关键字中(方框404)。在方框402中的条件为假(即,该区域的循环关键字不为空)的情况下,不改变该区域的循环关键字(方框406)。在一个实施例中,当请求将新报表对象放入放置在区域中的子区域中时,在方框402确定子区域的循环关键字是否为空。在子区域的循环关键字为空的情况下,将新报表对象添加到该子区域的循环关键字中(方框404),否则不将新报表对象添加到该子区域的循环关键字中(方框406)。
接下来,在方框408,在请求将新报表对象放入其中的报表的区域中放置新报表对象(或者在所接收的请求是将新报表对象放入子区域中的情况下,在子区域中放置新报表对象)。将新报表对象和与请求将新报表对象放入其中的区域相关联的已有报表对象放置在一起。
接下来,在方框410,基于循环关键字呈现与一个或多个已有报表对象和新报表对象相关联的一个或多个数据元素。呈现可以以多种方式执行,例如通过在盘上创建文件(例如文本文件、pdf文件或xls文件)、在计算机屏幕上创建图形、语音输出或打印。在一个实施例中,循环关键字定义在呈现操作中呈现一个或多个数据元素的顺序。在一个实施例中,当请求将新报表对象放入放置在区域内的子区域中时,基于子区域的循环关键字和请求将新报表对象放入其中的区域的循环关键字呈现报表。
最后,在方框412,可选地显示在方框410获取的所呈现的输出。在一个实施例中,当报表被呈现为计算机屏幕上的图形时显示所呈现的输出。在一个实施例中,在用户接口上显示所呈现的输出。
图5是根据一个实施例示出当从图1的方框106提供的放置选项集合中选择的放置选项为“放置和循环”时图1的呈现报表的方法的流程图。在一个实施例中,用户从放置选项的集合选择所选择的放置选项。在一个实施例中,所选择的放置选项是自动选择的。最初,在方框502,将请求放入报表的区域中的新报表对象添加到该区域的循环关键字中。在一个实施例中,当请求将新报表对象放入放置在区域内的子区域中时,将新报表对象添加到子区域的循环关键字中。接下来,在方框504,将新报表对象放置在请求将新报表对象放入其中的区域中(或者,在请求将新报表对象放入存在于报表的区域内的子区域中的情况下,在子区域中放置该新报表对象)。
接下来,在方框506,基于循环关键字呈现与一个或多个已有报表对象中的每一个和新报表对象相关联的一个或多个数据元素。
最后,在方框508,可以可选地显示在方框506获取的所呈现的输出。在一个实施例中,当报表被呈现为计算机屏幕上的图形时显示所呈现的输出。在一个实施例中,在用户接口上显示所呈现的输出。
图6是根据一个实施例示出当从图1的方框106提供的放置选项的集合中选择的放置选项是“放置和聚合”时图1的呈现报表的方法的流程图。在一个实施例中,用户选择所选择的放置选项。在一个实施例中,所选择的放置选项是自动选择的。最初,在方框602,提供聚合选项的集合。在一个实施例中,放置选项的集合被提供给用户。在一个实施例中,聚合选项的集合包括求和选项(新报表对象中所有数据元素的和)、最大值(Max)选项(指的是新报表对象中具有最大值的数据元素)、计数选项(新报表对象中的数据元素的计数)、最小值(Min)选项(指的是新报表对象中具有最小值的数据元素)以及平均值选项(指的是包含在新报表对象中的所有数据元素的平均值)。在一个实施例中,在用户接口上将聚合选项的集合提供给用户。在方框602,用户从提供给用户的聚合选项的集合中选择聚合选项之一。
接下来,在方框604,基于从聚合选项的集合中选择的聚合选项,计算与新报表对象相关联的一个或多个数据元素的聚合值。例如,假设新报表对象具有5个数据元素,并且所选择的聚合选项是计数(与新报表对象相关联的数据元素的计数),则该新报表对象的聚合值为5。
接下来,在方框606,将在方框604计算的聚合值放置在请求将新报表对象放入其中的区域中(或者当请求将新报表对象放入子区域中时将该所计算的聚合值放置在子区域中)。在一个实施例中,当请求将新报表对象放置在存在于报表的区域中的子区域中时,将在方框604中计算的聚合值放置在该子区域中。
接下来,在方框608,呈现与一个或多个已有报表对象相关联的一个或多个数据元素以及聚合值。
最后,在方框610,可以可选地显示在方框608获取的所呈现的输出。在一个实施例中,当报表被呈现为计算机屏幕上的图形时显示所呈现的输出。在一个实施例中,在用户接口上显示所呈现的输出。
图7是根据一个实施例示出当从图1的方框106中提供的放置选项的集合中选择的放置选项为“放置和扩展”时图1的呈现报表的方法的流程图。在一个实施例中,用户从放置选项的集合中选择所选择的放置选项。在一个实施例中,所选择的放置选项被自动选择。最初,在方框702,在请求在其中放置新报表对象的区域中创建子区域。在一个实施例中,在方框702中创建的子区域的区域类型为循环类型。当子区域被创建时子区域的循环关键字为空。
接下来,在方框704,将新报表对象添加到子区域的循环关键字中。如上所述,循环关键字定义呈现存储在循环关键字中的每个报表对象的一个或多个数据元素的顺序。在本实施例中,通过顺序地呈现与新报表对象相关联的一个或多个数据元素来呈现报表的子区域。接下来,在方框706,将新报表对象放置在请求将新报表对象放置其中的区域的子区域中。
接下来,在方框708,呈现与一个或多个已有报表对象和新报表对象相关联的一个或多个数据元素。在一个实施例中,当请求将新报表对象放入其中的区域的区域类型为循环类型时,基于区域的循环关键字和子区域(包括新报表对象的子区域)的循环关键字呈现与一个或多个已有报表对象和新报表对象相关联的一个或多个数据元素。在一个实施例中,当请求将新报表对象放入其中的区域的区域类型为静态类型时,基于子区域的循环关键字呈现与一个或多个已有报表对象和新报表对象相关联的一个或多个数据元素。
最后,在方框710,可以可选地显示在方框708获取的所呈现的输出。在一个实施例中,当报表被呈现为计算机屏幕上的图形时显示所呈现的输出。在一个实施例中,所呈现的输出被显示在用户接口上。
图8根据一个实施例示出了示例的报表800。报表800具有区域802和区域804。在一个实施例中,报表800的区域802和804中的每一个可以包括一个或多个已有报表对象。报表800的区域802具有已有报表对象806“销售计数”,报表800的区域804具有已有报表对象808“国家”。
在一个实施例中,已有报表对象806和已有报表对象808包括一个或多个数据元素。已有报表对象806“销售计数”包括数据元素10000,已有报表对象808“国家”包括数据元素加拿大、法国和德国。
区域802的区域类型为静态类型,区域804的区域类型为循环类型。如上所述,通过呈现与区域802相关联的数据元素(即,已有报表对象806“销售计数”)来呈现区域类型为静态类型的区域802。
区域类型为静态类型的区域802通过呈现与区域802相关联的已有报表对象806“销售计数”的数据元素10000来呈现。在一个实施例中,区域802通过呈现已有报表对象806“销售计数”的数据元素10000来呈现。
区域类型为循环类型的区域804具有循环关键字。区域804的循环关键字存储与区域804相关联的已有报表对象808“国家”。在一个实施例中,循环关键字定义在呈现操作中呈现已有报表对象808“国家”的数据元素的顺序。基于循环关键字,顺序地且重复地呈现已有报表对象808“国家”的数据元素加拿大、法国和德国。在一个示例性实施例中,最初呈现数据元素加拿大(已有报表对象808“国家”),随后是数据元素法国(已有报表对象808“国家”),最后呈现数据元素德国(已有报表对象808“国家”)。
图9A根据另一实施例示出了示例性报表900。报表900具有区域类型为循环类型的区域904。已有报表对象808“国家”与报表900的区域904相关联。已有报表对象808“国家”包数据元素加拿大、法国和德国。
如在图1的方框102中所述,最初请求将新报表对象902“国家人口”放置到报表900的区域904中。新报表对象902“国家人口”具有数据元素30M、60M和80M。在已有系统中,报表设计者不能知晓将新报表对象902“国家人口”与已有报表对象808“国家”一起放置在报表900的区域904中是否会保持报表900的呈现有效性。这可能导致报表900的所呈现的输出在语义上不正确。
本发明通过向报表设计者提供用于在报表900的区域904中放置新报表对象902“国家人口”的语义指导来解决这一问题。在一个实施例中,语义指导基于新报表对象902“国家人口”与已有报表对象808“国家”之间的语义关系。向报表设计者提供的语义指导确保了在将新报表对象902“国家人口”放置在报表900的区域904中之后呈现的报表900在语义上是正确的。
接下来,提取报表900的当前状态和与已有报表对象808“国家”和新报表对象902“国家人口”相关联的元数据(图2的方框202)。报表900的当前状态包括请求将新报表对象902“国家人口”放入其中的区域904的信息。区域904的信息包括与请求将新报表对象902“国家人口”放入其中的区域904相关联的已有报表对象808“国家”的信息,以及请求将新报表对象902“国家人口”放入其中的区域904的区域类型。如上所述,该区域类型为循环类型。
元数据包括新报表对象902“国家人口”与已有报表对象808“国家”之间的语义关系。新报表对象902“国家人口”与已有报表对象808“国家”之间的语义关系为一对一,因为已有报表对象808“国家”的每个数据元素(即加拿大、法国和德国)在新报表对象902“国家人口”中具有单个的相应数据元素。
将已有报表对象808“国家”存储在区域904的数据壳内(图2的方框204)。接下来,查询元数据以获取新报表对象902“国家人口”和与请求将新报表对象902“国家人口”放入其中的区域904相关联的已有报表对象808“国家”之间的语义关系(图2的方框206)。如上所述,新报表对象902“国家人口”和已有报表对象808“国家”之间的语义关系为一对一。
接下来,确定用于在报表900的区域904中放置新报表对象902“国家人口”的放置选项的集合(图1中的方框104)。基于区域类型(即,循环类型)和新报表对象902“国家人口”与已有报表对象808“国家”之间的语义关系中的至少一个来确定放置选项的集合。在本实施例中,(区域904)的区域类型为循环类型,并且新报表对象902“国家人口”和已有报表对象808“国家”之间的语义关系为一对一,因此所确定的用于在报表900的区域904中放置新报表对象902“国家人口”的放置选项的集合为“原样放置”(图3中的方框306和方框308)。
接下来,基于所述确定提供放置选项的集合(图1的方框106)。图9B根据本发明的一个实施例示出了所提供的用于在报表900的区域904中放置新报表对象902“国家人口”的放置选项的集合。如图所示,所提供的放置选项的集合908为“原样放置”。在一个实施例中,在用户接口上提供放置选项的集合908。在一个实施例中,在用户接口将放置选项的集合908提供给用户。
在一个实施例中,当选择“原样放置”908时,确定请求将新报表对象902“国家人口”放入其中的区域904的循环关键字是否为空(图4的方框402)。请求将新报表对象902“国家人口”放入其中的区域904的循环关键字存储已有报表对象808“国家”(即,不为空)。因此,不将新报表对象902“国家人口”添加到区域904的循环关键字中(图4的方框406)。
然后将新报表对象902“国家人口”放置在报表900的区域904中(图4的方框408)。图9C根据一个实施例示出了在报表900的区域904中放置的新报表对象902“国家人口”。如图所示,新报表对象902“国家人口”与已有报表对象808“国家”一起放置在报表900的区域904中。
最后,基于区域904的循环关键字呈现已有报表对象808“国家”和新报表对象902“国家人口”的数据元素(图4的方框410)。图9D根据一个实施例示出了当所选择的放置选项为“原样放置”908时图9A的报表900的呈现。由于区域904的区域类型为循环类型,因此基于区域904的循环关键字呈现报表900。如上所述,区域904的循环关键字包括已有报表对象808“国家”。通过顺序地呈现与存储在循环关键字中的已有报表对象808“国家”相关联的数据元素加拿大、法国和德国来呈现报表900。在一个实施例中,循环关键字定义呈现存储在循环关键字中的报表对象(已有报表对象808“国家”)的数据元素的顺序。如图9D中所示,最初呈现已有报表对象808“国家”的第一数据元素加拿大和新报表对象902“国家人口”的相应数据元素30M。接下来,呈现第二数据元素法国(已有报表对象808“国家”和相应的数据元素60M(新报表对象902“国家人口”)。最后呈现数据元素德国(已有报表对象808“国家”)和相应的数据元素80M(新报表对象902“国家人口”)。
图10A根据一个实施例示出了接收放置新报表对象的请求的示例性报表1000。报表1000包括区域1002和存在于区域1002中的子区域1004。已有报表对象808“国家”与区域1002相关联。已有报表对象1008“地区”与子区域1004相关联。
最初,接收在具有已有报表对象1008“地区”的子区域1004中放置新报表对象902“国家人口”的请求(图1的方框102)。如上所述,已有报表对象808“国家”具有数据元素加拿大、法国和德国。已有报表对象1008“地区”具有数据元素BC、ON、IdF和BW。这些缩写分别代表英属哥伦比亚、安大略、法兰西岛和巴登-符腾堡。新报表对象902“国家人口”具有数据元素30M、60M和80M。区域1002和子区域1004的区域类型为循环类型。区域1002的循环关键字存储与区域1002相关联的已有报表对象808“国家”。子区域1004的循环关键字存储与子区域1004相关联的已有报表对象1008“地区”。
接下来,提取报表1000的当前状态以及与已有报表对象808“国家”、已有报表对象1008“地区”和新报表对象902“国家人口”相关联的元数据(图2的方框202)。在一个实施例中,报表1000的当前状态包括请求将新报表对象902“国家人口”放入其中的子区域1004以及子区域1004存在于其中的区域1002的信息。所述信息包括与子区域1004相关联的已有报表对象1008“地区”的信息、与区域1002相关联的已有报表对象808“国家”的信息以及与请求将新报表对象902“国家人口”放入其中的子区域1004的区域类型的信息。
在一个实施例中,元数据包括已有报表对象1008“地区”与已有报表对象808“国家”之间的语义关系、以及新报表对象902“国家人口”与已有报表对象1008“地区”和已有报表对象808“国家”中的每一个之间的语义关系。新报表对象902“国家人口”与已有报表对象808“国家”具有直接的一对一关系,与已有报表对象1008“地区”具有传递(transitive)一对一关系。已有报表对象808“国家”与已有报表对象1008“地区”具有一对多的关系(因为已有报表对象808“国家”的单个数据元素与已有报表对象1008“地区”的一个或多个数据元素相关)。
子区域1004的数据壳存储与子区域1004相关联的已有报表对象1008“地区”、以及与子区域1004放置于其中的区域1002相关联的已有报表对象808“国家”(图2的方框204)。接下来,查询元数据以获取新报表对象902“国家人口”与存储在子区域1004的数据壳中的每一个已有报表对象之间的语义关系(图2的方框206)。
接下来,基于下列各项中的至少一个确定用于在子区域1004中放置新报表对象902“国家人口”的放置选项的集合:请求将新报表对象902“国家人口”放入其中的子区域1004的区域类型、以及新报表对象902“国家人口”与已有报表对象1008“地区”和已有报表对象808“国家”中的每一个之间的语义关系。请求将新报表对象902“国家人口”放入其中的子区域1004的区域类型为循环类型。新报表对象902“国家人口”与已有报表对象1008“地区”和已有报表对象808“国家”中的每一个之间的语义关系为一对一,因此所确定的放置选项的集合为“原样放置”(图3中的方框306和方框308)。
接下来,基于所述确定提供放置选项的集合(图1中的方框106)。在一个实施例中,在用户接口上将放置选项的集合提供给用户。图10B根据一个实施例示出了所提供的用于在图10A的报表1000的子区域1004中放置新报表对象902“国家人口”的放置选项的集合908。如图所示,所提供的用于在子区域1004中放置新报表对象902“国家人口”的放置选项的集合908为“原样放置”。
在一个实施例中,当所选择的放置选项为“原样放置”908时,确定请求将新报表对象902“国家人口”放入其中的子区域1004的循环关键字是否为空(图4的方框402)。在本实施例中,请求将新报表对象902“国家人口”放入其中的子区域1004的循环关键字包括已有报表对象1008“地区”(即,不为空)。因此,不将新报表对象902“国家人口”添加到子区域1004的循环关键字中(图4的方框406)。
然后,将新报表对象902“国家人口”放置在报表1000的子区域1004中(图4的方框408)。图10C根据一个实施例示出了在报表1000的子区域1004中放置的新报表对象902“国家人口”。如图所示,新报表对象902“国家人口”被与已有报表对象1008“地区”一起放置在报表1000的子区域1004中。
最后,基于区域1002的循环关键字和子区域1004的循环关键字呈现报表1000(图4的方框410)。图10D根据一个实施例示出了当所选择的放置选项为“原样放置”908时图10A的报表1000的呈现。区域1002的循环关键字存储已有报表对象808“国家”。子区域1004的循环关键字存储已有报表对象1008“地区”。在一个实施例中,区域1002的循环关键字和子区域1004的循环关键字定义呈现已有报表对象808“国家”和已有报表对象1008“地区”的数据元素的顺序。最初,呈现已有报表对象808“国家”的第一数据元素加拿大。接下来,呈现与数据元素加拿大(已有报表对象808“国家”)相对应的(已有报表对象1008“地区”的)数据元素BC和(新报表对象902“国家人口”的)数据元素30M。接下来,呈现与数据元素加拿大相对应的(已有报表对象1008“地区”的)数据元素ON和(新报表对象902“国家人口”的)数据元素30M。
接下来,呈现已有报表对象808“国家”的第二数据元素法国。在呈现了第二数据元素法国之后,呈现与数据元素法国相对应的数据元素IdF(已有报表对象1008“地区”)和数据元素60M(新报表对象902“国家人口”)。
接下来,呈现已有报表对象808“国家”的最后的数据元素德国。最后,呈现与数据元素德国相对应的数据元素BW(已有报表对象1008“地区”)和数据元素80M(新报表对象902“国家人口”)。
图11A根据另一个实施例示出了接收放置新报表对象的图10A的报表1000。如图所示,请求将新报表对象1110“政府办公厅”放置在报表1000的子区域1004中。如上面所讨论的,已有报表对象808“国家”具有数据元素加拿大、法国和德国,已有报表对象1008“地区”具有数据元素BC、ON、IdF和BW。新报表对象1110“政府办公厅”具有数据元素水利、农业、水利、水利、水利和农业。如上面所讨论的,(区域1002和子区域1004)的区域类型为循环类型。
图11B根据一个实施例示出了用于在图10A的报表中放置新报表对象1110“政府办公厅”的放置选项的集合1112。如上面所讨论的,放置选项的集合1112是基于以下各项中的至少一个确定的:请求将新报表对象1110“政府办公厅”放入其中的子区域1004的区域类型、以及新报表对象1110“政府办公厅”和与子区域1004相关联的已有报表对象1008“地区”以及和与区域1002相关联的已有报表对象808“国家”之间的语义关系。新报表对象1110“政府办公厅”和已有报表对象1008“地区”以及和已有报表对象808“国家”之间的语义关系为一对多。由于请求将新报表对象1110“政府办公厅”放入其中的子区域1004的区域类型为循环类型,并且新报表对象1110“政府办公厅”与已有报表对象1008“地区”之间的语义关系为一对多,所以放置选项的集合1112被确定为“放置和循环”1114、“放置和扩展”1116和“放置和聚合”1118(图3的方框306和方框310)。在一个实施例中,放置选项的集合1112被提供给用户。
图12A根据一个实施例示出了当所选择的放置选项为“放置和循环”1114时图11A的报表1000。最初,新报表对象1110“政府办公厅”被添加到请求将新报表对象1110“政府办公厅”放入其中的子区域1004的循环关键字中(图5的方框502)。在添加之后,子区域1004的循环关键字存储已有报表对象1008“地区”和新报表对象1110“政府办公厅”。接下来,如图12A所示,新报表对象1110“政府办公厅”被放置在报表1000的子区域1004中(图5的方框504)。
最后,基于区域1002的循环关键字和子区域1004的循环关键字呈现报表1000(图5的方框506)。区域1002的循环关键字和子区域1004的循环关键字定义呈现与区域1002相关联的已有报表对象808“国家”和与子区域1004相关联的已有报表对象1008“地区”中包括的数据元素的顺序。
图12B根据一个实施例示出了当所选择的放置选项是“放置和循环”1114时图11A的报表1000的呈现。区域1002的循环关键字包括已有报表对象808“国家”。子区域1004的循环关键字包括已有报表对象1008“地区”和新报表对象1110“政府办公厅”。在呈现报表1000的过程中,将会使用包括已有报表对象1008“地区”和新报表对象1110“政府办公厅”的循环关键字来呈现子区域1004。
如图所示,最初呈现已有报表对象808“国家”的第一数据元素加拿大。接下来,呈现已有报表对象1008“地区”的数据元素和相对应的新报表对象1110“政府办公厅”的数据元素。如图所示,第一数据元素BC(已有报表对象1008“地区”)与相应的数据元素水利(新报表对象1110“政府办公厅”)一起呈现。接下来,将第一数据元素BC(已有报表对象1008“地区”)与相应的数据元素农业(新报表对象1110“政府办公厅”)一起呈现。如上面所讨论的,子区域904的循环关键字包括已有报表对象1008“地区”和新报表对象1110“政府办公厅”。该循环关键字定义了呈现在该循环关键字中存储的报表对象的数据元素的顺序。因此,如这里所示出的,在新报表对象1110“政府办公厅”中具有两个相应数据元素水利和农业的数据元素BC(已有报表对象1008“地区”)首先与数据元素水利一起呈现,然后与数据元素农业一起呈现。接下来,将第二数据元素ON(已有报表对象1008“地区”)与相应的数据元素水利(新报表对象1110“政府办公厅”)一起呈现。
在呈现了与数据元素加拿大(已有报表对象808“国家”)相对应的已有报表对象1008“地区”和新报表对象1110“政府办公厅”的数据元素之后,呈现第二数据元素法国。接下来,将数据元素IdF(已有报表对象1008“地区”)与相应的数据元素水利(新报表对象1110“政府办公厅”)一起呈现。
接下来,呈现最后的数据元素德国。最后,呈现与德国相对应的已有报表对象1008“地区”和新报表对象1110“政府办公厅”的数据元素。如图所示,第一数据元素BW(已有报表对象1008“地区”)与相应的数据元素水利(新报表对象1110“政府办公厅”)一起呈现,最后,数据元素BW(已有报表对象1008“地区”)与相应的数据元素农业(新报表对象1110“政府办公厅”)一起呈现。
图13A根据一个实施例示出了当在图11B中所选择的放置选项是“放置和扩展”1116时图11A的报表1000。最初,在请求将新报表对象1110“政府办公厅”放入其中的子区域1004内创建子区域1300(图7中的方框702)。子区域1300具有循环关键字,其在创建子区域1300时为空。接下来,将新报表对象1110“政府办公厅”添加到子区域1300的循环关键字中(图7的方框704)。子区域1300的循环关键字包括新报表对象1110“政府办公厅”。接下来,如图13A中所示,新报表对象1110“政府办公厅”被放置在所创建的子区域1300中(图7中的方框706)。
最后,基于区域1002的循环关键字、子区域1004的循环关键字和子区域1300的循环关键字呈现报表1000(图7中的方框708)。图13B根据一个实施例示出了图13A的报表的呈现。区域1002、子区域1004和子区域1300的循环关键字定义在呈现操作中呈现已有报表对象808“国家”、已有报表对象1008“地区”和新报表对象1110“政府办公厅”中包括的数据元素的顺序。区域1002的循环关键字包括已有报表对象808“国家”。子区域1004的循环关键字包括已有报表对象1008“地区”,并且子区域1300的循环关键字包括新报表对象1110“政府办公厅”。如图所示,最初呈现已有报表对象808“国家”的第一数据元素加拿大。接下来,呈现与数据元素加拿大(已有报表对象808“国家”)相对应的已有报表对象1008“地区”的第一数据元素BC。接下来,顺序地呈现与数据元素BC(已有报表对象1008“地区”)相对应的数据元素水利和农业(新报表对象1110“政府办公厅”)。接下来,呈现与数据元素加拿大(已有报表对象808“国家”)相对应的已有报表对象1008“地区”的第二数据元素ON,随后呈现与数据元素ON(已有报表对象1008“地区”)相对应的数据元素水利(新报表对象1110“政府办公厅”)。
接下来,呈现已有报表对象808“国家”的第二数据元素法国,随后呈现与数据元素法国(已有报表对象808“国家”)相对应的数据元素IdF(已有报表对象1008“地区”)。接下来,呈现与数据元素IdF(已有报表对象1008“地区”)相对应的数据元素水利(新报表对象1110“政府办公厅”)。
接下来,呈现已有报表对象808“国家”的第三数据元素德国,随后呈现与数据元素德国相对应的数据元素BW(已有报表对象808“国家”)。最后,顺序地呈现与已有报表对象1008“地区”BW相对应的数据元素水利和农业(新报表对象1110“政府办公厅”)。
如上所示,报表对象“国家”、“地区”和“城市”中每一个的数据元素被顺序地呈现,这是因为报表1000是基于区域1002的循环关键字(其存储已有报表对象808“国家”)、子区域1004的循环关键字(其存储已有报表对象1008“地区”)和子区域1300的循环关键字(其存储新报表对象1110“政府办公厅”)来呈现的。
图14A根据一个实施例示出了当在图11B中所选择的放置选项为“放置和聚合”1118时图11A的报表1000。如图14A中所示,当选择“放置和聚合”1118时,提供聚合选项的集合1400(图6的方框602)。聚合选项的集合1400包括求和选项(报表对象中所有数据元素的和)、最大值(Max)选项(指的是新报表对象中具有最大值的数据元素)、计数选项(新报表对象中的数据元素的计数)、最小值(Min)选项(指的是新报表对象中具有最小值的数据元素)以及平均值选项(指的是包含在新报表对象中的所有数据元素的平均值)。在一个实施例中,在用户接口上将聚合选项的集合1400提供给用户。在一个实施例中,用户从通过用户接口提供给用户的聚合选项的集合1400中选择聚合选项之一。在本实施例中,用户从用于新报表对象1110“政府办公厅”的聚合选项集合1400中选择聚合选项(计数)。
接下来,基于所选择的聚合选项(计数)计算新报表对象1110“政府办公厅”的数据元素(水利、农业、水利、水利、水利和农业)的聚合值(政府办公厅的计数)(图6的方框604)。如图11A中所示,所接收的请求是在报表1000的子区域1004中放置新报表对象1110“政府办公厅”。子区域1004包括已有报表对象1008“地区”。针对已有报表对象1008“地区”的每个数据元素计算“政府办公厅的计数”。如图13B中所示,已有报表对象1008“地区”的第一数据元素BC在新报表对象1110“政府办公厅”中具有两个相应数据元素(水利、农业)。因此,数据元素BC的“政府办公厅的计数”1为2。类似地,数据元素ON(已有报表对象1008“地区”)具有一个相应的数据元素水利(新报表对象1110“政府办公厅”),因此数据元素ON的“政府办公厅的计数”为1。数据元素IdF(已有报表对象1008“地区”)具有一个相应的数据元素水利(新报表对象1110“政府办公厅”),因此数据元素IdF的“政府办公厅的计数”为1。已有报表对象1008“地区”的数据元素BW在新报表对象1110“政府办公厅”中具有两个相应的数据元素(水利、农业),因此数据元素BW的“政府办公厅的计数”为2。基于以上计算,“政府办公厅的计数”的聚合值具有数据元素(2、1、1和2)。
图14B根据一个实施例示出了当从图14A的聚合选项的集合1400中选择了聚合选项之一时图11A的报表1000。如图14B中所示,所计算的聚合值(“政府办公厅的计数”1402)被放置在所请求的区域(子区域1004)中(图6中的方框606)。如图所示,在本实施例中,将“政府办公厅的计数”1402(其具有从所述计算获得的数据元素(2、1、1和2)与已有报表对象1008“地区”一起放置在子区域1004中(图6的方框606)。
最后,呈现包括在已有报表对象(已有报表对象808“国家”和已有报表对象1008“地区”)中的数据元素和所计算的聚合值(“政府办公厅的计数”1402)(图6中的方框608)。基于区域1002的循环关键字和子区域1004的循环关键字呈现报表1000。图14C根据一个实施例示出了图14B的报表1000的呈现。如图14C中所示,最初呈现已有报表对象808“国家”的第一数据元素加拿大。接下来,将与数据元素加拿大相对应的已有报表对象1008“地区”的数据元素与相应的“政府办公厅的计数”1402的数据元素一起呈现。如图所示,将数据元素BC(已有报表对象1008“地区”)与相应的数据元素2(“政府办公厅的计数”1402)一起呈现。接下来,将数据元素ON(已有报表对象1008“地区”)与相应的数据元素1(“政府办公厅的计数”1402)一起呈现。
接下来,呈现第二数据元素法国(已有报表对象808“国家”),随后呈现与数据元素法国相对应的已有报表对象1008“地区”的数据元素。如图所示,将数据元素IdF(已有报表对象1008“地区”)与相应的数据元素1(“政府办公厅的计数”1402)一起呈现。
最后,呈现最后的数据元素德国(已有报表对象808“国家”),随后呈现数据元素BW(已有报表对象1008“地区”)和相应的数据元素2(“政府办公厅的计数”1402)。
图15A根据另一个实施例示出了示例性的报表1500。报表1500包括区域1502,其具有已有报表对象1504“选择的国家”。已有报表对象1504“选择的国家”具有单个数据元素加拿大。接收到将新报表对象1506“城市”放置到报表1500的区域1502中的请求。新报表对象1506“城市”具有数据元素(维多利亚、温哥华、渥太华、多伦多和蒙特利尔)。区域1502的区域类型为静态类型。
图15B示出了所提供的用于在图15A的报表中放置新报表对象1506“城市”的放置选项集合1508。在一个实施例中,放置选项集合1508被提供给用户。由于请求将新报表对象1506“城市”放入其中的区域的区域类型是静态类型,因此所提供的放置选项集合1508包括“放置扩展”1116以及“放置和聚合”1118(图3的方框302和方框304)。
图16A根据一个实施例示出了当在图15B中所选择的放置选项为“放置和扩展”1116时图15A的报表。最初,在请求将新报表对象1506“城市”放入其中的区域1502中创建子区域1600。子区域1600具有循环关键字,其在子区域1600创建时为空。接下来,将新报表对象1506“城市”添加到子区域1600的循环关键字中(图5的方框502)。因此,子区域1600的循环关键字包括新报表对象1506“城市”。接下来,如图所示,将新报表对象1506“城市”放置在子区域1600中(图5的方框504)。
最后,根据子区域1600的循环关键字呈现报表1500(图5的方框506)。子区域1600的循环关键字定义呈现新报表对象1506“城市”的数据元素的顺序。子区域1600的循环关键字包括新报表对象1506“城市”。将数据元素加拿大(已有报表对象1504“选择的国家”)重复地与新报表对象1506“城市”中的每个数据元素一起呈现。
图16B根据一个实施例示出了当所选择的选项是“放置和扩展”1116时报表1500的呈现。如图所示,最初将数据元素加拿大(已有报表对象1504“选择的国家”)与第一数据元素维多利亚(新报表对象1506“城市”)一起呈现,接下来将数据元素加拿大(已有报表对象1504“选择的国家”)与第二数据元素温哥华(新报表对象1506“城市”)一起呈现,接下来加拿大(已有报表对象1504“选择的国家”)与第三数据元素渥太华(新报表对象1506“城市”)一起呈现,接着数据元素加拿大(已有报表对象1504“选择的国家”)与第四数据元素多伦多(新报表对象1506“城市”)一起呈现,最后数据元素加拿大(已有报表对象1504“选择的国家”)与最后的数据元素蒙特利尔(新报表对象1506“城市”)一起呈现。
图17A根据一个实施例示出了当所选择的放置选项是“放置和聚合”1118时图15A的报表1500。如图17A所示,最初提供聚合选项的集合1400(图6的方框602)。聚合选项集合1400包括求和选项(新报表对象中所有数据元素的和)、最大值(Max)选项(指的是新报表对象中具有最大值的数据元素)、计数选项(新报表对象中的数据元素的计数)、最小值(Min)选项(指的是新报表对象中具有最小值的数据元素)以及平均值选项(指的是包含在新报表对象中的所有数据元素的平均值)。在一个实施例中,用户从聚合选项集合1400中选择聚合选项之一。在本实施例中,用户选择用于在报表1500的区域1502中放置新报表对象1506“城市”的聚合选项(计数)。
接下来,基于所选择的聚合选项(计数)计算新报表对象1506“城市”的数据元素(维多利亚、温哥华、渥太华、多伦多和蒙特利尔)的聚合值(城市的计数)。由于新报表对象1506“城市”中有5个数据元素,因此“城市的计数”为5。
接下来,将所计算的聚合值(“城市的计数”)放置在区域1502中(图6的方框606)。图17B根据一个实施例示出了当从放置选项集合1400中选择了放置选项时图17A的报表1500。如图17B所示,将具有数据元素(5)的聚合值1700“城市的计数”与已有报表对象1504“选择的国家”一起放置在区域1502中。
最后,呈现已有报表对象1504“选择的国家”的数据元素(加拿大)和聚合值1700(“城市的计数”)(图6的方框608)。图17C根据一个实施例示出了当所选择的放置选项为“放置和聚合”1118时报表1500的呈现。如图17C中所示,将数据元素加拿大(已有报表对象1504“选择的国家”)与聚合值5(“城市的计数”1700)一起呈现。
图18是根据一个实施例的用于在请求将新报表对象放入报表1802的区域中时提供放置选项集合的示例系统1800的框图。系统1800包括用户接口1804,其显示报表1802。在一个实施例中,报表1802可以包括一个或多个区域。在一个实施例中,报表的一个或多个区域可以包括一个或多个已有报表对象。用户1806通过用户接口1804请求在报表1802的区域中放置新报表对象。当用户接口1804接收到在报表1802的区域中放置新报表对象的请求时,处理器1808被调用。
该系统包括用于存储元数据的存储器1810。元数据包括所有已有报表对象之间的语义关系以及新报表对象与每一个已有报表对象之间的语义关系。所有已有报表对象和一个或多个已有报表对象中每一个之间的语义关系是一对一关系或一对多关系。
报表1802包括报表1802的当前状态。报表1802的当前状态包括请求将新报表对象放入其中的区域的信息。所述区域的信息包括关于与该区域相关联的一个或多个已有报表对象的信息。在新报表对象被放入的区域是存在于一区域中的子区域时,关于区域的信息包括关于与该子区域相关联的所有报表对象和与该子区域的区域相关联的所有报表对象的信息。报表1802的当前状态还包括关于请求将新报表对象放入其中的区域的区域类型的信息。
然后,处理器1808查询元数据以获取新报表对象和与请求将新报表对象放入其中的区域相关联的每一个已有报表对象之间的语义关系。然后,处理器1808基于以下各项中的至少一个确定放置选项的集合:新报表对象与每一个已有报表对象之间的语义关系,以及请求将新报表对象放入其中的区域的区域类型。
当区域的区域类型为循环类型、并且新报表对象与每一个已有报表对象之间的语义关系为一对一时,处理器1808确定放置选项的集合为“原样放置”。当区域的区域类型为循环类型、并且新报表对象与已有报表对象中的任何一个之间的语义关系为一对多时,处理器1808确定放置选项的集合为“放置和循环”、“放置和聚合”以及“放置和扩展”。当区域类型为静态时,处理器1808确定放置选项的集合为“放置和聚合”和“放置和扩展”。
用户接口1804将处理器1808确定的放置选项的集合提供给用户1806。在一个实施例中,用户1806从显示在用户接口1804上的放置选项集合中选择放置选项之一。最后,处理器1808基于用户从放置选项集合中选择的放置选项呈现报表1802。
本发明的一些实施例可以包括被编写为一个或多个软件组件的上述方法。这些组件以及与每个组件关联的功能可以由客户端、服务器、分布式的或对等的计算机系统使用。这些组件可以以对应于一种或多种编程语言的计算机语言来编写,所述编程语言例如功能性语言、声明性语言、过程性语言、面向对象的语言、低层语言等等。可以经由各种应用编程接口将它们链接到其他组件,然后可以将它们编译成用于服务器或客户端的一个完整应用。或者,所述组件也可以在服务器和客户端应用中实现。此外,这些组件可以经由各种分布式编程协议链接在一起。本发明的一些示例性实施例可以包括远程过程调用,以用来跨越分布式编程环境实现这些组件中的一个或多个。例如,逻辑层可以驻留在第一计算机系统上,该第一计算机系统的位置远离包括接口层(例如图形用户接口)的第二计算机系统。所述第一和第二计算机系统可以配置为服务器-客户端、对等或其他某个配置。客户端的复杂性可以在从移动和手持设备、到瘦客户端、直到胖客户端甚至其他服务器的范围内变化。
将上述软件组件作为指令有形地存储在计算机可读存储介质上。术语“计算机可读存储介质”应当被理解为包括存储一个或多个指令集的单个介质或多个介质。术语“计算机可读存储介质”应当被理解为包括任何物理产品,该物理产品能够经历一组物理变化以物理地存储、编码或以其他方式携带指令集以供计算机系统执行,从而导致计算机系统执行这里所描述、表示或举例说明的任何方法或处理步骤。计算机可读存储介质的例子包括但不限于:磁介质,诸如硬盘、软盘和磁带;光介质,诸如CD-ROM、DVD和全息设备;磁光介质;和特别配置以进行存储和执行的硬件设备,诸如专用集成电路(ASIC)、可编程逻辑器件(PLD)以及ROM和RAM设备。计算机可读指令的例子包括机器代码,诸如通过编译器产生的机器代码,以及包含高级代码的文件,所述文件可由计算机使用解释程序执行。例如,本发明的实施例可以使用Java、C++或任何其他面向对象的编程语言和开发工具来实现。本发明的另一个实施例可以由硬连线电路取代机器可读软件指令来实现,或者由硬连线电路与机器可读软件指令结合来实现。
图19是示例性的计算机系统1900的框图。计算机系统1900包括处理器1902,其执行存储在计算机可读存储介质1922上的软件指令或代码,以执行以上示出的本发明的方法。计算机系统1900包括介质读取器1916,用以从计算机可读存储介质1922读取指令,并将指令存储在存储器1904或随机存取存储器(RAM)1906中。存储器1904提供大容量空间用于保存静态数据,至少一些指令可存储在存储器1904中以供以后执行。所存储的指令还可以被编译以生成指令的其他表示,并被动态存储在RAM1806中。处理器1902从RAM1906读取指令,并根据指令执行动作。根据本发明的一个实施例,计算机系统1900还包括输出设备1910(例如显示器),用以向用户提供作为输出的至少一些执行结果,所述输出包括但不限于视觉信息。计算机系统1900还包括输入设备1912,用以向用户或另一个设备提供用来输入数据和/或以其他方式与计算机系统1900交互的装置。这些输出设备1910和输入设备1912中的每一个可以结合一个或多个附加外围设备,以进一步扩展计算机系统1900的能力。可以提供网络通信器1914以将计算机系统1900连接到网络1920,进而连接到与网络1920连接的其他设备,包括例如其他客户端、服务器、数据存储装置和接口。计算机系统1900的模块经由总线1918相互连接。计算机系统1900包括数据源接口1908,用来访问数据源1924。数据源1924可以经由以硬件或软件实现的一个或多个抽象层来访问。例如,数据源1924可以通过网络1920来访问。在一些实施例中,数据源1924可以经由诸如语义层的抽象层来访问。
数据源是信息源。数据源包括能够进行数据存储和提取的数据来源。数据源可以包括数据库,例如关系型数据库、事务型数据库、层次数据库、多维数据库(例如OLAP)、面向对象数据库等等。其他的数据源包括表列数据(例如电子数据表、界定文本文件)、标记有标记语言的数据(例如XML数据)、事务数据、非结构化数据(例如文本文件、屏幕抓取数据),层次数据(例如文件系统中的数据、XML数据)、文件、多个报表以及可通过已制定的协议访问的任何其他数据源,所述协议诸如通过底层软件系统(例如ERP系统)产生的开放数据库互连(OpenDataBaseConnectivity,ODBC)等等。数据源还可以包括这样的数据源:其中的数据并非有形地存储,或者数据以其他方式短暂存在,例如数据流、广播数据等等。这些数据源可以包括与之关联的数据基础、语义层、管理系统、安全系统等等。
在以上描述中,阐述了许多具体细节以提供对本发明实施例的全面理解。然而,本领域技术人员将会认识到,可以在没有一个或多个所述具体细节的情况下实践本发明,或者可以利用其它方法、组件、技术等来实践本发明。在其他实例中,为避免模糊本发明的方面,没有示出和描述公知的操作或结构。
尽管这里示出和描述的过程包括一系列步骤,但是将会理解到,本发明的不同实施例并不局限于所示出的步骤顺序,因为除了这里所示出和描述的之外,一些步骤可以以不同的次序发生,一些步骤可以与另一些步骤同时发生。此外,并非所有示出的步骤都是实现根据本发明的方法所必须的。再有,将会理解到,所述过程可以结合这里所示出和描述的装置和系统来实现,也可以结合未示出的其他系统来实现。
以上对本发明实施例的描述和举例说明,包括在摘要部分所做的描述,本意并非是穷尽的或将本发明局限于所公开的确切形式。尽管此处出于示例的目的描述了本发明的特定实施例以及本发明的示例,但本领域技术人员将会理解,在本发明的范围内也可能存在各种等效的修改方式。在知晓了以上描述的情况下可以对本发明作出这些修改。本发明的范围将由权利要求确定,而权利要求应当按照已制定的权利要求诠释原则来解释。

Claims (30)

1.一种用于在请求向报表的区域中放置新报表对象时提供放置选项集合的方法,该方法包括:
接收在报表的区域中放置新报表对象的请求;
根据以下各项中的至少一个确定放置选项集合:区域类型,以及新报表对象和与该区域相关联的一个或多个已有报表对象之间的语义关系;以及
根据所述确定提供所述放置选项集合,
其中,如果所述区域类型为静态类型,则提供放置和聚合放置选项以及放置和扩展放置选项,
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,则提供原样放置放置选项,并且
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,则提供放置和循环放置选项、放置和聚合放置选项以及放置和扩展放置选项。
2.如权利要求1所述的方法,还包括:
获取新报表对象和一个或多个已有报表对象之间的语义关系,其中,根据以下操作来获取所述语义关系:
提取所述报表的当前状态、以及与一个或多个已有报表对象和所述新报表对象相关联的元数据,其中所述一个或多个已有报表对象与所述区域相关联,所述报表的当前状态包括所述区域的信息,所述信息包括与所述区域相关联的一个或多个已有报表对象的信息以及区域类型,所述元数据包括所述一个或多个已有报表对象之间的语义关系以及所述新报表对象和所述一个或多个已有报表对象之间的语义关系;
将所述一个或多个已有报表对象存储在数据壳中;以及
查询所述元数据以获取所述新报表对象和存储在所述数据壳中的一个或多个已有报表对象之间的语义关系。
3.如权利要求1所述的方法,其中,所述区域的区域类型是循环类型和静态类型之一。
4.如权利要求3所述的方法,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,并且所提供的原样放置放置选项被选择,则所述方法还包括:
确定所述区域的循环关键字是否为空;
如果所述区域的循环关键字为空,则将所述新报表对象添加到所述循环关键字中;
在所述区域中放置所述新报表对象;以及
根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
5.如权利要求3所述的方法,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和循环放置选项被选择,则所述方法还包括:
将所述新报表对象添加到所述区域的循环关键字中;
在所述区域中放置所述新报表对象;以及
根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
6.如权利要求3所述的方法,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和聚合放置选项被选择,则所述方法还包括:
提供聚合选项集合;
根据从所述聚合选项集合中选择的聚合选项,计算与所述新报表对象相关联的一个或多个数据元素的聚合值;
在所述区域中放置该聚合值;以及
呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值。
7.如权利要求3所述的方法,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和扩展放置选项被选择,则所述方法还包括:
在所述区域中创建子区域,该子区域具有循环关键字;
将所述新报表对象添加到该子区域的循环关键字中;
在所述子区域中放置所述新报表对象;以及
根据所述区域的循环关键字和所述子区域的循环关键字来呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述区域的循环关键字和所述子区域的循环关键字定义呈现所述一个或多个数据元素的顺序。
8.如权利要求3所述的方法,其中,如果所述区域类型为静态类型,并且所提供的放置和聚合放置选项被选择,则所述方法还包括:
提供聚合选项集合;
根据从所述聚合选项集合中选择的聚合选项,计算所述新报表对象的一个或多个数据元素的聚合值;
在所述区域中放置该聚合值;以及
呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值。
9.如权利要求3所述的方法,其中,如果所述区域类型为静态类型,并且所提供的放置和扩展放置选项被选择,则所述方法还包括:
在所述区域中创建子区域,该子区域具有循环关键字;
将所述新报表对象添加到该子区域的循环关键字中;
在所述子区域中放置所述新报表对象;以及
呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中根据所述循环关键字来呈现所述新报表对象的一个或多个数据元素,该循环关键字定义呈现所述新报表对象的一个或多个数据元素的顺序。
10.如权利要求2所述的方法,其中,所述报表的区域具有子区域,该子区域具有一个或多个已有报表对象,该子区域的数据壳存储与该子区域相关联的一个或多个已有报表对象和与所述区域相关联的一个或多个已有报表对象。
11.一种用于在请求向报表的区域中放置新报表对象时提供放置选项集合的系统,该系统包括:
用于接收在报表的区域中放置新报表对象的请求的装置;
用于根据以下各项中的至少一个确定放置选项集合的装置:区域类型,以及新报表对象和与该区域相关联的一个或多个已有报表对象之间的语义关系;以及
用于根据所述确定提供所述放置选项集合的装置,
其中,如果所述区域类型为静态类型,则提供放置和聚合放置选项以及放置和扩展放置选项,
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,则提供原样放置放置选项,并且
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,则提供放置和循环放置选项、放置和聚合放置选项以及放置和扩展放置选项。
12.如权利要求11所述的系统,还包括:
用于获取新报表对象和一个或多个已有报表对象之间的语义关系的装置,其中,根据以下操作来获取所述语义关系:
提取所述报表的当前状态、以及与一个或多个已有报表对象和所述新报表对象相关联的元数据,其中所述一个或多个已有报表对象与所述区域相关联,所述报表的当前状态包括所述区域的信息,所述信息包括与所述区域相关联的一个或多个已有报表对象的信息以及区域类型,所述元数据包括所述一个或多个已有报表对象之间的语义关系以及所述新报表对象和所述一个或多个已有报表对象之间的语义关系;
将所述一个或多个已有报表对象存储在数据壳中;以及
查询所述元数据以获取所述新报表对象和存储在所述数据壳中的一个或多个已有报表对象之间的语义关系。
13.如权利要求11所述的系统,其中,所述区域的区域类型是循环类型和静态类型之一。
14.如权利要求13所述的系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,并且所提供的原样放置放置选项被选择,则所述系统还包括:
用于确定所述区域的循环关键字是否为空的装置;
用于如果所述区域的循环关键字为空,则将所述新报表对象添加到所述循环关键字中的装置;
用于在所述区域中放置所述新报表对象的装置;以及
用于根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素的装置,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
15.如权利要求13所述的系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和循环放置选项被选择,则所述系统还包括:
用于将所述新报表对象添加到所述区域的循环关键字中的装置;
用于在所述区域中放置所述新报表对象的装置;以及
用于根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素的装置,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
16.如权利要求13所述的系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和聚合放置选项被选择,则所述系统还包括:
用于提供聚合选项集合的装置;
用于根据从所述聚合选项集合中选择的聚合选项,计算与所述新报表对象相关联的一个或多个数据元素的聚合值的装置;
用于在所述区域中放置该聚合值的装置;以及
用于呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值的装置。
17.如权利要求13所述的系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且所提供的放置和扩展放置选项被选择,则所述系统还包括:
用于在所述区域中创建子区域的装置,该子区域具有循环关键字;
用于将所述新报表对象添加到该子区域的循环关键字中的装置;
用于在所述子区域中放置所述新报表对象的装置;以及
用于根据所述区域的循环关键字和所述子区域的循环关键字来呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素的装置,其中所述区域的循环关键字和所述子区域的循环关键字定义呈现所述一个或多个数据元素的顺序。
18.如权利要求13所述的系统,其中,如果所述区域类型为静态类型,并且所提供的放置和聚合放置选项被选择,则所述系统还包括:
用于提供聚合选项集合的装置;
用于根据从所述聚合选项集合中选择的聚合选项,计算所述新报表对象的一个或多个数据元素的聚合值的装置;
用于在所述区域中放置该聚合值的装置;以及
用于呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值的装置。
19.如权利要求13所述的系统,其中,如果所述区域类型为静态类型,并且所提供的放置和扩展放置选项被选择,则所述系统还包括:
用于在所述区域中创建子区域,该子区域具有循环关键字的装置;
用于将所述新报表对象添加到该子区域的循环关键字中的装置;
用于在所述子区域中放置所述新报表对象的装置;以及
用于呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素的装置,其中根据所述循环关键字来呈现所述新报表对象的一个或多个数据元素,该循环关键字定义呈现所述新报表对象的一个或多个数据元素的顺序。
20.如权利要求12所述的系统,其中,所述报表的区域具有子区域,该子区域具有一个或多个已有报表对象,该子区域的数据壳存储与该子区域相关联的一个或多个已有报表对象和与所述区域相关联的一个或多个已有报表对象。
21.一种计算机系统,用于在请求向报表的区域中放置新报表对象时提供放置选项集合,该计算机系统包括:
存储器,用于存储程序代码;
处理器,其可通信地耦接到该存储器,该处理器被配置成执行所述程序代码以便:
在用户接口上接收在所述区域中放置新报表对象的请求;
根据以下各项中的至少一个确定放置选项集合:区域类型,以及新报表对象和与该区域相关联的一个或多个已有报表对象之间的语义关系;以及
根据所述确定提供所述放置选项集合,
其中,如果所述区域类型为静态类型,则在所述用户接口上提供放置和聚合放置选项以及放置和扩展放置选项,
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,则在所述用户接口上提供原样放置放置选项,并且
其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,则在所述用户接口上提供放置和循环放置选项、放置和聚合放置选项以及放置和扩展放置选项。
22.如权利要求21所述的计算机系统,其中所述处理器还执行程序代码以根据以下操作来获取所述语义关系:
从所述报表提取所述报表的当前状态以及从所述存储器提取与一个或多个已有报表对象相关联的元数据,所述报表的当前状态包括所述区域的信息,所述信息包括与所述区域相关联的一个或多个已有报表对象的信息以及区域类型,所述元数据包括所述一个或多个已有报表对象之间的语义关系以及所述新报表对象和所述一个或多个已有报表对象之间的语义关系;
将所述一个或多个已有报表对象存储在数据壳中;以及
查询所述元数据以获取所述新报表对象和存储在所述数据壳中的一个或多个已有报表对象中的每一个之间的语义关系。
23.如权利要求21所述的计算机系统,其中,所述区域的区域类型是循环类型或静态类型之一。
24.如权利要求23所述的计算机系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系是一对一关系,并且在所述用户接口上提供的原样放置放置选项被选择,则所述处理器还执行程序代码以便:
确定所述区域的循环关键字是否为空;
如果所述区域的循环关键字为空,则将所述新报表对象添加到所述循环关键字中;
在所述区域中放置所述新报表对象;以及
根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
25.如权利要求23所述的计算机系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且在所述用户接口上提供的放置和循环放置选项被选择,则所述处理器还执行程序代码以便:
将所述新报表对象添加到所述区域的循环关键字中;
在所述区域中放置所述新报表对象;以及
根据所述循环关键字呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述循环关键字定义呈现所述一个或多个数据元素的顺序。
26.如权利要求23所述的计算机系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且在所述用户接口上提供的放置和聚合放置选项被选择,则所述处理器还执行程序代码以便:
在所述用户接口上提供聚合选项集合;
根据从提供在所述用户接口上的所述聚合选项集合中选择的聚合选项,计算所述新报表对象的一个或多个数据元素的聚合值;
在所述区域中放置该聚合值;以及
呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值。
27.如权利要求23所述的计算机系统,其中,区域类型为循环类型的区域具有循环关键字,该循环关键字存储与所述区域相关联的一个或多个已有报表对象,并且其中,如果所述区域类型为循环类型并且所述新报表对象和所述一个或多个已有报表对象之间的语义关系为一对多关系,并且在所述用户接口上提供的放置和扩展放置选项被选择,则所述处理器还执行程序代码以便:
在所述区域中创建子区域,该子区域具有循环关键字;
将所述新报表对象添加到该子区域的循环关键字中;
在所述子区域中放置所述新报表对象;以及
根据所述区域的循环关键字和所述子区域的循环关键字来呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中所述区域的循环关键字和所述子区域的循环关键字定义呈现所述一个或多个数据元素的顺序。
28.如权利要求23所述的计算机系统,其中,如果所述区域类型为静态类型,并且在所述用户接口上提供的放置和聚合放置选项被选择,则所述处理器还执行程序代码以便:
在所述用户接口上提供聚合选项集合;
根据从在所述用户接口上提供的所述聚合选项集合中选择的聚合选项,计算所述新报表对象的一个或多个数据元素的聚合值;
在所述区域中放置该聚合值;以及
呈现与所述一个或多个已有报表对象相关联的一个或多个数据元素以及该聚合值。
29.如权利要求23所述的计算机系统,其中,如果所述区域类型为静态类型,并且在所述用户接口上提供的放置和扩展放置选项被选择,则所述处理器还执行程序代码以便:
在所述区域中创建子区域,该子区域具有循环关键字;
将所述新报表对象添加到该子区域的循环关键字中;
在所述子区域中放置所述新报表对象;以及
呈现与所述一个或多个已有报表对象和所述新报表对象相关联的一个或多个数据元素,其中根据所述循环关键字来呈现所述新报表对象的一个或多个数据元素,该循环关键字定义呈现所述一个或多个数据元素的顺序。
30.如权利要求22所述的计算机系统,其中,所述报表的区域具有子区域,该子区域具有一个或多个已有报表对象,该子区域的数据壳存储与该子区域相关联的一个或多个已有报表对象和与所述区域相关联的一个或多个已有报表对象。
CN201010556986.2A 2010-11-24 2010-11-24 具有语义指导的报表设计 Active CN102479341B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201010556986.2A CN102479341B (zh) 2010-11-24 2010-11-24 具有语义指导的报表设计
US12/967,231 US9053176B2 (en) 2010-11-24 2010-12-14 Semantically guided report design
CA2754567A CA2754567C (en) 2010-11-24 2011-09-30 Semantically guided report design
EP11009293A EP2458533A1 (en) 2010-11-24 2011-11-23 Semantically guided report design

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010556986.2A CN102479341B (zh) 2010-11-24 2010-11-24 具有语义指导的报表设计

Publications (2)

Publication Number Publication Date
CN102479341A CN102479341A (zh) 2012-05-30
CN102479341B true CN102479341B (zh) 2016-06-29

Family

ID=45094383

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010556986.2A Active CN102479341B (zh) 2010-11-24 2010-11-24 具有语义指导的报表设计

Country Status (4)

Country Link
US (1) US9053176B2 (zh)
EP (1) EP2458533A1 (zh)
CN (1) CN102479341B (zh)
CA (1) CA2754567C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037959B2 (en) * 2008-09-30 2015-05-19 Apple Inc. Formula display and search in a spreadsheet

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101071413A (zh) * 2007-06-15 2007-11-14 南京联创科技股份有限公司 交叉报表中自动分组的办法
CN101256554A (zh) * 2007-04-18 2008-09-03 北京润乾信息系统技术有限公司 一种基于非线性报表生成方法的语义视图关联方法
CN101551794A (zh) * 2009-04-30 2009-10-07 用友软件股份有限公司 基于电子表格的多动态区域报表处理系统及其方法
CN101876970A (zh) * 2009-12-22 2010-11-03 金蝶软件(中国)有限公司 一种合并报表方法和装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555403A (en) 1991-11-27 1996-09-10 Business Objects, S.A. Relational database access system using semantically dynamic objects
US6578027B2 (en) 1996-08-20 2003-06-10 Business Objects, Sa Relational database access system using semantically dynamic objects
US5603021A (en) * 1994-09-02 1997-02-11 Borland International, Inc. Methods for composing formulas in an electronic spreadsheet system
US20030115207A1 (en) * 2001-09-25 2003-06-19 Bowman David M. Hierarchical hybrid OLAP analytics generators
US20060107196A1 (en) * 2004-11-12 2006-05-18 Microsoft Corporation Method for expanding and collapsing data cells in a spreadsheet report
US8099383B2 (en) * 2005-11-07 2012-01-17 Business Objects Software Limited Apparatus and method for defining report parts
US20100191718A1 (en) * 2008-12-19 2010-07-29 Aprimo, Inc. Complex relational database extraction system and method with perspective based dynamic data modeling
US8359308B2 (en) * 2010-04-01 2013-01-22 Microsoft Corporation Inline data correlation and hierarchical datasets
US8478786B2 (en) * 2010-09-14 2013-07-02 Microsoft Corporation Automatic layout derivation and implementation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101256554A (zh) * 2007-04-18 2008-09-03 北京润乾信息系统技术有限公司 一种基于非线性报表生成方法的语义视图关联方法
CN101071413A (zh) * 2007-06-15 2007-11-14 南京联创科技股份有限公司 交叉报表中自动分组的办法
CN101551794A (zh) * 2009-04-30 2009-10-07 用友软件股份有限公司 基于电子表格的多动态区域报表处理系统及其方法
CN101876970A (zh) * 2009-12-22 2010-11-03 金蝶软件(中国)有限公司 一种合并报表方法和装置

Also Published As

Publication number Publication date
US9053176B2 (en) 2015-06-09
EP2458533A1 (en) 2012-05-30
CN102479341A (zh) 2012-05-30
CA2754567A1 (en) 2012-05-24
US20120131042A1 (en) 2012-05-24
CA2754567C (en) 2018-09-04

Similar Documents

Publication Publication Date Title
Gilson et al. From web data to visualization via ontology mapping
US8438190B2 (en) Generating web services from business intelligence queries
US7660804B2 (en) Joint optimization of wrapper generation and template detection
CN106709012A (zh) 一种大数据分析方法及装置
US9569503B2 (en) Type evaluation in a question-answering system
CN103488746B (zh) 一种获取业务信息的方法及装置
US20120197937A1 (en) Method and system for providing detailed information in an interactive manner in a short message service (sms) environment
CN103810152A (zh) 可视化公式编辑器
CN112199086A (zh) 自动编程控制系统、方法、装置、电子设备及存储介质
CN105528218B (zh) 数据图表级联方法及数据图表级联系统
CN113157947A (zh) 知识图谱的构建方法、工具、装置和服务器
CN111917878A (zh) 消息处理方法、装置、设备及存储介质
CN112463986A (zh) 信息存储的方法及装置
CN116594683A (zh) 一种代码注释信息生成方法、装置、设备及存储介质
CN109471957B (zh) 一种基于统一标签的元数据转换方法及装置
Kim et al. Comprehensive Knowledge Archive Network harvester improvement for efficient open‐data collection and management
US20130127863A1 (en) Determining an optimal sequence of status transitions for business objects
US20040064499A1 (en) Method and system for active knowledge management
US10706056B1 (en) Audit log report generator
CN102479341B (zh) 具有语义指导的报表设计
Mironov et al. Situation-oriented databases: processing office documents
EP1593053A1 (en) Managing different representations of information
CN110716994B (zh) 一种支持异构地理数据资源检索的检索方法及装置
US20110158242A1 (en) Transporting object packets in a nested system landscape
CN112860725A (zh) Sql自动生成方法和装置、存储介质及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant