2015-07-14 6 views
0

Как передать значение контекста в отчет qweb, чтобы я мог контролировать видимость таблиц. У меня есть отчет qweb с большим количеством таблиц. В зависимости от списка выбора, я хочу контролировать представление этих таблиц в отчете qweb. Поэтому мой вариант состоял в том, чтобы контролировать использование контекста. Но не нашел способа передать контекст. Если есть какое-либо другое мнение, пожалуйста, поделитесь.Передача контекста в отчет qweb для управления видимостью таблицы - odoo

ответ

1

Создать парсер класс первый

import time 
from openerp.osv import osv 
from openerp.report import report_sxw 

class sale_quotation_report(report_sxw.rml_parse): 

    def __init__(self, cr, uid, name, context): 
     super(sale_quotation_report, self).__init__(cr, uid, name, context=context) 
      self.localcontext.update({ 
        ‘key’: value, 
        ‘function_name’: self.function_name, 
      }) 

    def function_name(self): 
     ### add some code if required.. 

Затем определить другой класс

class report_saleorderqweb(osv.AbstractModel): 
    _name = ‘module_name.report_sale_order_qweb’ 
    _inherit = ‘report.abstract_report’ 
    _template = ‘module_name.report_sale_order_qweb’ 
    _wrapped_report_class = sale_quotation_report 

Затем вы можете вызвать метод localcontext таким образом

<span t-esc=”function_name(parameter)”/> 

Смотрите наш блог на Qweb report

0

Ваш вопрос не очень ясно, что именно вы хотите. Например, я не знаю, что вы подразумеваете под «В зависимости от списка выбора», поэтому я предполагаю, что у вас есть мастер, предлагающий пользователю выбрать некоторые параметры. Если это так, вы можете передать переменную выбора внутри словаря данных в операторе возврата своей функции печати.

def print_report(self, cr, uid, ids, context=None): 
     if context is None: 
      context = {} 
     datas = {'ids': context.get('active_ids', [])} 
     res = self.read(cr, uid, ids, ['date_start', 'date_end', 'user_ids'], context=context) 
     res = res and res[0] or {} 
     datas['form'] = res 
     if res.get('id',False): 
      datas['ids']=[res['id']] 
     return self.pool['report'].get_action(cr, uid, [], 'point_of_sale.report_detailsofsales', data=datas, context=context) 

Это передает выбор пользователя по данным ['form']. Затем вы можете получить доступ к параметрам в qweb как данные ['form'] ['date_start']

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

  • Нет связанных вопросов^_^