Cómo crear una vista dinámica en OpenERP

Necesito una ayuda para crear una vista dinámica. Déjame explicarte: Tengo vistas Form1 y Form2. Form1 contiene el campo de expression y el botón de extract . Form2 contiene elementos extraídos de la expresión de Form1. Por ejemplo, cuando ingresa (a+b)*cd*0,5 en el campo de expresión de Form1, Form2 debería extraer y mostrar esto:

 ( - open brace a - variable + - addition b - variable ) - close brace * - multiplication c - variable - - subtraction d - variable * - multiplication 0,5 - constant number 

Ahora, aquí está mi clase:

 class wz_formula(osv.osv_memory): """ Formula Wizard """ _name = "wz.formula" _inherit = "ir.wizard.screen" _description = "Formula Wizard" _columns = { 'name': fields.char('Formula name', required=True, size=64) , 'expression': fields.char('expression', required=True, size=64) , 'state': fields.selection([('init','init'),('done','done')], 'state', readonly=True) } _defaults = { 'state': 'init' } def next(self, cr, uid, ids, context=None): if context is None: context = {} formula_obj = self.browse(cr, uid, ids)[0] formula_name = formula_obj.name infix = formula_obj.expression if formula_name and expression: modobj = self.pool.get('ir.module.module') mids = modobj.search(cr, uid, [('state', '=', 'installed')]) modobj.update_translations(cr, uid, mids, [formula_name, expression], context or {}) self.write(cr, uid, ids, {'state': 'done'}, context=context) return { 'name': _('Formula') , 'view_type': 'form' , 'view_mode': 'form' , 'view_id': False , 'res_model': 'wz.formula' , 'domain': [] , 'context': dict(context, active_ids=ids) , 'type': 'ir.actions.act_window' , 'target': 'new' , 'res_id': ids and ids[0] or False } # create an object wz_formula() 

Aquí está mi xml:

     Formula wz.formula form        

Hasta ahora, simplemente cambia entre Form1 y Form2. ¿Cómo puedo extraer la expresión como expliqué anteriormente?

Para agregar una vista dinámica en openerp v6, anule la función fields_view_get()

 def fields_view_get(self, cr, uid, view_id=None, view_type='form', context={}, toolbar=False): result = super(, self).fields_view_get(cr, uid, view_id, view_type, context=context, toolbar=toolbar) # your modification in the view # result['fields'] will give you the fields. modify it if needed # result['arch'] will give you the xml architecture. modify it if needed return result 

result será un diccionario que contiene principalmente dos cosas, architecture Xml y campos. Proporcione la architecture xml en result['arch'] como cadena, proporcione los campos en result['fields'] como diccionario de diccionarios. Luego devuelve el resultado. Luego obtendrá una vista de acuerdo con lo que haya dado en los campos y en la architecture.

una forma más sencilla sería … primero obtenga la expresión de la primera forma (FORMULARIO 1), y evalúela según su elección, y mantenga un campo “TEXTO” en la segunda forma que tenga estos datos según su formato en ese campo ..

No estoy seguro de lo que está preguntando, pero si solo desea analizar la expresión del usuario, esta pregunta sobre los analizadores de expresión de Python debería ser útil.