在qweb odoo报告中添加一行

时间:2016-09-06 08:58:00

标签: report odoo odoo-8 qweb

我有一个qweb报告,其中我想添加一行,其中包含报告的每个cols的总数: 这是我的qweb代码;它关于创建一个工资单报告,它包含11个cols,我想用cols添加一行总计

i1 <- dim(ab)[1]
j1 <- dim(ab)[2]
matrix(ab[cbind(rep(seq_len(i1),  j1),rep(seq_len(j1), each = i1), c(idx))], ncol=3)
#     [,1] [,2] [,3]
#[1,]    9    6    3
#[2,]    8    5    8
#[3,]    3    6    9

class FuncThread(threading.Thread):

    def __init__(self, target, *args):
        self._target = target
        self._args = args
        threading.Thread.__init__(self)

    def run(self):
        self._target(*self._args)


class BuildGui():         

    def show_entry_fields(self, 
                      release_version=None):
        print("Release Version: %s\n" % release_version)
        pattern = re.compile('^\d*\.\d*\.\d*$')
        if re.match(pattern, release_version):
            self.thread_execute_build(release_version=release_version)
        else:
            print "Enter a valid release version (e.g. 5.3.2)"
            e1.delete(0, 'end')


    def execute_build(self,
                  release_version=None):
        cmd_build_jenkins = 'java -jar jenkins-cli.jar -s http://xyz:8080/ build "New ESW build" -s -p "release_version"=' +  str(release_version)
        os.system(cmd_build_jenkins)

    def thread_execute_build(self, 
                         release_version=None):
        self.build_thread = FuncThread(self.execute_build, release_version)
        self.build_thread.start()

if __name__ == '__main__':

    master = Tk()
    Label(master, text="Release Version").grid(row=0)

    e1 = Entry(master)

    e1.grid(row=0, column=1)

    gui = BuildGui()
    Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
    Button(master, text='Show', command=gui.show_entry_fields(release_version=e1.get())).grid(row=3, column=1, sticky=W, pady=4)

    mainloop()

   <data>

1 个答案:

答案 0 :(得分:1)

试试这个:

<t t-set="brut" t-value="0"/> <!-- initialize the variable-->
<t t-foreach="get_payslip_lines(p.line_ids)" t-as="l">
    <t t-if="l.code=='BRUT' ">
        <t t-set="brut" t-value="brut + l.total"/>
     </t>
</t>
<td t-esc="brut"></td> <!-- To show it on the report-->

在变量之前初始化变量:

<tr  t-foreach="get_all_payslip_per_period(data['form']['date_start'],data['form']['date_end'])" t-as="p" >

在添加包含总计的新tr之前加总:

    </tr>
    <tr>
        <td><t t-esc='Total1'/></td>
        ...
    </tr>
</tbody>