//----------------------------------------------------------------------
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public bool EvaluerFormuleConditionnelle(DateTime dt)
        {
            CElementAVariablesDynamiques elt = ElementPourEvaluerLaFormuleConditionnelle;

            elt.SetValeurChamp((IVariableDynamique)elt.ListeVariables[0], dt);
            CContexteEvaluationExpression contexte = new CContexteEvaluationExpression(elt);
            C2iExpression formule = this.FormuleConditionnelle;

            if (formule != null)
            {
                CResultAErreur result = formule.Eval(contexte);
                if (result)
                {
                    if (result.Data is bool && (bool)result.Data ||
                        result.Data is int && (int)result.Data != 0)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
 protected override void OnChangeElementEdite(object element)
 {
     if (element != null &&
         WndFiltreRapide != null)
     {
         CFiltreData filtreData;
         if (WndFiltreRapide.Filter != null)
         {
             CElementAVariablesDynamiques eltAVar = new CElementAVariablesDynamiques();
             CVariableDynamiqueStatique   var     = new CVariableDynamiqueStatique(eltAVar);
             var.Nom        = "EditedElement";
             var.IdVariable = "0";
             var.SetTypeDonnee(new CTypeResultatExpression(element.GetType(), false));
             eltAVar.AddVariable(var);
             eltAVar.SetValeurChamp(var, element);
             CFiltreDynamique filtreDyn = WndFiltreRapide.Filter;
             filtreDyn.ElementAVariablesExterne = eltAVar;
             filtreData = (CFiltreData)filtreDyn.GetFiltreData().Data;
         }
         else
         {
             filtreData = null;
         }
         Type typePropriete = null;
         if (WndFiltreRapide.Property != null)
         {
             typePropriete = WndFiltreRapide.Property.TypeDonnee.TypeDotNetNatif;
         }
         else if (WndFiltreRapide.Filter != null)
         {
             typePropriete = WndFiltreRapide.Filter.TypeElements;
         }
         if (typePropriete != null)
         {
             string strDesc = DescriptionFieldAttribute.GetDescriptionField(typePropriete, "DescriptionElement");
             C2iTextBoxFiltreRapide txtRapide = m_selectionneur as C2iTextBoxFiltreRapide;
             if (txtRapide != null)
             {
                 txtRapide.InitAvecFiltreDeBase(typePropriete, strDesc, filtreData, true);
             }
             else
             {
                 CComboBoxListeObjetsDonnees cmb = m_selectionneur as CComboBoxListeObjetsDonnees;
                 cmb.NullAutorise = true;
                 cmb.TextNull     = I.T("None|19");
                 if (cmb != null)
                 {
                     cmb.Init(
                         typePropriete,
                         filtreData,
                         strDesc,
                         true);
                 }
             }
             if (WndFiltreRapide.Property != null)
             {
                 CObjetDonnee valeur = CInterpreteurProprieteDynamique.GetValue(EditedElement, WndFiltreRapide.Property).Data as CObjetDonnee;
                 m_selectionneur.ElementSelectionne = valeur;
             }
         }
     }
 }