OE - 报表RML格式详解

<?xml version="1.0" encoding="utf-8"?>
<document  filename="report.oecn_training_lesson.pdf" compression="1">
  {{script}}import datetime;print datetime.datetime.now;{{endscript}}
  <!-- 前面的数字代表打印纸张的大小,这个用数字表示的,也可以用cm表示,比如21cm -->
  <template pageSize="21cm,29.7cm">
    <pageTemplate>
      <!--这个数字代表的打印内容的大小,纸边界,起始位置,这个位置决定了生成文件后文字的位置,一般要测试才能知道具体位置-->
      <!--下面这段代码表示了带表头打印的宽高,空白是由y1="2.5cm"控制的,是表的打印高度,改成6,文字就上去了-->
      <frame id="first" x1="2.0cm" y1="2.5cm" width="17cm" height="25.0cm"/>
    </pageTemplate>
  </template>
  <!--这个标签是打印样式,表格样式 定义了表格名称,划线,文字的大小等等,可以不定义,表格没有线,文件一样大小-->
  <stylesheet>
    <!--段落样式定义 spaceBefore,spaceAfter是上下间距,alignment是位置 -->
    <paraStyle name="Title01" fontName="Helvetica" fontSize="18.0" spaceAfter="1.0cm" alignment="CENTER"/>
    <paraStyle name="Standard" fontName="Helvetica" fontSize="14.0" leading="16.0" alignment="LEFT"/>
    <paraStyle name="P01" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0" fontSize="14.0"/>
    <paraStyle name="P02" fontName="Helvetica" spaceBefore="6.0" spaceAfter="6.0" fontSize="14.0"/>

    <!--表格样式定义-->
    <blockTableStyle id="Table01">
      <!--表格中字体 可以为每个单元格分别定义-->
      <blockFont name="Helvetica" size="14.0" start="0,0" stop="-1,-1"/>
      <!--定义表格中的文字的左右结构样式-->
      <blockAlignment start="0,0" stop="-1,-1" value="CENTER"/>
      <blockAlignment start="0,0" stop="1,2" value="LEFT"/>
      <!--定义表格中的文字的上下结构样式-->
      <blockValign start="0,0" stop="-1,-1" value="MIDDLE"/>
      <!--下面的这行,kind="GRID" 决定了表格划线 colorName="black" 决定了表格线的颜色 start="0,0" stop="-1,-1"决定了划线的起止位置,没有这句,表格是没有线的-->
      <!-- kind : ‘GRID‘表格, ‘LINEABOVE‘上划线, ‘LINEBELOW‘下划线-->
      <lineStyle kind="GRID" colorName="black" start="0,0" stop="-1,-1"/>
      
      <!-- 合并单元格用 -->
      <!-- 表示合并第一行的第2,3,4列 start: 1表示从第一个单元格之后,0表示第一行 stop: 3表示往后数3个单元格,0表示第一行 -->
      <blockSpan start="1,0" stop="3,0"/>
      <!-- 表示合并第三行的第2,3,4列 -->
      <!--<blockSpan star3t="1,2" stop="3,2"/>-->
      <!-- 表示合并第四行的第2,3,4列 -->
      <blockSpan start="1,3" stop="3,3"/>
    </blockTableStyle>
    
    <blockTableStyle id="Table02">
      <blockFont name="Helvetica" size="14.0" start="0,0" stop="-1,-1"/>
      <blockAlignment start="0,0" stop="-1,-1" value="CENTER"/>
      <blockValign start="0,0" stop="-1,-1" value="MIDDLE"/>
      <lineStyle kind="LINEBELOW" colorName="green" start="0,0" stop="-1,-1"/>
    </blockTableStyle>     
   
  </stylesheet>

  <!--story开始就是表格的内容了,oe的数据就调用到这里-->
  <story>
    <!--para标签调用数据和要显示的文字,这个标签里面的内容就是表格内的内容-->
    <para>[[repeatIn(objects,‘o‘)]]</para>
    <para style="Title01">课程表</para>
    
    <!--一个blockTable标签就是一个表格,colWidths表格的宽度,后来字一个分号代表一个格,还有一个标签 rowHeights表格的高度-->
    <!-- colWidths="2.2cm,5.9cm,2.2cm,6.3cm" 表示四列,第二,四列分别是5.9cm和6.3cm -->
    <!-- rowHeights="2.0cm,1.0cm,1.0cm,1.0cm" 表示每一行的高度 -->
    <blockTable colWidths="2.2cm,5.9cm,2.2cm,6.3cm" style="Table01">
      <tr>
        <td><para>课程名称</para></td>
        <td><para>[[ o.name ]]</para></td>
      </tr>
      <tr>
        <td><para>开始时间</para></td>
        <td><para>[[ o.date_start ]]</para></td>        
        <td><para>总天数</para></td>
        <td><para>[[ o.total_day ]]</para></td>        
      </tr>
      <tr>
        <td><para>授课老师</para></td>
        <td><para>[[ o.teacher.name ]]</para></td>    
        <td><para>教室</para></td>
        <td><para>[[ o.classroom_id.name_get()[0][1] ]]</para></td>        
      </tr>   
      <tr>
        <td><para>报名学生</para></td>
        <td>
            <blockTable colWidths="4cm,4cm,4cm" style="Table02">
              <tr>
                <td><para>学生名</para></td>
                <td><para>联系方法</para></td>
                <td><para>电子邮箱</para></td>
              </tr> 
            </blockTable>
            <section>
                <para>[[ repeatIn(o.students,‘s‘) ]]</para>
                <blockTable colWidths="4cm,4cm,4cm" style="">
                  <tr>
                    <td><para>[[s.name]]</para></td>
                    <td><para>[[s.phone]]</para></td>
                    <td><para>[[s.email]]</para></td>
                  </tr>               
                </blockTable>    
            </section>            
        </td>
      </tr>   
    </blockTable>
    
    <para> </para>
    <para style="P02">打印日期:[[ time.strftime(‘%Y/%m/%d‘) ]]</para>
    
  </story>
</document>
时间: 2024-09-28 03:02:49

OE - 报表RML格式详解的相关文章

BMP格式详解

BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式.由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源.Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持. 下面以Notepad++为分析工具,结合

多媒体开发之---h264格式详解

http://blog.csdn.net/bluebirdssh/article/details/6533501 http://blog.csdn.net/d_l_u_f/article/details/7260772 http://blog.csdn.net/sunnylgz/article/details/7680262 http://blog.csdn.net/heanyu/article/details/6204414 多媒体开发之---h264格式详解,布布扣,bubuko.com

多媒体封装格式详解---MP4

MP4文件格式详解--结构概述 http://blog.csdn.net/pirateleo/article/details/7061452 一.基本概念 1. 文件,由许多Box和FullBox组成. 2. Box,每个Box由Header和Data组成. 3. FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags. 4. Header,包含了整个Box的长度size和类型type.当size==0时,代表这是文件中最后一个

大端小端格式详解

1. 什么是大端,什么是小端: 所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中: 所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中. 2.为什么会有大小端: 为什么会有大小端模式之分呢?这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit.但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处

(原创)高性能IP数据库格式详解 qqzeng-ip.dat

高性能IP数据库格式详解 qqzeng-ip.dat 编码:UTF8           字节序:Little-Endian 返回多个字段信息(如:亚洲|中国|香港|九龙|油尖旺|新世界电讯|810200|Hong Kong|HK|114.17495|22.327115) ------------------------ 文件结构 --------------------------- //文件头 16字节(4-4-4-4) [索引区第一条流位置][索引区最后一条流位置][前缀区第一条的流位置]

Linux下可执行文件格式详解

Linux下面,目标文件.共享对象文件.可执行文件都是使用ELF文件格式来存储的.程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件.Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的. 我们先来了解一些基本的想法. 首先,最重要的思路是一个程序从人能读懂的格式转换为供操作系统执行的二进制格式之后,代码和数据是分开存放的,之所以这样设计有这么几个原因: 1.程序执行之后,代码和数据可以被映射到不同属性的虚拟

avi 格式详解

http://blog.csdn.net/becomly/article/details/6283004 http://blog.csdn.net/easecom/article/details/4508094 VI(Audio Video Interleaved 的缩写)是一种RIFF(Resource Interchange File Format的缩写)文件格式,多用于音视频捕捉.编辑.回放等应用程序 中.通常情况下,一个AVI文件可以包含多个不同类型的媒体流(典型的情况下有一个音频流和一

(转)Excel自定义格式详解

”G/通用格式”:以常规的数字显示,相当于”分类”列表中的”常规”选项.例:代码:”G/通用格式”.10显示为10:10.1显示为10.1. 2. “#”:数字占位符.只显有意义的零而不显示无意义的零.小数点后数字如大于”#”的数量,则按”#”的位数四舍五入.例:代码:”###.##”,12.1显示为12.10;12.1263显示为:12.13 3.”0”:数字占位符.如果单元格的内容大于占位符,则显示实际数字,如果小于点位符的数量,则用0补足.例:代码:”00000”.1234567显示为12

FLV格式详解

Overview Flash Video(简称FLV),是一种流行的网络格式.目前国内外大部分视频分享网站都是采用的这种格式. File Structure 从整个文件上开看,FLV是由The FLV header 和 The FLV File Body 组成. 1.The FLV header Field Type Comment Signature UI8 Signature byte always 'F' (0x46) Signature UI8 Signature byte always