定义变量并给变量赋值

设计模板时,可能必须计算值或者使数据属性可以在它们通常不可用的上下文中使用。对于这些情况,可以定义变量并给变量赋值。值可以为静态数据,也可以是当前上下文中的可用数据。
变量可以用作运行时计算的数据的占位符(变量赋值),也可以在文档规范中提供。与数据属性不同,您还可以在母版页中使用变量。
变量有两种类型:
  • 用户定义的变量:用户定义的变量由模板设计者所定义。用户定义的变量可以是内部的,也可以是外部的。
    • 用户定义的内部变量:将变量指定为内部变量以执行计算或临时存储信息,例如用来将数据带入母版页的变量。内部变量不会显示在文档规范中;因此,您无法向这些变量提供值。
    • 用户定义的外部变量:当您向变量提供值时,将变量指定为外部变量。外部变量会显示在文档规范中。请参阅创建文档规范
  • Rational® Publishing Engine 变量:Rational Publishing Engine 变量是可用在文档模板中的内部变量。
    表 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. 在下列字段中输入变量详细信息:
    1. 名称:输入变量的名称。 由于会在脚本中使用有效 Java™ 或 JavaScript 标识,因此变量名称必须使用这些标识。针对 JavaScript 标识的规则:
      • 必须以字母、下划线 (_) 或美元符号 ($) 开头
      • 后续字符可以是数字 (0-9)
      • 字母区分大小写
      • 可使用 ISO 8859-1 或 Unicode 字母(例如 å 或 ü)
      • 可使用以字符形式表示的 \uXXXX Unicode 换码序列
    2. 描述:输入变量的描述。
    3. 缺省值:输入变量的值。
    4. 访问:从列表中选择变量是内部变量还是外部变量。
      • 内部变量不会显示在文档规范中,因此您无法向这些变量提供值。
      • 外部变量会显示在文档规范中,因此您可以向这些变量提供值。
  3. 要将变量分配给元素,请执行下列操作:
    提示: 尽可能将变量分配给容器元素。该变量会应用到容器元素中的元素。例如,您可能想要在表中使用变量,以便为每个变量新建一行。如果将变量分配给表元素,那么可为每个变量创建一个表。有时这些连续表会合并,但有时它们会显示为单独的表。如果在表中添加一个容器元素并将行拖入容器元素中,然后将变量分配给容器元素,那么将使用每个变量的行来创建单个表。
    含有容器元素的表元素。容器元素内部是一个含有三个单元格元素的行元素。
    1. 右键单击元素,然后单击数据 > 编辑分配 此时,会打开“分配编辑器”窗口。
    2. 单击添加 此时,会打开“选择变量”窗口。
    3. 输入变量的名称,然后单击确定
    4. 单击“分配编辑器”窗口中的确定
所选变量已定义且分配给当前元素。

当您将变量分配给元素时,元素会在模板内容编辑器中显示一个 “变量分配”图标 图标。

含有一个查询和一项变量分配的段元素

提示: 要搜索元素中所使用的变量分配列表,您可以右键单击变量所分配给的元素,并选择搜索 > 元素中的变量引用。此时,会打开“搜索”视图并显示一个变量分配列表。可以双击结果中的变量分配以进行编辑。

要搜索元素中所使用的变量分配、属性和查询的列表,请右键单击元素,并选择搜索 > 元素中的所有引用。此时,会打开“搜索”视图并显示一个列表。可以双击结果中的项目以进行编辑。


反馈