2017-07-29 80 views
0

我已經使用這個代碼,但在odoo不工作返回空PDF文件10如何在打印odoo 10報告時獲取pdf文件?

self.env['report'].sudo().get_pdf(self, 'equipment_management.report_gatepass') 

.XML代碼:

<?xml version="1.0" encoding="utf-8"?> 
    <openerp> 
    <data> 


<report id="equipment_action" 
     model="calibration.details" 
     string="Gatepass " 
     report_type="qweb-pdf" 
     name="equipment_management.report_gatepass" 
     file="equipment_management.report_gatepass" 
     /> 

    <record id="paperformats" model="report.paperformat"> 
     <field name="name">European A4 low margins</field> 
     <field name="default" eval="True" /> 
     <field name="format">A4</field> 
     <field name="page_height">0</field> 
     <field name="page_width">0</field> 
     <field name="orientation">Portrait</field> 
     <field name="margin_top">20</field> 
     <field name="margin_bottom">20</field> 
     <field name="margin_left">20</field> 
     <field name="margin_right">20</field> 
     <field name="header_line" eval="False" /> 
     <field name="header_spacing">10</field> 
     <field name="dpi">90</field> 
    </record> 

    <record id="equipment_management.equipment_action" model="ir.actions.report.xml"> 
     <field name="paperformat_id" ref="equipment_management.paperformats" /> 
    </record> 
    <template id="report_gatepass"> 
     <t t-call="report.html_container"> 
     <t t-set="counter" t-value="001"/> 
     <t t-foreach="docs" t-as="o"> 
      <div class="page"> 
       <style> 
        .box{ 
        background: black; 
        max-width: 250px; 
        text-align:center; 
        color:white;} 
       </style> 
       <div class="row"> 
        <table width="100%" cellpadding="0px" cellspacing="0px" style="border:1px solid black"> 
         <tr style="border-bottom:1px solid black"> 
          <td width="20%" valign="top" align="center" padding="15px"> 
           <img t-att-src="'data:image/png;base64,%s' % res_company.logo" height="100px" width="90px" /> 
          </td> 
          <td width= "80%"> 
           <div style="font-size:18px;"><center><b><t t-if="res_company.name" t-esc="res_company.name"/></b></center></div> 
           <div style="font-size:12px;"><center><t t-if="res_company.rml_header1" t-esc="res_company.rml_header1"/></center></div> 
           <div style="font-size:12px"><center><t t-if="res_company.street" t-esc ="res_company.street"/> <t t-if="res_company.street2" t-esc ="res_company.street2"/> <t t-if="res_company.state_id" t-esc ="res_company.state_id.name"/> <t t-if="res_company.country_id" t-esc ="res_company.country_id.name"/></center></div> 
           <div style="font-size:12px"><center>Tel No.<t t-if="res_company.phone" t-esc ="res_company.phone"/>, Fax<t t-if="res_company.fax" t-esc ="res_company.fax"/>, Email <t t-if="res_company.email" t-esc ="res_company.email"/>, Website <t t-if="res_company.website" t-esc ="res_company.website"/></center></div> 
          </td> 
         </tr> 
         <tr> 
          <td colspan="2" width="100%" style="font-size:24px"><center><div class="box"><strong>GATEPASS</strong></div></center></td> 
         </tr> 
         <tr style="border-bottom:1px solid black"> 
          <td colspan="2" width="100%" style="font-size:14px"><center><strong>(NIWE-Returnable Material)</strong></center></td> 
         </tr> 
         <tr style="border-bottom:1px solid black"> 
          <td colspan="2"> 
           <table width="100%" cellpadding="0px" cellspacing="0px"> 
            <tr> 
             <td width="25%" style="font-size:14px;line-height:300%;"><center><strong>Reference No.:</strong></center></td> 
             <td width="25%" style="font-size:14px;line-height:300%;text-align:left;"><strong><t t-esc="o.name"/></strong></td> 
             <td width="25%" style="font-size:14px;line-height:300%;"><center><strong>Date:</strong></center></td> 
             <td width="25%" style="font-size:14px;line-height:300%;text-align:left"><strong><span t-field="o.date" t-field-options='{"format": "dd-MM-y"}'/></strong></td> 
            </tr> 
           </table> 
          </td> 
         </tr> 
         <tr style="border-bottom:1px solid black"> 
          <td colspan="2"> 
           <table width="100%" cellpadding="0px" cellspacing="0px" style="font-size:12px"> 
            <tr style="border-bottom:1px solid black;height:50px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">1</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Name and Designation of the Person taking the Material</td> 
             <td width="42%" style="padding-left:5px"><t t-if="o.responsible_person.name" t-esc="o.responsible_person.name"/></td> 
            </tr> 
            <tr style="border-bottom:1px solid black;height:60px;">           
             <td width="5%" style="text-align:center;border-right:1px solid black">2</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Address of supplier taking material out of NIWE Campus(with phone No.)</td> 
             <td width="42%" style="padding-left:5px"> 
             <div style="font-size:12px"><t t-if="o.responsible_person.street" t-esc ="o.responsible_person.street"/></div> 
             <div><t t-if="o.responsible_person.street2" t-esc ="o.responsible_person.street2"/></div> 
             <div><t t-if="o.responsible_person.state_id" t-esc ="o.responsible_person.state_id.name"/> </div> 
             <div><t t-if="o.responsible_person.country_id" t-esc ="o.responsible_person.country_id.name"/></div> 
             <div style="font-size:12px"><t t-if="o.responsible_person.phone" t-esc ="o.responsible_person.phone"/></div> 
             <div><t t-if="o.responsible_person.mobile" t-esc ="o.responsible_person.mobile"/></div> 
             </td> 
            </tr> 
            <tr style="border-bottom:1px solid black;height:60px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">3</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Description of items with its serial Number and Quantity etc.,</td> 
             <td width="42%" style="padding-left:5px"> 
              <div><b>Name:</b><t t-if="o.instrument.name" t-esc="o.instrument.name"/></div> 
              <div><b>Serial No:</b><t t-if="o.serial" t-esc="o.serial"/></div> 
              <div><b>Description:</b><t t-if="o.instrument.description" t-esc="o.instrument.description"/></div> 
             </td> 
            </tr> 
            <tr style="border-bottom:1px solid black;height:60px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">4</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Purpose for which the Material(s) in/are being taken out</td> 
             <td width="42%" style="padding-left:5px"><t t-if="o.purpose" t-esc="o.purpose"/></td> 
            </tr> 
            <tr style="border-bottom:1px solid black;height:60px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">5</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Probable date of return of Material if any</td> 
             <td width="42%" style="padding-left:5px"><t t-if="o.date_of_return"><span t-field="o.date_of_return" t-field-options='{"format": "dd-MM-y"}'/></t></td> 
            </tr> 
            <tr style="border-bottom:1px solid black;height:60px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">6</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">NIWE-officer responsible for inspection Returning the Material</td> 
             <td width="42%" style="padding-left:5px"><t t-if="o.officer.name" t-esc="o.officer.name"/></td> 
            </tr> 
            <tr style="height:60px;"> 
             <td width="5%" style="text-align:center;border-right:1px solid black">7</td> 
             <td width="53%" style="padding-left:5px;border-right:1px solid black">Any other Informations</td> 
             <td width="42%" style="padding-left:5px"><t t-if="o.other_info" t-esc="o.other_info"/></td> 
            </tr> 
           </table> 
          </td> 
         </tr> 
        </table> 
        <table style="font-size:12px" width="100%"> 
         <tr> 
          <br/><br/><br/><br/> 
         </tr> 
         <tr> 
          <td width="35%" style="text-align:left"><span><div>Signature of the person taking the</div> 
          <div>Material out NIWE Campus</div></span></td> 
          <td width="35%"><span><div>Signature of the Officer/Material</div><div style="text-align:center">Indenter</div></span></td> 
          <td width="30%" style="text-align:right">Signature of Head/Project Leader</td> 
         </tr> 
        </table> 
        <table style="font-size:12px" width="100%"> 
         <tr> 
          <br/><br/><br/><br/> 
         </tr> 
         <tr> 
          <td width="50%" style="text-align:left">Authorized Signatory</td> 
          <td width="50%" style="text-align:right"><span>Signature of Security Officer/Security 
          <div>Guard on duty in NIWE</div></span></td> 
         </tr> 
        </table> 
       </div> 
      </div> 
     </t> 
     </t> 
    </template> 
</data> 
</openerp> 
+0

您可以發佈完整的代碼? –

回答

0

默認的Odoo報告的報告格式爲PDF,我不不知道爲什麼你在打印時特意要求pdf文件。以下給出的是使用.get_pdf附加的sale_order報告附件的PDF文件的示例代碼。

實施例:

@api.multi 
    def print_quotation(self): 
     for order in self: 
      result = self.env['report'].sudo().get_pdf([order.id], 'sale.report_saleorder') 
      return self.env['ir.attachment'].create({ 
      'name': 'Sample', 
      'type': 'binary', 
      'datas': base64.encodestring(result), 
      'res_model': 'sale.order', 
      'res_id': order.id, 
      'mimetype': 'application/x-pdf' 
     }) 

OpenERP的已變爲Odoo。所以,請更換一節在你的代碼,如果你正在使用Odoo 10.0:

<openerp> 
    <data> 

    </data> 
</openerp> 

<odoo> 
    <data> 

    </data> 
</odoo> 

希望這可以幫助你!

+0

此方法也返回空文件 – KLN

+0

您可以編輯您的問題並添加迄今爲止完成的完整代碼。上面的代碼我已經在我自己的實例和它的工作中進行了測試。 –

+0

給我你的郵件ID,我會發給它 – KLN

0

正確的語法:

pdf = request.env['report'].sudo().get_pdf([sale_order_id], 'sale.report_saleorder', data=None) 
相關問題