Server Action return report action - xiaohao0576/odoo-doc GitHub Wiki
在服务器动作中返回PDF报表
Odoo的报表动作提供了一个 report_action
函数,调用此函数,可以返回一个报表动作,并且可以传递自定义的data
按以下步骤,可以做到在Odoo系统中自定义按钮来生成PDF报表
- 打开开发者模式
- Settings -> Techinal -> Actions -> Reports -> New,新建一个PDF报表
- Settings -> Techinal -> Actions -> Server Actions -> New,新建一个服务器动作,在新建的服务器动作中,可以使用env和model ORM准备报表需要的数据,这些数据可以来自不同的Model,也可以是再加工处理过的,把报表需要用到的所有数据,放到一个名字是data的字典中
- 在服务器动作中,调用
report_action
函数,第一个参数是docids,如果是空,就写空列表[],第二个参数是 data=data,把准备好的数据传递进去 - 在Qweb报表模板中,直接调用data字典中的键值,比如data字典中有一个'name'键,调用时使用
<t t-out="name"/>
就可以 - 在需要触发报表的页面添加button,type=action。例如
<button type="action" name="addon.action_report" string="Download Report"/>
,参考文档Odoo Button
如果在生成报表之前,需要用户输入一些数据作为条件,可以先创建一个TransientModel,制作一个对话框,让用户填写数据,在用户点击确认后,使用用户输入的数据作为条件准备data。
以上所有步骤,都可以在Sass版本的Odoo Online中实现,不需要本地化部署。