Odoo 18企业版项目模块Gantt视图打印方案咨询
Odoo 18 企业版打印项目甘特图的无第三方方案
以下是无需依赖第三方应用的几种可行方案,针对你用Studio未成功的情况提供替代思路:
方案1:浏览器原生打印+自定义CSS(快速临时解决)
Odoo的甘特视图是网页渲染的,可以通过浏览器打印功能配合自定义样式,只保留甘特图核心内容:
- 打开项目模块的甘特视图,按下
Ctrl+P(Windows)或Cmd+P(Mac)调出打印预览 - 在打印设置里找到“自定义CSS”入口(Chrome在「更多设置」→「自定义CSS」),添加以下代码隐藏无关界面元素:
.o_main_navbar, .o_action_manager, .o_control_panel, .o_filters, .o_searchview, .o_sidebar { display: none !important; } .o_gantt_view { width: 100% !important; margin: 0 !important; }
- 将打印布局调整为横向,确认预览仅显示甘特图核心区域后执行打印
方案2:自定义QWeb报表(企业版内置功能,长期可用)
利用Odoo企业版的QWeb报表引擎,基于项目任务数据生成可打印的甘特格式报表:
- 进入「设置 > 技术 > 报表」,点击“新建”
- 基础配置:
- 模型选择
project.task - 报表类型选“QWeb HTML”
- 报表名称设为「项目甘特图打印版」
- 模型选择
- 在QWeb视图中编写模板,核心逻辑是遍历任务数据,用CSS绘制时间轴与进度条:
<template id="report_project_gantt_print"> <t t-call="web.html_container"> <div class="gantt-report"> <h2><t t-esc="docs[0].project_id.name"/> 甘特图</h2> <t t-foreach="docs" t-as="task"> <div class="task-row"> <div class="task-name"><t t-esc="task.name"/></div> <div class="timeline"> <div class="progress-bar" t-attf-style="width: {{task.progress or 0}}%; background-color: #2385bb;"></div> </div> <div class="task-dates"> <t t-esc="task.date_start"/> - <t t-esc="task.date_deadline"/> </div> </div> </t> </div> </t> </template>
- 补充对应的CSS样式优化排版,保存后即可在任务列表或项目视图中调用该报表打印
方案3:导出数据到Excel制作甘特图(非代码方案)
如果不想涉及代码操作,可通过数据导出+Excel自带功能实现:
- 在项目模块的任务列表视图,导出包含「任务名称、开始日期、截止日期、进度」的数据集
- 打开Excel导入导出的文件,利用Excel自带的「甘特图」模板(或通过条件格式+条形图模拟),将数据转换为可视化甘特图后打印
内容的提问来源于stack exchange,提问作者user2613041
相关产品推荐
相关产品推荐

