微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Odoo 14 标题自定义

如何解决Odoo 14 标题自定义

odoo 14 中,我想编辑我的发票。我已经坐了几个小时了,不能再进一步了。 odoo 12 或更低版本描述了许多标题自定义,但没有给我一个具体的答案。我希望在发票的右侧显示我的公司地址,而在公司地址所在的左侧显示买方的地址。

我想编辑标题,以便公司地址只出现在第一页上,而徽标保留在连续页面上。

当我创建一个 <div class=header> 时。整个页眉不再显示在任何页面上。

<?xml version="1.0"?>
<t t-name="web.external_layout_standard">
        <div class="" t-attf-class="header o_company_#{company.id}_layout" t-att-style="report_header_style">
            <div class="row" >
                <div class="col-6 mb4">
                    <img t-if="company.logo" t-att-src="image_data_uri(company.logo)" style="max-height: 75px;width:80%; object-fit:contain;" alt="logo"/>
                    <span style="width:150%; font-weight:bold; font-size:smaller;padding:0;margin-bottom:-10px;">Professionelle Businesslösung für Ihren Erfolg</span><br/>
                    <span style="width:150%; font-size:smaller;padding:0;margin-top:-10px;">Smart Solutions - Video Producing - IT Network - Aircraft Solutions</span>
                </div>
                <div class="col-9 text-right" style="margin-top:22px;" t-field="company.report_header" name="moto" />
            </div>
            <div t-if="company.logo or company.report_header" class="row zero_min_height">
                <div class="col-12">
                    <div style="border-bottom: 3px solid #fa0219;"/>
                </div>
            </div>
            <div class="row" style="height:15px;">
                <div class="col-6" style="font-size:x-small;width:100%; padding:50px 0 0 50px;height:20px;">
                 <span>test</span>
                </div>
                <div class="col-6" name="company_address" style="float:right; text-align:right;padding-top:15px; ">
                   <div t-field="company.partner_id" t-options="{&quot;widget&quot;: &quot;contact&quot;,&quot;fields&quot;: [&quot;address&quot;,&quot;name&quot;],&quot;no_marker&quot;: true}"/>
                      <span class="o_force_ltr" t-field="company.phone"/><br/>
                      <span t-field="company.email"/><br/>
                      <span t-field="company.website"/>
                    </div>
                </div>
            </div>
            

        <div style="" t-attf-class="article o_report_layout_standard o_company_#{company.id}_layout" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id" t-att-data-oe-lang="o and o.env.context.get('lang')">
            <div style="" class="pt-5">
                <!-- This div ensures that the address is not cropped by the header. -->
                <t style="" t-call="web.address_layout"/>
            </div>
            <div style="" class="pt-5">
              <t t-raw="0"/>
            </div>        
        </div>

        <div t-attf-class="footer o_standard_footer o_company_#{company.id}_layout">
            <div class="" style="border-top: 1px solid #fa0219;color:gray;">

                <div name="financial_infos" style="font-size:smaller; text-align:left;float:left;width:90%;margin-top:5px;">
                    <span t-field="company.report_footer"/>
                    <div t-if="report_type == 'pdf'" class="text-muted">
                      Seite: <span class="page"/> / <span class="topage"/>
                    </div>
                </div>
                <div style="float:right;width:69px; text-align:center;margin-top:5px;font-size:smaller;">
                  <img width="69" height="50" src="data:image/gif;>img</img>
                  <span style="width:100%;margin-bottom:2px;padding:0;">ISO</span>
                  <span style="width:100%;margin-bottom:2px;padding:0;">9001:2015</span>
                  <span style="width:100%;margin-bottom:2px;padding:0;">Zertifiziert</span>
                </div>
            </div>
        </div>
    </t>

Report header changes

解决方法

Odoo 期望 external_layout 具有三个主要 div:headerarticlefooter 彼此相邻以正确呈现。

查看您的代码,您将新的代码行放在标题旁边而不是在标题内。这很可能不起作用,除非您在 Odoo 源代码中更深入地继承和更改父视图 - 我不推荐这样做。

您可以尝试将所有代码放在 headerarticle div 中。看看它是否至少显示并从那里取出。

编辑:

为了控制标题的可见性,您可以检查 OCA 模块 Report Qweb Element Page Visibility。目前没有 Odoo 14.0 的版本,但自己实现应该不会太难,因为它基本上只是一个单一的 XML 文件。

使用上面模块中的功能,您只需将类 first-page 添加到应该只在第一页上可见的元素。

<div class="header">
    <div>
        <!-- Company logo etc - visible on every page -->
    </div>
    <div class="first-page">
        <!-- Company address etc - visible only on the first page -->
    </div>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。