コード例 #1
0
        /// //////////////////////////////////////////
        protected override CResultAErreur ProtectedEval(CContexteEvaluationExpression ctx)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                C2iExpression[] parametresFiltre = new C2iExpression[Parametres.Count - 2];
                for (int nIndex = 2; nIndex < Parametres.Count; nIndex++)
                {
                    parametresFiltre[nIndex - 2] = Parametres2i[nIndex];
                }
                result = GetFiltre(ctx, Parametres2i[0], Parametres2i[1], parametresFiltre);
                if (!result)
                {
                    return(result);
                }
                if (!(ctx.ObjetSource is CObjetDonnee))
                {
                    result.EmpileErreur(I.T("SelectSql cannot be applied here|229"));
                    return(result);
                }
                CFiltreDataAvance   filtre = (CFiltreDataAvance)result.Data;
                CListeObjetsDonnees liste  = new CListeObjetsDonnees(((CObjetDonnee)ctx.ObjetSource).ContexteDonnee,
                                                                     CContexteDonnee.GetTypeForTable(filtre.TablePrincipale));
                liste.Filtre = filtre;
                result.Data  = liste;
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error in SelectSql|228"));
            }
            return(result);
        }
コード例 #2
0
        //--------------------------------------------------------
        public CListeRestrictionsUtilisateurSurType GetRestrictions(CObjetDonnee objet)
        {
            CContexteEvaluationExpression        ctx          = new CContexteEvaluationExpression(objet);
            CListeRestrictionsUtilisateurSurType restrictions = new CListeRestrictionsUtilisateurSurType();

            foreach (CCoupleFormuleToGroupeRestrictions couple in m_listeCouples)
            {
                if (couple.Formule != null)
                {
                    CResultAErreur result = couple.Formule.Eval(ctx);
                    if (result && result.Data is bool)
                    {
                        if ((bool)result.Data)
                        {
                            CGroupeRestrictionSurType groupe = new CGroupeRestrictionSurType(objet.ContexteDonnee);
                            if (groupe.ReadIfExists(couple.IdGroupeRestriction))
                            {
                                restrictions.Combine(groupe.ListeRestrictions);
                            }
                        }
                    }
                }
            }
            return(restrictions);
        }
コード例 #3
0
        //-----------------------------------------------------------------------------------------
        protected override void MyUpdateValeursCalculees()
        {
            CContexteEvaluationExpression ctx = CUtilControlesWnd.GetContexteEval(this, EditedElement);

            if (WndSchemaReseau.ElementFormula != null)
            {
                CResultAErreur resultExpression = WndSchemaReseau.ElementFormula.Eval(ctx);
                if (resultExpression)
                {
                    // Schema de réseau
                    CSchemaReseau schema = resultExpression.Data as CSchemaReseau;
                    if (schema != null)
                    {
                        // Init ici
                        m_controleSchemaReseau.Init(schema.GetSchema(false), schema);
                        m_controleSchemaReseau.LockEdition = true;
                        m_controleSchemaReseau.ModeEdition = EModeEditeurSchema.Selection;
                    }
                }
            }

            if (WndSchemaReseau.DynamicNetworkViewFormula != null)
            {
                CResultAErreur resultExpression = WndSchemaReseau.DynamicNetworkViewFormula.Eval(ctx);
                if (resultExpression)
                {
                    // Parametre de vue dynamique
                    CParametreVueSchemaDynamique parametre = resultExpression.Data as CParametreVueSchemaDynamique;
                    if (parametre != null)
                    {
                        m_controleSchemaReseau.ParametreDynamique = parametre.ParametreRepresentation;
                    }
                }
            }
        }
コード例 #4
0
        //------------------------------------------------------------
        /// <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);
        }
コード例 #5
0
        //---------------------------------------------------
        public override CResultAErreur GetErreursManualEndEtape(CEtapeWorkflow etape)
        {
            CResultAErreur result = base.GetErreursManualEndEtape(etape);

            if (result)
            {
                result = CResultAErreur.True;
                //Vérifie toutes les conditions de fin
                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(etape);
                foreach (CFormuleNommee fn in FormulesConditionFin)
                {
                    if (fn != null && fn.Formule != null)
                    {
                        CResultAErreur resTmp = fn.Formule.Eval(ctx);
                        if (!resTmp)
                        {
                            result.EmpileErreur(I.T("Error in formula '@1' for step @2|20082",
                                                    fn.Libelle, etape.LastError));
                            return(result);
                        }
                        bool bOk = resTmp.Data != null;
                        if (bOk)
                        {
                            bool?bConv = CUtilBool.BoolFromString(resTmp.Data.ToString());
                            bOk = bConv == true;
                        }
                        if (!bOk)
                        {
                            result.EmpileErreur(fn.Libelle);
                        }
                    }
                }
            }
            return(result);
        }
コード例 #6
0
ファイル: C2iWndImage.cs プロジェクト: ykebaili/sc2idlls
        /// ///////////////////////
        public Image GetImageToDisplay(CContexteEvaluationExpression contexte)
        {
            Image imgToCopy = null;

            if (ImageFormula != null && contexte != null)
            {
                try
                {
                    CResultAErreur result = ImageFormula.Eval(contexte);
                    if (result && result.Data is Bitmap)
                    {
                        imgToCopy = (Bitmap)result.Data;
                    }
                }
                catch
                {
                    imgToCopy = null;
                }
            }
            if (imgToCopy == null)
            {
                imgToCopy = DefaultImage;
            }
            if (imgToCopy != null)
            {
                return((Image)imgToCopy.Clone());
            }
            return(null);
        }
コード例 #7
0
        //-----------------------------------------------------------------------------
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur  result    = CResultAErreur.True;
            CContexteDonnee ctxDonnee = null;

            if (ctx.ObjetSource is IObjetAContexteDonnee)
            {
                ctxDonnee = ((IObjetAContexteDonnee)ctx.ObjetSource).ContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = ctx.GetObjetAttache(typeof(CContexteDonnee)) as CContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = CContexteDonneeSysteme.GetInstance();
            }
            CNommageEntite nommage = new CNommageEntite(ctxDonnee);

            //TESTDBKEYOK
            if (nommage.ReadIfExists(m_keyNommageEntite)) //&& nommage.NomFort == m_strNom)
            {
                result.Data = nommage.GetObjetNomme();
            }
            else if (nommage.ReadIfExists(new CFiltreData(CNommageEntite.c_champNomFort + "=@1",
                                                          m_strNom)))
            {
                result.Data = nommage.GetObjetNomme();
            }
            return(result);
        }
コード例 #8
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            if (valeursParametres[0] == null || !typeof(IEnumerable).IsAssignableFrom(valeursParametres[0].GetType()))
            {
                result.Data = new object[] { valeursParametres[0] };
                return(result);
            }
            try
            {
                ArrayList   newListe = new ArrayList();
                IEnumerable lst      = (IEnumerable)valeursParametres[0];
                foreach (object elt in lst)
                {
                    if (!newListe.Contains(elt))
                    {
                        newListe.Add(elt);
                    }
                }
                result.Data = newListe;
                return(result);
            }
            catch
            {
                result.EmpileErreur(I.T("Error during the evaluation of 'distinct'|241"));
            }
            return(result);
        }
コード例 #9
0
        //------------------------------------------------------------------------------------
        public IEnumerable <CObjetDonneeAIdNumerique> GetListeAssociations(object sourceDeFormule)
        {
            List <CObjetDonneeAIdNumerique> lst = new List <CObjetDonneeAIdNumerique>();
            CContexteEvaluationExpression   ctx = new CContexteEvaluationExpression(sourceDeFormule);

            foreach (C2iExpression formule in AssociationsFormulas)
            {
                CResultAErreur result = formule.Eval(ctx);
                if (result)
                {
                    object data = result.Data;
                    if (data is CObjetDonneeAIdNumerique)
                    {
                        lst.Add(data as CObjetDonneeAIdNumerique);
                    }

                    IEnumerable lstObjets = data as IEnumerable;
                    if (lstObjets != null)
                    {
                        foreach (object obj in lstObjets)
                        {
                            if (obj is CObjetDonneeAIdNumerique)
                            {
                                lst.Add(obj as CObjetDonneeAIdNumerique);
                            }
                        }
                    }
                }
            }
            return(lst.AsReadOnly());
        }
コード例 #10
0
        /// //////////////////////////////////////////
        protected override CResultAErreur ProtectedEval(CContexteEvaluationExpression ctx)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!typeof(IEnumerable).IsAssignableFrom(ctx.ObjetSource.GetType()))
            {
                result.EmpileErreur(I.T("The function ListInText cannot apply to the @1 type|237", ctx.ObjetSource.GetType().ToString()));
                return(result);
            }
            ArrayList lst = new ArrayList();

            foreach (object obj in (IEnumerable)ctx.ObjetSource)
            {
                try
                {
                    ctx.PushObjetSource(obj, true);
                    result = Parametres2i[0].Eval(ctx);
                    ctx.PopObjetSource(true);
                    if (!result)
                    {
                        return(result);
                    }
                }
                catch {}
            }
            return(result);
        }
コード例 #11
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;
            //Tente la conversion du second en int
            string str1;
            int    n2;

            try
            {
                str1 = valeursParametres[0].ToString();
                n2   = (int)valeursParametres[1];
            }
            catch
            {
                result.EmpileErreur(I.T("No overload of the 'Left' function accepts the parameters indicated|299"));
                return(result);
            }
            try
            {
                if (n2 >= str1.Length)
                {
                    result.Data = str1;
                }
                else
                {
                    result.Data = str1.Substring(0, n2);
                }
            }
            catch
            {
                result.EmpileErreur(I.T("Error in the 'Left' function|300"));
            }
            return(result);
        }
コード例 #12
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            if (valeursParametres[0] == null || !typeof(IEnumerable).IsAssignableFrom(valeursParametres[0].GetType()))
            {
                result.Data = 0;
                return(result);
            }
            IList lst = valeursParametres[0] as IList;

            if (lst != null)
            {
                result.Data = lst.Count;
            }
            else
            {
                IEnumerable en     = valeursParametres[0] as IEnumerable;
                int         nCount = 0;
                foreach (object obj in en)
                {
                    nCount++;
                }
                result.Data = nCount;
            }
            return(result);
        }
コード例 #13
0
ファイル: CMapItemDessin.cs プロジェクト: ykebaili/Timos
        //---------------------------------------------------------------------------
        public bool GenereItem(
            object obj,
            double fLat,
            double fLong, CMapLayer layer)
        {
            CResultAErreur result             = CResultAErreur.True;
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(this.m_mapItemGenerator);

            if (FormuleCondition != null && !(FormuleCondition is C2iExpressionVrai))
            {
                result = FormuleCondition.Eval(ctx);
                if (!result || result.Data == null)
                {
                    return(false);
                }
                bool?bResult = CUtilBool.BoolFromString(result.Data.ToString());
                if (bResult == null || !bResult.Value)
                {
                    return(false);
                }
            }
            string strLibelle = "";

            if (FormuleToolTip != null)
            {
                result = FormuleToolTip.Eval(ctx);
                if (result && result.Data != null)
                {
                    strLibelle = result.Data.ToString();
                }
            }
            IMapItem item = null;

            if (MarkerType != EMapMarkerType.none)
            {
                item = new CMapItemSimple(layer, fLat, fLong, MarkerType);
            }
            else if (Image != null)
            {
                if (layer.Database.GetImage(m_strImageId) == null)
                {
                    layer.Database.AddImage(m_strImageId, Image);
                }
                item = new CMapItemImage(layer, fLat, fLong, m_strImageId);
            }
            else
            {
                item = new CMapItemSimple(layer, fLat, fLong, EMapMarkerType.green);
            }
            item.Tag              = obj;
            item.ToolTip          = strLibelle;
            item.PermanentToolTip = PermanentToolTip;

            if (ItemGenerator.ActionSurClick != null)
            {
                item.MouseClicked += new MapItemClickEventHandler(OnMouseClick);
            }

            return(true);
        }
コード例 #14
0
        /// ////////////////////////////////////////////////////////////
        public void FillNode(TreeNode node, CObjetDonneeAIdNumeriqueAuto objet)
        {
            if (objet != null)
            {
                string strText = "";
                if (m_formuleLibelle != null)
                {
                    CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objet);
                    CResultAErreur result             = m_formuleLibelle.Eval(ctx);
                    if (result && result.Data != null)
                    {
                        strText = result.Data.ToString();
                    }
                }
                if (strText.Length == 0)
                {
                    strText = CInterpreteurTextePropriete.GetStringValue(objet, m_strProprieteAffichee, "Non def");
                }
                node.Text = strText;
            }
            CInfoNode info;

            if (node.Tag is CInfoNode)
            {
                info = (CInfoNode)node.Tag;
            }
            else
            {
                info = new CInfoNode();
            }
            info.Objet = objet;
            node.Tag   = info;
        }
コード例 #15
0
ファイル: C2iExpressionSi.cs プロジェクト: ykebaili/sc2idlls
        /// //////////////////////////////////////////
        protected override CResultAErreur ProtectedEval(CContexteEvaluationExpression ctx)
        {
            CResultAErreur result = CResultAErreur.True;

            if (GetNbParametresNecessaires() >= 0 && Parametres.Count != GetNbParametresNecessaires())
            {
                result.EmpileErreur(I.T("The number of parameters isn't correct (@1 expected)|246", GetNbParametresNecessaires().ToString()));
                return(result);
            }
            try
            {
                result = Parametres2i[0].Eval(ctx);
                if (!result)
                {
                    return(result);
                }
                bool b1 = Convert.ToBoolean(result.Data);
                if (b1)
                {
                    return(Parametres2i[1].Eval(ctx));
                }
                else
                {
                    return(Parametres2i[2].Eval(ctx));
                }
            }
            catch
            {
            }
            result.EmpileErreur(I.T("No overload of the function 'IF' accept the indicated parameters|247"));
            return(result);
        }
コード例 #16
0
        //-----------------------------------
        public IEnumerable <CCategorieGED> GetListeCategories(object sourceDeFormule)
        {
            List <CCategorieGED>          lst = new List <CCategorieGED>();
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(sourceDeFormule);

            foreach (C2iExpression formule in CategoriesFormulas)
            {
                CResultAErreur result = formule.Eval(ctx);
                if (result)
                {
                    object data = result.Data;
                    if (data is CCategorieGED)
                    {
                        lst.Add(data as CCategorieGED);
                    }

                    IEnumerable lstObjets = data as IEnumerable;
                    if (lstObjets != null)
                    {
                        foreach (object obj in lstObjets)
                        {
                            if (obj is CCategorieGED)
                            {
                                lst.Add(obj as CCategorieGED);
                            }
                        }
                    }
                }
            }
            return(lst.AsReadOnly());
        }
コード例 #17
0
ファイル: C2iExpressionSi.cs プロジェクト: ykebaili/sc2idlls
        /// ///////////////////////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.False;

            result.EmpileErreur(I.T("Impossible Error|248"));
            return(result);
        }
コード例 #18
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;
            object         v1     = valeursParametres[0];
            object         v2     = valeursParametres[1];
            ArrayList      lst    = new ArrayList();

            if (v1 is ICollection)
            {
                lst.AddRange((ICollection)v1);
            }
            else if (v1 != null)
            {
                lst.Add(v1);
            }
            if (v2 is ICollection)
            {
                lst.AddRange((ICollection)v2);
            }
            else if (v2 != null)
            {
                lst.Add(v2);
            }
            result.Data = lst;
            return(result);
        }
コード例 #19
0
        //------------------------------------------------------
        public CResultAErreur MajChamps(bool bControlerValeur)
        {
            CResultAErreur result = CResultAErreur.True;

            if (m_elementAVariables != null && m_variable != null)
            {
                object valeur = null;
                if (m_control is ISelectionneurElementListeObjetsDonnees)
                {
                    valeur = ((ISelectionneurElementListeObjetsDonnees)m_control).ElementSelectionne;
                    if (m_variable is CVariableDynamiqueSelectionObjetDonnee)
                    {
                        CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(valeur);
                        CResultAErreur resTmp             = ((CVariableDynamiqueSelectionObjetDonnee)m_variable).ExpressionRetournee.Eval(ctx);
                        if (resTmp)
                        {
                            valeur = resTmp.Data;
                        }
                    }
                }
                m_elementAVariables.SetValeurChamp(m_variable.IdVariable, valeur);
                if (bControlerValeur)
                {
                    result = m_variable.VerifieValeur(valeur);
                }
            }
            return(result);
        }
コード例 #20
0
        //------------------------------------------------------------
        public CResultAErreur GetValue(object objet, string strPropriete)
        {
            CResultAErreur result = CResultAErreur.True;
            CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(objet);

            if (objet is CObjetDonnee)
            {
                contexte.AttacheObjet(typeof(CContexteDonnee), ((CObjetDonnee)objet).ContexteDonnee);
            }
            Type tpAnalyse = null;

            if (objet != null)
            {
                tpAnalyse = objet.GetType();
            }
            CContexteAnalyse2iExpression   ctx       = new CContexteAnalyse2iExpression(new CFournisseurPropDynStd(), tpAnalyse);
            CAnalyseurSyntaxiqueExpression analyseur = new CAnalyseurSyntaxiqueExpression(ctx);

            result = analyseur.AnalyseChaine(strPropriete);
            if (!result)
            {
                return(result);
            }
            C2iExpression formule = (C2iExpression)result.Data;

            result = formule.Eval(contexte);
            if (result)
            {
                return(result);
            }
            return(result);
        }
コード例 #21
0
        /// //////////////////////////////////////////////////
        public override CResultAErreur GetComposantExpression(CFiltreDynamique filtreDynamique)
        {
            CResultAErreur result             = CResultAErreur.True;
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(filtreDynamique);

            if (ConditionApplication != null)
            {
                result = ConditionApplication.Eval(ctx);
                if (!result)
                {
                    result.EmpileErreur(I.T("Error while evaluation of @1|143", ConditionApplication.GetString()));
                    return(result);
                }

                if (!((result.Data is bool && (bool)result.Data) || result.Data.ToString() == "1"))
                {
                    result.Data = null;
                    return(result);
                }
            }
            C2iExpressionChamp expChamp         = new C2iExpressionChamp(m_champ);
            C2iExpression      expressionIsNull = new C2iExpressionEstNull();

            expressionIsNull.Parametres.Add(expChamp);
            result.Data = expressionIsNull;
            if (!TestNull)
            {
                C2iExpression expNon = new C2iExpressionNon();
                expNon.Parametres.Add(expressionIsNull);
                result.Data = expNon;
            }
            return(result);
        }
コード例 #22
0
            public object  GetValue(object objet)
            {
                if (m_formule == null)
                {
                    return(null);
                }
                if (m_contexteEval == null)
                {
                    m_contexteEval = new CContexteEvaluationExpression(objet);
                    m_contexteEval.UseOptimiseurs = true;
                }
                else
                {
                    m_contexteEval.ChangeSource(objet);
                }
                if (objet is CObjetDonnee)
                {
                    m_contexteEval.AttacheObjet(typeof(CContexteDonnee), ((CObjetDonnee)objet).ContexteDonnee);
                }
                CResultAErreur result = m_formule.Eval(m_contexteEval);

                if (result)
                {
                    return(result.Data);
                }
                return(null);
            }
コード例 #23
0
        private static CResultAErreur DeclencheEvenement(
            IControleWndFor2iWnd ctrl,
            CHandlerEvenementParFormule handler)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                if (handler.FormuleEvenement != null)
                {
                    IControleWndFor2iWnd ctrlParent = ctrl;
                    while (ctrlParent.WndContainer != null && !ctrlParent.IsRacineForEvenements)
                    {
                        ctrlParent = ctrlParent.WndContainer as IControleWndFor2iWnd;
                    }
                    CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(new CEncaspuleurControleWndForFormules(ctrlParent));
                    result = handler.FormuleEvenement.Eval(ctx);
                    if (ctrl.Control != null)
                    {
                        ctrl.Control.Refresh();
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #24
0
ファイル: GetTypeInterne.cs プロジェクト: ykebaili/sc2idlls
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.True;

            if (valeursParametres[0] is String)
            {
                Type tp = DynamicClassAttribute.GetTypeFromNomConvivial((string)valeursParametres[0]);
                if (tp != null)
                {
                    result.Data = tp.ToString();
                    return(result);
                }
                tp = CActivatorSurChaine.GetType((string)valeursParametres[0]);
                if (tp != null)
                {
                    result.Data = tp.ToString();
                    return(result);
                }
            }
            else
            {
                if (valeursParametres[0] != null)
                {
                    result.Data = valeursParametres[0].GetType().ToString();
                    return(result);
                }
            }
            result.Data = "";
            return(result);
        }
コード例 #25
0
 //----------------------------------------------------
 public CIconeGantt GetIcone(IElementDeGantt element)
 {
     if (m_formuleCondition != null && Image != null)
     {
         CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(element);
         CResultAErreur result             = m_formuleCondition.Eval(ctx);
         if (result)
         {
             if (result.Data is bool && (bool)result.Data)
             {
                 string strTooltip = "";
                 if (Tooltip != null)
                 {
                     result = Tooltip.Eval(ctx);
                     if (result)
                     {
                         strTooltip = result.Data.ToString();
                     }
                 }
                 return(new CIconeGantt(Image, strTooltip));
             }
         }
     }
     return(null);
 }
コード例 #26
0
ファイル: C2iExpressionET.cs プロジェクト: ykebaili/sc2idlls
        /// //////////////////////////////////////////
        protected override CResultAErreur ProtectedEval(CContexteEvaluationExpression ctx)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                foreach (C2iExpression parametre in Parametres2i)
                {
                    result = parametre.Eval(ctx);
                    if (!result)
                    {
                        result.EmpileErreur(I.T("Error during the evaluation of the @1 expression|250", GetString()));
                        return(result);
                    }
                    bool bVal = Convert.ToBoolean(result.Data);
                    if (!bVal)
                    {
                        result.Data = false;
                        return(result);
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
コード例 #27
0
        //---------------------------------------------------------------
        protected override void MyUpdateValeursCalculees()
        {
            C2iWndWebBrowser wndBrowser = WndAssociee as C2iWndWebBrowser;

            if (wndBrowser == null | m_browser == null)
            {
                return;
            }
            CContexteEvaluationExpression contexte = CUtilControlesWnd.GetContexteEval(this, EditedElement);

            try
            {
                if (wndBrowser.UrlFormula != null)
                {
                    CResultAErreur result = wndBrowser.UrlFormula.Eval(contexte);
                    string         strUrl = null;
                    if (result)
                    {
                        strUrl = result.Data == null ? null : result.Data.ToString();
                    }
                    m_browser.Url = new Uri(strUrl);
                }
            }
            catch { }
        }
コード例 #28
0
ファイル: C2iExpressionET.cs プロジェクト: ykebaili/sc2idlls
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result = CResultAErreur.False;

            result.EmpileErreur(I.T("MyEval of C2iExpresisonOu should never be called|251"));
            return(result);
        }
コード例 #29
0
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur result   = CResultAErreur.True;
            double         fMoyenne = 0;

            if (valeursParametres[0] == null || !typeof(IEnumerable).IsAssignableFrom(valeursParametres[0].GetType()))
            {
                result.Data = 0;
                return(result);
            }
            foreach (object obj in (IEnumerable)valeursParametres[0])
            {
                object valeur = GetValeur(obj);
                try
                {
                    fMoyenne += Convert.ToDouble(valeur);
                }
                catch
                {
                }
            }
            if (((IList)valeursParametres[0]).Count != 0)
            {
                fMoyenne = fMoyenne / ((IList)valeursParametres[0]).Count;
            }
            result.Data = fMoyenne;
            return(result);
        }
コード例 #30
0
        /// //////////////////////////////////////////////////////
        private void m_btnTester_Click(object sender, System.EventArgs e)
        {
            C2iExpression expression = GetExpression();

            if (expression == null)
            {
                return;
            }
            if (m_cmbType.SelectedItem == null || !(m_cmbType.SelectedItem is C2iTypeDonnee))
            {
                CFormAlerte.Afficher(I.T("Select a data type|30026"), EFormAlerteType.Exclamation);
                return;
            }
            TypeDonnee tp  = ((C2iTypeDonnee)m_cmbType.SelectedItem).TypeDonnee;
            object     obj = CObjetForTestValeurChampCustom.GetNewForTypeDonnee(tp,
                                                                                null, m_txtTest.Text);
            CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(obj);
            CResultAErreur result             = expression.Eval(ctx);

            if (!result)
            {
                result.EmpileErreur(I.T("Error during validation formula evaluation|30027"));
                CFormAlerte.Afficher(result);
                return;
            }
            if ((result.Data is bool && (bool)result.Data) || result.Data.ToString() == "1")
            {
                CFormAlerte.Afficher(I.T("Accepted value|30028"));
            }
            else
            {
                CFormAlerte.Afficher(I.T("Rejected value|30029"), EFormAlerteType.Erreur);
            }
        }