设置数据的格式化和计算方式

定义模板元素的内容或模板元素的属性值以格式化和计算数据。

关于此任务

可以使用简单值、数据表达式或脚本表达式来定义模板的内容。

数据表达式和脚本表达式都具有可供您选择的内部变量。
表 1. Rational Publishing Engine 内部变量
变量 描述
_cell_number 当前行中的单元格号。如果元素不是单元格,那么值为 0。可从“数据表达式”或“脚本表达式”选项卡使用 _cell_number
_element_id 模板内的元素号。保留在模板内部,用于调试。可从“数据表达式”或“脚本表达式”选项卡使用 _element_id
_element_level 元素的递归级别。如果没有为“数据”选项卡内的“递归级别”属性中的元素设置值,那么值为 1。可从“数据表达式”或“脚本表达式”选项卡使用 _element_level
_row_number 当前表中的行号。如果元素没有包含在行元素中,那么值为 0。 可从“数据表达式”或“脚本表达式”选项卡使用 _row_number
_sessionInfo 来自模板或文档规范的运行时属性信息。在“脚本表达式”选项卡中,选择 _sessionInfo 变量并输入脚本。使用其中不具有值的空引号以为输出中的属性生成缺省值。脚本示例:

_sessionInfo.getDocspecProperty(property, “”);
_sessionInfo.getTemplateProperty(property, “”);
_sessionInfo.getDatasourceProperty("data_source_name",property, “”);
_sessionInfo.getOutputProperty("output_type",property, “”);
_sessionInfo.docspecVersion
_sessionInfo.templateVersion
_sessionInfo.engineVersion
_sessionInfo.buildNumber

对于 getDocspecProperty,可使用现有的文档规范属性或创建定制元数据属性。

_sessionLogger 出于调试目的,可在 %TEMP%\rpe\rpe.log 文件、“控制台”视图或“问题”视图中显示定制信息、错误、警告或调试消息。这些消息显示在 log4j.properties 文件中定义的位置内。

缺省设置是在“控制台”视图中而不是在 rpe.log 文件中显示参考消息。

在“脚本表达式”选项卡中,选择 _sessionLogger 变量并输入脚本。可使用下列其中一种方法来生成日志条目:
  1. _sessionLogger.debug(message)
  2. _sessionLogger.info(message)
  3. _sessionLogger.error(message)
  4. _sessionLogger.warn(message)

当决定要在脚本输入作为 message 的内容时,请考虑使用可视调出(例如姓名的首字母或用户名)以及使用模板中的变量来生成有意义的消息。

_sessionUtils 在“脚本表达式”选项卡中,可使用此变量来对称为 tidyXHTML 的脚本运行函数。当通知块由不当 XHTML 编码创建的输出中存在空格时,此变量很有用。通过 _sessionUtils 变量,会处理字符串参数,并且会清除 XHTML,这样就不会在输出中显示额外的空格。

示例:_sessionUtils.tidyXHTML(text);

当使用 _sessionUtils 变量时,还可选择“脚本表达式”选项卡中的 XHTML 输入XHTML 输出选项。
注: 可将包括此变量的模板装入到较旧版本的 Rational Publishing Engine 中,但是无法正确评估脚本。

过程

  1. 在模板内容编辑器中,双击文本元素。 此时,会打开“为当前元素设置内容”窗口。
  2. 使用下列其中一个选项来指定内容:
    • 要使用简单值,请单击简单值选项卡,然后输入值。
    • 要使用数据表达式,请单击数据表达式选项卡,然后执行以下任一操作:
      • 展开变量并选择要使用的变量。
      • 展开属性并选择要使用的数据属性。
    • 要使用脚本表达式,请单击脚本表达式选项卡。
      • 展开变量,选择一个变量,然后输入可以在当前上下文中使用变量的 JavaScript 代码。
      • 展开属性,选择一个属性,然后输入可以在当前上下文中使用数据属性的 JavaScript 代码。
      • 如果从 XHTML 中复制了脚本,那么您可以选择 XHTML 输入选项以允许编辑包含在脚本中的 XHTML 标记。
      • 如果要将模板生成为 XHTML 输出,那么您可以选择 XHTML 输出选项以解析脚本并将脚本呈现为富文本格式文本。
      例如,要选择绝对编号、名称和值作为属性,请输入如下 JavaScript 代码:
      "object:"+Absolute Number+
      "attribute"+name+
      "value"+_value
      提示: 如果有相当复杂的模板,那么可以使用名称描述属性来描述模板中的每个块。名称字段和描述字段在缺省情况下是空的,名称内容显示在模板中,而描述内容可以显示在模板元素提示字段中。这可以帮助其他人复用该模板。

      还可选择导入现有脚本或在 JavaScript 编辑器而不是“脚本表达式”选项卡中工作:

    1. 如果要包括来自另一个文件的新脚本,请单击包括脚本,然后从您的计算机、远程服务器或“中央管理”组件中选择一个文件。单击确定以关闭该窗口,然后双击该元素以再次打开“JavaScript 代码元素的输入代码”窗口。
    2. 单击在编辑器中打开以在 Eclipse JavaScript 编辑器中输入脚本。 这时,脚本会作为临时 .js 文件在新的编辑器选项卡中打开,您可以编辑 JavaScript。
      注: 如果开始进行输入,那么在输入句点或另一个字符作为值之后,Error accessing JavaScript file 消息可能会显示。它还可能后跟 Problems during content assist 消息。如果遇到这些消息,请完成消息中的指示信息,以禁用其他 JavaScript 建议选项:
      1. 单击窗口 > 首选项 > JavaScript > 编辑器 > 内容辅助 > 高级
      2. 在“内容辅助循环”部分中,取消选中其他 JavaScript 建议选项。
      3. 单击确定以关闭窗口。
    3. 通过“大纲”视图中的选项来管理脚本。
    4. 保存更改。
    5. 关闭临时 JavaScript 编辑器选项卡。 返回“JavaScript 代码元素的输入代码”窗口。
    6. 单击测试脚本以验证代码。
    7. 单击确定以保存更改并退出窗口。
  3. 单击确定以保存更改。

示例

数据表达式用法示例
要在表中显示自动生成的行号,请执行下列操作:
  1. 将表元素拖到该编辑器中。
  2. 对表输入 3 行和 3 列,然后单击确定
  3. 将文本元素拖到每个单元格中。
  4. 选择第一行中的第一个单元格。
  5. 属性视图中,选择内容选项卡并单击 “配置”图标。双击该元素也会打开同一窗口。
  6. 单击数据表达式选项卡并选择 _row_number。 然后,单击确定
  7. 对第二行和第三行中的第一个单元格重复操作。
  8. 除去行号单元格中的边框:
    1. 按住 CTRL 键并选择每行中的第一个单元格。当选择了多个元素时,可同时编辑所有这些元素的属性。
    2. 在“属性”视图中,选择边框选项卡。
    3. 对于样式属性,请选择
  9. 保存模板。
  10. 通过生成输出来测试模板。第一个单元格包括行号,并且在它周围没有边框:
    输出示例
  11. 在模板中,完成将属性从数据源模式添加到剩余单元格这一操作以完成表。

反馈