Как передать значение контекста в отчет qweb, чтобы я мог контролировать видимость таблиц. У меня есть отчет qweb с большим количеством таблиц. В зависимости от списка выбора, я хочу контролировать представление этих таблиц в отчете qweb. Поэтому мой вариант состоял в том, чтобы контролировать использование контекста. Но не нашел способа передать контекст. Если есть какое-либо другое мнение, пожалуйста, поделитесь.Передача контекста в отчет qweb для управления видимостью таблицы - odoo
0
A
ответ
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']