TEC1401.Report开发技术总结 - 第九章 使用BI Publisher开发报表-使用BI Publisher创建RTF模板的语法(4/5)

 

 

第九章   使用BI Publisher创建RTF模板的语法

RTFRich TextFormat的缩写,即多文本格式。这是一种类似DOC格式(Word文档)的文件,有很好的兼容性。RTF是一种非常流行的文件结构,很多文字编辑器都支持它,RTF的结构并不复杂,但内容繁多。

BI Publisher插件是为了简化RTF模板开发而对Word进行扩展的工具,它替我们完成了很多手工操作,提高了工作效率。

BI Publisher插件具有以下的功能:

Ø 插入数据字段

Ø 插入数据驱动的表格

Ø 插入数据驱动的表单

Ø 插入数据驱动的图表

Ø 使用样例数据预览模板

创建RTF模板包括如下两个基本步骤:

l  设计模板布局

使用Word格式化的功能并且将文件保存为RTF格式

l  添加标记

添加BI Publisher标记到模板中

需要在模板中定义的有两类内容:

l  数据域:需要使用XML数据动态替换的数据字段。

XML中的数据元素在模板中则是一个对应的 Placeholder,保证Placeholder中的标记名称和XML数据中的标记名称相同。

l  循环控制命令标记:当报表运行的时候,根据XML数据自动进行循环控制的命令标记。XML数据有一个层次结构,换句话说它们存在父子关系。层次关系需要在模板文件中使用嵌套循环的方式来表现出来。

XMLPXSL-FO

可以采取两种方式编写布局语言,一是XSL语句,二是XMLP简易语句,个人建议使用前者,因为其是国际通行标准。另外,这两种语法可以混合使用,比如上面的条件格式化行和单元格。

RTF中直接写的只能是XMLP简易语句;在窗体域中则上述两者皆可。

XMLP提供的语法,都是一种简化的“代号”,实际都要翻译成XSL,如果你精通XSL-FO,那么也可以在窗体域中直接用该语法,自由而灵活!如下SQL可以查到转换后的XSL-FO

                     SELECT t2.application_short_name,t2.template_code,
                            t1.LANGUAGE,t1.template_name,t3.file_name,
                            t3.xdo_file_type,t3.file_data
                       FROM xdo.xdo_templates_tl t1,xdo.xdo_templates_b t2, xdo.xdo_lobs t3
                      WHERE t1.template_code = t2.template_code
                        AND t2.template_code = t3.lob_code
                        AND t1.LANGUAGE = 'ZHS'
                        AND upper(t1.template_code) = 'CUX_WX_OMRPT01'

<?XML element tag name?>

在模板中的每个数据域都必须与XML文件中的一个元素对应起来。在设计报表模板的时候,在模板中为XML数据元素定义 Placeholder

在报表运行的时候,模版中的 Placeholder被具有同样标记名称的XML数据替换。




clip_image005[6]                      clip_image007[6]

<?for-each:XML group element tag name?>

……

<?end for-each?>

定义一个组的目的是告诉 XML Publisher对重复的数据行进行循环显示,也就是说需要使用for-each进行数据记录的循环显示。




使用Word内置的功能来定义页眉页脚功能

如果模板中要求多个页眉页脚,使用下面的标记来标示出报表的主体部分:

<?start:body?>

……

<?end body?>

由于在页眉和页脚中不允许使用窗体域,而当报表页眉页脚中希望插入XML数据的时候,可以考虑使用嵌套模板。

嵌套模板是在模板中定义一个子模板,然后在需要的地方调用它,如在页眉页脚中调用它。

Ø 定义子模板

子模板标记之间可以使用任何的标记和内容,和模板的主体部分没有任何区别

<?template:internaltemplate name?>

……

<?end template?>

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值