This question has been flagged
1 Reply
3000 Views

Hello,

I need to calculate a field in a view for display only, just for information. I mean, this field is just to display a sum in the view. There exists some way of putting a field in the view form, without reference it on the class.

Thanks.

Avatar
Discard
Best Answer

You need to use functional field for this kind of requirement .

Example:

def _function(self, cr, uid, ids, field_name, field_value, arg, context=None):
        records = self.browse(cr, uid, ids)
        result = {}
        for r in records:
            str = ''
            if r.col1:
                str += r.col1
            if r.col2: 
               str += r.col2
            result[r.id] = str
        return result

_columns = {

    'col1': fields.char('Coloumn 1', size=5, required=True),
    'col2': fields.char('Coloumn 2', size=10, required=True),
    'col3': fields.function(_function, type='char', obj='basic.fldfunct', method=True, store=False, string='Column 3'),
                    }

In Views :

<field name="col1"/>
<field name="col2"/>
<field name="col3"/>

This is the simplest example of the Functional field.Hope this may help you.

Avatar
Discard
Author

Thanks for your answer. It seems that I do not explain correctly. In this example you have to declare the tree fields in the class ( columns = { ... ). My question was, there's any way to have a display field in a view without declare it in a class?

No, there is no such way in any framework I have work so far. Django,Ruby on Rails, Openerp7.

Author

I really thanks the help that you have giving me. Maybe you could see my other post that have no answer yet, The post number 25533, thanks again.