高级自定义 > 业务逻辑自定义 > 报告生成 > 报告输入页面自定义
  
报告输入页面自定义
目标
您想要为 Windchill Business Reporting (WBR) 系统中的报告提供参数输入页面。
背景
Windchill Business Reporting (WBR) 解决方案支持带有参数的报告。Windchill 和 Cognos 查看器都提供了一个基本输入页面,供用户在执行报告时收集参数值。通常,此输入页面需要自定义才能获得更好的最终用户体验。自定义输入页面有两种基本方法:使用标准 Windchill Java Server Page (JSP) 或使用 Cognos 报告功能。可从 Windchill 或 Cognos 查看器使用 Windchill JSP 方法。Cognos 方法只能与 Cognos 查看器一起使用。
范围/适用性/假设
本文档假定已成功安装并配置了 Windchill Business Reporting (WBR) 解决方案 (即 Cognos)。Windchill 实例名称称为 <WindchillInstanceName>。Cognos 的根 URL 称为 <WBRHomeURL>。通常,如果 WBR 解决方案安装在 <WBRHost> 上,则 <WBRHomeURL> 将为 http://<WBRHost>/Cognos/cgi-bin/cognos.cgi。假定您可以登录到 <WBRHomeURL>,并且您具有足够的 Cognos 权限来查看 Windchill 数据源对象和创建报告。
假定您有权访问 Windchill 服务器 JSP 目录 <WindchillHome>\codebase\wtcore\jsp,能够在其关联的子目录 <MyInputPagePackage> 中创建 JSP 输入页面 <MyInputPage>。
假定您具有一定的访问权限,能够在站点上下文中编辑现有 Windchill 报告对象 <MyReport>。
解决方案
构造并指定报告的自定义输入页面。
过程 - 指定可选参数
自定义点
如果 Cognos 报告使用了 Windchill 数据源,则需要指定每个参数值。但是,如果用户可以选择性地保留未指定的参数值,并且报告忽略了相关的条件或隐式使用了合适的默认设置,则报告会更有用。要实现此行为,可以传递由单个空格 (" ") 构成的参数值,并在输入页面中将单个空格设置为参数的默认值,这样用户就不需要在参数输入字段中输入任何内容。使用此方法时,必须确保基础数据源能够正确处理传递的空格值。
过程 - 使用数据源填充 Cognos 组件
Cognos 输入页面可使用 Windchill 数据源来填充组件。例如,可在选取器组件中显示 Windchill 产品的列表。在填充此组件时,此组件将从 Windchill 中动态检索产品,并显示其显示名称。当用户选择显示名称时,可将内部 Windchill 对象 ID 作为参数值输入传递给报告。
过程 - 指定额外参数
默认情况下,仅数据源参数包含在 Windchill 的 Cognos 请求中。这意味着,任何可能看似请求参数的隐藏表单字段都将从发送至 Cognos (通过 HTTP 重定向) 的 http 请求中去除。不过,可通过包含一个名为 "extraReportParameters" 的参数来显式添加其他参数,此参数用于指定要包含在 Cognos 请求中的参数名称的列表。假定您想要传递一个名为 "paramA"、值为 "valueA" 且不在报告数据源参数列表中的参数。以下为指定此参数的示例。
type="hidden" name="paramA" value="valueA"/>
type="hidden" name="extraReportParameters" value="paramA"/>
数据源
此外,还可以使用常用的 "parametersToOmit" 请求属性来排除数据源参数。请注意,这是一个 servlet 请求对象属性列表,而不是参数列表,如此选择,只是为了简便起见和易于使用。
过程 - 指定要省略的参数
默认情况下,仅数据源参数包含在 Windchill 的 Cognos 请求中。 不过,可以使用 "parametersToOmit" 请求属性显式排除参数。请注意,这是一个 servlet 请求对象属性列表。假定您想要省略报告数据源的参数列表中名为 "param1" 的参数。以下为指定此参数的示例。
<%
request.setAttribute("parametersToOmit",
Arrays.asList("param1"));
%>
限制
无。
示例代码
Windchill 代码中的使用示例
所有预设报告均使用 Windchill JSP 输入页面。
相关网站
http://www.ibm.com/cognos/support