Définition

Un champ sélection de définit comme ceci dans un module OpenERP

columns = {
   'liste': fields.selection( [....], 'Ma liste', size=32),
}

Remplissage

[...] peut être peupler de 2 façons:

Statique

La première méthode est la méthode statique elle peut se définir comme ceci.

[('brouillon','Brouilon'),('ouvert','Ouvrir'),('fermer','Terminer')]

Dans la fenêtre à l'écran vous verrez apparaître Brouillon, Ouvrir, Terminer tandis que dans la base de données vous verrez brouillon, ouvert, fermer

Dynamique

La méthode dynamique, peut être soit du code python, ou du SQL. il suffit de reproduire la même structure que la méthode statique, ce qui donnerait l'exemple ci-dessous.

def _ma_methode(self, cr, uid, context={}):
     cr.execute('SELECT champ1, champ2 FROM ma_table WHERE ....')
     return cr.fetchall()

columns = {
   'liste': fields.selection( _ma_methode, 'Ma liste', size=32),
}

champ1 et champ2 seront obligatoires des chaines de caractères, si jamais dans champ1 vous récupériez un champ numérique, il faudrait alors le traduire comme ceci:

trim(to_char(id, '9999999999')) as champ1

Comments