BIP RTF模板页脚调用动态值(每页不同账号)问题求助
BIP RTF模板页脚按分页展示对应账号的解决方法
你出现该问题的核心原因是页脚默认没有绑定<?for-each@section?>生成的单节上下文,直接放置账号字段会读取整个循环的所有节点值。可按照以下步骤修复:
操作步骤
- 第一步:确认
for-each@section语法绑定到按账号分组的数据源节点,且写在正文的最开头位置,不要放置在页脚内。示例语法如下(替换为你实际的分组节点名):<?for-each@section:YOUR_GROUP_NODE?> - 第二步:在
for-each@section循环体的首行,定义绑定当前节的账号变量:<?xdoxslt:set_variable($_XDOCTX, 'CURRENT_ACCOUNT', ACCOUNT_FIELD)?>
把ACCOUNT_FIELD替换为你数据源里的账号字段名。 - 第三步:修改页脚内的账号取值逻辑,不要直接引用账号字段,改为读取上一步定义的节上下文变量:
<?xdoxslt:get_variable($_XDOCTX, 'CURRENT_ACCOUNT')?> - 第四步:确认分页规则符合要求,如果需要每个账号强制单独分页,可在
for-each@section循环体的末尾添加分页控制语法:<?split-by-page-break:?>
简化方案(BIP 11g及以上版本可用)
如果你的BIP版本为11g及以上,无需额外定义变量,直接在页脚内使用当前分组取值语法即可:<?current-group()/ACCOUNT_FIELD?>
注意事项
- 单个账号对应的数据跨多页时,上述方案会自动在该账号的所有分页页脚展示同一个账号,符合业务逻辑
- 所有循环控制语法必须放在正文区域,禁止写入页眉/页脚,避免上下文绑定失效
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

