odoo17-action1介绍

本文详细解释了Odoo17中的Action在系统中的作用,涉及其在webclient目录下的结构,包括服务端动作和客户端动作的区别,以及与菜单、视图和工作流的关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Odoo 17 中的 Action 是一个非常重要的概念,它用于定义用户在系统中执行的操作。Action 在 Odoo 中负责打开特定的视图、执行特定的动作或者触发特定的行为。在 Odoo 中,Action 可以与菜单、按钮、工作流等其他元素关联,用于指导用户进行特定的操作

1、action目录结构
web\static\src\webclient\actions

action和menu一样,都在webclient目录中,有些项目将action和menu放在一个目录中,因为它们通常与web客户端密切相关,并且相对于其他类型的文件来说,这两种文件的数量可能会更少一些。这种组织方式也有助于简化项目结构和文件夹层次,使得查找和管理文件变得更加便利。

动作分为两种,一种是action,还有一种是report, 这里我们只讨论action。

reports(目录)
action_container.js
action_dialog.js
action_dialog.scss
action_dialog.xml
action_hook.js
action_service.js
client_actions.js
debug_items.js


2、动作分类
从目录结构中可以看出来,动作分为两类:
服务端动作: 需要跟后台进行交互的 ( 在action_service.js中定义了)
客户端动作: 前端动作,不跟后台交互(client_action)

### Odoo 17 中实现静态报表打印的方法 为了在Odoo 17中实现静态报表打印功能,可以采用多种方式来设计和部署这些报表。下面介绍一种基于QWeb模板的方式创建并配置静态报表。 #### 创建自定义模块结构 首先,在开发环境中构建一个新的应用程序或扩展现有应用以容纳新的报告逻辑。此过程涉及设置目录树形结构以及必要的初始化文件,如`__init__.py` 和 `__manifest__.py` 文件用于声明依赖关系和其他元数据信息[^1]。 #### 定义报表视图与模板 接着,通过XML文件定义报表的具体布局。这通常涉及到编写HTML片段,并利用特定于Odoo QWeb引擎的标签语法来动态填充内容。例如: ```xml <template id="static_report_template"> <t t-call="web.html_container"> <div class="page"> <!-- 使用内置字段表达式显示发票日期 --> <p>Invoice Date:</p> <span t-field="o.date_invoice" t-options='{"format": "MM/dd/yyyy"}'/> <!-- 更多静态或动态内容... --> </div> </t> </template> ``` 上述代码展示了如何格式化日期字段作为报表的一部分[^2]。 #### 注册报表模型及其行为 为了让系统识别新创建的报表类型,还需要注册相应的Python类。这部分工作主要是在控制器内完成,以便能够响应来自客户端请求的动作。这里给出一段简化版的例子说明这一点: ```python from odoo import http from odoo.http import request class StaticReportController(http.Controller): @http.route('/print/static/report', type='http', auth='user') def static_report(self, **kw): # 假设有一个名为 'static_report' 的模型存储所需的数据集 report_data = request.env['static.report'].search([]) # 调用已定义好的报表动作返回PDF文档流给浏览器下载 return request.env.ref('your_module.static_report_id').report_action(report_data) ``` 以上脚本实现了对指定路径 `/print/static/report` 的HTTP GET 请求处理程序;它负责检索目标对象列表并通过关联的外部ID触发报表生成功能[^4]。 #### 测试与迁移至生产环境 一旦完成了本地测试验证无误之后,则可按照既定流程准备将改动同步到正式服务器上运行。确保遵循最佳实践指南来进行版本控制、备份操作等预防措施后再执行实际发布步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

odoo实施

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值