用于在 TreeView 中使用的数字字段的自定义小部件
下面的示例小部件演示了如何有条件地格式化 TreeView 列的单个单元格,具体取决于特定单元格中字段的值。如果字段的值为负,则它将以红色显示,并且将隐藏减号,否则它将以正常颜色显示。
小部件应该用 JavaScript 编写,让我们使用 custom_widget_name
作为新小部件的名称,your_module_name
是模块的技术名称(与模块的根目录名相同)
你模块中的 Uunder static / src / js /文件夹中添加了一个自定义小部件的 javascript 文件(比如 static / src / js / custom_widget .js):
openerp.your_module_name = function (instance) {
instance.web.list.columns.add('field.custom_widget_name', 'instance.your_module_name.custom_widget_name');
instance.your_module_name.custom_widget_name = instance.web.list.Column.extend({
_format: function (row_data, options) {
res = this._super.apply(this, arguments);
var amount = parseFloat(res);
if (amount < 0){
return "<font color='#ff0000'>"+(-amount)+"</font>";
}
return res
}
});
//
//here you can add more widgets if you need, as above...
//
};
上面的示例窗口小部件可以在 float 类型的字段的列表视图中使用,它应用自定义规则,如下所示:
- 负数:
- 显示为红色。
- 减号(’ - ‘字符)是隐藏的。
- 对于正数,使用默认布局。
此示例窗口小部件可以应用于 Odoo 树视图中的字段。你可以将此类小部件用于需要将自定义规则应用于的列:
. . .
<tree >
. . .
<field name="some_field" widget="my_widget" />
. . .
</tree>
. . .