




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+
2、6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料更多企业学院:中小企业管理全能版183套讲座+89700份资料总经理、高层管理49套讲座+16388份资料中层管理学院46套讲座+6020份资料国学智慧、易经46套讲座人力资源学院56套讲座+27123份资料各阶段员工培训学院77套讲座+ 324份资料员工管理
3、企业学院67套讲座+ 8720份资料工厂生产管理学院52套讲座+ 13920份资料财务管理学院53套讲座+ 17945份资料销售经理学院56套讲座+ 14350份资料销售人员培训学院72套讲座+ 4879份资料IBM Cog nos BI最佳实践:报表设计高级提示和提示性能调优1简介1.1目的本文档旨在向报表创建者展示如何处理第一个提示页面性能低下的问题。1.2适用范围这里的信息只适用于IBM Cognos 8.2 B。2第一个提示页面的性能当用户运行包含多个复杂查询的报表时,常常需要等待很长时间才会看到第一个提示页面岀现。例如,在一个客户场景中,报表 用了 40秒才显示出第一个提示页面。可以
4、通过两方面的努力改进第一个提示页面的性能:1) 减少提示调节(prompt reconciliation )的时间2) 减少为提示控件获取数据的时间3提示调节3.1什么是提示调节?提示调节确保参数定义与参数的用法匹配。在筛选和计算中定义参数。在提示中使用定义好的参数。 参数定义包含几个关键项:? 基数-可以提供给参数的输入值的数量。? 离散性-决定输入值是定义单一值,还是定义一个值范围。? 可选性-决定参数在筛选或计算的上下文中是必需的,还是可选的。? 数据类型-为了与引用的其他数据项或常量匹配,在筛选或计算的上下文中期望的数据类型。数据类型可以是Numeric、Date、Time、Date
5、Time、Interval、String 或 Member Unique Name (MUN)。筛选表达式请考虑可选的筛选:Order number = ?pOrderNumber?通过分析这个筛选,可以判断出参数pOrderNumber的一些性质:基数:单一值?等号表明只能使用单一值。?使用多个值需要适当的操作符,比如“n ”:Order number in ?pOrderNumber?离散性:简单值?等号表明了这一点。? 值的范围需要适当的操作符,比如in_range":Order number in_range ?pOrderNumber?o如保一个参数在多个上下文中使用,那么
6、对于是范围值的参数,所有引用都必须是范围值。可选性:可选的?这个筛选定义为可选的,所以参数也是可选的。?参数也可以是必需的。如果一个参数在多个上下文中使用,那么对于可选的参数,所有引用都必须是可选的数据类型:Numeric?这个参数是数字,因为 Order number数据项是数字。现在,把参数的特性应用于引用它的提示。这意味着,提示控件会体现参数的一部分特性,从而让提示控件与参数定义保持兼 容。如果在创建的提示页面中引用参数,会在运行时修改提示定义,以便与参数的基数、可选性和离散性匹配。数据类型不匹配 可能会导致运行时错误。如果没有创建的提示页面,那么这些特性应用于生成的提示页面上的提示。3
7、.1.2 数据项表达式与通过宏表达式定义的参数不同,在数据项表达式中使用的参数是必需的。3.1.3 宏表达式在宏表达式中定义的参数 1 可以是可选的或必需的,可以是单一值或多值。请考虑宏表达式:#prompt ( pOrderNumber ' , integer ' )#基数:单一值? prompt() 宏函数只接受单一输入值。? 可以用 prompt() 定义多个值:#promptmany ( pOrderNumber ' , integer ' )#离散性:简单值? 提示宏总是简单值,而不是范围。可选性:必需的? 没有默认值(这个宏函数的第三个可选参数)表明
8、了这一点。? 包含可选参数的示例如下:#prompt ( pOrderNumber ' , integer ' , 5 ' )#3.2 提示调节如何影响性能?为了执行提示调节, IBM Cognos 8 要检查查询,判断有哪些参数及其特性。查询越大、越复杂,这个过程花费的时间越长。在 IBM Cognos 8.1 中,一个包含 200 多个查询的客户报表需要超过 40 秒才能显示出第一个提示页面。大多数时间花费在提示调节 方面。3.3 在 Cognos 8.2中如何改进提示调节?在 IBM Cognos 8.2 中通过三种方式改进提示调节:? 更快的提示调节? 用于提示
9、调节调优的报表服务器属性? 用于提示调节调优的查询属性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 中的 40 多秒相比降低了 80%。只需迁移到 IBM Cognos 8.2,就实现了 80% 的性能改进。不需要采取其他措施。3.5 用于提示调节调优的报表服务器属性IBM Cognos 8.2 为整个系统和具
10、体报表的提示调节调优提供了三个相互关联的选项。第一个选项是一个针对整个报表服务器启用的报表服务器高级属性:这个属性有几个值:COMPLETE -在显示第一个提示页面之前,调节所有查询。这是默认设置,用来确保与以前版本的兼容性。CHUNKED-分批调节所有查询,直到调节了第一个提示页面所需的参数为止。以不固定的次序处理查询。可以用高级服务器属性 修改 CHUNK大 小。默认的 CHUNK 大小是 5 个查询。GROUPED- 按组调节查询,直到调节了第一个提示页面所需的参数为止。这些组如下:? 筛选的报表查询? 筛选的提示查询? 未筛选的报表查询? 未筛选的提示查询 按这些组的次序处理查询,直到
11、调节了第一个提示页面中引用的所有参数为止。常常只需处理第一个或前两个组。但是,在某些 情况下,需要处理所有查询。例如,如果在提示查询中的计算查询项中引用参数,就会发生这种情况。报表服务器调节第一个提 示页面的参数之后,向用户显示这个页面。如果后续提示页面引用在已经处理的查询中没有的参数,在显示这些提示页面之前, 报表服务器可能需要调节更多查询。CHUNKED GROUPE-D 分批调节查询组中的查询,直到调节了第一个提示页面所需的参数为止。我们的客户场景只包含一个筛选的查询,但是假设报表中的所有200个查询都使用相同的参数进行筛选。GROUPED会同时调节这200个查询,因为所有查询都属于筛选
12、的报表查询组。CHUNKED每次调节x个查询,x是CHUNKED大小(默认值为 5)。因此对于CHUNKED GROUPED将调节5个查询。如果找到了第一个提示页面所需的参数,就显示页面。如果没有找到,就处理后5个查询,直到找到参数为止。以我们的客户报表为例,设置= GROUP会迫使提示调节首先处理包含筛选的查询(我们只有一个这样的查询)。这导致客户示例报表的提示调节在IBM Cognos 8.2中只需花费不到 1 秒,与 IBM Cognos 8.1 中的 40 多秒相比性能提高了 98%。只需设置一个高级服务器属性,就实现了 98% 的性能改进。不需要采取其他措施。坦白地说,这个示例不太典
13、型,因为筛选的查询和非筛选的查询的比例高于一般水平。但是,这个示例说明GROUPED调节选项的优点是只需要处理所有查询中的一部分。关于如何处理大量的筛选查询,请参见“用于提示调节调优的查询属性 ”。3.5.1 最佳默认设置是什么?如果使用COMPLETE之外的其他设置,可能会导致运行时错误,因为相同的参数可能在同一报表中以不同方式定义两次或更多 次。假设报表中有一个可选的筛选(比如X in ?P1?)和一个计算 Y + ?P1?o筛选把 P1 定义为可选的和多值的。计算把 P1 定义为必需的和单值的。如果使用COMPLETE查询调节,就会处理所有查询,而且使用限制性最强的定义修改提示,这会产生
14、必需的单值提示。如果使用GROUPED就只处理筛选的查询,这允许使用可选的多值提示。如果用户跳过这个提示或者选择多个值,那么当处理计 算时就会产生运行时错误。说到这里要补充一点,在使用高级调节属性时,正确使用参数并解决这些不匹配的参数定义应该是创建者的责任。在使用CHUNKED GROUPE时,还可能有两个或更多筛选以不同方式定义同一个参数。同样,这也是在创建报表时计划和实现不 完善的表现。出于性能考虑,CHUNKED GROUPE是推荐的设置,因为它允许只处理部分查询组。但是,应该进行适当的报表测试,以确保不会 出现由于报表创建者使用参数的方式不一致所导致的运行时错误。默认的CHUNK大小5
15、对于大多数情况已足够。3.6 用于提示调节调优的查询属性 对于某些报表,仅仅设置高级报表服务器属性可能无法实现良好的性能,还需要手动调优。报表创建者可以使用新的ReportStudio 查询属性 Use for Parameter Info 决定提示调节的执行方式。这个新属性只能在高级报表服务器属性置 GROUPED或 CHUNKED GROUPE时使用。 这个属性实际上创建一个新的查询处理组,系统在处理筛选的报表查询之前处理这个组。新的处理次序是:? Use for Parameter Info = True 查询? 筛选的报表查询? 筛选的提示查询? 未筛选的报表查询? 未筛选的提示查询
16、如果在第一个组中找到了所需的参数,就不再处理其他查询。这个属性在两个场景中很有用。3.6.1 在多个查询筛选中使用相同的参数仍然以包含 200 个查询的示例报表为例,假设所有 200 个查询中的筛选都引用相同的参数。以前必须处理所有 200 个查询来调节 参数。实际上,只需处理其中任意一个查询,就可以收集到所需的信息。报表创建者可以选择任何查询,并设置查询属性Use forParameter Info = True。系统只处理这个查询,就会找到所需的参数并显示第一个提示页面,不必处理其他查询。3.6.2 在每个查询筛选中使用不同的参数现在,考虑一个完全不一样(有点儿不真实)的用例。我们有 20
17、0 个查询,每个查询都引用一个不同的参数,在第一个提示页面 中引用所有 200 个参数。在这种情况下,必须处理所有查询,这会导致性能降低(回到5 秒水平)。有一个非常聪明的办法:创建者可以创建一个定义所有 200 个参数的查询。不创建任何引用这个新查询的布局(即,没有列表、 交叉表或图表使用这个查询)。只在这个查询上设置查询属性Use for Parameter Info = True。现在,在运行报表时,只处理这一个查询。因为在布局中不引用这个查询,它不会实际执行。这样就解决了第一个提示页面的性能问题,而且不会有额外的开销。包含 200 个查询而且每个查询使用不同的参数这样的示例有点儿极端,
18、但是如果处理给定的查询或查询集造成了性能问题,就可 以考虑使用这种方法。估计只有非常少的报表需要使用 Use for Parameter Info 查询属性,因为 IBM Cognos 8.2 本身和使用 产生的性能改进能够解决大多数性能问题。3.6.3 提供不利提示要确保您选择的查询提供所需的所有参数。如果在没有定义所有参数的查询集上设置Use For Parameter Info '查询提示(hint),会对性能产生消极影响,因为第一个请求没有调节所有参数,还需要通过另一个请求获得其他参数的参数特性。3.7 SAP考虑事项在有非层次化数据源变量的SAP环境中,变量数量大而且这些变量
19、具有许多可能的值,这会显著影响性能。建议不要在这些环境中使用高级服务器属性,但是可以使用Use For parameter Info '查询提示改进性能。4提示查询性能提示查询用于填充提示控件。在运行完提示查询之前,无法显示提示页面。在默认情况下,这些查询在每次向用户显示提示页面 时运行一次。在改进提示查询性能时,要关注三个方面:查询的数量避免重复运行提示查询并行地运行提示查询4.1查询的数量查询数量越大,处理提示页面花费的时间越长。尽管下面讨论的机制可以减少所需的时间,但是有时候第一个提示页面包含的提 示查询太多,必须处理它们才能显示提示页面。可以把提示分割为两个或更多页面。这样每个
20、提示页面包含的查询就比较少了。可以使用选项卡式的提示页面。系统只运行实际向用户显示的提示控件所需的查询,不运行不活跃的选项卡的提示查询。附录A讲解如何创建选项卡式提示界面。可以使用隐藏在条件块中的提示,这些提示只在用户已经响应了一些提示并重新提示报表时显示。同样,因为系统只运行实际向 用户显示的提示控件所需的查询,不运行隐藏块中的提示查询。4.2适当的提示控件一些提示控件不适合容纳大量数据。例如,包含100,000个条目的值提示(选择列表)性能会很差,而且使用很不方便。对于这么大量的数据,更合适的控件是Select & search提示、Cascading提示或Tree提示,因为它们在
21、最初显示时并不装载整个数据集。注意,如果创建者非要使用包含大量数据的提示,那么在默认情况下数据会在5000行处截断,而且系统并不给出警告。可以使用提示控件的Rows Per Page属性显示更大的数据集。4.3缓存提示查询在IBM Cognos 8.1中,可以缓存提示查询。如果提示中的值不经常变动(比如每天一次而不是随时),而且提示并不依靠另一个 提示的值筛选提示查询,就可以使用这种技术。例如,可以缓存父级联提示的值,但是不能缓存子(或孙)提示,因为这些后续 提示依靠父提示的值执行查询。使用作业执行提示查询并缓存报表的值。用适当的调度计划(比如每天或每周)创建作业,从而反映提示值的变动频率。在
22、作业中添加需要刷新提示查询的报表之后,把Default Run选项设置为 Run the report to Refresh the Report Cache (也可以为每个报表步骤设置这个选项)。当作业运行时,它只执行提示查询并把结果缓存在Content Store中。如果在多个位置有提示,那么在作业步骤中设置这些位置,就会缓存所有位置的提示值。当用户运行报表时,获取缓存的查询值;这一般会提高性能。注意,无论是否考虑性能因素,这也是减少对数据库的查询数量的好方法,因为在用户每次请求运行报表时不再需要执行提示查 询了。4.4并行地运行提示查询 如果提示值是高度动态的,缓存不是合适的选项,那么可
23、以同时执行多个提示查询。在默认情况下,单一报表中的所有查询一个接一个地运行。可以同时运行提示查询或数据查询。报表服务器使用helper的概念管理可以在报表服务器中同时执行的查询数量。例如,把helper的数量设置为10就意味着整个报表服务器实例可以同时执行另外10个查询。报表服务器高级属性 于设置服务器中可用的helper数量。默认值是零。如果不设置这个属性,就无法同时运行查询。还必须使用报表服务器高级属性置每个报表可以使用的 helper数量。默认值是1,即只允许每个报表每次执行一个查询;必须把它至少设置为2,才能允许运行并行查询。设置这两个选项之后,在默认情况下只对批执行运行并行查询。这是
24、因为在交互式执行时,这可能会导致运行查询,但是用户根 本不看它的结果,因此不必要地消耗了资源。假设一个报表有两个页面,每个页面有一个列表。用户运行这个报表;启用并行查 询,让这两个列表查询同时运行。用户看了第一个页面/列表,然后关闭浏览器。第二个查询已经并行地运行了,但是未被使用,这浪费了资源。稍后讨论如何更好地处理这种情况。要想为交互式执行启用并行查询,需要把报表服务器高级属性设置为True。在给定的报表中,还必须使用查询属性Execution Method决定哪些查询可以并行地运行:图 1.查询属性 Execution Method在提示查询上设置这个属性允许它们并行地运行,这常常会提高性
25、能。5结束语IBM Cognos 8.2显著改进了第一个提示页面的基本性能,即使不进行定制配置,性能也很好。还可以通过以下措施进一步提高提示性能:? 提示调节?明智的提示页面设计? 提示查询缓存? 并行的查询执行为了进一步提高提示性能,建议在所有IBM Cognos 8.2服务器上设置 应该进行适当的报表测试)。6附录A -选项卡式提示页面注意:这份资料最初是一份单独的Proven Practices文档。这里的内容与原文档中相同。6.1更快的选项卡式提示页面这里的场景是,客户希望向最终用户提供报表,在提示页面中使用选项卡式用户界面而不是一系列提示页面。最常用的提示出现 在第一个选项卡中,其他
26、选项卡显示不太常用的提示。图2.选项卡式提示页面我们见过的一些应用程序示例有多达60个提示,它们分布在 6到8个选项卡上。有两个问题会影响这些报表的性能。首先,提示数量大意味着Cognos 8在运行报表之前必须分析许多查询。一般情况下,这意味着每个提示有一个查询,还要加上报表查询本身。这个问题只能通过减少报表中使用的查询数量来解决,这超出了本文的范围。第二,原来使用的HTML/JavaScript技术的性质决定了它们的性能非常差。生成选项卡的标准HTML/JavaScript技术允许用户在不访问服务器的情况下切换选项卡。这意味着必须在显示第一个选项卡之前 填充所有提示(多达60个)。因为在默认
27、情况下查询是串行运行的,需要的提示查询越多,用户等待 的时间就越长。6.2解决方案概述这个解决方案使用条件块显示提示。选项卡本身仍然是用HTML和JavaScript创建的。使用条件块的优点是,系统知道隐藏的块中的提示是不可见的,因此不运行填充它们所需的查询。如果用户切换选项卡,提示变得可见并运行相关联的查询。缺点是切换选 项卡需要向服务器发岀请求。实现这种技术的提示页面使用条件块决定显示哪些提示。请想像一系列重叠的矩形,在任何时候只显示其中的一个。图3.条件块显示提示这些块在任何时候只有其中的一个是可见的,但是所有选项卡都是一直可见的。当前'选项卡的边框和文本颜色设置为黑色,让它看起
28、来像在其他选项卡前面。非当前的选项卡是灰色的,让它们不太突出。图4.选定选项卡从某种程度上来说,编写报表相当简单。我们将创建一个条件块以及与选项卡数量相同的块一一在以上示例中是4个。然后,以表格单元格的形式创建基本选项卡结构(矩形),根据需要设置边框。用HTML和一些简单的JavaScript创建选项卡中显示的文本。当用户单击选项卡(实际上是单击选项卡中的文本)时,显示相关联的条件块,修改选项卡边框和文本颜色,显示相关联的块。 在后台,通过设置一个参数值指定显示哪个选项卡,然后重新提示报表。在理想情况下,我们使用提示控件或提示按钮设置参数 值并重新提示。但是,没有提示控件或按钮能够满足要求。一
29、个提示可以设置参数值并重新提示(通过自动提交),但是无法看 起来像文本。6.3适用范围这种技术应该适用于 ReportNet 或 IBM Cognos 8的任何版本。6.4 未记录和不受支持的功能 正如下面详细讨论的,这个解决方案需要使用两个在 IBM Cognos 8 中未记录和不受支持的功能。因此,在以后的版本中对这两个 功能的支持可能会改变或完全取消,从而需要重写这个解决方案。但是,这种风险很低,因为目前在这些方面没有修改计划。6.5 选项卡式提示报表项目在我们的场景中,第一个选项卡让用户选择Order year(s),第二个选项卡让用户选择Product name(s),以便运行一个非
30、常简单的列表报表。我们将从头到尾介绍创建示例报表的整个过程。为方便起见,我们只使用两个选项卡,每个选项卡上各有一个提示。6.5.1 创建基本报表打开 Report Studio 和 GO Sales and Retailers包。创建一个新的列表报表:? OrdersOrder year? OrdersProduct name? OrdersRevenue如图所示:图 5.创建基本报表创建两个可选的 详细信息筛选:? Order year in ?p_OrderYear? Product name in ?p_ProductName?这样就行了。这就是将用来演示这种技术的基本报表。6.5.2
31、创建基本提示页面 尽管创建选项卡式提示用户界面并不难,但是过程很长。大多数时间花在格式化方面。实际功能花费的时间很少。 首先我们需要一个提示页面。在报表中添加一个提示页面:图 6.添加一个提示页面把一个一行两列的表格拖到提示页面体中,如图所示:图 7.把一个一行两列的表格拖到提示页面体中我们暂时不管这个表格,但是稍后要使用它。6.5.3 创建选项卡体 条件块最终包含出现在每个选项卡上的提示。图 8.创建选项卡体我们首先创建基本的选项卡体结构并使用一些文本项,让我们可以看出哪个选项卡是当前的。把一个 Conditional Block 对象拖到页面体中:图 9.把一个 Conditional B
32、lock 对象拖到页面体中选择条件块对象然后选择 Block Variable 属性。创建一个 <New String Variable,像这样:? Name: TabToShow? Values: Tab2? Expression: ParamValue('pTabToShow')变量名TabToShow、值Tab2和参数pTabToShow很重要,这个项目要多次引用它们。选择好块之后,把 Current Block 属性设置为 Other。 把一个文本项 Tab 1 '拖到块中,像这样:图 10.把一个文本项 Tab 1 '拖到块中 这个文本用于提醒我
33、们哪个选项卡是当前正在查看的。选择块,把 Current Block 属性设置为 Tab2。 Tab 1 '文本项会从块中消失。把文本项 Tab 2 '拖到块中,像这样:图 11.把文本项 Tab 2 '拖到块中同样,这个文本用于提醒我们哪个选项卡是当前正在查看的。选择块,在 Other 和 Tab2 之间来回变换 Current Block 属性值,应该可以看到 Report Studio 中的选项卡随之切换。6.5.4 创建选项卡 正如前面所说的,我们要使用HTML 项和一些未记录和不受支持的功能实现选项卡。首先要做的是,使用 Report Viewer 将参数值传
34、递给服务器。作为表单变量传递参数值,表单变量的名称是参数名(比如pTabToShow)前面加上 p_,比如 p_pTabToShow。 这种参数传递机制是未记录和不受支持的。请注意本文前面的说明。我们使用一个 HTML 对象创建这个表单变量。把一个 HTML项目拖到 Page Header中,像这样:图12.把一个HTML项目拖到 Page Header中这个项的位置无所谓,因为它不向用户显示。选择 HTML 项并把 HTML 属性设置为:<input type="hidden" name="p_pTabToShow" value="Ta
35、b1"/>这行HTML代码创建表单变量 p_pTabToShow并将值设置为Table这个表单变量让服务器认为报表中已经定义了名为pTabToShow的参数,所以服务器会保留它的值并在重新提示报表时把它传递回 Report Viewer 。现在,回到前面在该示例中添加的表格。 尽管目前还看不出来,但是这个表格中的两个单元格将变成用户可以单击的选项卡。图 13.单击的选项卡出现在选项卡上的文本项将是HTML 项。在每个表格单元格中添加一个HTML 项,让它们在单元格中居中:图 13.在每个表格单元格中添加一个 HTML 项选择左边的 HTML 项并把 HTML 属性设置为:<
36、;button title="Show Tab 1" SetPromptControl('reprompt')">Show Tab 1</button>这段JavaScript创建一个按钮:? 按钮标题(工具提示文本)-Show Tab 1? 操作:o将表单变量p_pTabToShow设置为Tab1o 运行函数 reprompt? 按钮标签 - Show Tab 1 换句话说,当用户按这个按钮时,它会设置表单变量并重新提示报表。注意, reprompt 函数是未记录和不受支持的。请注意本文前面的说明。选择右边的 HTML 项并把
37、HTML 属性设置为:<button title="Show Tab 2" Tab2'SetPromptControl('reprompt')">Show Tab 2</button>运行报表:图 15. 运行报表可以通过单击按钮在选项卡之间切换,显示相应的文本。图 16. 切换选项卡核心选项卡功能现在完成了。剩下的工作都是装饰性的;这个用户界面是有效的,但是看起来不像选项卡式用户界面。另外,还 要把提示放到选项卡上。返回到 Report Studio 。6.5.5 设置选项卡的样式 我们要用边框、对齐和其他样式改变
38、 HTML 按钮和块的外观,让它们看起来像选项卡。 首先,处理 HTML 按钮。选择父表格,在 Table Properties 属性中选择 Fixed Size。 仍然选择表格,选择 Size and Overflow 属性并删除当前的宽度设置。选择每个表格单元格并把宽度都设置为100 pixels (px)。在实际的报表中,必须调整宽度,让宽度与每个选项卡中的文本匹配。请记住,为了让选项卡更美观,所有选项卡常常采用相同 的宽度。现在,表格单元格和 HTML 按钮有点儿像选项卡了:图 17. 设置选项卡的样式现在,需要重新设置 HTML 按钮的样式,让它们只显示文本。选择 HTML 对象之一
39、,会看到没有样式属性:图 18. 重新设置 HTML 按钮的样式在 IBM Cognos 8 中,可以在报表中定义样式并把它们应用于报表对象。同样,也可以把这些样式应用于 HTML 对象。6.5.6 IBM Cognos 8 按钮样式在 IBM Cognos 8 中,可以定义一个类,然后在 HTML 按钮定义中引用它。使用 Page Explorer 打开 Classes。把一个Class对象从工具箱拖到 Local Classes区域:选择这个新的类对象并设置属性:? Name: HTMLButtons? Border: None? Box Type: Block? Background C
40、olor: White? Class or Selector: HB返回到提示页面。Class/Selector 属性是在把样式应用于 HTML 项时使用的标识符。选择左边Tab 1的HTML对象并把HTML属性改为:<button title="Show Tab 1" SetPromptControl('reprompt')" class="HB"Show Tab 1</button>选择右边Tab 2的HTML对象并把HTML属性改为:<button title="Show Tab 2&qu
41、ot; SetPromptControl('reprompt')" class="HB">Show Tab 2</button>6.5.7 ReportNet 按钮样式在 ReportNet 和 IBM Cognos 8 中都可以使用这种方法。我们使用HTML样式属性在HTML按钮定义中直接应用样式,而不是引用在报表级定义的通用样式定义。选择左边的HTML对象并把HTML属性改为:<button title="Show Tab 1" SetPromptControl('reprompt')
42、"style="border-top- style:none;border-left-style:none;border-right-style:none;border- bottom-style:none;display:block;background-color:white">Show Tab1</button>选择右边的HTML对象并把HTML属性改为:<button title="Show Tab 2" SetPromptControl('reprompt')"style="
43、border-top- style:none;border-left-style:none;border-right-style:none;border- bottom-style:none;display:block;background-color:white">Show Tab2</button>6.5.8 运行报表 运行报表。删除按钮的按钮式外观,只留下文本。图 19. 运行报表6.5.9 显示活跃的和不活跃的选项卡 我们现在需要通过设置选项卡的样式表明哪个选项卡是活跃的。活跃的选项卡将采用黑色的边框和文本。不活跃的选项卡将采用 灰色的边框和文本。选择左边的
44、表格单元格。将 Style Variable 设置为 TabToShow。使用 Variable Explorer 选择 TabToShow,再选择 Other:图 20.仍然选择左边的表格单元格,将左边、上边和右边的 Border 设置为 Black、Solid Line、 1.5 point (pt) :图 21.Border 设置图 22. Tab 1 选项卡使用 Variable Explorer 选择 TabToShow,再选择 Tab2:仍然选择左边的表格单元格,将左边、上边和右边的 Border 设置为 Silver、Solid line、1.5 point (pt) :图 23
45、. Tab2 Border 设置图 24. Tab 2 选项卡运行报表: 图 25. 运行报表 Tab 1单击 Show Tab 2,让 Tab 1变成非当前的:图 26. 运行报表 Tab 2对 Tab 2(右边的表格单元格)重复相似的步骤。返回到 Report Studio 。选择右边的表格单元格。将 Style Variable 设置为 TabToShow。使用 Variable Explorer 选择 TabToShow,再选择 Other:图 27. 将 Style Variable 设置为 TabToShow仍然选择右边的表格单元格,将左边、上边和右边的 Border 设置为 Silver、Solid Line、 1.5 point (pt) :图 28. Border 设置使用 Variable Explorer 选择 TabToShow,再选择 Tab2:仍然选择右边的表格单元格,将左边、上边和右边的 Border 设置为 Black、Solid Line、 1.5 point (pt) :图 29. Tab2 Border 设置运行报表:图 30. 运行报表单击 Show Tab 2:图 31. 运行报表 Show Tab 2两个表格单元格之间的边框是灰色,但是我们在右边的表格单元格上
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学四年级口算题大全(10000道)
- 统编版语文五年级下册第15课《自相矛盾》精美课件
- 山西运城农业职业技术学院《康复工程学》2023-2024学年第二学期期末试卷
- 山西同文职业技术学院《乒乓球V》2023-2024学年第二学期期末试卷
- 益阳职业技术学院《徽州民间音乐采风》2023-2024学年第二学期期末试卷
- 江西信息应用职业技术学院《BIM基础》2023-2024学年第二学期期末试卷
- 扬州环境资源职业技术学院《高级管理学》2023-2024学年第二学期期末试卷
- 江西航空职业技术学院《外国建筑史(Ⅰ)》2023-2024学年第二学期期末试卷
- 阳光学院《古树导论》2023-2024学年第二学期期末试卷
- 江西省湖口县第二中学2024-2025学年高三防疫期间“停课不停学”网上周考(三)物理试题含解析
- 第八课 法治中国建设 课件高考政治一轮复习统编版必修三政治与法治
- 【人教版】《劳动教育》五下 劳动项目八《制作校园提示牌》课件
- 《康复治疗技术》
- 建设停车场新能源充电桩项目可行性研究报告写作模板-备案审批
- 施耐德PLC-标准指令库
- 03压强与浮力相结合的综合计算-2022中考物理力学压轴计算题难题专练(原卷版+解析)
- 陈述句与反问句互改(课件)-2022-2023学年三年级语文公开课
- 2024至2030年中国车用氮氧传感器行业市场发展调研及投资前景分析报告
- 人工肩关节置换(反肩)
- 离婚协议书范本2个孩子可打印
- 人教版 水平四 《一百米跑》说课稿
评论
0/150
提交评论