public static C2iExpression EditeFormule(string strFormule,
                                                 IFournisseurProprietesDynamiques fournisseur,
                                                 CObjetPourSousProprietes objetAnalyse)
        {
            CFormStdEditeFormule form = new CFormStdEditeFormule();

            form.m_strFormule   = strFormule;
            form.m_objetAnalyse = objetAnalyse;
            form.m_fournisseur  = fournisseur;
            C2iExpression formule = null;

            if (form.ShowDialog() == DialogResult.OK)
            {
                formule = form.m_txtFormule.Formule;
            }
            else
            {
                CContexteAnalyse2iExpression ctx = new CContexteAnalyse2iExpression(fournisseur, objetAnalyse);
                CResultAErreur result            = new CAnalyseurSyntaxiqueExpression(ctx).AnalyseChaine(strFormule);
                if (result)
                {
                    formule = result.Data as C2iExpression;
                }
            }
            form.Dispose();
            return(formule);
        }
        public static bool EditeFormule(ref C2iExpression formule,
                                        IFournisseurProprietesDynamiques fournisseur,
                                        CObjetPourSousProprietes objetAnalyse,
                                        bool bAutoriseNull)
        {
            CFormStdEditeFormule form = new CFormStdEditeFormule();

            form.m_strFormule    = formule == null?"":formule.GetString();
            form.m_objetAnalyse  = objetAnalyse;
            form.m_fournisseur   = fournisseur;
            form.m_bNullAutorise = bAutoriseNull;
            bool bRetour = false;

            if (form.ShowDialog() == DialogResult.OK)
            {
                formule = form.m_txtFormule.Formule;
                bRetour = true;
            }
            form.Dispose();
            return(bRetour);
        }