【问题标题】:How to update default header in PDF report (qWeb)?如何更新 PDF 报告 (qWeb) 中的默认标题?
【发布时间】:2015-04-22 21:14:18
【问题描述】:

我有一份 PDF 报告,在 Odoo (v8) 中使用 qWeb。我的报告有这行代码:

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

我想这一行是为了在 PDF 报告中插入预定义的标题。在 Settings -> Companies 中,在各个公司的选项卡 Report Configuration 中,有这样的内容:

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

我更改了一些行以便像我需要的那样打印标题。当我按下预览页眉/页脚按钮时,它会像我输入的一样显示所有内容,但是当我打印报告时我不起作用:页眉仍然像默认情况下一样打印。论坛中的一些帖子说取消选中从附件重新加载复选框......在我的情况下,它一直没有选中。

如您所见,标题是以 RML 形式输入的,而我的报告是在 qWeb 中...这是一个问题吗?如果是,如何解决?

那么,如何编辑(...并使其工作...)PDF报告默认标题???

提前致谢。

【问题讨论】:

    标签: report odoo odoo-8 qweb


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      听说在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>
      

      页眉和页脚类会自动为 Qweb 中的报告设置自定义页眉和页脚。 我向您展示的代码在我这边运行良好。

      我希望这对你有帮助..:)

      【讨论】:

      • 谢谢@DaSaDiYa ChaiTAnYa。我想给你+1,但我需要15点业力。
      • @Breba 你解决了你的问题吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 1970-01-01
      • 2012-05-16
      • 2020-07-16
      • 1970-01-01
      • 2014-05-14
      相关资源
      最近更新 更多