文档章节

OE - 报表RML格式详解-错误纠正

北方攻城师
 北方攻城师
发布于 2014/11/14 16:55
字数 935
阅读 102
收藏 1
点赞 0
评论 0

纠正:此处 start 和stop 为单元格的坐标
<blockSpan start="1,0" stop="3,0"/>


<?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>

本文转载自:http://www.myexception.cn/report/1606019.html

共有 人打赏支持
北方攻城师
粉丝 13
博文 74
码字总数 12500
作品 0
海淀
程序员
Django使用reportlab套件生成PDF文件

简介 项目中生成了一个实例,需要提供给用户下载pdf文件功能。 最开始想到的是使用前段技术,直接将html页面保存为pdf文件。这个过程使用了html2pdf,这个纯js项目。该项目会将指定的DOM元素...

alazyer
04/20
0
0
openerp mac os 下 报表中文乱码问题。

oe 报表乱码,说明缺少字体。 mac os 字体存放在:/Library/Fonts/ 下 获取相关的字体: http://okay.googlecode.com/files/DejaVuSans-Oblique.ttf http://okay.googlecode.com/files/DejaV......

而今我谓昆仑
2013/05/11
0
0
用python的reportlab库生成PDF报表

前言 reportlab不是python的标准库,它的强大之处在于能满足绝大部分报表的需求形式,这篇文章将介绍reportlab中基本常用的api,使用canvas画出一份整洁的PDF报表。内容均来自reportlab的官方...

vincent_y
2013/12/26
0
0
BIRT-商业智能报表工具开发案例指南

打算近期出版一本全面介绍BIRT使用的书籍,能够帮助大家全面了解BIRT的方方面面,用丰富的案例和源码,例子,诠释这个报表设计工具,展现工具,开源框架,扩展框架的种种优点特性。 初稿内容...

birtbird
2013/01/10
3.3K
6
Pentaho6.1实现国际化一:Pentaho Report Designer6.1通过资源文件实现国际化

一、软件环境 操作系统: Windows10 64位 PRD版本:prd-ce-6.1.0.1-196 二、PRD国际化原理简介 查看pentaho bi的源码,你会发现文件夹中存在大量的.properties文件;有心的童鞋上网查查资料就...

灯下黑鬼吹灯
2016/11/30
608
0
【X-Pack解读】阿里云Elasticsearch X-Pack 报告组件功能详解

X-Pack Reporting 阿里云Elaticsearch用户可以开箱即用X-Pack的报告组件功能,能够为Kibana 可视化或仪表板快速生成报告。用户可以即需即取报告、预约报告、根据特定条件触发报告,并自动将报...

工程师甲
2017/12/05
0
0
ASP.NET2.0 ReportingServices使用详解

ASP.NET2.0 ReportingServices使用详解 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.9 本文先做个简单介绍,更多关于ReportingServices的文章见后续。 1.打开BIDS,这...

晨曦之光
2012/03/09
100
0
Linux Kernel Module 的实现过程

【1】有必要查询下Linux内核 # uname -r2.6.28-11-generic ls /usr/src/ linux-headers-2.6.28-11 linux-headers-2.6.28-11-generic 由此可见内核版本和内核头文件版本是一致的,都是2.6.28-...

wangxigui
2012/11/13
0
0
ireport向子报表传递参数详解

最近些日子一直在研究报表生成的模块,用的是jasperreport,用ireport来设计报表模板,涉及到后台像子报表传递参数。 后台采用的是springmvc+spring+spring data jpa, 在后台向子报表传递m...

Big_BoBo
2013/10/11
0
3
使用VPD限制数据访问

一 概述 虚拟专用数据库 (VPD) 在确保物理数据分离的情况下按用户或客户来控制数据访问。对于互联网访问,虚拟专用数据库可以确保在线银行的客户只能看到他们自己的帐户。Web 托管公司可以在...

技术小胖子
2017/11/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前端基础

1. get请求传参长度的误区 误区:我们经常说get请求参数的大小存在限制,而post请求的参数大小是无限制的。 实际上HTTP 协议从未规定 GET/POST 的请求长度限制是多少。对get请求参数的限制是...

wenxingjun
27分钟前
0
0
Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
今天
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
今天
6
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
今天
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部