qweb报表能不能调用js,写个样例
时间: 2024-01-02 19:04:33 浏览: 66
最新的QT程序5.X QWebEnginePage 、QWebChannel 实现HTML、JS互相调用例子
4星 · 用户满意度95%
当然可以,以下是一个简单的QWeb报表示例,其中使用JavaScript代码:
```xml
<template id="report_invoice">
<t t-call="web.report_layout">
<div class="page">
<h1>发票报表</h1>
<table>
<thead>
<tr>
<th>产品名称</th>
<th>数量</th>
<th>单价</th>
<th>总价</th>
</tr>
</thead>
<tbody>
<t t-foreach="docs" t-as="doc">
<tr>
<td><t t-esc="doc.product_name"/></td>
<td><t t-esc="doc.quantity"/></td>
<td><t t-esc="doc.unit_price"/></td>
<td><t t-esc="doc.total_price"/></td>
</tr>
</t>
</tbody>
<tfoot>
<tr>
<td colspan="3">总计:</td>
<td><span id="total"></span></td>
</tr>
</tfoot>
</table>
</div>
</t>
<script type="text/javascript">
$(document).ready(function() {
var total = 0;
$('tbody tr').each(function() {
var price = parseFloat($(this).find('td:nth-child(3)').text());
var quantity = parseFloat($(this).find('td:nth-child(2)').text());
var subtotal = price * quantity;
$(this).find('td:nth-child(4)').text(subtotal.toFixed(2));
total += subtotal;
});
$('#total').text(total.toFixed(2));
});
</script>
</template>
```
在这个例子中,我们使用QWeb模板来定义一个发票报表,其中包含一个表格和一个总计金额。我们还在QWeb模板中嵌入了一个JavaScript代码块,该代码块使用jQuery库来计算每个产品的总价和总计金额,并将其显示在对应的单元格中。注意,我们在代码块中使用了`$(document).ready()`函数来确保页面完全加载后再执行JavaScript代码。
阅读全文