2015-04-22 5 views
1

У меня есть отчет в формате PDF, используя qWeb в Odoo (v8). Мой отчет имеет следующую строку кода:Как обновить заголовок по умолчанию в отчете PDF (qWeb)?

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

Эта линия я полагаю, для вставки предопределенного заголовка в докладе PDF. В Настройки -> Фирмы, вкладка Configuration Report в соответствующей компании, есть что-то вроде этого:

<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> 

Я изменил несколько строк, чтобы напечатать заголовок так же, как мне это нужно. Когда я нажимаю кнопку Preview Header/Footer, она показывает все так же, как я набирал ее, но я не работаю, когда печатаю отчет: заголовок все еще печатается, как и по умолчанию. Некоторые потоки в форумах говорят об отключении флажка «Перезагрузка от прикрепления» ... в моем случае он всегда был снят.

Как вы можете видеть, заголовок набирается в форме RML, а мой отчет находится в qWeb ... Это проблема? Если это так, как это исправить?

Итак, как редактировать (... и заставить его работать ...) заголовок отчета в формате PDF ???

Заранее спасибо.

ответ

1

Чтобы определить пользовательский заголовок в qweb отчета, давая класс заголовка на Div вкладку как

<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> 
1

Слушайте В Qweb существуют два разных класса для установки пользовательского заголовка и нижнего колонтитула в теге div, который может непосредственно установить настраиваемый набор заголовков в качестве класса заголовка в классе div и нижнего колонтитула, заданном как нижний колонтитул в теге div. Важно, мы не добавляем внешний или внутренний верхний и нижний колонтитулы в ваш файл вида. Просто добавьте тег ниже.

<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> 

класс заголовка и нижнего колонтитула автоматически устанавливает верхний и нижний колонтитулы custome для этого отчета в Qweb. Код, который я показал вам, который отлично работает с моей стороны.

Я надеюсь, что это должно полезно для вас .. :)

+0

Спасибо @DaSaDiYa Чайтаньи. Я хотел бы дать вам +1, но мне нужно 15 очков кармы. – Breba

+0

okey no problem Breba –

+0

@Breba У вас исправлена ​​проблема? –

Смежные вопросы