报告软件中支持定制图形表示的系统和方法

文档序号:6635005阅读:148来源:国知局

专利名称::报告软件中支持定制图形表示的系统和方法
技术领域
:本发明涉及生成报告,更具体地涉及商业报告软件中支持定制报告定义的技术。
背景技术
:在任何企业中,关于其诸方面的数据随时间累积。该数据可用于报告企业的状态。例如,就销售企业来说,可累积关于产品的每次销售的销售数据,包括销售员、消费者、销售员区域、消费者区域、销售量、售出的产品的量、销售日期、售出产品的交付日期等等。根据这些销售数据,则可能的是生成按年度、按月度、按消费者按年度、按产品按季度、按销售员按交付日期、按区域按星期等等详细描述销售的报告。填充报告的数据一般将累积在诸如数据库之类的数据源中。如这里所使用的术语数据源是用于数字化的记录数据的仓库。为了将数据源中的数据过滤成用于报告的适当组织的列和行,报告设计者可在报告定义中规定希望得自于数据源的特定数据。例如,报告设计者可规定他希望在报告的第一列中为“销售者姓名”。报告设计者随后可编写程序,该程序识别对报告定义的第一列所指示出的字段(销售者姓名)、查询数据源中所有的销售者姓名、以及将他们一个个地放置在报告的第一列中。作为编写其自己的程序来执行该任务的替代,报告设计者可使用提供该功能的商业软件。这些软件可允许报告设计者在报告定义中简单地规定他希望存在于报告的各列和/或行中的数据的类型。商业软件随后将自动地分析报告定义、查询数据库、以及将所希望的数据放置在报告中。图5a和图5b提供了报告定义和相应报告的一个简单的例子。图5a中的示例性报告设计给出了销售者列501、1990年销售列502和总销售列503。该示例性报告设计可提交给能够从一个或多个数据源中抽取规定的数据,并对诸如图5b所示的报告适当地对进行数据格式化的商业报告软件。图5b示出了经填充的销售者列501aa、经填充的1990年销售数据列502aa、以及经填充的总销售列505aa。图1b提供了报告定义的更精确的视图。一份报告定义或报告定义文件140将典型地说明报告布局140a和查询140b。查询140b提供报告所需的数据,而布局140a给出了在报告中呈现数据的方式。换言之,布局提供了显示面上报告的图解表示法。因而,可将图5a中的报告定义理解为报告定义140的布局140a和查询140b的图解表示法。三个并排的框的表示可能标志假设的报告生成软件,其可生成三行。每个框的内容——501、502、503可提供将被放置在每行中的查询结果。因此,报告定义可图解表示。也可通过其它描述报告布局和报告内容的方法说明报告定义。例如,可使用诸如可扩展标记语言(XML)之类的标记语言以说明不同的报告布局属性和报告数据内容。因而,一份报告定义文件可以是XML文件。图1a提供了用于用合适的数据填充报告定义100的示例性报告处理软件110的高级视图。报告处理软件110可包括用于适当地解释存储于多个数据源120、121中的任何一个中的数据的数据扩展(dataextension)111。报告处理软件还可包括若干翻译扩展(renderingextension)112。翻译扩展112将生成的报告转换成适当的文件格式,例如超文本标记语言(HTML)130、可扩展标记语言(XML)131、或者某些其它文件格式132。能够读取格式化的输出文件130、131、132的处理(未示出)能够通过图形用户界面(GUI)来显示报告。总而言之,报告处理软件110使用报告定义100来识别要从数据源120、121收集的数据,将数据编译成适当结构化的报告。软件110可以任一文件格式130、131、132来生成报告。该处理在通过被引用而完全结合于此的美国专利申请10/400,734中也有描述。设计报告的人想要能够组织并呈现报告的方式的灵活性。从而,现代商业报告软件典型地支持多种报告布局。现今通用的两个主要报告局部为表格和矩阵。图5b描述了一种表格布局,而图6a描述了一种示例性矩阵布局。注意如何通过通常位于报告的左上区域的空的角单元表征矩阵,而表没有空的角单元。两种布局都是通过沿着水平轴线排列的列和沿着垂直轴线排列的行来表征的。虽然表格和矩阵报告布局是普遍的,并且从而通常获得商业报告软件的支持,但是经常希望有许多额外的布局。图6b就提供了潜在的、未被支持的报告布局的一个例子。图6b的报告布局根据存在多少数据而动态地从水平布局660变换成垂直布局670。当仅有用于报告的4项数据记录650、651、652及653时,使用水平布局660,但当存在超过4项记录时,例如650、651、652、653、654、655及656,希望为垂直布局670。使用华盛顿州内及周围的城市名,图6b的示例性报告可能如下面的任一种所示少量数据大量数据可以想像希望这种布局的情况。类似地,可以想像用于这种报告的报告定义文件。它将规定包括动态改变属性在内的报告的特种布局属性,以及放置在各种布局属性中的数据。不幸的是,现代报告处理软件不可或可能不会支持图6b的布局,并且可能类似地不能支持许多其它定制的报告布局。虽然报告处理软件可以支持广泛范围的布局,但是对于所希望的报告布局来说,可能性几乎是无限的。商业报告软件可能试图支持尽可能多的实际布局,但在一些设置上将不可避免地达不到客户的需要。传统上,那些希望用定制布局创建报告的人的解决方案是编写定制软件以生成所需的报告。不必说,这可能比使用商业报告软件稍微更辛苦。它是创建可经常导致报告设计者勉强对付他或她的商业软件所支持的一个或多个布局的定制报告布局的障碍。从而,设计者可选择对他或她所需的报告而言“仅次于最好的”布局。可选地,如果报告设计者确定编写程序以支持所需的布局,那么他或她将不得不在没有由商业支持软件提供的许多附加特征的情况下设法应付。图3提供了典型地商业报告软件310的更详细的视图。软件310可使用多种支持的报告布局340,而不可使用许多未被支持的报告布局350。软件310包括便于报告的创建的各种特征360。特征360可包括,例如,便于诸如色彩、钻孔(drillthrough)、显示/隐藏等等之类的所希望的属性的插入的功能。在当代的商业报告软件310中,存在许多可用的这种特征360,并且在这里,不作详细列表。这些特征360对于那些编写定制软件以支持定制报告定义的人来说是不可利用的。典型的商业报告软件310还可包括用于构建各种被支持的布局340的报告的具体细节处理370。这些处理370可利用一组提供用于插入报告的可容易使用的报告属性的报告构建组件380。因为报告一般肯定会用图形用户界面(GUI)来呈现,所以可以将组件380配置成可识别翻译扩展312。示例性构建组件380可以是对生成报告有用的任何物,如用于生成文本框的处理、用于生成图像的处理、用于画圆圈、创建列的处理等等。按照商业报告软件领域的目前状态,存在一种对在商业报告软件中提供定制报告布局的支持的迄今为止仍未被认识到的需要。
发明内容考虑到上述表明的该领域中的缺陷,本发明提供用于在报告软件中支持报告及/或报告区域的定制图形表示的系统和方法。使用本发明,对受支持的报告布局可用的任何报告软件特征也可用于定制布局。定制布局定义可能首先满足一组报告定义标准,以便其对于报告处理软件来说是可识别的。提供可用以创建这种定制布局定义的设计工具。于是,该定制布局可传给报告软件。报告软件能够一开始处理定制布局,并且向其提供初始处理阶段中可用的任何特征。报告软件可为定制布局的定制处理提供接口。该接口对定制布局构造器对象来说是可访问的。可把定制布局构造器对象设计成使用用于生成由报告软件所提供的多个图形特征的多个处理来生成报告布局。本发明的其它优点和特征在下文中描述。参考附图,进一步描述根据本发明的用于在报告软件中支持定制图形表示的系统和方法,附图中图1a例示出适合于使用本发明的系统和方法的示例性报告处理软件的高级视图。图1b例示出包括报告布局和查询的报告定义文件的更详细的视图。图2a是概括地表示适合于结合本发明的各方面使用的示例性计算设备的基本特征的框图。图2b是表示适合于结合本发明的各方面使用的示例性计算设备的更详细的框图。图2c例示出示例性联网计算环境,其中可以执行包括本发明的那些计算机化的处理。图3例示出不能支持定制布局的先有技术报告处理软件的视图。图4例示出能够支持定制布局的报告处理软件的各个方面,提供接口490允许定制布局构造器构造定制布局。图5a图解地例示出示例性报告定义。图5b例示出可从图5a中描述的报告定义中生成的示例性报告布局,所例示出的布局已知为表。图6a例示出一般是但并不必需是报告软件所支持的布局的示例性矩阵报告布局。图6b例示出动态地从水平显示改变到垂直显示的报告布局,这样的布局对于报告来说可能是有用的,但是可能不被给定的报告处理软件支持,可以使用本发明的定制布局支持技术来支持这种布局和任何其它定制布局。图7例示出包括定义标准的本发明的各方面,定制布局可满足该定义标准以与给定的报告处理引擎、示例性定制报告布局控件、翻译对象以及接口一起使用,以及这些不同组件之间的相互作用。图8例示出有接口的示例性对象,这在面向对象的软件设计中是常见的,可连同本发明的诸方面一起使用。图9例示出具有可通过定制报告布局设计控件来访问的接口的设计工具。图10例示出可用于执行关于本发明的各种接口而描述的处理的示例性对象和接口。具体实施例方式在下面的说明和附图中提出了某些特定细节,以给出对本发明的各种实施例的全面理解。然而,在下面的揭示中,并未给出通常与计算和软件技术相关联的某些已知的细节,以便避免对本发明的各种实施例造成不必要的累赘。此外,相关
技术领域
的技术人员将理解到他们能够在不用下面描述的一个或多个细节的情况下就能够实践出本发明的其它实施例。最后,虽然参考下面揭示中的步骤和顺序描述了各种方法,但是这种说明仅仅是用于提供本发明的实施例的清楚的实现方式,不应把各步骤和步骤顺序看作实践本发明的要求。详细说明广泛地解释和扩展了在上述的
发明内容中介绍的概念。首先,根据图4和图7提供了对本发明的全面综述。接着,阐明了允许定制布局可由报告软件操作的定制报告定义标准的各方面。接着,连同与接口的操作有关的各种支持处理和特征一起,描述可由报告处理软件提供的接口。最后,阐述了可可用作本发明的一部分的设计工具。注意,虽然下面的描述一般地将定制报告布局作为好像是报告的全部布局来对待,但是这仅仅是为了便于描述。定制报告布局可能仅仅是全部报告布局的一个组成部分。事实上,在报告中可以使用用标准布局组件混合、几个独立的定制报告布局。这里描述的定制报告布局控件不需要处理报告布局的标准部分。每个定制报告布局控件仅需要作用于整个报告布局的规定的定制部分。综述图4提供了本发明各种方面的高级视图。一般来说,图4描述了除了支持一组受支持的报告布局440(即受支持的图形特征)外,还支持定制图形表示450(也称为报告布局)的报告处理软件410。图4的配置是一种用于报告的可扩展的平台,因为不与平台的创建者相关联的第三方不用修改平台本身,也不需要指导平台本身的幕后设计就能扩展平台并向该平台添加值。甚至可以由第三方升级并增强由图4的报告处理平台所提供的核心功能。相反地,可以使得对于图4的报告处理平台的升级可用于任何第三方扩展。定制报告布局450可设计成满足一组报告定义标准(未示出),从而它们可由报告软件410初始处理。可使得由报告软件410提供的任何特征460可用于定制报告。报告软件410还可配备有接口490。可以公开接口490,使得它对于定制报告定义450的创建者来说是可访问的。接口490允许定制报告构造器进程491、492使用由报告构建软件410支持的报告构建组件480构造定制布局(例如450a)中规定的报告。设计器455可在满足报告软件410的报告定义标准的定制报告定义450的创建上提供帮助。在各种实施例中,可以用定制设计控件456来补充设计器455,使得定制布局还满足用于定制报告构造器(例如491)的任何标准。图7提供了本发明各种实施例的另一高级视图。图7示出了图4中介绍的各种处理组件间的较佳交互。图7中,把图4的报告处理软件410称为报告处理引擎700。图7中,把图4的用于受支持的布局470的特征460和报告构造器统称为报告处理710。图4中的报告构建组件480在图7中被称为翻译对象模型720。图7提供了报告定义存储器750,其中可以放置定制的和标准的报告布局定义。当要生成报告时,可由710处理来自750的报告定义。如由定义标准框755所例示的那样,在710处理之前,可配置报告定义以满足一组定义标准,报告定义必须通过框755传递到710。如在背景中所说明的那样,处理710一般包括从数据存储器730中检索用于报告的数据。为了以报告定义规定的布局适当地格式化数据,可以将报告定义和数据通过701传递给翻译对象模型720。在受支持的报告布局定义的情况下,可通过翻译对象720将数据放置在合适的布局中,而不用翻译对象720和任何定制布局控件760之间的交互。定制布局控件760总体上对应于图4的定制报告构造器491、492。然而,在定制报告布局定义的情况下,翻译对象720可通过接口723与一个或多个定制报告布局控件760通信。这些控件可使用720中提供的对象以根据报告创建者的希望适当地生成定制报告。可以任何文件格式生成报告。例如,报告可在XML、HTML或诸如JPEG的TIFF之类的图像中生成。在较佳实施例中,可以诸如MICROSOFT提供的中间报告文件格式之类的中间格式来生成报告,以便可将其转换成可能由个别翻译器740所要求的任何合适的格式。从而,作为图7推动的处理中的最终步骤,可将生成的报告传递给翻译器740用于显示。示例性报告定义标准报告布局定义标准775是报告定义可遵照的任一组规则。通过遵照标准775,可由报告处理710来处理定制报告定义。标准755可从非常简单到非常复杂。提供简单标准具有便于定制报告定义的创建的优点,但也可能在可被处理的定制报告布局的类型中有较少的灵活性。更复杂的标准一般允许更复杂的定制布局,但其代价是对用户学习来说是更有难度的。存在广泛的文件格式,可使用这些文件格式来包含报告定义,并且标准755可以根据报告处理710所使用的特定的文件格式而作出改变。例如,可把报告定义存储为XML文件、HTML文件、简单文本(.txt)文件、或用于存储数字信息的任何其它文件。称为报告定义语言(RDL)的用于描绘报告定义文件的诸方面特征的一组标准标签目前正在微软公司完成开发。RDL被认为是用于本发明的好的候选文件类型。本发明的示例性标准扩展到设计能力报告软件。在现有技术允许设计者规定所建立的和受支持的布局的属性(如表或矩阵中的列宽)的情况下,本发明允许设计者规定不是生来就在报告软件的给定实施例中受支持的完全新的布局。虽然大多数报告软件支持表和矩阵,但是考虑不支持表或矩阵报告布局定义的报告软件。在这种情况下,可以按照定制布局提供表和矩阵,以扩展报告软件的能力。以下是使用在本部分提出的定义标准的定制布局的两个例子。第一个例子按照满足用于假设的报告处理软件的充分定义标准的定制报告布局定义给出了一张表。第二个例子按照满足用于假设的报告处理软件的充分定义标准的定制报告布局定义给出了一个矩阵。示例性定制布局1表类别产物(Product)13=Fields!Category.Value=Fields!Product.Value<CustomReportLayoutName=″table1″><Type>MyTable</Type><Top>0in</Top><Left>0in</Left><Height>0.75in</Height><Width>4in</Width><CustomData><DataSetName>DataSet1</DataSetName><DataRowGroupings><DataGroupings><DataGrouping><GroupingName=″table1_Category″><GroupExpressions><GroupExpression>=Fields!Category.Value</GroupExpression></GroupExpressions></Grouping><DataGroupings><DataGrouping><static>true</Static><CustomProperties><CustomProperty><Name>tbl:Height</Name><Value>0.25in</″alue></CustomProperty></CustomProperties></DataGrouping><DataGrouping><CustomProperties><CustomProperty><Name>tbl:Height</Name><Value>0.25in</Value></CustomProperty></CustomProperties></DataGrouping></DataGroupings></DataGrouping></DataGroupings></DataRowGroupings><DataColumnGroupings><DataGroupings><DataGrouping><Static>true</Static><CustomProperties><CustomProperty><Name>tbl:Width</Name><Value>2in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>Category</Value></CustomProperty></CustomProperties></DataGgouping><DataGrouping><Static>true</Static><CustomProperties><CustomProperty><Name>tbl:Width</Name><Value>2in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>Product</Value></CustomProperty></CustomProperties></DataGgouping></DataGroupings></DataColumnGroupings><DataRows><DataRow><DataCell><DataValue><Value>=Fields!Category.Value</Value></DataValue></DataCell><DataCell><DataValue><Value/></DataValue></DataCell></DataRow><DataRow><DataCell><DataValue><Value/></DataValue></DataCell><DataCell><DataValue><Value>=Fields!Product.Value</Value></DataValue></DataCell></DataRow></DataRows></CustomData></CustomReportLayout>示例性定制布局2矩阵=Fields!Year.Value=Fields!Month.ValueYTDGrowth=Fields!Category.Value=Sum(Fields!Sales.Value)=First(Fields!Growt<CustomReportLayoutName=″matrix1″><Type>MyMatrix</Type><Top>0in</Top><Left>0in</Left><Height>0.75in</Height><Width>6in</Width><CustomData><DataSetName>DataSet1</DataSetName><DataRowGroupings><DataGroupings><DataGrouping><GroupingName=″matrix1_Category″><GroupExpressions><GroupExpression>=Fields!Category.Value</GroupExpression></GroupExpressions></Grouping><CustomProperties><CustomProperty><Name>tbl:Width</Name><Value>2in</Value></CustomProperty><CustomProperty><Name>tbl:Height</Name><Value>0.25in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>=Fields!Category.Value</Value></CustomProperty></CustomProperties></DataGrouping></DataGroupings></DataRowGroupings><DataColumnGroupings><DataGroupings><DataGrouping><GroupingName=″matrix1_Year″><GroupExpressions><GroupExpression>=Fields!Year.Value</GroupExpression></GroupExpressions></Grouping><CustomProperties><CustomProperty><Name>tbl:Height</Name><Value>0.25in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>=Fields!Year.Value</Value></CustomProperty></CustomProperties><DataGroupings><DataGrouping><GroupingName=″matrix1_Month″><GroupExpressions><GroupExpression>=Fields!Month.Value</GroupExpression></GroupExpressions></Grouping><CustomProperties><CustomProperty><Name>tbl:Width</Name><Value>2in</Value></CustomProperty><CustomProperty><Name>tbl:Height</Name><Value>0.25in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>=Fields!Month.Value</Value></CustomProperty></CustomProperties></DataGrouping><DataGrouping><Static>true</Static><CustomProperties><CustomProperty><Name>tbl:Width</Name><Value>2in</Value></CustomProperty><CustomProperty><Name>tbl:Height</Name><Value>0.25in</Value></CustomProperty><CustomProperty><Name>tbl:Header</Name><Value>YTDGrowth</Value></CustomProperty></CustomProperties></DataGrouping></DataGroupings></DataGrouping></DataGroupings></DataColumnGroupings><DataRows><DataRow><DataCell><DataValue><Value>=Sum(Fields!Sales.Value)</Value></DataValue></DataCell><DataCell><DataValue><Value>=First(Fields!Growth.Value)</Value></DataValue></DataCell></DataRow></DataRows></CustomData></CustomReportLayout>示例性接口和支持处理虽然面向对象的计算机编程环境中的接口是本领域中已知的,但是本发明对接口进行了新颖的使用,以允许对报告布局的新颖的定制控制。该部分首先提出了面向对象计算和接口的基本原理。然后描述用于本发明的接口的各种潜在特征。图7的元素700、710、720、760等以及可用软件实施的本发明的任何其它方面可以是一般使用面向对象编程技术产生的分立的软件单元。图8例示出这样一个示例性对象,它图示了典型的COM对象800的特征。其它对象在行业中也是可用的,并被广泛使用,这里描述的对象800仅仅是出于例示的目的,而非限制。诸如800之类的对象一般支持一个或多个接口802、803、804,每个接口可包括方法805。方法805一般是执行规定的动作并可被软件(例如另一对象)调用的功能或程序。这种软件被称为是该对象800的客户端。构成接口803的方法805通常以某种方式彼此相关。一般来说,客户端可通过调用对象的接口802、803、804中的方法805来访问对象800提供的服务。客户端一般被禁止访问对象的数据。应注意,这里以及权利要求中所描述的由对象实现的功能还可通过设计成彼此对接的多个对象来实现。典型地,对象800是特定类的实例。例如,一个类可能包含提供用于打开对数据库服务器的连接的服务的对象,而另一个类可能包含用于将数据写入文件的对象。典型地,编程者在运行对象的实例之前就知道对象的类。在类库中查找对象的类。这种库可以访问所有可用的对象的类的目录。客户端可调用规定了它所希望的对象的类的库中的函数,以及它希望有指针指向的首先被支持的接口。库随后使得实现该类的对象的服务器开始运行。库还将指向新实例化的对象上的所请求的接口的指针返回给发起方客户端。客户端然后直接向对象请求指向该对象支持的任何其它接口的指针。对象所支持的接口一般被认为是对象与其客户端之间的联系。对象约定支持接口的方法,因为接口定义了这些方法,客户端约定正确地调用方法。从而,对象和客户端必须约定明确地识别每个接口的方式、进行描述或定义的公共方式、接口中的方法、以及如何实现接口的具体定义。从而,可以按照对象所继承的接口参数以及类参数来描述对象。在对象的类具有例如用于将数据写入文件的功能的情况下,继承该类的一个实例也将能够将数据写入文件,以及具有该实例中提供的任何其它特征和功能。在类支持特定接口的情况下,类的实例继承了“约定”,并从而也支持该接口。可借助来实现本发明的诸方面的对象一般符合这些编程原理,以及用于对象、类和接口的定义的理解。然而,应该清楚的是,对面向对象编程技术的修改和改进经常会发生,因此,本发明不限于某一特定类型的对象或具有任何特殊特征的对象。所提供的接口可连同当今使用的以及今后将开发的任何类型的对象一起来实现。参考图7,连同本发明一起使用的特定的接口723可具有任何广泛的特征。接口723一般允许定制报告布局控件760访问报告处理引擎700服务器对象的特征。各种实施例可提供对报告处理引擎700中提供的翻译对象720的更为具体的访问。接口723可提供众多有利的特征,大量的这种特征将在下文中给出。本发明不限于对这里所提出的任何特定接口特征的使用,本发明也不限于这里所提出的接口特征的预期实现。相反,提供接口特征以对用于本发明的接口的许多有用的潜在方面进行分类。最后,便于接口723的使用的本发明的各种方面在下文中提出。首先,接口723可被设计成由一个或多个定制报告布局控件760来访问。为了便于这种访问,接口723可以是一个公开的接口,因为允许定制报告布局控件760访问接口723的各种属性可被提供用于公众使用。可用各种方式使接口公开,包括在互联网上公开或用软件销售陪送的印刷品。接口723可配置成从定制控件760获取注册信息。报告处理引擎700可配置成保持用于引擎700的定制报告布局控件760的注册。例如,可获得用于处理控件760的组合体(assembly)和类用于注册。例如,注册文件可以是配置文件。注册文件中的定制控件760记录项可以与存储于报告定义750中的定制报告布局的名字相匹配。如此,引擎700可确定使用哪个定制控件760用于某一特定的定制布局。下面是注册文件中的示例性记录项<ReportLayouts><ReportLayoutName=”RichTextControl”Assembly=“Montana.ReportingServices.ReportLayoutExtensions”Class=”Montana.ReportingServices.ReportLayoutExtensions.RichTextControl”/></ReportLayouts>根据这里所提出的方法和系统的处理控制接口723可包括多个接口,多个对象可支持这些多个接口。图10显示出可用于本发明的可互操作的对象1050-1055以及接口1060、1061的一般示图。报告处理引擎1040可包括任何数量的这种可互操作的对象1050-1055。多个对象1050-1055还可为接口1060提供支持过程。支持过程在下面描述,可通过一个或多个不同的、个别的对象来执行,或者可作为更大的对象的子过程来执行。因此,当把过程描述为下面的对象时,应该强调对象的灵活的潜在的配置。一般来说,接口723可配置成识别多个属性或可被传递给接口723的信息。下面是可用于处理控制接口723的示例性属性列表定制布局(Customlayout)属性—该属性可包括为在上述定义标准部分中讨论的定制报告布局规定的信息类型(见示例性布局标准3)。从而,定制布局属性可给出用于翻译对象720的定制报告布局的细节,以转换到标准(可翻译的)报告布局。翻译布局(Renderlayout)属性—该属性可识别标准的、可翻译的报告布局属性,翻译对象720可使用标准的、可翻译的报告布局属性来构造定制布局。该属性初始为空。接723可包括多个方法,可使用这些方法来从接口723请求服务。下面是可用于处理控制接口723的示例性方法的列表处理(Process)方法—处理方法可从定制报告布局生成标准报告布局。它可将创建的标准报告布局存储于为用于传递给翻译器740而打上标记的位置处。单击(Onclick)方法—单击方法可为用户动作提供事件处理器(见下面的事件部分)。双击(Ondoubleclick)方法—双击方法可为用户动作提供另一事件处理器(见下面的事件部分)。值改变(Onvaluechange)—值改变方法可为用户动作提供另一事件处理器(见下面的事件部分)。移动(Onmove)—移动方法可为用户动作提供另一动作处理器(见下面的事件部分)。上述的接口属性和方法可由翻译对象720中的处理来支持。这些处理可扩展到识别定制报告布局中所使用的各种标准,以及为可访问翻译对象720的定制控件760提供足够的支持。为了和这里所描述的示例性实施例相一致,下面给出了可实现用于适当地为定制布局提供支持的翻译对象720扩展的列表。示例性翻译对象扩展1定制报告布局(customreportlayout)定制报告布局对象可以是任何标准报告布局对象的子类。定制报告布局对象可包括用于呈现定制报告布局的处理。在各种实施例中,这些处理可识别如下所述的属性(这里给出了任意的名字)属性类型说明TypeString定制报告布局的类型CustomDataCustomData用于定制报告布局的数据RedirectTargetString用户重定向用的URLAltReportLayoutReportLayout如果定制布局类型不被翻译器支持,则为用于代替定制报告布局翻译的报告布局示例性翻译对象扩展2定制数据(customdata)定制数据对象可表示要显示在定制报告布局中的任何数据。相关的处理可识别下面的示例性属性属性类型说明DataColumnGroupingsDataGroupingCollection数据列组的集合DataRowGroupingsDataGroupingCollection数据行组的集合DataCellsDataCellCollection数据的每个详细“单元”中包含的数据值示例性翻译对象扩展3数据分组集合(datagroupcollection)数据分组集合对象可为定制布局提供数据分组的有序列表。相关处理可识别下面的示例性属性属性类型说明LayoutindexDataMemberCollection获得规定索引处的数据分组location示例性翻译对象扩展4数据成员集合(datamembercollection)数据成员集合对象可提供数据成员的有序列表。相关处理可识别下面的示例性属性属性类型说明LayoutindexDataMember获得规定索引处的数据成员location示例性翻译对象扩展5数据成员(datamember)数据成员对象可表示定制报告布局的数据内的分组实例。每个分组实例可以有一个数据成员。例如,如果销售数据以产品类别和产品沿列分组,国家和区域沿行分组,则在数据列分组中,每个产品类别(包含该类别中每个产品的数据成员)可有一个数据成员,在数据行分组中,每个国家(包含该国家中的每个区域的数据成员)可有一个数据成员。相关处理可识别下面的示例性属性属性类型说明ParentDataMember父类数据成员ChildrenDataGroupingCollection包含于行和列中的分组IsTotalBoolean指示出分组的该实例是否包含小计数据值示例性翻译对象扩展6数据单元集合(datacellcollection)数据单元集合对象可表示定制数据中的所有数据单元。相关处理可识别下面的示例性属性属性类型说明LayoutindexDataCell以行然后为列顺序的二维数据阵列。行数与在locationDataRowGroupings树中的叶节点DataMembers数一样多。列数与在DataColumnGroupings树中的叶节点DataMembers一样多。叶节点DataMember没有孩子。CountInt32数据单元数示例性翻译对象扩展7数据单元(datacell)数据单元对象可表示定制数据中的单个单元值。相关处理可识别下面的示例性属性属性类型说明DataValuesDataValueCollection该单元中包含的值示例性翻译对象扩展8数据值集合(datavaluecollection)数据值集合对象可提供定制数据的一个单元中的数据值列表。相关处理可识别下面的示例性属性属性类型说明LayoutindexDataValue获得规定索引处的数据值location示例性翻译扩展9数据值(datavalue)数据值对象可表示数据单元内的单个值。相关处理可识别下面的示例性属性属性类型说明NameString用于数据值的标识符ValueVariant数据值示例性翻译对象扩展10报告(report)报告对象可提供用于报告的任何额外的属性。相关处理可识别下面的示例性属性属性类型说明CustomPropertiesCustomPropertyCollection用于报告的定制属性示例性翻译对象扩展11报告布局(reportlayout)报告布局对象可提供用于受支持的报告布局的任何额外的属性。相关处理可识别下面的示例性属性属性类型说明CustomPropertiesCustomPropertyCollection用于报告布局的定制属性示例性翻译对象扩展12分组(group)分组对象可提供用于分组的任何额外属性。相关处理可识别下面的示例性属性属性类型说明CustomPropertiesCustomPropertyCollection用于分组的定制属性示例性翻译对象扩展13定制属性集合(custompropertycollection)定制属性集合对象可提供用于报告、报告布局或分组的定制属性的列表。相关处理可识别下面的示例性属性属性类型说明Layout[Int32index]CustomProperty获得规定索引处的定制属性示例性翻译对象扩展14定制属性(customproperty)定制属性对象可提供用于报告、报告布局或分组的定制属性。相关处理可识别下面的示例性属性属性类型说明NameString属性名ValueVariant属性值示例性翻译对象扩展15改变类型枚举(changetypeenumeration)改变类型枚举对象可定义对定制报告布局或用于定制报告布局的事件处理器的改变的类型。相关处理可识别下面的示例性属性值说明None翻译布局和基础数据源都不改变Render敏感的布局改变,要求报告被再次翻译Process定制报告布局的属性改变,要求报告被再次处理Data基础数据源中的数据改变,要求重新执行报告中的查询Redirect用户事件可能导致重定向到另一URL示例性翻译对象扩展16图象图布局(imagemaplayout)图像图布局对象可提供图像图中的区域。相关处理可识别下面的示例性属性属性类型说明IDString图像图布局的IDPointsImageMapPointCollection定义图像图布局的区域的点示例性翻译对象扩展17图像图点集合(imagemappointcollection)图像图布局对象可提供图像图布局点的列表。相关处理可识别下面的示例性属性属性类型说明LayoutindexSystem.Drawing.PointF获得规定索引处的点location示例性翻译对象扩展18下拉值集合(dropdownvaluecollection)下拉值集合对象可提供用于下拉的可能值的列表。集合中下拉具有(类型对象的)名字和值。名字可显示给用户,值可用作下面所述的值改变(onvaluechange)事件的结果值。示例性翻译对象扩展19值集合值集合对象可提供用于报告布局的数据值的列表。相关处理可识别下面的示例性属性属性类型说明LayoutindexObject获得规定索引处的值location上述是用于接口723的可能的属性、方法、以及支持处理扩展。可与接口相关的另一组特征是可由接口723提供的事件。一般来说,事件向对象提供了关于某件事发生了的信息。已经发生了的事可以是任何事。然而,已经确定了一组有用的事件用于连同本发明的系统和方法来使用。本发明并不限于对这里所提出的任何特定事件的使用,或局限于这些事件的预期实现。相反,提供了下面的事件以遵照本发明的全面揭示的规定要求。事件可通过接口723上的事件方法而传递给定制报告布局控件760。下面的事件(给定了任意的名字)可被传递OnClick-可用于按钮单击、图像图等等的事件。OnClick事件可以在用户在标记为接收单击事件的报告布局上单击时被调用。响应于这种事件,定制报告布局控件760可修改或创建新的翻译报告(如果需要),以根据所述单击来翻译呈现。下面是可向该事件提供的示例性变量OnDoubleClick-可用于双击、图像图等之类的事件。双击事件可在用户在被标记为接收点击事件的报告布局上双击时被调用。定制报告布局控件760可配置成根据双击来修改或创建要被翻译的新的翻译布局(如果需要的话)。下面给出了为该事件提供的示例性变量OnValueChange-可用于写回(writeback)、下拉选择等的事件。值改变事件在用户修改报告布局的值(例如通过编辑文本框或选择下拉中的值)时被调用。定制报告布局控件应该根据值改变来修改或创建要被翻译的新的翻译布局(如果需要的话)。下面给出了为该事件提供的示例性变量OnMove-可用于表列重排、矩阵重旋转(repivot)等的事件。移动事件可在用户将可拖曳的报告布局拖入作为有效放入目标的另一报告布局时被调用。定制报告布局控件760可配置成根据拖/放来修改或创建要被翻译的新的翻译布局(如果需要)。下面给出了可向该事件提供的示例性变量翻译对象720中的报告布局属性可用于控制哪些报告布局响应于哪些事件。例如,可适用下面的示例性报告布局属性属性类型说明CanClickBoolean指示出报告布局响应于点击事件ImageMapImageMapLayoutCollection提供用于点击事件的任选的图像图。仅适用于图像报告布局。CanEditBoolean指示出报告布局响应于编辑事件。仅适用于文本框。CanDragBoolean指示出报告布局可被拖曳DropTargetBoolean指示出报告布局是用于被脱衣的布局的有效放入目标下面的示例性鼠标按钮枚举可用于事件,指示出哪个鼠标按钮被点击。在该例子中,同时发生的点击会导致枚举中的最原始的匹配布局值说明Left鼠标左按钮被点击Center鼠标中间按钮被点击Right鼠标右按钮被点击示例性设计工具使用本发明,可用于受支持的报告布局的任何报告软件特征也可用于定制布局。如上所述,定制布局定义可首先满足一组报告定义标准,使得它对于报告处理软件来说是可识别的。提供设计工具,可用于创建这种定制布局定义。这种设计工具是在创建满足报告处理软件的定义标准的定制报告定义过程中提供帮助的任何工具。这里提出了设计工具的各种有利的特征。本发明不限于这些特征。图4描述了与本发明的各种其它方面有关的设计工具455。设计工具455中的框表示定制报告布局设计控件456。该定制设计控件可在定制报告构造器492一侧实现。定制控件456可助于设计满足定制报告构造器492所强加的任何额外标准的定制布局定义。从而,设计工具455中可天生地支持第一组标准,允许对满足报告处理软件410的要求的定制布局的设计提供帮助。第二组标准可额外地被定制设计控件456所支持,允许对满足定制报告构造器492的要求的定制布局的设计提供帮助。设计器455可保持注册文件,以保持关于定制设计控件456的有用信息。该注册信息可用于获得用于定制设计控件456的组合体(assembly)和类信息。下面是注册文件中的一个示例性的记录项<ReportLayoutDesigner><ReportLayoutName=”RichTextControl”Assembly=“Microsoft.ReportingServices.ReportLayoutDesignerExtensions”Class=”Microsoft.ReportingServices.ReportLayoutDesignerExtensions.RichTextControl”/></ReportLayoutDesigner>在设计工具配置455成允许定制设计控件956、957、958的实现中,可提供接口以允许定制设计控件956、957、958访问设计工具455的功能。设计工具的这些实施例示于图9。下面是这种接口960的示例性特征接口可要求定制报告布局设计控件956、957、958提供工具框图标。接口可要求定制报告布局设计控件956、957、958支持串行化/解除串行化方法。接口可向定制报告布局设计控件956、957、958提供写入布局信息的设备环境。这可包括控件956、957、958在能有效支持诸如图表放入区域和表行/列选择栏之类的事时请求更大的绘图/事件区域的能力。接口可要求设计工具455将所有UI事件传递给定制报告布局设计控件956、957、958。这可包括用于定制控件内的嵌套的标准(和定制)控件的拖/放事件。接口可允许定制报告布局设计控件956、957、958注册以接受来自设计器工具栏的事件(如格式化)。接口可允许定制报告布局设计控件956、957、958注册上下文环境菜单布局。接口可允许定制报告布局设计控件956、957、958注册属性(如名字、类型、说明、有效值列表)以允许在控件被选择时在属性浏览器中编辑这些属性。示例性计算和网络环境参考图2a,宽泛地描述适用于连同本发明的系统和方法使用的示例性计算设备200。在其最基本的配置中,设备200一般包括处理单元202和存储器203。根据确切的配置和计算设备的类型,存储器203可以是易失性(如RAM)、非易失性(如ROM、闪存等)或两者的某种组合。此外,设备200还可具有大容量存储器(可移动的204和/或不可移动的205),如磁盘或磁带,或光盘或光带。类似地,设备200还可具有诸如鼠标和键盘之类的输入设备207,和/或诸如呈现GUI作为访问计算设备200的功能的图形辅助的显示器之类的输出设备206。设备200的其它方面可包括对其它设备、计算机、网络、服务器等的通信连接,通信连接使用有线或无线媒介。所有这些设备在本领域中都是已知的,在此无需详细讨论。图2b说明了图2a的适用计算设备的更为详细的例子以及外围系统。计算系统环境220仅仅是一个合适的计算环境的例子,并且它不打算用来暗示任何对本发明的使用和功能性范围的限定。计算环境220不应当被理解为具有涉及在该示范性的操作环境220中说明的组件的任何一个或者其结合的任何依赖性或者要求。本发明对于许多其它通用或专用计算系统环境或者配置也是可操作的。可以适合以本发明的方式使用的公知的计算系统、环境和/或配置的例子包括但不限于个人计算机、服务器计算机、手持或者膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络PC、小型计算机、大型机计算机、包括任何上述系统或设备的分布式计算环境,以及诸如此类。本发明可以用诸如程序模块之类的由计算机执行的计算机可执行指令的一般上下文环境进行描述。通常,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定的任务或者实现特定的抽象数据类型。本发明也可以在分布式计算环境中实现,在所述分布式计算环境中,任务由通过通信网络或者其它数据传输媒体链接的远程处理设备执行。在分布式计算环境中,程序模块和其它数据既可以被放置在本地也可以被放置在包括存储器存储设备的远程存储媒体中。参考图2b,用于实施本发明的一个示范性系统包括以计算机241为形式的通用计算设备。计算机241的组件可以包括但不限于处理单元259、系统存储器222、和将包括所述系统存储器的各种系统组件连接到处理单元259的系统总线221。系统总线221可以是包括存储器总线或者存储器控制器、外围总线、以及采用各种总线结构中的任何类型的局部总线的若干类型的总线结构中的任一种。作为示例,但不限于此,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型工业标准结构(EISA)总线、视频电子标准协会(VESA)局域总线、以及外围部件互连(PCI)总线(也被称为夹层总线)。计算机241典型地包括各种计算机可读媒体。计算机可读媒体可能是任何能被计算机241访问的可用媒体,包括易失性和非易失性媒体、可移动的和不可移动的媒体。作为示例,但不限于此,计算机可读媒体可以包括计算机存储媒体和通信媒体。计算机存储媒体包括以用于存储诸如计算机可读指令、数据结构、程序模块或者其它数据之类的信息的任何方法或技术实现的、易失性和非易失性媒体、可移动的和不可移动的媒体。计算机存储媒体包括但不限于,RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字化视频光盘(DVD)或者其它光盘存储器、磁带盒、磁带、磁盘存储器或者其它磁存储设备、或者任何其它的能够被用于存储所需信息和能够被计算机241访问的媒体。通信媒体典型地将计算机可读指令,数据结构、程序模块或其它数据包含于诸如载波或其它传输机制之类的已调数据信号中,并且包括任何信息传输媒体。术语“已调数据信号”表示以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例但不限于此,通信媒体包括例如有线网络或者直接线缆连接之类的有线媒体,以及例如声音、RF、红外线以及其它无线媒体之类的无线媒体。任何上述媒体的结合也应当包括在计算机可读媒体的范围内。系统存储器222包括易失性和/或非易失性形式的计算机存储媒体,例如只读存储器(ROM)223和随机存取存储器(RAM)260。包含诸如在启动期间帮助在计算机241的元件之间传输信息的基本例程的基本输入/输出系统(BIOS)224典型地存储于ROM223中。RAM260典型地包含可被立即访问和/或由处理单元259当前操作的数据和/或程序模块。作为示例,但不限于此,图2b说明了操作系统225、应用程序226、其它程序模块227和程序数据228。计算机241也可以包括其它的可移动/不可移动的,易失性/非易失性的计算机存储媒体。仅仅作为示例,图2b说明了对不可移动的、非易失性磁媒体进行读写的硬盘驱动器238,对可移动的、非易失性磁盘254进行读写的磁盘驱动器239,和对诸如CD-ROM或其它光学媒体之类的可移动的、非易失性光盘253进行读写的光盘驱动器240。能够被用于示范性的操作环境的其它可移动/不可移动的、易失性/非易失性的计算机存储媒体包括但不限于磁带盒、闪存卡、数字化视频光盘、数字录像带、固态RAM、固态ROM以及诸如此类。硬盘驱动器238典型地通过诸如接口234之类的不可移动的存储器接口连接到系统总线221,磁盘驱动器239和光盘驱动器240典型地通过诸如接口235之类的可移动的存储器接口连接到系统总线221。上面讨论的和在图2b中说明的驱动器和它们相关的计算机存储媒体为计算机提供了对可读指令、数据结构、程序模块和其它数据的存储。在图2b中,例如,硬盘驱动器238被说明为存储操作系统258、应用系统257、其它程序模块256和程序数据255。注意这些组件可能与操作系统225、应用程序226、其它程序模块227和程序数据228相同或不同。操作系统258、应用程序257、其它程序模块256和程序数据257在此被赋予不同的数字标号以说明它们至少是不同的副本。用户可以通过例如键盘251和常称为鼠标、轨迹球或触摸板的定点设备252之类的输入设备将命令和信息输入到计算机241。其它的输入设备(未示出)可以包括话筒、操纵杆、游戏盘、圆盘式卫星天线、扫描仪或者诸如此类。这些和其它的输入设备通常通过连接在所述系统总线上的用户输入接口236被连接到处理单元259,但是可以通过其他的接口和总线结构连接,例如并行端口、游戏端口或者通用串行总线(USB)。监视器242或者其他类型地显示设备也通过诸如视频接口232之类的接口被连接到系统总线221。除监视器之外,计算机也可以包括其他外围输出设备,例如扬声器244和打印机243,可以通过输出外围接口233进行连接。计算机241可以在使用到诸如远程计算机246之类的一个或者多个远程计算机的逻辑连接的网络环境下操作。远程计算机246可以是个人计算机、服务器、路由器、网络PC、对等设备或者其他公共网络节点,并且典型地包括上面关于计算机241描述的多个或者全部元件,尽管在图2b中仅仅说明了存储器存储设备247。所描述的逻辑连接包括局域网(LAN)245和广域网(WAN)249,但是也可以包括其他的网络。这些网络环境是办公室、企业范围计算机网络、企业内部互联网和因特网中常见的。当用于LAN网络环境中时,计算机241通过网络接口或者适配器237连接到LAN248。当被用于WAN网络环境中时,计算机241典型地包括调制解调器250或者其他用于在诸如因特网之类的WAN249上建立通信的手段。调制解调器250,其可以是内置的或者外置的,可以通过用户输入接口236或者其他合适的机制连接到系统总线221。在网络环境中,相对于计算机241而描述的程序模块或者其一部分可以存储于远程存储器存储设备中。作为示例,但不限于此,图2b把远程应用程序248例示为驻留于存储器设备247上。可以理解,所示的网络连接是示范性的并且可以使用其他在所述计算机之间建立通信连结的手段。应理解,这里所描述的各种技术可连同硬件或软件或在适当的情况下为两者的组合来实施。从而,本发明的方法和装置或其某些方面或部分可采用记录于诸如软盘、CD-ROM、硬盘或任何其它机器可读存储媒介中的程序代码(即指令)的形式,在程序代码被载入并执行于诸如计算机之类的机器中时,机器变为实践本发明的装置。在程序代码执行于可编程计算机上的情况下,计算设备一般包括处理器、处理器可读的存储媒介(包括非易失性和/或存储元素)、至少一个输入设备、以及至少一个输出设备。例如可通过使用数据处理API、可重复使用的控件等之类的可实施或利用本发明的用户界面技术的一个或多个程序较佳的以高级程序或面向对象的编程语言来实施,以于其它计算机系统通信。然而,可按需以汇编或机器语言来实施程序。在任何情况下,语言可以是编译的或解释的语言,并与硬件实现相结合。虽然示例性实施例涉及在一个或多个独立的计算机系统的上下文环境中使用本发明,但是,本发明不限于这些,而是可连同各种计算环境一起来实施,例如网络或分布式计算环境。进一步,本发明可跨越多个处理芯片或设备来实施,存储器可类似地在多个设备之间有效。这些设备可包括个人计算机、网络服务器、手持设备、超级计算机、或集成于诸如汽车和飞机之类的其它系统中的计算机。图2c提供了示例性联网计算环境。本领域的技术人员将理解,网络能够将任意的计算机或其它客户端或服务器设备进行连接,或在分布式计算环境中进行连接。就这一点而言,具有同时发生的任何数量的处理、存储或存储单元、以及任何数量的应用程序和过程的任何计算系统或环境够被认为是适用于所提供的系统和发明。分布式计算通过计算设备和系统之间的交换提供对计算机资源和服务的共享。这些资源和服务包括信息交换、文件的高速缓存和盘存储。分布式计算任务利用了网络连接性,允许客户端平衡他们的集体力量,以使得整个企业受益。就这一点而言,各种设备可具有可蕴含这里所描述的处理的应用程序、对象或资源。图2c提供了示例性联网或分布式计算环境的示意图。该环境包括计算设备271、272、276和277,以及对象273、274和275,以及数据库278。这些实体271、272、273、274、275、276、277和278中的每一个都可包括或利用程序、方法、数据存储、可编程逻辑等等。实体271、272、273、274、275、276、277和278可跨越相同或不同设备的部分,设备例如PDA、音频/视频设备、MP3播放器、个人计算机等等。实体271、272、273、274、275、276、277和278中的每一个可与另一个实体实体271、272、273、274、275、276、277和278通过通信网络270进行通信。就这一点而言,任何实体可负责数据库278或其它存储单元的维护和更新。网络270本身可包括向图2c的系统提供服务的其它计算实体,并且本身可代表多个互连的网络。根据本发明的一方面,每个实体271、272、273、274、275、276、277和278可包含分立的功能程序模块,可利用API或其它对象、软件、固件和/或硬件,来请求一个或多个其它实体实体271、272、273、274、275、276、277和278的服务。还能理解到,诸如275之类的对象可以另一计算设备276为宿主。从而,虽然所描述的实际环境可示出诸如计算机之类的连接设备,但是这些例示仅仅是示例性的,实际环境可替代地被描述成包括诸如PDA、电视机、MP3播放器等之类的各种数字设备、诸如接口、COM对象等之类的软件。存在各种系统、组件、和网络配置支持分布式计算环境。例如,计算系统可通过有线或无线系统、局域网或广域分布式网络而连接在一起。当前,许多网络都耦合到因特网,因特网提供了大范围分布式计算的基础架构,并包含了许多不同的网络。任何这种基础架构,不管是否耦合到因特网,都可用于所提供的系统和方法。网络基础架构可允许大量的网络拓扑,例如客户端/服务器、对等、或混合架构。“客户端”是使用与其无关的另一类或一组成员的服务的一类或一组成员。在计算中,客户端是过程,即大致上是一组指令或任务,请求另一程序提供的服务。客户端过程使用所请求的服务,而不用“知道”关于其它程序或服务本身的任何工作细节。在客户端/服务器架构中,尤其是联网系统,客户端通常是访问由另一计算机(如服务器)提供的共享网络资源的计算机。在图2c的例子中,任何实体271、272、273、274、275、276、277和278都可被认为是客户端、服务器或两者皆是,这取决于环境。服务器一般是在诸如因特网之类的远程或局域网上可访问的远程计算机系统。客户端处理可以在第一计算机系统中有效,而服务器处理可在第二计算机系统中有效,第一和第二计算机系统通过通信媒介而通信,从而提供了分布式功能,以及允许多个客户端利用服务器的信息收集能力。任何软件对象可分布于多个计算设备或对象上。客户端和服务器利用协议层提供的功能而彼此通信。例如,超文本传输协议(HTTP)是用于万维网(WWW)或“Web”的公共协议。一般来说诸如网际协议(IP)地址之类的计算机网络地址或诸如统一资源定位符(URL)之类的其它参考可用于将服务器和客户端计算机彼此识别。网络地址可以被称为是URL地址。可通过通信媒介提供通信,例如客户端和服务器可通过TCP/IP连接而彼此耦合,用于高容量通信。根据可按照图2a和图2b中所提供的一般框架而构建的各种计算环境,以及根据在诸如图2c之类的网络环境中的计算中发生的进一步的多样性,这里所提供的系统和方法不能被解释成局限于某一计算构架。相反,本发明不应局限于任意单一的实施例,而是应该被解释成根据所附权利要求的广度和范围。权利要求1.一种承载有用于生成报告的指令的计算机可读介质,包括用于读取报告定义文件的指令,其中,所述报告定义文件定义了报告的图形表示;用于生成用于报告的多个图形特征的指令;用于提供接口以允许外部自动处理访问由所述用于生成的指令表示的功能的指令,从而,所述自动处理能够通过控制由所述用于生成的指令产生的用于报告的图形特征来构建所述报告定义文件中规定的图形表示。2.如权利要求1所述的计算机可读介质,其特征在于,所述报告定义文件载有第一标识,所述自动处理载有第二标识,可根据所述第一标识和第二标识选择一适当的外部处理用于报告定义文件。3.如权利要求1所述的计算机可读介质,其特征在于,所述接口被公开,以允许所述计算机可读介质的所有用户创建所述自动处理。4.如权利要求1所述的计算机可读介质,其特征在于,还包括用于对所述报告定义文件执行初始处理的指令,所述初始处理先于所述外部自动处理的处理而发生,所述初始处理执行用于报告定义文件的一组标准。5.如权利要求4所述的计算机可读介质,其特征在于,还包括用于提供设计工具以帮助创建报告定义文件的指令。6.如权利要求5所述的计算机可读介质,其特征在于,还包括用于提供第二接口以允许第二外部自动处理访问由所述用于提供设计工具的指令所表示的功能的指令。7.如权利要求1所述的计算机可读介质,其特征在于,还包括用于确定第二自动处理以在所述外部自动处理不可用的情况下构建所述图形表示的指令。8.如权利要求1所述的计算机可读介质,其特征在于,还包括用于接收用于图形表示的一组列组的指令,以及用于将数据置于所述列组中的指令。9.如权利要求1所述的计算机可读介质,其特征在于,还包括用于接收用于所述图形表示中的单元的一组单元标识符的指令,以及用于将数据置于所述单元中的指令。10.如权利要求1所述的计算机可读介质,其特征在于,所述报告定义文件是可扩展标记语言(XML)文件。11.如权利要求1所述的计算机可读介质,其特征在于,所述用于生成用于报告的多个图形特征的指令以索引来引用。12.一种用于生成报告的方法,包括读取报告定义文件,其中,所述报告定义文件定义了报告的图形表示;提供用于生成用于报告的图形特征的多个处理;提供允许外部处理访问所述用于生成的处理的接口,从而,所述外部处理能够通过控制由所述用于生成的处理产生的用于报告的图形特征来构建所述报告定义文件中规定的图形表示。13.如权利要求12所述的方法,其特征在于,所述报告定义文件载有第一标识,所述外部处理载有第二标识,可根据所述第一标识和第二标识选择一适当的外部处理用于报告定义文件。14.如权利要求12所述的方法,其特征在于,所述接口被公开,以允许所述计算机可读介质的所有用户创建所述外部处理。15.如权利要求12所述的方法,其特征在于,还包括对所述报告定义文件执行初始处理,所述初始处理先于所述外部处理的处理而发生,所述初始处理执行用于报告定义文件的一组标准。16.如权利要求15所述的方法,其特征在于,还包括提供设计工具以帮助创建报告定义文件。17.如权利要求16所述的方法,其特征在于,还包括提供允许第二外部处理访问所述设计工具的功能的第二接口。18.如权利要求12所述的方法,其特征在于,还包括确定第二自动处理以在所述外部自动处理不可用的情况下构建所述图形表示。19.如权利要求12所述的方法,其特征在于,还包括接收用于图形表示的一组列组,以及将数据置于所述列组中。20.如权利要求12所述的方法,其特征在于,还包括接收用于所述图形表示中的单元的一组单元标识符,以及用于将数据置于所述单元中。21.如权利要求12所述的方法,其特征在于,所述报告定义文件是可扩展标记语言(XML)文件。22.如权利要求12所述的方法,其特征在于,所述用于生成用于报告的多个图形特征的处理以索引来引用。23.一种用于生成报告的装置,包括用于读取报告定义文件的指令,其中,所述报告定义文件定义了报告的图形表示;用于生成用于报告的多个图形特征的装置;用于提供允许外部自动处理访问由所述用于生成的装置表示的功能的接口的装置,从而,所述自动处理能够通过控制由所述用于生成的装置产生的用于报告的图形特征来构建所述报告定义文件中规定的图形表示。24.如权利要求23所述的装置,其特征在于,所述报告定义文件载有第一标识,所述自动处理载有第二标识,可根据所述第一标识和第二标识选择一适当的外部处理用于报告定义文件。25.如权利要求23所述的装置,其特征在于,所述接口被公开,以允许所述用于生成报告的装置的所有用户创建所述自动处理。26.如权利要求23所述的装置,其特征在于,还包括用于对所述报告定义文件执行初始处理的装置,所述初始处理先于所述外部自动处理的处理而发生,所述初始处理执行用于报告定义文件的一组标准。27.如权利要求26所述的装置,其特征在于,还包括用于提供设计工具以帮助创建报告定义文件的装置。28.如权利要求27所述的装置,其特征在于,还包括用于提供允许第二外部自动处理访问由所述用于提供设计工具的装置所表示的功能的第二接口的装置。29.如权利要求23所述的装置,其特征在于,还包括用于确定第二自动处理以在所述外部自动处理不可用的情况下构建所述图形表示的装置。30.如权利要求23所述的装置,其特征在于,还包括用于接收用于图形表示的一组列组的装置,以及用于将数据置于所述列组中的装置。31.如权利要求23所述的装置,其特征在于,还包括用于接收用于所述图形表示中的单元的一组单元标识符的装置,以及用于将数据置于所述单元中的装置。32.如权利要求23所述的装置,其特征在于,所述报告定义文件是可扩展标记语言(XML)文件。33.如权利要求23所述的装置,其特征在于,所述用于生成用于报告的多个图形特征的装置以索引来引用。全文摘要用于支持定制报告布局的系统和方法允许可用于受支持的报告布局的特征同样可用于定制布局。定制布局定义可首先满足一组报告定义标准,使得它对于报告处理软件来说是可识别的。提供设计工具,可用于创建这种定制布局定义。定制布局可然后被传递给报告处理软件。报告处理软件可初始处理定制布局,向其提供在初始处理阶段中任何可用的特征。报告处理软件可提供接口用于定制布局的定制处理。接口对于定制布局构造器对象来说是可访问的。定制布局构造器对象可被设计成使用通过接口提供的报告构建组件来构建定制报告布局。文档编号G06F9/44GK1744036SQ20051008951公开日2006年3月8日申请日期2005年7月28日优先权日2004年8月30日发明者B·L·维尔克,C·A·海士,J·D·卡尔森申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1