`
xiaolin0199
  • 浏览: 571305 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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>

 

分享到:
评论

相关推荐

    商业编程-源码-RML&2002邮件列表 v2.02 v2.02.zip

    《商业编程:RML&2002邮件列表系统 v2.02 源码解析》 在信息技术领域,源码是理解软件工作原理的关键。"商业编程-源码-RML&2002邮件列表 v2.02 v2.02.zip" 提供的正是这样一套邮件列表管理系统的源代码,它可以帮助...

    rml-to-pdf

    "rml-to-pdf"是一个基于Python的工具,主要用于将RML(Report Language Markup Language)文档转换为PDF格式。RML是一种标记语言,设计用于创建结构化的报告和文档,类似于XML,但专门针对打印和PDF输出优化。这个...

    Efficient SPARQL-to-SQL with R2RML Mappings

    标题中提到的“Efficient SPARQL-to-SQL with R2RML Mappings”涉及到了如何高效地将SPARQL查询语言转换为SQL语言,并且特别强调了利用R2RML(RDF 2.0 推荐的RDB到RDF的映射语言)来进行映射。这个技术点是为了解决...

    PyPI 官网下载 | z3c.rml-2.8.0.zip

    **PyPI 官网下载 | z3c.rml-2.8.0.zip** PyPI(Python Package Index),是Python编程语言的官方软件仓库,它为开发者提供了上传、分享和发现Python库的平台。在Python开发中,我们经常通过PyPI来安装、更新或查找...

    RML2016数据生成代码.rar

    这部分代码将处理数据的存储,可能采用RAW格式或者其他便于处理的文件格式。 5. **参数配置**:为了适应不同的研究需求,代码中可能包含对信号参数的灵活配置,如频率、功率、编码率等。 通过理解并运用这些代码,...

    rml-reference

    支持多种格式,包括 RGB 值(三个介于 0-255 之间的数字)、预定义颜色名称的字符串以及 CMYK 色彩模式(四个值)。 ##### 5. Combination(组合型) 这是一个由其他几种属性类型组合而成的复杂属性类型。 ##### ...

    R2RML 映射语言

    R2RML映射语言是一种专门用于从关系数据库到RDF数据集的映射表达的语言。它的主要作用是将现有的关系数据库数据以RDF数据模型的形式展现出来,这使得数据库中的数据可以通过作者选择的结构和目标词汇来表达。R2RML...

    rml2pdf user guide

    RML(Report Markup Language)是一种标记语言,用于描述报表的布局和内容,它能够被RML2PDF处理生成PDF文件。RML2PDF User Guide是该工具的用户手册,旨在帮助用户了解如何使用RML进行报告的创建和定制,并最终生成...

    gcode2rml:将NC代码转换为RML-1格式。这将使NC代码可以与Roland MDX-15,20等一起使用。

    gcode2rml 将NC代码转换为RML-1格式,以与Roland MDX-20一起使用。 将NC代码转换为RML-1格式。这使NC代码可以与Roland MDX-15,20等一起使用。以下代码自动添加到输出代码之前。 ;; ^ IN; V85.0; ^ PR; Z0,0,15500; ^...

    rml文档help

    根据提供的文件信息,我们可以归纳出以下关于RML文档的关键知识点: ### RML文档概述 - **标题**:“RML文档help”表示这份文档是关于RML的帮助文档。 - **描述**:该帮助文档为英文版,并且免费提供给大众使用。 ...

    Presonus普瑞声纳StudioLive RML 系列快速入门手册.pdf

    【Presonus普瑞声纳StudioLive RML系列快速入门手册】是针对该品牌旗下的一款专业数字调音台的用户指南。这款调音台是Rack-mount类型,具备Active Integration技术,能够通过Wi-Fi和Ethernet网络进行控制,并与一...

    调制信号识别数据集RML2016.10A

    调制信号识别数据集RML2016.10A

    RML Labs SawStudio v4.9

    它还兼容多种音频格式,如WAV、AIFF、MP3等,方便用户在不同设备和平台间进行文件交换。 除此之外,SawStudio的MIDI支持也是一个亮点。它允许用户通过MIDI键盘或其他控制器输入音乐,甚至可以直接在软件内编辑MIDI...

    rml-service:具有消息代理和REST API功能的ATTX Project RML服务

    java -jar build/libs/rml-service.jar ``` 总结,RML服务是一个基于Java实现的集成工具,它结合了消息代理和REST API的功能,使用RML语言进行数据映射,旨在解决数据互操作性问题。通过Gradle构建和运行,开发者...

    RML.rar_rml _参数 辨识

    RML,全称为“Robust Maximum Likelihood”,是一种在处理数据时,特别针对含有异常值或者非正态分布的数据集的极大似然估计方法。RML.rar中的“RML”可能是指一个MATLAB程序,用于实现这种强大的参数估计技术。下面...

    RML2016.10a_dict.zip

    本案例针对RML2016.10a_dict数据集并利用VT-CNN2 Mod-Rec Network卷积神经网络对信号实现自动调制方式识别,使用卷积神经网络在图像处理问题中的位移不变性特点,来解决调制识别的问题,使用网络结构来学习匹配...

    rml.rar_RML代码_rml _系统辨识_辨识

    《RML系统辨识:基于MATLAB的源代码解析》 在信息技术的广阔领域中,系统辨识是一项至关重要的技术,它旨在通过观测系统的输入输出数据来构建数学模型,以便理解和预测系统的动态行为。"rml.rar"压缩包内包含的"rml...

    RML for Sql Server性能分析工具的使用.pdf

    使用RML工具需要遵循约定的格式,其中包括斜黑体字表示的操作系统或SQL Server Management Studio(SSMS)中的指令,这是对操作步骤的具体说明。此外,文档中提到了一些预设条件,例如假定读者已经安装了必要的工具...

Global site tag (gtag.js) - Google Analytics