예제 #1
0
        /// <summary>
        /// Retourne la valeur texte de la variable.
        /// </summary>
        /// <param name="strNomVariable"></param>
        /// <param name="objet"></param>
        /// <returns></returns>
        public static string GetValeurTexte(string strNomVariable, CObjetDonneeAIdNumerique objet)
        {
            CValeurVariableSurObjet valeur = GetValeurFor(strNomVariable, objet);

            if (valeur == null)
            {
                return("");
            }
            return(valeur.ValeurTexte);
        }
예제 #2
0
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            if (parametres.Length != 2 || parametres[0] == null || parametres[1] == null ||
                !(objetAppelle is CObjetDonneeAIdNumerique))
            {
                return(-1);
            }

            CValeurVariableSurObjet.SetValeur(
                parametres[0].ToString(),
                (CObjetDonneeAIdNumerique)objetAppelle,
                parametres[1].ToString());

            return(0);
        }
예제 #3
0
        public override object Invoke(object objetAppelle, params object[] parametres)
        {
            if (parametres.Length != 1 || parametres[0] == null ||
                !(objetAppelle is CObjetDonneeAIdNumerique))
            {
                return(null);
            }
            CValeurVariableSurObjet valeur = CValeurVariableSurObjet.GetValeurFor(parametres[0].ToString(), (CObjetDonneeAIdNumerique)objetAppelle);

            if (valeur == null)
            {
                return(new CCasteurValeurString(parametres[0].ToString(), ""));
            }
            else
            {
                return(new CCasteurValeurString(valeur.Nom, valeur.ValeurTexte));
            }
        }
예제 #4
0
        /// <summary>
        /// Définit une valeur de variable
        /// </summary>
        /// <param name="strNomVariable"></param>
        /// <param name="objet"></param>
        /// <param name="strValeur"></param>
        public static void SetValeur(string strNomVariable, CObjetDonneeAIdNumerique objet, string strValeur)
        {
            if (objet == null)
            {
                return;
            }
            CValeurVariableSurObjet valeur = GetValeurFor(strNomVariable, objet);

            if (valeur == null)
            {
                if (strValeur.Trim() == "")
                {
                    return;
                }
                valeur = new CValeurVariableSurObjet(objet.ContexteDonnee);
                valeur.CreateNewInCurrentContexte();
                valeur.Nom        = strNomVariable;
                valeur.ElementLie = objet;
            }
            valeur.ValeurTexte = strValeur;
        }
예제 #5
0
        /// <summary>
        /// REtourne le CValeurVariable s'il existe
        /// </summary>
        /// <param name="strNomVariable"></param>
        /// <param name="objet"></param>
        /// <returns></returns>
        public static CValeurVariableSurObjet GetValeurFor(string strNomVariable, CObjetDonneeAIdNumerique objet)
        {
            if (objet == null)
            {
                return(null);
            }
            CFiltreData filtre = new CFiltreData(
                c_champTypeElementLie + "=@1 and " +
                c_champIdElementLie + "=@2 and " +
                c_champNomVariable + "=@3",
                objet.GetType().ToString(),
                objet.Id.ToString(),
                strNomVariable);
            CValeurVariableSurObjet valeur = new CValeurVariableSurObjet(objet.ContexteDonnee);

            if (valeur.ReadIfExists(filtre))
            {
                return(valeur);
            }
            return(null);
        }