当前位置: 代码迷 >> 报表 >> OE - 表格RML格式详解
  详细解决方案

OE - 表格RML格式详解

热度:272   发布时间:2016-05-05 07:32:02.0
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>

?

  相关解决方案