2016-08-31 64 views
1

我花了超過5個小時在谷歌搜索有關在odoo 9.0創建報告,但仍然沒有,我想使報告看起來像樹視圖,在PDF中,使用Qweb,我發現的一切都是發票,但我不知道如何在我的示例中生成報告。如何創建odoo 9.0的QWeb報告一步一步

假設例如,我在odoo插件 '示例' 文件夾模式(example.py,初始化的.py)和視圖(example_view.xml)文件夾,並初始化的.py,的OpenERP。 py,你知道最簡單的模塊,我的問題是:告訴我什麼我必須添加和在哪裏,我必須寫入XML來做一個簡單的報告,看起來像樹視圖(此視圖在視圖文件夾中) 。

我是學習示例的人,我需要示例來理解某些內容。

感謝您的回答:)

回答

5

要創建一個簡單的報告,請執行以下操作。

  1. 定義報表的XML文件

    /addons/example/views/example_report.xml

  2. 負載在插件的xml文件在

    引用它

    /插件/例子/ __openerp__.py

與其他xml文件的數據部分。

'data': ['views/example_report.xml'], 
  • 更新您的插件。
  • 如果在列表視圖中爲你插件,你應該能夠選擇一個記錄(勾選複選框),然後在下拉菜單中運行報告。或者在模型的表單視圖中,您還應該能夠點擊更多並從那裏運行報表。

    注意:必須正確安裝wkhtmltopdf才能使其工作。在wkhtmltopdf.org有說明(至少確保版本0.12.1)

    這是一個簡單的xml報告定義。讓我們假設你有一個名爲(char)的虛構模型example.model_name和子記錄(one2many),子記錄模型有一個id,名稱和日期字段。

    <openerp> 
        <data> 
         <report 
          id="report_example_model_name" 
          model="example.model_name" 
          string="Example Report" 
          name="example.report_example_report_view" 
          file="example.report_model_name" 
          report_type="qweb-pdf"/> 
    
         <template id="report_example_report_view"> 
          <t t-call="report.html_container">      
           <!-- REMEMBER, docs is the selected records either in form view or checked in list view (usually). So the line below says use the following template for each record that has been selected. --> 
           <t t-foreach="docs" t-as="doc"> 
            <t>   
            <div class="page">  
             <h1>Report For <t t-esc="doc.name"/></h1> 
             <table> 
             <tr> 
              <th>ID</th> 
              <th>Name</th> 
              <th>Date</th> 
             </tr> 
    
             <t t-foreach="doc.subrecord" t-as="o"> 
              <tr> 
               <td><t t-esc="o.id"/></td> 
               <td><t t-esc="o.name"/></td> 
               <td><t t-esc="o.date"/></td> 
              </tr> 
             </t> 
    
             </table>  
            </div> 
            </t> 
           </t> 
          </t> 
         </template> 
        </data> 
    </openerp> 
    
    +0

    謝謝你,你真棒,現在我終於明白了:) –