テーブルの可視性を制御できるように、コンテキスト値をqwebレポートに渡すにはどうすればよいですか。多くのテーブルを含む qweb レポートがあります。選択リストに応じて、これらのテーブルの表示を qweb レポートで制御したいと考えています。したがって、私のオプションは、コンテキストを使用して制御することでした。しかし、コンテキストを渡す方法が見つかりませんでした。他の意見があれば、共有してください。
質問する
2826 次
2 に答える
1
あなたの質問は、あなたが何を望んでいるかについてあまり明確ではありません。たとえば、「選択リストに応じて」という意味がわからないので、ユーザーにいくつかのオプションを選択するように求めるウィザードがあると思います。その場合は、印刷関数の return ステートメントで、データ ディクショナリ内の選択変数を渡すことができます。
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)
これにより、ユーザーの選択が data['form'] の下に渡されます。その後、qweb の選択に data['form']['date_start'] としてアクセスできます。
于 2017-01-05T08:29:31.780 に答える
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 レポートのブログを参照してください
于 2015-07-15T04:33:09.163 に答える