コード例 #1
0
        /// //////////////////////////////////////////
        private CResultAErreur GetSourceEtChampFinal(C2iExpression expression, CContexteEvaluationExpression ctx, ref object source, ref C2iExpressionChamp expressionChamp)
        {
            CResultAErreur result = CResultAErreur.True;

            expressionChamp = expression as C2iExpressionChamp;
            if (expressionChamp != null)
            {
                return(result);
            }
            C2iExpressionObjet expObjet = expression as C2iExpressionObjet;

            if (expObjet == null)
            {
                result.EmpileErreur(I.T("Impossible to affect a value to @1|133", expression.GetString()));
            }
            result = expObjet.Parametres2i[0].Eval(ctx);
            if (!result || result == null)
            {
                return(result);
            }
            ctx.PushObjetSource(result.Data, false);
            source = result.Data;
            result = GetSourceEtChampFinal(expObjet.Parametres2i[1], ctx, ref source, ref expressionChamp);
            ctx.PopObjetSource(false);
            return(result);
        }
コード例 #2
0
        /// ///////////////////////////////////////////////////////////
        /// lstResults contient la liste des valeurs des paramètres
        protected CResultAErreur EvalParametres(CContexteEvaluationExpression ctx, ArrayList lstResults)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                if (IsSourceParametreBase)                  //La source est la base !!
                {
                    ctx.PushObjetSource(ctx.ObjetBase, false);
                }
                lstResults.Clear();
                result = CResultAErreur.True;
                if (GetNbParametresNecessaires() >= 0 && Parametres.Count != GetNbParametresNecessaires())
                {
                    result.EmpileErreur(I.T("Incorrect parameter number :@1 parameters expected|101", GetNbParametresNecessaires().ToString()));
                    return(result);
                }
                int nParametre = 0;
                foreach (C2iExpression expression in Parametres2i)
                {
                    result = expression.Eval(ctx);
                    nParametre++;
                    if (!result)
                    {
                        result.EmpileErreur(I.T("Error during the @1 parameter evaluation|102", expression.GetString()));
                        return(result);
                    }
                    lstResults.Add(result.Data);
                }
                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                if (IsSourceParametreBase)
                {
                    ctx.PopObjetSource(false);
                }
            }
            return(result);
        }
コード例 #3
0
        /// //////////////////////////////////// /////////////////////////////////
        private CResultAErreur GetValeurObjet(CContexteEvaluationExpression ctx, object source, C2iExpression expressionAEvaluer)
        {
            CResultAErreur result = CResultAErreur.True;

            ctx.PushObjetSource(source, false);
            try
            {
                result = expressionAEvaluer.Eval(ctx);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            finally
            {
                ctx.PopObjetSource(false);
            }
            return(result);
        }