From: eficas <> Date: Fri, 23 Jul 2004 10:09:25 +0000 (+0000) Subject: PN résolution de la fiche AO2004-191 X-Git-Tag: CC_param_poursuite~256 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=923729eecb8942c601a8c3fd9743b0b7d67e3c1a;p=modules%2Feficas.git PN résolution de la fiche AO2004-191 les paramétres composés de plusieurs paramétres ne sont pas reconnus --- diff --git a/Editeur/composimp.py b/Editeur/composimp.py index b1d4bbdb..dc64fe51 100644 --- a/Editeur/composimp.py +++ b/Editeur/composimp.py @@ -563,6 +563,12 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): if valeur.__class__.__name__ == 'CO':return 1 return 0 + def is_param(self,valeur) : + for param in self.jdc.params: + if (repr(param) == valeur): + return 1 + return 0 + def traite_reel(self,valeur): """ Cette fonction a pour but de rajouter le '.' en fin de chaîne pour un réel @@ -579,7 +585,10 @@ class SIMPTreeItem(Objecttreeitem.AtomicObjectTreeItem): return valeur if string.find(valeur,'.') == -1 : # aucun '.' n'a été trouvé dans valeur --> on en rajoute un à la fin - return valeur+'.' + if (self.is_param(valeur)): + return valeur + else: + return valeur+'.' else: return valeur diff --git a/Editeur/fonctionpanel.py b/Editeur/fonctionpanel.py index b3f1a4c9..3751ec66 100644 --- a/Editeur/fonctionpanel.py +++ b/Editeur/fonctionpanel.py @@ -231,3 +231,30 @@ class FONCTION_Panel(PLUSIEURS_BASE_Panel): else : l1_valeurs.append((valeur[0],valeur[1],valeur[2])) self.Liste_valeurs.put_liste(l1_valeurs) + + + def display_valeur(self,val=None): + """ + Affiche la valeur passée en argument dans l'entry de saisie. + Par défaut affiche la valeur du mot-clé simple + Doit être redéfinie pour un pb avec les parametres dans un tuple + """ + if not val : + valeur = self.node.item.object.getval() + else: + valeur = val + if not valeur : return + + try: + affiche="(" + separe="" + for val in valeur: + print str(val) + affiche=affiche+separe+str(val) + separe="," + affiche=affiche+")" + self.entry.delete(0,END) + self.entry.insert(0,affiche) + except : + self.entry.delete(0,END) + diff --git a/Editeur/plusieursbasepanel.py b/Editeur/plusieursbasepanel.py index c3757605..97dac858 100644 --- a/Editeur/plusieursbasepanel.py +++ b/Editeur/plusieursbasepanel.py @@ -274,8 +274,6 @@ class PLUSIEURS_BASE_Panel(PLUSIEURS_Panel): Par défaut affiche la valeur du mot-clé simple """ if not val : - #valeur = self.node.item.getval() - #valeur = self.node.item.get_valeur() valeur = self.node.item.object.getval() else: valeur = val diff --git a/Validation/V_MCSIMP.py b/Validation/V_MCSIMP.py index 83cb03be..dba51b6a 100644 --- a/Validation/V_MCSIMP.py +++ b/Validation/V_MCSIMP.py @@ -171,7 +171,29 @@ class MCSIMP: for type_permis in self.definition.type: if self.compare_type(valeur,type_permis) : return 1 - # si on sort de la boucle précédente par ici c'est que l'on n'a trouvé aucun type valable --> valeur refusée + # si on sort de la boucle précédente par ici c'est qu'on n'a trouvé aucun type valable --> valeur refusée + # on essaie d evaluer si c est un parametre tordu : exemple a*b ou a et b sont definis + if valeur.__class__.__name__ in ('PARAMETRE_EVAL','PARAMETRE'): + try : + + # On crée un dictionnaire qui servira de contexte aux evaluations + # Ce dictionnaire sera initialisé avec les paramètres du JDC + d={} + for param in self.jdc.params : + expression = param.nom+'='+repr(param.valeur) + # ici on enrichit le dictionnaire d + exec expression in d + + obj=eval( valeur.valeur,d) + + for type_permis in self.definition.type: + if self.compare_type(obj,type_permis) : + return 1 + except Exception,e : + print "AAAAAAAAAAAAA" + print "e = ",str(e) + pass + if cr =='oui': self.cr.fatal("%s n'est pas d'un type autorisé" %`valeur`) return 0