How to update default header in PDF report (qWeb)?

本小妞迷上赌 提交于 2019-12-04 02:07:38

问题


I have a PDF report, using qWeb in Odoo (v8). My report has this line of code:

<t t-call="report.external_layout">

This line I suppose is for inserting the predefined header in the PDF report. In Settings -> Companies, tab Report Configuration in respective company, there is something like this:

<header>
    <pageTemplate>
        <frame id="first" x1="1.3cm" y1="3.0cm" height="21.7cm" width="19.0cm"/>
         <stylesheet>
            <!-- Set here the default font to use for all <para> tags -->
            <paraStyle name='Normal' fontName="DejaVuSans"/>
            <paraStyle name="main_footer" fontSize="8.0" alignment="CENTER"/>
            <paraStyle name="main_header" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
         </stylesheet>
        <pageGraphics>
            <!-- Set here the default font to use for all <drawString> tags -->
            <setFont name="DejaVuSans" size="8"/>
            <!-- You Logo - Change X,Y,Width and Height -->
            <image x="1.3cm" y="27.7cm" height="40.0" >[[ company.logo or removeParentNode('image') ]]</image>
            <fill color="black"/>
            <stroke color="black"/>
            <!-- page header -->
            <lines>1.3cm 27.7cm 20cm 27.7cm</lines>
            <drawRightString x="20cm" y="27.8cm">[[ company.rml_header1 ]]</drawRightString>
            <drawString x="1.3cm" y="27.3cm">[[ company.partner_id.name ]]</drawString>
            <place x="1.3cm" y="25.3cm" height="1.8cm" width="15.0cm">
                <para style="main_header">[[ display_address(company.partner_id) or  '' ]]</para>
            </place>
            <drawString x="1.3cm" y="25.0cm">Phone:</drawString>
            <drawRightString x="7cm" y="25.0cm">[[ company.partner_id.phone or '' ]]</drawRightString>
            <drawString x="1.3cm" y="24.6cm">Mail:</drawString>
            <drawRightString x="7cm" y="24.6cm">[[ company.partner_id.email or '' ]]</drawRightString>
            <lines>1.3cm 24.5cm 7cm 24.5cm</lines>
            <!-- left margin -->
            <rotate degrees="90"/>
            <fill color="grey"/>
            <drawString x="2.65cm" y="-0.4cm">generated by Odoo.com</drawString>
            <fill color="black"/>
            <rotate degrees="-90"/>
            <!--page bottom-->
            <lines>1.2cm 2.65cm 19.9cm 2.65cm</lines>
            <place x="1.3cm" y="0cm" height="2.55cm" width="19.0cm">
                <para style="main_footer">[[ company.rml_footer ]]</para>
                <para style="main_footer">Contact : [[ user.name ]] - Page: <pageNumber/></para>
            </place>
        </pageGraphics>
    </pageTemplate>
</header>

I changed some lines in order to print the header just like I need it. When I press button Preview Header/Footer, it shows everything just like I typed it, but I doesn't work when I print the report: header is still printed like it was by default. Some threads in forums say to uncheck the Reload from Attachment checkbox... in my case, it always has been unchecked.

As you can see, header is typed in RML form, and my report is in qWeb... Is this a problem? If it is it, how to fix it?

So, how to edit (... and make it to work ...) the PDF report default header???

Thanks in advance.


回答1:


To define your custom header in qweb report by giving a header class to div tab like

<template id="your_custom_layout_header">
    <div class="header">
        <div class="row">
            <div class="col-xs-3">
            <img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo" style="max-height: 45px;"/>
            <!-- All your custom code here -->
            </div>
        </div>
    </div>

    <div class="footer">
        <div class="row">
            <!-- All your custom code here -->
        </div>
    </div>

</template>



回答2:


Hear In Qweb there are Two different classes for set the custom header and Footer in div tag can directly set the custom header set as the header class in div and footer class set as the footer in div tag.important think is that we do not add any external or internal header and footer in your view file Just add the below tag.

<div class="header">
    <div class="row" style="border-bottom: 1px solid black;">
        <div class="col-xs-3">
            <img t-if="company.logo" t-att-src="'data:image/png;base64,%s' % company.logo" style="max-height: 45px;"/>
            <div t-field="company.partner_id" 
                        t-field-options='{"widget": "contact", "fields": ["address", "name"], "no_marker": true}' />
            </div>
        <div class="col-xs-5 pull-right" style="margin-top:5px;">
            <t t-if="company.vat">
                <b>GST ID :</b>
                <span t-field="company.vat" /><br/>
             </t>
              <t t-if="company.phone">
                  <b>PHONE :</b>
                  <span t-field="company.phone" /><br/>
               </t>  
                <t t-if="company.fax">
                     <b>FAX :</b>
                     <span t-field="company.fax" /><br/>
                 </t>
                 <t t-if="company.email">
                 <b>EMAIL :</b>
                                <span t-field="company.email" /><br/>
                            </t>
                            <t t-if="company.website">
                                <b>WEBSITE :</b>
                                <span t-field="company.website" />
                            </t>
                </div>
            </div>
        </div>

    <div class="footer">
        <div class="text-center" style="border-top: 1px solid black;">
            <ul class="list-inline">
                <li>Page:</li>
                <li><span class="page"/></li>
                <li>/</li>
                <li><span class="topage"/></li>
            </ul>
        </div>
    </div>

header and footer class automatically set the custome header and footer for that report in Qweb. The code which I showed off you which is working fine from my side.

I hope this should helpful for you ..:)



来源:https://stackoverflow.com/questions/29808985/how-to-update-default-header-in-pdf-report-qweb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!