OE - 報表RML格式詳解-錯誤糾正

糾正:此處 start 和stop 爲單元格的座標
<blockSpan start="1,0" stop="3,0"/>


web

<?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表示第一行
糾正:此處 start 和stop 爲單元格的座標並不是上邊描述 
 -->

      <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"  rowHeights="5cm,5cm,5cm,5cm" 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>
相關文章
相關標籤/搜索