用於在 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>
. . .