0

レポートで多くのレコードを計算する方法qwebはodooを使用します。レポートpyに計算するメソッドを作成してみました

@api.one
@api.depends("total_do")
def _get_total(self):
    batch_ids = self.batch_ids
    total_do = self.total_do
    for in item batch_ids:
        total_do += item.qty_received
        print total_do

そして、私はこのようにqwebに表示します:

<div class="col-xs-1" style="text-align:center;border: 1px solid  #568eff;border-left:0px;"> 
    <span t-esc="o.total_do" />
</div>

レポートを印刷するときに、多くの行から合計を表示したい。私の場合、0を表示するだけです

4

2 に答える 2

1

多分あなたはこれを探しています

<t t-esc="sum(l.amount for l in object.lines)"/>

このリンクQWeb loop cannot set value to vaiables outside the loop

于 2016-07-15T08:53:29.373 に答える
0

そのモデルの localcontext で total メソッドを設定する必要があります (report_sxw.rml_parse)

def __init__(self, cr, uid, name, context): 
    super(class_name, self).__init__(cr, uid, name, context=context)
    self.localcontext.update({
           'time': time,
           '_get_total': self._get_total,
    })

その合計メソッドを呼び出した場所からその部分を更新するだけです。

<div class="col-xs-1" style="text-align:center;border: 1px solid  #568eff;border-left:0px;"> 
    <span t-esc="o._get_total" />
</div>

そして、あなたのトータルメソッドは次のようになります。

def _get_total(self):
    batch_ids = self.batch_ids
    total_do = 0
    for in item batch_ids:
        total_do += item.qty_received
    return total_do

詳細については、これを参照してください

于 2015-12-14T10:15:14.807 に答える