On 10/09/07 18:11 +0200, [EMAIL PROTECTED] wrote:
> 
> Bonjour,
> 
> j'ai deux champs dans une vue, chacun est de type fields.many2one.
> Je veux qu'en s�lectionnant une valeur dans l'une, le contenu de la seconde 
> soit filtr� ou rempli � ce moment l�.
> 
> Comment faire ?
> J'ai partiellement r�ussi mais ya un probl�me avec le client :
> 
> mon code de vue (les deux champs uniquements) : 
> 
> <field name="employee_id" select="1" 
> on_change="onchange_employee_id&#40;employee_id&#41;"/>
> <field name="sale_order_line" select="1" />
> 
> 
> mon code sur l'action de la premi�re combo :
> 
> def onchange_employee_id&#40;self, cr, uid, ids, emp&#41;&#58;
> &nbsp; &nbsp;&nbsp; &nbsp;if not emp&#58;
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sale_order_line_ids=&#123;&#125;
> &nbsp; &nbsp;&nbsp; &nbsp;else&#58;
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sql=""
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sql+="SELECT 
> to_char&#40;order_line_id, '999'&#41;,order_line_id " # on a besoin de 2 
> champs pour le DICO
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sql+="FROM 
> sale_order_line_employee,sale_order_line "
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sql+="WHERE 
> sale_order_line_employee.order_line_id=sale_order_line.id "
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sql+="AND 
> employee_id="+str&#40;emp&#41;+";";
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;print sql
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;cr.execute&#40;sql&#41;
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;res = cr.fetchall&#40;&#41;
> &nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;sale_order_line_ids = dict&#40;res&#41;
> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 
> &nbsp; print sale_order_line_ids
> 
> &nbsp; &nbsp;&nbsp; &nbsp;
> &nbsp; &nbsp;&nbsp; &nbsp;
> &nbsp; &nbsp;&nbsp; &nbsp;return 
> &#123;'value'&#58;&#123;'sale_order_line'&#58; sale_order_line_ids&#125;&#125;
> 
> au moment d'ouvrir la deuxi�me liste qui a �t� filtr�, voil� ce que dit le 
> client comme message d'erreur :
> 
> >   File 
> > "/home/remy/local/dev/cvs_cpn/CL3.4.0.1/bin/widget/view/form_gtk/many2one.py",
> >  line 197, in display
> >     res = model_field.get_client()
> >   File "/home/remy/local/dev/cvs_cpn/CL3.4.0.1/bin/widget/model/field.py", 
> > line 147, in get_client
> >     return self.internal[1]
> > KeyError: 1
> > Traceback (most recent call last):
> >   File 
> > "/home/remy/local/dev/cvs_cpn/CL3.4.0.1/bin/widget/view/form_gtk/many2one.py",
> >  line 132, in sig_activate
> >     value = self._view.modelfield.get()
> >   File "/home/remy/local/dev/cvs_cpn/CL3.4.0.1/bin/widget/model/field.py", 
> > line 142, in get
> >     return self.internal[0] or False
> > KeyError: 0
> > 
> 
> 
> avez-vous une id�e d'o� �a vient ?
> 

Il ne faut retourn� qu'une seul valeur par champ, et pour les many2one,
la valeur doit avoir la forme (id, name)


-- 
C�dric Krier

Tiny sprl
Chauss�e de Namur, 40
B-1367 G�rompont
Belgique
Tel: +32 81 81 37 00
Fax: +32 81 73 35 01
Web: http://www.tiny.be

Attachment: pgpceoftp3rLw.pgp
Description: PGP signature

_______________________________________________
Tinyerp-users mailing list
http://tiny.be/mailman/listinfo/tinyerp-users

Reply via email to