2

我扩展了 'report.external_layout_footer' qweb 视图以显示图像。

以下是我在文件报告/external_layout.xml 中的代码:

    <template id="report_footer_custom" inherit_id="report.external_layout_footer">
        <xpath expr="//div[@class='footer']" position="replace">
            <div class="footer">
                    <img t-att-src="'data:image/jpeg;base64,/var/www/cbl_openerp/openerp/cap_addons/cap_sale/img/footer.jpeg'"/>
                    <ul class="list-inline">
                        <li>Page:</li>
                        <li>
                            <span class="page"/>
                        </li>
                        <li>/</li>
                        <li>
                            <span class="topage"/>
                        </li>
                    </ul>
                </div>
        </xpath>
    </template>

这是我的openerp .py 内容:

...
"depends": ["base","sale","report"],
...
"data": ['sale.xml',
        'reports/reports.xml',
        'reports/external_layout.xml',
        'reports/informations_prestation.xml',
        'views/product_template.xml',
        'filter.xml'],
...
"images":['img/footer.jpeg',],
...

但是当我打印销售订单时,我无法在页面底部查看我的图像。

有没有人有什么建议?

4

4 回答 4

6

只需尝试以下代码并从您的模块设置图像路径并运行它。

<template id="report_footer_custom"inherit_id="report.external_layout_footer">
    <xpath expr="//div[@class='footer']" position="replace">
        <div class="footer">
            <img class="img img-responsive" src="/sale_order_report/static/src/img/header.jpg"/>
            <ul class="list-inline">
                <li>Page:</li>
                <li><span class="page"/></li>
                <li>/</li>
                <li><span class="topage"/></li>
            </ul>
        </div> 
    </xpath>
</template>

我这边在 QWeb 报告自定义页脚中工作正常

于 2015-02-20T12:12:52.740 回答
4

如果您想使用非静态图像,您可以这样做。

以公司标志为例:

<img
  t-attf-src="data:image/*;base64,{{company.logo}}"
  t-att-alt="company.name"
  />

使用 mime 类型“image/*”将让您使用不同格式的图像,而不仅仅是 jpeg 或 png。

然后,由于odoo默认将二进制数据渲染为base64,您可以简单地将图像的内容附加到base64,.

于 2016-09-29T19:11:08.890 回答
2

以下代码段也适用于 QWeb 报告 (Odoo v10)。

<span t-field="o.product_id.image_medium" t-field-options="{'widget': 'image'}"/>

...哪里o.product_id.image_medium是动态字段。

于 2018-08-21T15:45:21.253 回答
0

这适用于使用 odoo12 或近似版本的任何人。报告模块是web和不是report。Odoo 引入了样式化的报告,这个片段扩展了它们中的每一个。

<?xml version='1.0' encoding='utf-8'?>
<odoo>
    <data noupdate="0">
        <!-- The external layout background header -->
        <template id="external_layout_background_inherit" inherit_id="web.external_layout_background">

            <xpath expr="//div[@class='header']" position="replace">
                <div class="header">
                    <div class="o_background_header">
                        <div class="row" style="width: 100%; margin: 0 auto;">
                            <img src="extend_layout/static/src/img/header.jpg" style="width:100%;" />
                        </div>
                    </div>
                </div>
            </xpath>

        </template>

        <!-- The external layout boxed header -->
        <template id="external_layout_boxed_inherit" inherit_id="web.external_layout_boxed">

            <xpath expr="//div[@class='header']" position="replace">
                <div class="header">
                    <div class="o_boxed_header">
                        <div class="row" style="width: 100%; margin: 0 auto;">
                            <img src="extend_layout/static/src/img/header.jpg" style="width:100%;" />
                        </div>
                    </div>
                </div>
            </xpath>

        </template>

        <!-- The external layout clean header -->
        <template id="external_layout_clean_inherit" inherit_id="web.external_layout_clean">

            <xpath expr="//div[@class='header']" position="replace">
                <div class="header">
                    <div class="o_clean_header">
                        <div class="row" style="width: 100%; margin: 0 auto;">
                            <img src="extend_layout/static/src/img/header.jpg" style="width:100%;" />
                        </div>
                    </div>
                </div>
            </xpath>

        </template>

        <!-- The external layout standad header -->
        <template id="external_layout_standard_inherit" inherit_id="web.external_layout_standard">

            <xpath expr="//div[@class='header']" position="replace">
                <div class="header">
                    <div class="row" style="width: 100%; margin: 0 auto;">
                        <img src="extend_layout/static/src/img/header.jpg" style="width:100%;" />
                    </div>
                </div>
            </xpath>

        </template>

        <!-- Remove company address from the reports -->
        <template id="address_layout_inherit" inherit_id="web.address_layout">

            <xpath expr="//div[@class='address row']" position="replace">
                <div style="height: 50px;"></div>
            </xpath>

        </template>
    </data>
</odoo>
于 2020-07-06T09:19:16.307 回答