aeroo报表使用指南
来源:互联网 发布:凯立德优化内存 编辑:程序博客网 时间:2024/06/05 18:42
在OpenERP的使用过程中,我们时刻都需要运用报表进行相关数据的打印。OE系统默认的是SXW/RML式的报表模式,它只能默认打印pdf的报表。这对于一些想在后期修改报表的客户来说是很不方便的。所以我们希望报表引擎可以打印诸如excel,word等的多种格式报表。经过调查,我们采用aeroo的报表引擎。主要有如下的原因:
第一,报表设计简单,可视化操作,可进行现场快速修改
第二,支持多种打印格式,同时支持界面导入,不需要硬编码
但是,aeroo也有缺点,就是必须有openoffice或者libreoffice作为服务运行。如果没有他们的话,aeroo就找不到所需的uno运行环境了。不过总的来说,aeroo的优点还是大于缺点的。下面我们就来看一下如何在OE中运用aeroo报表。
二:安装OpenOffice
上面说了aeroo的运行需要openoffice环境,所以第一步就是安装openoffice。值得注意的是,我们安装过后需要把它作为服务,并且给它开启8100端口。否则aeroo在安装的时候是找不到openoffice环境的。具体的步骤如下:
1,在百度搜索openoffice,第二项就是openoffice的下载。也可以去官网http://www.openoffice.org/上下载。
2,解压下载的压缩包,点击setup.py一路下一步,安装即可完成。
3,到microsoft官网上下载Windows Server 2003 Resource Kit Tools,直接在百度中搜索进入也可。默认装在C:\Program Files\Windows Resource Kits文件夹中。我们主要用它来制作windows服务。
4,进入命令行,运行以下指令:"C:\Program Files\Windows Resource Kits\Tools\instsrv.exe" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\srvany.exe",注意从引号开始到引号结束(包含引号)全部拷贝进命令行。
5,打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Openoff
iceUnoServer,在其下新建Parameters项,在Parameters下新建两个字符串值,分别如下:
Application (:C:\Program Files\OpenOffice 4\program\soffice.exe)
AppParameters(-invisible -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard)也可以建一个soofice.reg的文件将以下内容拷贝进去直接点击即可:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\OpenOfficeUnoServer\Parameters]
"Application"="C:\\Program Files\\OpenOffice 4\\program\\soffice.exe"
"AppParameters"="-invisible -headless -accept=socket,host=127.0.0.1,port=8100;
urp; -nofirststartwizard"
6,打开控制面板\管理工具\服务,找到名为OpenOfficeUnoServer 的服务,设置属性启动类型为自动,并启动服务。
7,在cmd下用以下命令查看8100端口是否被监听,netstat -anp tcp。
8,在python的安装目录下D:\software\python\Lib\site-packages新建uno.pth文件,在其中输入C:\\Program Files\\OpenOffice 4\\program即aeroo运行时所需要的openoffice环境
三,安装aeroo所需模块
1,在安装之前,我们首先需要调查这个库它依赖哪些模块。这些内容都在aeroolib的安装文件setup.py之中。从其中我们看到
install_requires=[
"Genshi >= 0.5",
"lxml >= 2.0"
],
搜索他们分别安装,在安装genshi的时候,安装0.6的版本,0.7的似乎报错。另外,在安装aeroolib的时候,会自动下载geshi的egg信息。我们可以进入python的site-packages中查看。虽然有了egg信息,但是并没有安装。所以是需要你手动去下载,然后安装的。
2,安装aeroolib模块,下载aeroolib模块进行安装
3,Aeroo的运行需要report_aeroo,report_aeroo_ooo两个模块,他们可以在http://www.alistek.com/en/component/content/article/110-aeroo-reports-for-openerp-v70x.html官网上下载,也可以在OE官网的应用里下载。下载下来以后需要修改report_aeroo的ExtraFunctions.py文件第165行为return val.name_get()[0][1]。
四,定义报表导出格式
Aeroo所支持的导出类型都在report_aeroo_ooo的data文件夹下的xml里定义出来了,我们只需要根据它的格式定义即可。
下面我们以一个xml为例,看看如何定义不同类型的报表。看一下xml里面的定义:
<record model=”ir.actions.report.xml” id=”my_first_aeroo”>
<!--定义报表的类型,默认即可-->
<field name=”report_type”>aeroo</field>
<!--定义输出的样式,有oo-ods和oo-odt两种-->
<field name=”in_format”>oo-ods</field>
<!--输出格式,即是我们可到的生成的文件的后缀名-->
<field name=”out_format” eval=”ref(‘report_aeroo_ooo.report_mime
Types_pdf_odt’)/>
<field name=”name”>First Aeroo</field>
<!--定义模板文件,有ods和odt两种-->
<field name=”report_rml”>firstaeroo/data/template.ods</field>
<field name=”report_name”>First.Aeroo</field>
<field name='model'>ir.ui.view</field>
<field name='type'>ir.actions.report.xml</field>
<!--定义渲染器路径-->
<field name=”parser_loc”>firstaeroo/parser.py</field>
<field name='tml_source'>file</field>
<field name='parser_state'>loc</field>
</record>
以上的xml我们要注意的就是in_format和out_format,比如说我们想让输出的文件为xls格式的,那么我们可以查看report_aeroo_ooo的data文件夹下的xml里对xls格式的声明可知。我们在in_format那里写oo-ods,在out_format那里写report_aeroo_ooo.report_mime_types_xls_odt,意思是report_aeroo_ooo模块下id为report_mime_types_xls_odt的格式类型。然后在report_rml里定义ods模板路径即可。
五,aeroo语法介绍
Aeroo的方便之处就是可以直接在openoffice中进行报表开发,这就需要了解aeroo在openoffice中的语法。
1,openoffice writer
在openoffice writer之中我们获取OE中的内容都是在<>中获取的,我们以hr.employee为例。可以通过如下方式获取hr.employee的信息。
(1)在odt文件中插入如下表格,将光标放在第一行的第二列
(2)点击“插入——字段——其他”弹出如下的对话框
(3)在提示中输入如下的内容<o.name>,点击插入,弹出如下内容,起一个别名Name
(4)确定后Name就填进单元格中了
(5)如果hr.employee对象中有和别的对象进行one2many关联的。这个时候就需要进行for循环了。比如hr.employee和证书certificate有one2many关联。则可以如下定义
<for each=”r in o.certificate”> //可以起一个别名,比如loop start
</for> //起一个别名,比如loop end
在for循环中间插入一些需要的字段就可以了,比如插入证书名用<r.cer_name>
2,openoffice calc
Calc和writer的语法稍微有不同的就是他不是放在<>中定义,而是放在python://后面定义,比如上面的<o.name>就可以这样写python://o.name。
还有一点需要注意,在calc中没有字段给你插入,我们用的是超链接,也就是在你的calc单元格中插入一个超链接。点击“插入——超链接”弹出如下框
如上所示,目标是python语句,提示文字是calc中展示的文字。
- aeroo报表使用指南
- aeroo报表使用指南
- JasperReports使用指南---报表区域
- 报表系统-flyboard使用指南
- aeroo ooo配置
- JasperReports使用指南(三)---报表数据(表达式)
- openerp 7.0 配置 aeroo report
- 水晶报表在VC6.0下的使用指南
- 报表
- 报表
- 报表
- 报表
- 报表
- 报表
- 报表
- 报表
- 报表
- 报表
- 为数据库生成表的改动日志
- spring mvc使用ehcache
- 小波变换和motion信号处理(一)
- (hdu step 2.3.7)下沙的沙子有几粒?(简单DP:求有m个H,n和D,且任意索引上H的个数都要比D的个数多的方案数)
- [C++]LeetCode: 131 Trapping Rain Water (双边扫描)
- aeroo报表使用指南
- 设置状态栏
- 语音分享应用源码项目
- Android Handler机制
- 三层数据库四大法宝之“删”
- sqlite入门基础(一):sqlite3_open,sqlite3_exec,slite3_close
- js call
- 查看LOV中查询语句
- 飞思卡尔IMX6处理器的GPIO配置方式