Report Designer 模块在生成新报表的时候是有BUG的不建议直接使用,不过我们也可以通过该插件再写简单的代码来实现新添加报表,插件安装成功后我们可以按照下列方法来添加报表

OpenERP 简单报表开发指南 
1.模块基本元素 
shineit_account_demo 
init.py 
openerp.py 
- report.xml 
- report.py

init.py 
本例子我们并不需要引入python文件,不过作为模块,__init__.py还是需要创建。 
openerp.py


'name': 'Shineit Report Demo', 
'version': '1.0', 
'author': 'ShineIT<contact@openerp.cn>', 
'summary': '', 
'description' : """ 
basic report demo 
""", 
'website': 'www.openerp.cn', # 必须引入你所需要打印的模型的模块,例如我要打印account这里就引入了 # account_accountant
'depends': ["account_accountant"], 
'category': '', 
'sequence': 16, 
'demo': [], # 必须引入报表记录文件,此文件是会给系统添加一条报表记录 
'data': ['report.xml'], 
'installable': True, 
'application': True, 
'auto_install': False, 
}

report.xml

<!-- 
所有的OpenERP XML 记录必须通过 
<oepnerp> 
<data> 
... 
</data> 
</oepenrp> 
包裹 
--> 
<openerp> 
<data> 
<!-- 
这里通过<report>标签添加一个报表记录到系统,也就是添加一条ir.actions.report.xml记录。 
id:为本报表的id,同一个模块里必须唯一。 
model:报表对应的模型,例如我这里是“科目”account.account。 
name:报表名字,可以根据自己需要自定义 
rml:报表rml文件路径 
string:报表按钮名字 
--> 
<report id="report_shineit_account_demo" model="account.account" name="shineit.account.report.demo" 
rml="shineit_report_demo/account.rml" string="Shineit account report demo"/> 
</data> 
</openerp>

account.rml 
模版文件

2.RMl文件生成方法 
首先通过Openerp report designer插件修改好报表,然后另存为sxw格式的文件(例如:account.sxw),然后进入addons/base_report_designer/openerp_sxw2rml/ 路径下,运行: 
python openerp_sxw2rml.py shineit_report_demo/account.sxw > shineit_report_demo/account.rml

成功后会生成对应的rml文件,openerp在打印的时候就会根据该文件来作为模版来渲染报表。

附件里已经包括模块,可以安装测试使用

Openerp 添加修改报表的更多相关文章

  1. 关于devexpress报表XtraReport,动态修改报表样式(.repx格式),动态添加数据并使用的理解

    一.基本概念: XtraReports 中的每个报表都由 XtraRepot 类的一个实例表示,或者由该类的子类来表示(这种情况更常见). 因此,每个报表都作为带区的容器使用,而每个带区中都包含报表控 ...

  2. VS2010 C#添加水晶报表及设计

    添加并设计水晶报表. [1]在VS中添加水晶报表 右击项目-->添加-->组件-->Crystal Report,输入文件名称“CrystallistReport”,如下图所示: 此 ...

  3. JavaWeb_day03_员工信息添加修改删除

    day03员工的添加,修改,删除 修改功能 思路 : 点击修改员工数据之后,跳转到单行文本,查询要修改的员工id的全部信息,主键id设置为readonly,其余的都可以修改, 修改之后,提交按钮,提交 ...

  4. Web 1三级联动 下拉框 2添加修改删除 弹框

    Web  三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  5. roundcute 添加修改密码插件

    添加修改密码插件 现打开main.inc.php 文件,搜索“$rcmail_config['plugins']”,找到: // List of active plugins (in plugins/ ...

  6. ASP.NET MVC用存储过程批量添加修改数据

    用Entity Framework 进行数据库交互,在代码里直接用lamda表达式和linq对数据库操作,中间为程序员省去了数据库访问的代码时间,程序员直接可以专注业务逻辑层的编写.但是对于比较复杂的 ...

  7. 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白

    这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...

  8. 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

    第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...

  9. phpcms v9 后台添加修改页面空白页问题解决方法

    phpcms v9 添加修改页面空白页的解决方法 找一个正常运行的phpcms 将caches\caches_model\caches_data 目录下的 content_form.class.php ...

随机推荐

  1. 网络爬虫--requests库中两个重要的对象

    当我们使用resquests.get()时,返回的时response的对象,他包含服务器返回的所有信息,也包含请求的request的信息. 首先: response对象的属性有以下几个, r.stat ...

  2. sqlserver2012 清除日志

    1. backup log wwgl_demo to disk='D:\DATA_BACKUP\2017-07-19.log' 2. 右键数据库-->任务-->收缩-->文件     ...

  3. BCD码转换为十进制或者十进制转为BCD码

    BCD码其实就是之前在数字电路中说的 用4位二进制数值 来表示一个0-9中的数字,例如: 0000=0 0001=1 0010=2 0011=3也就是说如果把一个数字作为一个BCD码,例如: 11 2 ...

  4. EventBus事件总线框架(发布者/订阅者模式,观察者模式)

    一. android应用内消息传递的方式: 1. handler方式-----------------不同线程间传递消息. 2. Interface接口回调方式-------任意两个对象. 3. In ...

  5. handsontable-utilities

    搜索值 鼠标右键 讲了四个功能:1.row header是否可以右键(rowheader:true):2.删除右键列表的某些值(通过数组定义):3.自定义右键列表和功能(callback,item两个 ...

  6. 基于Struts2开发学生信息管理系统 源码

    开发环境:    Windows操作系统开发工具: Eclipse+Jdk+Tomcat+MYSQL数据库 运行效果图: 联系博主-Q:782827013

  7. Postgres 主从配置(五)

    PostgreSQL 9.4 新增的一个特性, replication slot,  1. 可以被流复制的sender节点用于自动识别它xlog中的数据在下面的standby中是否还需要(例如, st ...

  8. C#泛型使用小记

    最近C#的泛型使用频次略多,特在此记下一个印象深刻的. 情景如下, 基类BaseClass 有一系列的子类 SubClass1, SubClass2, SubClass3... 且其构造函数的参数较多 ...

  9. TSQL--INT转换成指定长度字符串

    -- ================================================ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ...

  10. expect+scp传输文件发现文件丢失

    背景 使用expect+scp去跨机器传输文件,(别问我为什么,因为公司的测试机器都是通过堡垒机的,无法绕开堡垒机,只能暂时使用这个方法了),结果发现从A传递到B的tar.gz文件大小不一致了的,当时 ...