Odoo 表单中的表单小部件按钮
Form Widget button in Odoo form
我尝试在 Invoice 表单中添加一个按钮,我需要在 js 中发起一个调用
所以我用 Js 和 XML 完成了编码,请在下面找到。
在 JS 中
odoo.define('test_module.print_button', function (require) {
"use strict";
var core = require('web.core');
var form_widget = require('web.form_widget');
var form_common = require('web.form_common');
var formats = require('web.formats');
var QWeb = core.qweb;
var _t = core._t;
form_widget.WidgetButton.include({
on_click:function() {
if(this.node.attrs.custom === "print"){
console.log('Success');
}
else{
this._super();
}
},
});
});
在 XML 中我继承了帐户发票表单视图
<odoo>
<data>
<record model="ir.ui.view" id="invoice_form_test">
<field name="name">invoice.form.test</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<header position="inside">
<button type="action" string="Print Test" icon="fa-print" custom="print" />
</header>
</field>
</record>
</data>
</odoo>
这行不通,点击它会显示
TypeError: exec_workflow() takes exactly 4 arguments (3 given)
我需要添加更多内容才能使用它吗?请评论。
另外请建议将按钮点击从表单视图传递给 js 的任何方法。
谢谢
您错误地导入了表单小部件。
var form_widget = require('web.form_widgets'); // 正确一个
我尝试在 Invoice 表单中添加一个按钮,我需要在 js 中发起一个调用
所以我用 Js 和 XML 完成了编码,请在下面找到。
在 JS 中
odoo.define('test_module.print_button', function (require) {
"use strict";
var core = require('web.core');
var form_widget = require('web.form_widget');
var form_common = require('web.form_common');
var formats = require('web.formats');
var QWeb = core.qweb;
var _t = core._t;
form_widget.WidgetButton.include({
on_click:function() {
if(this.node.attrs.custom === "print"){
console.log('Success');
}
else{
this._super();
}
},
});
});
在 XML 中我继承了帐户发票表单视图
<odoo>
<data>
<record model="ir.ui.view" id="invoice_form_test">
<field name="name">invoice.form.test</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.invoice_form"/>
<field name="arch" type="xml">
<header position="inside">
<button type="action" string="Print Test" icon="fa-print" custom="print" />
</header>
</field>
</record>
</data>
</odoo>
这行不通,点击它会显示
TypeError: exec_workflow() takes exactly 4 arguments (3 given)
我需要添加更多内容才能使用它吗?请评论。
另外请建议将按钮点击从表单视图传递给 js 的任何方法。 谢谢
您错误地导入了表单小部件。
var form_widget = require('web.form_widgets'); // 正确一个