You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo 14 QWeb报表嵌套表格问题求解及实现方案

Odoo 14 QWeb报表表格布局修复方案

针对你当前嵌套表格实现的Safety Tool Box报表,以下是修复现有问题并优化布局的可行方案:

现有问题分析

根据代码和布局逻辑,常见问题包括:

  • 右侧「Contenuti」列缺失边框,与整体样式不统一
  • 嵌套表格的参与人列和签名列中间出现双重边框
  • 固定高度的外层表格在数据量变化时易出现内容溢出或布局错乱
  • 嵌套表格高度继承失效,导致行高不一致

修复后的完整代码

<table style="table-layout: fixed; margin: 0; padding: 0; width: 100%; min-height: 600px; border: 1px solid black;" cellspacing="0" cellpadding="0">
    <tbody>
        <!-- 标题行 -->
        <tr>
            <td colspan="3" style="text-align: center; vertical-align: middle; border: 1px solid black; height: 100px;">
                <h1>SAFETY TOOL BOX</h1>
            </td>
        </tr>
        <!-- 信息行 -->
        <tr>
            <td style="text-align: center; vertical-align: middle; border: 1px solid black; height: 80px; width: 33.33%;">
                Data: <br/>
                <span t-field="doc.date"/>
            </td>
            <td style="text-align: center; vertical-align: middle; border: 1px solid black; height: 80px; width: 33.33%;">
                Luogo: <br/>
                <span t-field="doc.development_site_id.name"/> - <span t-field="doc.address"/>
            </td>
            <td style="text-align: center; vertical-align: middle; border: 1px solid black; height: 80px; width: 33.33%;">
                HSE: <br/>
                <span t-field="doc.hse_id.name"/>
            </td>
        </tr>
        <!-- 主题行 -->
        <tr>
            <td colspan="3" style="border: 1px solid black; height: 50px; padding-left: 10px;">
                Argomenti trattati: <span t-field="doc.res_topic_id.name"/>
            </td>
        </tr>
        <!-- 表头行 -->
        <tr>
            <td style="border: 1px solid black; height: 50px; padding-left: 10px;">
                <span class="p-2">Partecipanti</span>
            </td>
            <td style="border: 1px solid black; height: 50px; text-align: center;">Firma</td>
            <td style="border: 1px solid black; height: 50px; padding-left: 10px;">Contenuti</td>
        </tr>
        <!-- 内容行 -->
        <tr>
            <!-- 参与人+签名列 -->
            <td colspan="2" style="border: 1px solid black; padding: 0;">
                <table style="width: 100%; min-height: 320px; border-collapse: collapse;" cellspacing="0" cellpadding="0">
                    <tr t-foreach="doc.partecipants_ids" t-as="partecipant">
                        <!-- 参与人列 -->
                        <td style="border-bottom: 1px solid black; height: 50px; width: 50%; padding-left: 10px;">
                            <span class="p-2" t-esc="partecipant['partecipant_id']['name']"/>
                        </td>
                        <!-- 签名列 -->
                        <td style="border-left: 1px solid black; border-bottom: 1px solid black; height: 50px; width: 50%;">
                            <!-- 签名区域可留空或添加输入框 -->
                        </td>
                    </tr>
                    <!-- 补全行:当参与人数量不足时,填充空行保证高度 -->
                    <tr t-foreach="range(6 - len(doc.partecipants_ids))" t-as="empty_row" t-if="len(doc.partecipants_ids) < 6">
                        <td style="border-bottom: 1px solid black; height: 50px; width: 50%;"></td>
                        <td style="border-left: 1px solid black; border-bottom: 1px solid black; height: 50px; width: 50%;"></td>
                    </tr>
                </table>
            </td>
            <!-- 内容列 -->
            <td style="border: 1px solid black; padding: 10px; vertical-align: top;">
                <span t-field="doc.note"/>
            </td>
        </tr>
    </tbody>
</table>

关键修改说明

  • 统一边框样式:给右侧「Contenuti」列添加border:1px solid black,修复边框缺失问题;嵌套表格仅给签名列加border-left,避免双重边框。
  • 优化高度设置:将外层表格的height:600px改为min-height:600px,确保内容过多时自动扩展;嵌套表格设置min-height:320px保证内容区域基础高度。
  • 补全空行逻辑:添加t-foreach="range(6 - len(doc.partecipants_ids))"循环,当参与人数量不足6行时自动填充空行,保持表格布局整齐。
  • 布局细节优化:给各列添加固定宽度width:33.33%,保证前三行三列均分;添加内边距padding提升内容可读性;使用border-collapse: collapse确保表格边框合并。
  • 内容对齐优化:设置「Contenuti」列vertical-align: top,让内容从顶部开始显示,避免留白。

内容的提问来源于stack exchange,提问作者oigna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 06:15:32