2017-01-27 3 views
1

Мне нужна помощь по созданию отчета от мастера в оду 9. В Интернете я нахожу один незавершенный пример. Я хочу, чтобы все пользователи были res.user, где create_date (поле в res.users)> = date_from и = < date_to от моего wizzard.Создать отчет от мастера в оду 9

Мой источник:

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
     <record id="view_my_wiz_form" model="ir.ui.view"> 
      <field name="name">print.report.form</field> 
      <field name="model">my.test.report</field> 
      <field name="type">form</field> 
      <field name="arch" type="xml"> 
       <form string="Print Report"> 
        <group colspan="4" > 
         <field name="date_from"/> 
         <field name="date_to" /> 
        </group>        
        <group colspan="4" col="6">      
         <button name="print_report" string="Print Users" type="object"/> 
        </group> 
       </form> 
      </field> 
     </record> 

     <record id="action_my_wiz_form" model="ir.actions.act_window"> 
      <field name="name">Print Report</field> 
      <field name="res_model">my.test.report</field> 
      <field name="view_type">form</field> 
      <field name="view_mode">tree,form</field> 
      <field name="view_id" ref="view_my_wiz_form"/> 
      <field name="target">new</field>   
     </record> 

     <menuitem name="REPORT" id="menu_my_test_report" action="action_my_wiz_form" sequence="19"/>  
    </data> 
</openerp> 

.py файл

class my_test_report(models.Model): 

     _name = 'my.test.report' 
     _description = 'Test Report' 


     date_from = fields.Date(string = 'From') 
     date_to = fields.Date(string = 'To') 



     def print_report(self, cr, uid, ids, context=None): 
      datas = {} 
      if context is None: 
       context = {} 
      data = self.read(cr, uid, ids,['date_from', 'date_to'], context=context) 
      date_from = data[0]['date_from'] 
      date_to = data[0]['date_to'] 
      obj = self.pool.get('res.users') 
      ids = obj.search(cr, uid, [('create_date','>=',date_from),('create_date','<=',date_to)]) 
      print(ids) 
      datas = { 
        'ids': ids, 
        'model': 'res.users', 
        'form': data 
        } 
      return { 
        'type': 'ir.actions.report.xml', 
        'report_name': "XXXXXXX, 
        'datas': datas, 
       } 

Hw создать report_name в .py, я поставил XXXXXXXX с несколькими полями из res.users?

После кода запуска без

return { 
         'type': 'ir.actions.report.xml', 
         'report_name': "XXXXXXX, 
         'datas': datas, 
        } 

в консоли получить [3, 4]

Я стараюсь с этим XML

<?xml version="1.0" encoding="utf-8"?> 
<odoo> 
<template id="report_sasa_test"> 
    <t t-call="report.html_container"> 
     <t t-set="data_report_margin_top" t-value="12"/> 
     <t t-set="data_report_header_spacing" t-value="9"/> 
     <t t-set="data_report_dpi" t-value="110"/> 
     <t t-foreach="docs" t-as="o"> 
       <div class="page"> 

        <table class="table table-condensed"> 
         <thead> 
          <tr> 
           <th>Name</th> 
           <th>Test</th> 
          </tr> 
         </thead> 
         <tbody> 
          <tr> 
           <td><t t-esc="o.name"/></td> 
           <td><t t-esc="o.name"/></td> 
          </tr> 
         </tbody> 
        </table> 
       </div> 
     </t> 
    </t> 
</template> 
</odoo> 

Но после того, как генерировать PDF-файл я получаю две страницы в формате PDF с одной строкой мне нужны все данные на одной странице --->https://postimg.org/image/gbdadtrm5/

Любое решение, как defi ne этот отчет?

т.д. переменная

id | login | signature 
3 | 25.01.17 | --- 
4 | 25.01.17 | --- 

ответ

0

docs представляет собой запись на вашей модели по умолчанию, если не определить иначе. Я не вижу, чтобы вы определили его где-то еще, так что ваша проблема в том, что у вас есть t-foreach="docs", а затем вы создаете страницу. t-foreach="docs" должен охватывать весь отчет, а не страницу. Посмотрите на addons/account/views/report_invoince.xml, как это работает.

<template id="report_report_sasa_test"> 
    <t t-call="report.html_container"> 
     <t t-foreach="docs" t-as="o"> 
      <t t-call="your_module.report_sasa_test" t-lang="o.partner_id.lang"/> 
     </t> 
    </t> 
</template> 
+0

Я стараюсь с этим примером, но снова на две страницы PDF вместо одного отображения данных https://postimg.org/image/rdzyxs7w7/ –

+0

Проверьте на Настройки -> Отчеты для вашего отчета, проверьте, для переменной use use установлено значение true. Это приводит к перезагрузке отчета из базы данных, а не повторной визуализации. –

+0

As Default is uncecked! Я попробую оба варианта снова сообщить о 2-страничной странице! –

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