//------------------------------------------------------------ /// <summary> /// Récupère la valeur d'un paramètre /// </summary> /// <param name="strParametre"></param> /// <returns></returns> /// <remarks> /// Chaque fenêtre peut posséder des paramètres. /// La valeur par défaut du paramètre peut être défini via une formule, /// cependant, en appellant "SetParameterValue" sur le C2iWnd, la valeur /// par défaut peut être remplacée par une valeur spécifique.<BR></BR> /// Si une fenêtre ne possède pas un paramètre, elle remonte sur les /// fenêtre parentes pour tenter de trouver la valeur du paramètre /// </remarks> public object GetParameter(string strParametre) { C2iWndFenetre wndFenetre = m_controleWnd != null ? m_controleWnd.WndAssociee as C2iWndFenetre : null; if (wndFenetre != null) { object val = wndFenetre.GetValeurForceeParametre(strParametre); if (val != null) { return(val); } strParametre = strParametre.ToUpper(); foreach (CFormuleNommee f in wndFenetre.Parameters) { if (f.Libelle.ToUpper() == strParametre && f.Formule != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(m_controleWnd.EditedElement); CResultAErreur result = f.Formule.Eval(ctx); if (result) { return(result.Data); } } } } CEncaspuleurControleWndForFormules ctrl = WndContainer as CEncaspuleurControleWndForFormules; if (ctrl != null) { return(ctrl.GetParameter(strParametre)); } return(null); }
//------------------------------------------------------------ public IWndAChildNomme GetChildFromName(string strName) { if (m_controleWnd != null) { foreach (IControleWndFor2iWnd ctrl in m_controleWnd.Childs) { if (ctrl.WndAssociee != null && ctrl.WndAssociee.Name.ToUpper() == strName.ToUpper()) { return(new CEncaspuleurControleWndForFormules(ctrl)); } } foreach (IControleWndFor2iWnd ctrl in m_controleWnd.Childs) { IWndAChildNomme trouve = new CEncaspuleurControleWndForFormules(ctrl).GetChildFromName(strName); if (trouve != null) { return(trouve); } } } return(null); }