IBMCognosBI最佳实践_报表设计高级提示和提示性能调优_第1页
IBMCognosBI最佳实践_报表设计高级提示和提示性能调优_第2页
IBMCognosBI最佳实践_报表设计高级提示和提示性能调优_第3页
IBMCognosBI最佳实践_报表设计高级提示和提示性能调优_第4页
IBMCognosBI最佳实践_报表设计高级提示和提示性能调优_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#prompt ( pOrderNumber ,integer )#IBM Cognos B最佳实践:报表设计高级提示和提示性能调优1简介1.1目的本文档旨在向报表创建者展示如何处理第一个提示页面性能低下的问题。1.2适用范围这里的信息只适用于 IBM Cognos 8.2 B。2第一个提示页面的性能当用户运行包含多个复杂查询的报表时,常常需要等待很长时间才会看到第一个提示页面出现。例如,在一个客户场景中,报表 用了 40秒才显示出第一个提示页面。可以通过两方面的努力改进第一个提示页面的性能:1) 减少提示调节(prompt reconciliation )的时间2) 减少为提示控件获取数据的

2、时间 3提示调节3.1什么是提示调节?提示调节确保参数定义与参数的用法匹配。在筛选和计算中定义参数。在提示中使用定义好的参数。 参数定义包含几个关键项:基数-可以提供给参数的输入值的数量。离散性-决定输入值是定义单一值,还是定义一个值范围。可选性-决定参数在筛选或计算的上下文中是必需的,还是可选的。Numeric、数据类型-为了与引用的其他数据项或常量匹配,在筛选或计算的上下文中期望的数据类型。数据类型可以是Date、Time、Date Time、Interval、String 或 Member Unique Name (MUN)。3.1.1筛选表达式 请考虑可选的筛选:Order numbe

3、r = ?pO rderNumber?通过分析这个筛选,可以判断出参数POrderNumber的一些性质:基数:单一值等号表明只能使用单一值。使用多个值需要适当的操作符,比如“n ”:Order number in ?pO rderNumber?离散性:简单值等号表明了这一点。值的范围需要适当的操作符,比如iLrange ”:Order number in_range ?pO rderNumber?o如果一个参数在多个上下文中使用,那么对于是范围值的参数,所有引用都必须是范围值。可选性:可选的*数据类型: 这个参数是数字,因为 Order number数据项是数字。现在,把参数的特性应用于引用

4、它的提示。这意味着,提示控件会体现参数的一部分特性,从而让提示控件与参数定义保持兼 容。如果在创建的提示页面中引用参数,会在运行时修改提示定义,以便与参数的基数、可选性和离散性匹配。数据类型不匹配 可能会导致运行时错误。如果没有创建的提示页面,那么这些特性应用于生成的提示页面上的提示。3.1.2数据项表达式与通过宏表达式定义的参数不同,在数据项表达式中使用的参数是必需的。3.1.3宏表达式在宏表达式中定义的参数 1可以是可选的或必需的,可以是单一值或多值。请考虑宏表达式:这个筛选定义为可选的,所以参数也是可选的。参数也可以是必需的。如果一个参数在多个上下文中使用,那么对于可选的参数,所有引用都

5、必须是可选的。 Numeric基数:单一值prompt()宏函数只接受单一输入值。可以用prompt()定义多个值:#promptmany ( pOrderNumber , integer )#简单值提示宏总是简单值,而不是范围。必需的没有默认值(这个宏函数的第三个可选参数)表明了这一点。 包含可选参数的示例如下:#prompt ( pOrderNumber , integer ,离散性:*可选性:5 )#3.2提示调节如何影响性能?为了执行提示调节,IBM Cognos 8要检查查询,判断有哪些参数及其特性。查询越大、越复杂,这个过程花费的时间越长。在IBM Cognos 8.1中,一个包含

6、200多个查询的客户报表需要超过 40秒才能显示出第一个提示页面。大多数时间花费在提示调节 方面。3.3在Cognos 8.2中如何改进提示调节? 在IBM Cognos 8.2中通过三种方式改进提示调节:更快的提示调节用于提示调节调优的报表服务器属性用于提示调节调优的查询属性*3.4 IBM Cognos 8.2中更快的提示调节首先,在IBM Cognos 8.2中提示调节过程已经得到优化,大大提高了速度。与IBM Cognos 8.1相比,这个过程花费的时间减少了75% 到 90%。例如,在IBM Cognos 8.2中客户示例报表的提示调节只花费了5秒,与IBM Cognos 8.1中的

7、40多秒相比降低了 80%。只需迁移到IBM Cognos 8.2,就实现了 80%的性能改进。不需要采取其他措施。3.5用于提示调节调优的报表服务器属性IBM Cognos 8.2为整个系统和具体报表的提示调节调优提供了三个相互关联的选项。第一个选项是一个针对整个报表服务器启用的报表服务器高级属性:RSV P.PROMP T.RECONCILIATIO这个属性有几个值:COMP LETE在显示第一个提示页面之前,调节所有查询。这是默认设置,用来确保与以前版本的兼容性。CHUNKED-分批调节所有查询,直到调节了第一个提示页面所需的参数为止。以不固定的次序处理查询。可以用高级服务器属性RSV

8、P.PROMP T.RECONCILIATION.CHUNKS修改 CHUNK大 小。默认的 CHUNK 大小是 5 个查询。GROUPED-按组调节查询,直到调节了第一个提示页面所需的参数为止。这些组如下:*筛选的报表查询 筛选的提示查询 未筛选的报表查询 未筛选的提示查询*按这些组的次序处理查询,直到调节了第一个提示页面中引用的所有参数为止。常常只需处理第一个或前两个组。但是,在某些 情况下,需要处理所有查询。例如,如果在提示查询中的计算查询项中引用参数,就会发生这种情况。报表服务器调节第一个提 示页面的参数之后,向用户显示这个页面。如果后续提示页面引用在已经处理的查询中没有的参数,在显示

9、这些提示页面之前, 报表服务器可能需要调节更多查询。CHUNKED GROUPED分批调节查询组中的查询,直到调节了第一个提示页面所需的参数为止。我们的客户场景只包含一个筛选的查询,但是假设报表中的所有200个查询都使用相同的参数进行筛选。GROU PED会同时调节这200个查询,因为所有查询都属于筛选的报表查询组。CHUNKED每次调节x个查询,x是CHUNKED大小(默认值为5)。因此对于CHUNKED GROUPED将调节5个查询。如果找到了第一个提示页面所需的参数,就显示页面。如果没有找到,就处理后5个查询,直到找到参数为止。以我们的客户报表为例,设置RSV P.PROMP T.REC

10、ONCILIATION = GROUP会迫使提示调节首先处理包含筛选的查询(我们只有一个这样的查询)。这导致客户示例报表的提示调节在IBM Cognos 8.2中只需花费不到1秒,与IBM Cognos 8.1中的40多秒相比性能提高了 98%。只需设置一个高级服务器属性,就实现了98%的性能改进。不需要采取其他措施。坦白地说,这个示例不太典型,因为筛选的查询和非筛选的查询的比例高于一般水平。但是,这个示例说明GROU PED调节选项的优点是只需要处理所有查询中的一部分。关于如何处理大量的筛选查询,请参见用于提示调节调优的查询属性 ”。3.5.1最佳默认设置是什么?如果使用COMPLETE之外

11、的其他设置,可能会导致运行时错误,因为相同的参数可能在同一报表中以不同方式定义两次或更多 次。假设报表中有一个可选的筛选(比如X in ?P 1?)和一个计算 Y + ?P 12筛选把P1定义为可选的和多值的。计算把P1定义为必需的和单值的。如果使用COMPLETE查询调节,就会处理所有查询,而且使用限制性最强的定义修改提示,这会产生必需的单值提示。如果使用GROUPED就只处理筛选的查询,这允许使用可选的多值提示。如果用户跳过这个提示或者选择多个值,那么当处理计 算时就会产生运行时错误。说到这里要补充一点,在使用高级调节属性时,正确使用参数并解决这些不匹配的参数定义应该是创建者的责任。在使用

12、CHUNKED GROUPE时,还可能有两个或更多筛选以不同方式定义同一个参数。同样,这也是在创建报表时计划和实现不 完善的表现。出于性能考虑,CHUNKED GROU PE是推荐的设置,因为它允许只处理部分查询组。但是,应该进行适当的报表测试,以确保不会 出现由于报表创建者使用参数的方式不一致所导致的运行时错误。默认的CHUNK大小5对于大多数情况已足够。3.6用于提示调节调优的查询属性Report对于某些报表,仅仅设置高级报表服务器属性可能无法实现良好的性能,还需要手动调优。报表创建者可以使用新的Studio查询属性Use for Parameter Info决定提示调节的执行方式。这个新

13、属性只能在高级报表服务器属性RSVP.PROMPreconciliation置为 GROUPED或 CHUNKED GROUPE时使用。Use for P arameter Info = True 查询 筛选的报表查询筛选的提示查询 未筛选的报表查询 未筛选的提示查询这个属性实际上创建一个新的查询处理组,系统在处理筛选的报表查询之前处理这个组。新的处理次序是:*如果在第一个组中找到了所需的参数,就不再处理其他查询。这个属性在两个场景中很有用。200个查询来调节Use for3.6.1在多个查询筛选中使用相同的参数 仍然以包含200个查询的示例报表为例,假设所有200个查询中的筛选都引用相同的参

14、数。以前必须处理所有参数。实际上,只需处理其中任意一个查询,就可以收集到所需的信息。报表创建者可以选择任何查询,并设置查询属性 Parameter Info = True。系统只处理这个查询,就会找到所需的参数并显示第一个提示页面,不必处理其他查询。3.6.2在每个查询筛选中使用不同的参数 现在,考虑一个完全不一样(有点儿不真实)的用例。我们有200个查询,每个查询都引用一个不同的参数,在第一个提示页面中引用所有200个参数。在这种情况下,必须处理所有查询,这会导致性能降低(回到5秒水平)。有一个非常聪明的办法:创建者可以创建一个定义所有200个参数的查询。不创建任何引用这个新查询的布局(即,

15、没有列表、交叉表或图表使用这个查询)。只在这个查询上设置查询属性Use for P arameter Info = True。现在,在运行报表时,只处理这一个查询。因为在布局中不引用这个查询,它不会实际执行。这样就解决了第一个提示页面的性能问题,而且不会有额外的开销。包含200个查询而且每个查询使用不同的参数这样的示例有点儿极端,但是如果处理给定的查询或查询集造成了性能问题,就可 以考虑使用这种方法。估计只有非常少的报表需要使用Use for Parameter Info查询属性,因为IBM Cognos 8.2本身和使用 RSV P.PROMP T.RECONCI LI ATIONGROU

16、PED产生的性能改进能够解决大多数性能问题。3.6.3提供不利提示 要确保您选择的查询提供所需的所有参数。如果在没有定义所有参数的查询集上设置Use For Parameter Info 查询提示(hint),会对性能产生消极影响,因为第一个请求没有调节所有参数,还需要通过另一个请求获得其他参数的参数特性。3.7 SAP考虑事项在有非层次化数据源变量的SAP环境中,变量数量大而且这些变量具有许多可能的值,这会显著影响性能。建议不要在这些环境中使用高级服务器属性,但是可以使用Use For parameter Info 查询提示改进性能。4提示查询性能提示查询用于填充提示控件。在运行完提示查询之

17、前,无法显示提示页面。在默认情况下,这些查询在每次向用户显示提示页面 时运行一次。在改进提示查询性能时,要关注三个方面: 查询的数量 避免重复运行提示查询 并行地运行提示查询4.1 查询的数量 查询数量越大,处理提示页面花费的时间越长。尽管下面讨论的机制可以减少所需的时间,但是有时候第一个提示页面包含的提 示查询太多,必须处理它们才能显示提示页面。可以把提示分割为两个或更多页面。这样每个提示页面包含的查询就比较少了。 可以使用选项卡式的提示页面。系统只运行实际向用户显示的提示控件所需的查询,不运行不活跃的选项卡的提示查询。附录 讲解如何创建选项卡式提示界面。可以使用隐藏在条件块中的提示,这些提

18、示只在用户已经响应了一些提示并重新提示报表时显示。同样,因为系统只运行实际向 用户显示的提示控件所需的查询,不运行隐藏块中的提示查询。4.2 适当的提示控件 一些提示控件不适合容纳大量数据。例如,包含100,000 个条目的值提示(选择列表)性能会很差,而且使用很不方便。对于这么大量的数据,更合适的控件是Select & search 提示、 Cascading 提示或 Tree 提示,因为它们在最初显示时并不装载整个数据集。注意,如果创建者非要使用包含大量数据的提示,那么在默认情况下数据会在 5000 行处截断,而且系统并不给出警告。可以使用 提示控件的Rows Per Page属性显示更大

19、的数据集。4.3 缓存提示查询在 IBM Cognos 8.1 中,可以缓存提示查询。如果提示中的值不经常变动(比如每天一次而不是随时),而且提示并不依靠另一个 提示的值筛选提示查询,就可以使用这种技术。例如,可以缓存父级联提示的值,但是不能缓存子(或孙)提示,因为这些后续 提示依靠父提示的值执行查询。使用作业执行提示查询并缓存报表的值。用适当的调度计划(比如每天或每周)创建作业,从而反映提示值的变动频率。在作业中添加需要刷新提示查询的报表之后,把Default Run选项设置为 Run the report to Refresh the Report Cache (也可以为每个报表步骤设置这

20、个选项)。当作业运行时,它只执行提示查询并把结果缓存在 Content Store 中。如果在多个位置有提示,那么在作业步骤中设置这些位置, 就会缓存所有位置的提示值。当用户运行报表时,获取缓存的查询值;这一般会提高性能。 注意,无论是否考虑性能因素,这也是减少对数据库的查询数量的好方法,因为在用户每次请求运行报表时不再需要执行提示查 询了。4.4 并行地运行提示查询 如果提示值是高度动态的,缓存不是合适的选项,那么可以同时执行多个提示查询。在默认情况下,单一报表中的所有查询一个接一个地运行。可以同时运行提示查询或数据查询。报表服务器使用 helper 的概念管理可以在报表服务器中同时执行的查

21、询数量。例如,把 helper 的数量设置为 10 就意味着整个报表 服务器实例可以同时执行另外 10 个查询。报表服务器高级属性 RSV P.CONCURRENTQUERY.NUMHEL PERS PERP ROC于设置服务器中可用的 hel per数量。默认值是零。如果 不设置这个属性,就无法同时运行查询。还必须使用报表服务器高级属性RSV P.CONCURRENTQUERY.MAXNUMHEL PERS PERREP置每个报表可以使用的 hel per数量。默认值是 1,即只允许每个报表每次执行一个查询;必须把它至少设置为2,才能允许运行并行查询。设置这两个选项之后,在默认情况下只对批执

22、行运行并行查询。这是因为在交互式执行时,这可能会导致运行查询,但是用户根 本不看它的结果,因此不必要地消耗了资源。假设一个报表有两个页面,每个页面有一个列表。用户运行这个报表;启用并行查 询,让这两个列表查询同时运行。用户看了第一个页面/ 列表,然后关闭浏览器。第二个查询已经并行地运行了,但是未被使用,这浪费了资源。稍后讨论如何更好地处理这种情况。RSV P.CONCURRENTQUERY.ENABLEDFORINTERACTIVEOU设置为要想为交互式执行启用并行查询,需要把报表服务器高级属性True。在给定的报表中,还必须使用查询属性 Execution Method 决定哪些查询可以并行

23、地运行:图 1.查询属性 Execution MethodProcessingAvoid iDtvisoii by Zero Rolup PrtKESsng Execution Optrniiitwi MaxTuun Rows Retrieved Hajomum TablesMdsmun Executon TmeManvri Text Btob 6arKtef5 Outer Join AlowcdSuppress.Cross ProAJCt AlowedUse SQL With ClauseUsciaal Spartton MettiodUse 矽Pzc InfaSQL jon syntaxU

24、se hl Behavior d MHcelanHnNameQuerri在提示查询上设置这个属性允许它们并行地运行,这常常会提高性能。5结束语IBM Cognos 8.2显著改进了第一个提示页面的基本性能,即使不进行定制配置,性能也很好。 还可以通过以下措施进一步提高提示性能:提示调节明智的提示页面设计提示查询缓存并行的查询执行*为了进一步提高提示性能,建议在所有IBM Cognos 8.2服务器上设置 RSV P.PROMPRECONCILIATION CHUNKED GROUP还应该进行适当的报表测试)。6附录A -选项卡式提示页面注意:这份资料最初是一份单独的P roven P ract

25、ices文档。这里的内容与原文档中相同。6.1更快的选项卡式提示页面 这里的场景是,客户希望向最终用户提供报表,在提示页面中使用选项卡式用户界面而不是一系列提示页面。最常用的提示出现 在第一个选项卡中,其他选项卡显示不太常用的提示。图2.选项卡式提示页面E I我们见过的一些应用程序示例有多达60个提示,它们分布在 6到8个选项卡上。有两个问题会影响这些报表的性能。首先,提示数量大意味着Cognos 8在运行报表之前必须分析许多查询。一般情况下,这意味着每个提示有一个查询,还要加上报表查询本 身。这个问题只能通过减少报表中使用的查询数量来解决,这超出了本文的范围。第二,原来使用的HTMLJava

26、Scri pt技术的性质决定了它们的性能非常差。生成选项卡的标准HTMLJavaScri pt技术允许用户在不访问服务器的情况下切换选项卡。这意味着必须在显示第一个选项卡之前填充所有提示(多达 60个)。因为在默认情况下查询是串行运行的,需要的提示查询越多,用户等待的时间就越长。6.2解决方案概述这个解决方案使用条件块显示提示。选项卡本身仍然是用HTML和JavaScri pt创建的。使用条件块的优点是,系统知道隐藏的块中的提示是不可见的,因此不运行填充它们所需的查询。如果用户切换选项卡,提示变得可见并运行相关联的查询。缺点是切换选 项卡需要向服务器发出请求。实现这种技术的提示页面使用条件块决

27、定显示哪些提示。请想像一系列重叠的矩形,在任何时候只显示其中的一个。这些块在任何时候只有其中的一个是可见的,但是所有选项卡都是一直可见的。 看起来像在其他选项卡前面。非当前的选项卡是灰色的,让它们不太突出。当前选项卡的边框和文本颜色设置为黑色,让它从某种程度上来说,编写报表相当简单。我们将创建一个条件块以及与选项卡数量相同的块一一在以上示例中是4个。然后,以表格单元格的形式创建基本选项卡结构(矩形),根据需要设置边框。用HTML和一些简单的JavaScript创建选项卡中显示的文本。当用户单击选项卡(实际上是单击选项卡中的文本)时,显示相关联的条件块,修改选项卡边框和文本颜色,显示相关联的块。

28、 在后台,通过设置一个参数值指定显示哪个选项卡,然后重新提示报表。在理想情况下,我们使用提示控件或提示按钮设置参数 值并重新提示。但是,没有提示控件或按钮能够满足要求。一个提示可以设置参数值并重新提示(通过自动提交),但是无法看 起来像文本。6.3适用范围这种技术应该适用于 Rep ortNet或IBM Cognos 8的任何版本。6.4未记录和不受支持的功能正如下面详细讨论的,这个解决方案需要使用两个在IBM Cognos 8中未记录和不受支持的功能。因此,在以后的版本中对这两个功能的支持可能会改变或完全取消,从而需要重写这个解决方案。但是,这种风险很低,因为目前在这些方面没有修改计划。6.

29、5选项卡式提示报表项目在我们的场景中,第一个选项卡让用户选择Order year(s),第二个选项卡让用户选择Product name(s),以便运行一个非常简单的列表报表。我们将从头到尾介绍创建示例报表的整个过程。为方便起见,我们只使用两个选项卡,每个选项卡上各有一个提示。6.5.1创建基本报表打开 Re port Studio 和 GO Sales and Retailers包。创建一个新的列表报表:Orders Product name OrdersRevenue OrdersOrder year*如图所示:*图5.创建基本报表Dotibl色 click to edit text.Ord

30、er year ProdxtRevweOrder year Revenue 创建两个可选的详细信息筛选:* Order year in ?p_OrderYear?* P roduct name in ?p_P roductName?这样就行了。这就是将用来演示这种技术的基本报表。6.5.2创建基本提示页面尽管创建选项卡式提示用户界面并不难,但是过程很长。大多数时间花在格式化方面。实际功能花费的时间很少。 首先我们需要一个提示页面。在报表中添加一个提示页面: 图6.添加一个提示页面Double cHck to edit tEXfcCan cell Hiish把一个一行两列的表格拖到提示页面体中,

31、如图所示: 图7.把一个一行两列的表格拖到提示页面体中Doubl click to edit text.Cancel Frish我们暂时不管这个表格,但是稍后要使用它。6.5.3创建选项卡体条件块最终包含出现在每个选项卡上的提示。图8.创建选项卡体我们首先创建基本的选项卡体结构并使用一些文本项,让我们可以看出哪个选项卡是当前的。 把一个Conditional Block对象拖到页面体中: 图9.把一个Conditional Block对象拖到页面体中Double cfick to edit text.选择条件块对象然后选择Block Variable属性。创建一个Cancel FnehNew

32、String Variable,像这样:Name: TabToShowValues: Tab2*变量名选择好块之后,把 Current Block属性设置为Other。把一个文本项Tab 1拖到块中,像这样:Exp ression: P aramValue( pTabToShow)TabToShow、值Tab2和参数pTabToShow很重要,这个项目要多次引用它们。图10.把一个文本项Tab 1 拖到块中Double cMck to edit tExtTab 1Qncell Fhishi这个文本用于提醒我们哪个选项卡是当前正在查看的。选择块,把 Current Block属性设置为 Tab2

33、。Tab 1 文本项会从块中消失。把文本项Tab 2拖到块中,像这样:图11.把文本项Tab 2 拖到块中Double click to edit text.Cancel Finish同样,这个文本用于提醒我们哪个选项卡是当前正在查看的。选择块,在 Other和Tab2之间来回变换 Current Block属性值,应该可以看到 Report Studio中的选项卡随之切换。6.5.4创建选项卡正如前面所说的,我们要使用HTML项和一些未记录和不受支持的功能实现选项卡。首先要做的是,使用 Report Viewer将参数值传递给服务器。作为表单变量传递参数值,表单变量的名称是参数名(比如 pT

34、abToShow)前面加上 p_,比如 p_pTabToShow。这种参数传递机制是未记录和不受支持的。请注意本文前面的说明。我们使用一个HTML对象创建这个表单变量。把一个HTML项目拖到Page Header中,像这样: 图12.把一个HTML项目拖到 Page Header中click to edit tmxbTab 1Cancel % Back Next Finssh这个项的位置无所谓,因为它不向用户显示。选择HTML项并把HTML属性设置为:vinput typ e=hidden name=p_ pTabToShow value=Tab1/ 这行HTML代码创建表单变量 p_pTab

35、ToShow并将值设置为Tab1。这个表单变量让服务器认为报表中已经定义了名为pTabToShow的参数,所以服务器会保留它的值并在重新提示报表时把它传递回 Report Viewer。现在,回到前面在该示例中添加的表格。尽管目前还看不出来,但是这个表格中的两个单元格将变成用户可以单击的选项卡。在每个表格单元格中添加一个HTML项,让它们在单元格中居中:图13.在每个表格单元格中添加一个HTML项叮才 Double d ick to edittext-T閒1选择左边的HTML项并把HTML属性设置为:vbutton title=Show Tab 1onclick=document.formWa

36、r pRequest.elements p_p TabToShow.value= Tab1;Set Promp tControl(re promp t)Show Tab 1这段JavaScri pt创建一个按钮:按钮标题(工具提示文本)-Show Tab 1操作:o 将表单变量p_pTabToShow设置为Tab1 o运行函数reprompt按钮标签-Show Tab 1*换句话说,当用户按这个按钮时,它会设置表单变量并重新提示报表。 注意,reprompt函数是未记录和不受支持的。请注意本文前面的说明。 选择右边的HTML项并把HTML属性设置为:Show Tab 2运行报表:图15.运行报

37、表Show Tab 1Show Tab 2TablCancelFinish可以通过单击按钮在选项卡之间切换,显示相应的文本。图16.切换选项卡Show Tab 1Show Tab 2FintshCancel核心选项卡功能现在完成了。剩下的工作都是装饰性的;这个用户界面是有效的,但是看起来不像选项卡式用户界面。另外,还 要把提示放到选项卡上。返回到 Re port Studio。6.5.5设置选项卡的样式我们要用边框、对齐和其他样式改变HTML按钮和块的外观,让它们看起来像选项卡。首先,处理HTML按钮。选择父表格,在 Table Properties属性中选择 Fixed Size仍然选择表格

38、,选择 Size and Overflow属性并删除当前的宽度设置。选择每个表格单元格并把宽度都设置为100 pixels(P X)。在实际的报表中,必须调整宽度,让宽度与每个选项卡中的文本匹配。请记住,为了让选项卡更美观,所有选项卡常常采用相同 的宽度。现在,表格单元格和 HTML按钮有点儿像选项卡了: 图17.设置选项卡的样式Double click to edlit text.Tab 1现在,需要重新设置 HTML按钮的样式,让它们只显示文本。 选择HTML对象之一,会看到没有样式属性:图18.重新设置HTML按钮的样式iQConditionalRefxlerHTM Soura Vari

39、ableHTHL SourceSotrccTypcHXGeneralDescripbonMisceftanusNarw在IBM Cognos 8中,可以在报表中定义样式并把它们应用于报表对象。同样,也可以把这些样式应用于6.5.6 IBM Cognos 8 按钮样式在IBM Cognos 8中,可以定义一个类,然后在HTML按钮定义中引用它。使用 P age Explorer 打开 Classes把一个Class对象从工具箱拖到 Local Classes区域:选择这个新的类对象并设置属性:IE)!Text cbutton ttte-苫how Tab FonckkHTML对象。Name: HT

40、MLButtonsBorder: NoneBox Type: BlockBackground Color: White* Class or Selector: HB返回到提示页面。Class/Selector属性是在把样式应用于HTML项时使用的标识符。选择左边Tab 1的HTML对象并把HTML属性改为:vbutton title=Show Tab 1onclick=document.formWarpRequest.elementsp _p TabToShow.value= Tab1;Set Promp tControl(re promp t) class=HBShow Tab 1v/but

41、ton 选择右边Tab 2的HTML对象并把HTML属性改为:vbutton title=Show Tab 2onclick=document.formWar pRequest.elements p_p TabToShow.value= Tab2;Set Promp tControl(re promp t) class=HBShow Tab Zv/button 6.5.7 Rep ortNet 按钮样式在Rep ortNet和IBM Cognos 8中都可以使用这种方法。我们使用HTML样式属性在HTML按钮定义中直接应用样式,而不是引用在报表级定义的通用样式定义。 选择左边的HTML对象并把

42、HTML属性改为:vbutton title=Show Tab 1onclick=document.formWar pRequest.elements p_p TabToShow.value= Tab1;Set Promp tControl(re promp t)style=border-to p- style:none;border-left-style:none;border-nght-style:none; border- bottom-style:none;dis play:block;background-color:whiteShow Tab1v/button 选择右边的HTML对

43、象并把HTML属性改为: vbutton title=Show Tab 2onclick=document.formWar pRequest.elements p_p TabToShow.value= Tab2; Set Promp tControl(re promp t)style=border-to p- style:none;border-left-style:none;border-right-style:none; border- bottom-style:none;dis pl ay:block;background-color:whiteShow Tab 2v/button 6.

44、5.8运行报表运行报表。删除按钮的按钮式外观,只留下文本。图19.运行报表Show Tab 2Show Tab 1Tab 16.5.9显示活跃的和不活跃的选项卡我们现在需要通过设置选项卡的样式表明哪个选项卡是活跃的。活跃的选项卡将采用黑色的边框和文本。不活跃的选项卡将采用 灰色的边框和文本。选择左边的表格单元格。将 Style Variable 设置为 TabToShow。使用 Variable Explorer 选择 TabToShow,再选择 Other:图20.-館 廳 P3a9仍然选择左边的表格单元格,将左边、上边和右边的Border 设置为 Black、Solid Line、1.5

45、point (pt):图21.Border设置IVaruWes(Mo vsriaUe il!屜T斯OSI伽 曰 Tab2 arai图22. Tab 1选项卡Tsbi 1使用 Variable Explorer 选择 TabToShow,再选择 Tab2:仍然选择左边的表格单元格,将左边、上边和右边的Border设置为Silver、Solid line、1.5 point (pt): 图 23. Tab2 Border 设置nj图24. Tab 2选项卡-lI |lTab 1运行报表: 图25.运行报表Tab 1I Show Tab 1Tab 1单击Show Tab 2,让Tab 1变成非当前的

46、:图26.运行报表Tab 2Show Tab 1| Show Tab 2Tab 2对Tab 2 (右边的表格单元格)重复相似的步骤。返回到 Re port Studio。选择右边的表格单元格。将 Style Variable 设置为 TabToShow。使用 Variable Explorer 选择 TabToShow,再选择 Other:图 27.将 Style Variable 设置为 TabToShow仍然选择右边的表格单元格,将左边、上边和右边的Border 设置为 Silver、Solid Line、1.5 point (pt):图28. Border设置使用 Variable Ex

47、plorer 选择 TabToShow,再选择 Tab2:仍然选择右边的表格单元格,将左边、上边和右边的Border设置为Black、Solid Line、1.5 point (pt): 图 29. Tab2 Border 设置al运行报表: 图30.运行报表Show Tab 1 I Show Tab 2 Tab 1单击 Show Tab 2:图31.运行报表Show Tab 2Show fab 2|Show Tab 1Tab 2两个表格单元格之间的边框是灰色,但是我们在右边的表格单元格上已经把它设置为黑色了。因此它既有灰色也有黑色。每个表 格单元格实际上有自己的边框,但是在默认情况下它们是重叠的。也就是说,不会看到下面这样并列的边框:图32 .不会看到下面这样并列的边框I Show Tab 1Tab 1边框会重叠在一起。当边框重叠时,按一定的规则决定(优先)显示哪个边框。在这里,显示左边的单元格边框。 当右边的单元格活跃时,我们需要调整边框,让左边的单元格没有边框。返回到 Re port Studio。选择左

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论