Exemplo n.º 1
0
        /// ////////////////////////////////////////////////////////////////////////////
        public void InitDialog()
        {
            m_labelChamp.Text = m_composant.Champ == null?I.T("[UNDEFINED]|30013") : m_composant.Champ.Nom;

            m_champTest = m_composant.Champ;
            m_champRetourneParRequete       = m_composant.ChampRetourneParSousFiltre;
            m_wndAide.FournisseurProprietes = m_filtre;
            m_wndAide.ObjetInterroge        = typeof(CFiltreDynamique);

            m_btnIn.Checked    = !m_composant.IsNotInTest;
            m_btnNotIn.Checked = m_composant.IsNotInTest;

            m_labelChampValeur.Text = m_champRetourneParRequete == null?I.T("[UNDEFINED]|30013") : m_champRetourneParRequete.Nom;

            m_sousFiltre = m_composant.SousFiltre;
            if (m_sousFiltre == null)
            {
                m_sousFiltre = new CFiltreDynamique();
            }
            m_sousFiltre.ElementAVariablesExterne = m_filtre;


            m_panelSousFiltre.InitSansVariables(m_sousFiltre);

            m_txtCondition.Init(m_wndAide.FournisseurProprietes, m_wndAide.ObjetInterroge);
            m_txtCondition.Text = m_composant.ConditionApplication.GetString();
        }
Exemplo n.º 2
0
        /// /////////////////////////////////////////////////////////////
        public CFiltreDynamique GetNewFiltreElementsSuivis()
        {
            CFiltreDynamique filtre = new CFiltreDynamique(ContexteDonnee);

            AssureVariableDossierInFiltre(filtre);
            return(filtre);
        }
Exemplo n.º 3
0
        /// /////////////////////////////////////////////////////////////
        protected void AssureVariableDossierInFiltre(CFiltreDynamique filtre)
        {
            if (filtre == null)
            {
                return;
            }
            bool bVariableExiste = false;

            foreach (IVariableDynamique variable in filtre.ListeVariables)
            {
                if (variable.Nom == c_nomChampDossier)
                {
                    bVariableExiste = true;
                    break;
                }
            }
            if (!bVariableExiste)
            {
                CVariableDynamiqueSysteme variable = new CVariableDynamiqueSysteme(filtre);
                variable.Nom = c_nomChampDossier;
                variable.SetTypeDonnee(new CTypeResultatExpression(typeof(CDossierSuivi), false));
                filtre.AddVariable(variable);
            }
            filtre.TypeElements = this.TypeSuivi;
        }
Exemplo n.º 4
0
 /// ////////////////////////////////////////////////////////////////
 public static IVariableDynamique AssureVariableElementCible(CFiltreDynamique filtre, CObjetPourSousProprietes objetPourSousProprietes)
 {
     if (objetPourSousProprietes.ElementAVariableInstance as IElementAVariablesDynamiquesAvecContexteDonnee == null)
     {
         foreach (IVariableDynamique variable in filtre.ListeVariables)
         {
             if (variable.Nom == c_champElementSource)
             {
                 return(variable);
             }
         }
         CVariableDynamiqueSysteme newVariable = new CVariableDynamiqueSysteme(filtre);
         newVariable.Nom = c_champElementSource;
         newVariable.SetTypeDonnee(new sc2i.expression.CTypeResultatExpression(objetPourSousProprietes.TypeAnalyse, false));
         filtre.AddVariable(newVariable);
         return(newVariable);
     }
     else
     {
         filtre.ElementAVariablesExterne = null;
         while (filtre.ListeVariables.Length > 0)
         {
             filtre.RemoveVariable(filtre.ListeVariables[0]);
         }
         filtre.ElementAVariablesExterne = objetPourSousProprietes.ElementAVariableInstance as IElementAVariablesDynamiquesAvecContexteDonnee;
         return(null);
     }
 }
Exemplo n.º 5
0
        //---------------------------------------------------------------------------------------------
        private void FiltrerTable()
        {
            if (m_tableExport == null ||
                (!(m_tableExport is C2iTableExport)))
            {
                return;
            }
            ITableExport tableExport = (ITableExport)m_tableExport;

            if (tableExport.ChampOrigine == null)
            {
                return;
            }
            CFiltreDynamique filtre = ((ITableExport)m_tableExport).FiltreAAppliquer;

            if (filtre == null)
            {
                filtre = new CFiltreDynamique();
                filtre.TypeElements = tableExport.ChampOrigine.TypeDonnee.TypeDotNetNatif;
            }
            filtre.ElementAVariablesExterne = m_elementAVariablesPourFiltre;
            if (CFormEditFiltreDynamique.EditeFiltre(filtre, true, true, tableExport.ChampOrigine))
            {
                tableExport.FiltreAAppliquer = filtre;
                InitChamps();
            }
        }
Exemplo n.º 6
0
        //---------------------------------------------------------------------------------------------
        private void FiltrerTable()
        {
            if (m_tableExportCumulee == null)
            {
                return;
            }
            Type tp = m_structureExport.TypeSource;

            if (m_tableExportCumulee.ChampOrigine != null)
            {
                tp = m_tableExportCumulee.ChampOrigine.TypeDonnee.TypeDotNetNatif;
            }
            CFiltreDynamique filtre = ((ITableExport)m_tableExportCumulee).FiltreAAppliquer;

            if (filtre == null)
            {
                filtre = new CFiltreDynamique();
                filtre.TypeElements = tp;
            }
            filtre.ElementAVariablesExterne = m_elementAVariablesDynamiques;
            if (CFormEditFiltreDynamique.EditeFiltre(filtre, true, true, m_tableExportCumulee.ChampOrigine))
            {
                m_tableExportCumulee.FiltreAAppliquer = filtre;
                InitChamps();
            }
        }
Exemplo n.º 7
0
        /// ////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Fait sélectionner les valeurs à l'utilisateur
        /// </summary>
        /// <param name="filtre"></param>
        /// <returns></returns>
        public static CFiltreData GetFiltreData(CFiltreDynamique filtre)
        {
            using (CFormFiltreDynamic form = new CFormFiltreDynamic())
            {
                form.m_filtreDyn = filtre;
                //Vérifie qu'il y a qq chose dans le formulaire !
                bool bNeedDialog = false;
                foreach (IVariableDynamique variable in filtre.ListeVariables)
                {
                    if (variable.IsChoixUtilisateur())
                    {
                        bNeedDialog = true;
                        break;
                    }
                }

                if (!bNeedDialog || form.ShowDialog() == DialogResult.OK)
                {
                    CResultAErreur result = CResultAErreur.True;
                    result = filtre.GetFiltreData();
                    if (!result)
                    {
                        CFormAlerte.Afficher(result);
                    }
                    else
                    {
                        return(( CFiltreData )result.Data);
                    }
                }
            }
            return(null);
        }
Exemplo n.º 8
0
        //---------------------------------------------------------------------------------------
        private IVariableDynamique AssureVariableElementCible(CFiltreDynamique filtre, Type typeElement)
        {
            IVariableDynamique variableASupprimer = null;

            foreach (IVariableDynamique variable in filtre.ListeVariables)
            {
                if (variable.Nom == c_champElementSource)
                {
                    if (variable.TypeDonnee.TypeDotNetNatif != typeElement)
                    {
                        variableASupprimer = variable;
                    }
                    else
                    {
                        return(variable);
                    }
                }
            }
            if (variableASupprimer != null)
            {
                filtre.RemoveVariable(variableASupprimer);
            }
            CVariableDynamiqueSysteme newVariable = new CVariableDynamiqueSysteme(filtre);

            newVariable.Nom = c_champElementSource;
            newVariable.SetTypeDonnee(new sc2i.expression.CTypeResultatExpression(typeElement, false));
            filtre.AddVariablePropreAuFiltre(newVariable);
            return(newVariable);
        }
Exemplo n.º 9
0
        /// ///////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Retourne le filtre qui indique les éléments autorisés comme étant éléments suivis
        /// </summary>
        public CFiltreData GetFiltreDataElementSuivi()
        {
            CFiltreDynamique filtreDynamique = TypeDossier.FiltreDynamiqueElementsSuivisPossibles;

            if (filtreDynamique == null)
            {
                return(null);
            }
            try
            {
                foreach (IVariableDynamique variable in filtreDynamique.ListeVariables)
                {
                    if (variable.Nom == CTypeDossierSuivi.c_nomChampDossier)
                    {
                        filtreDynamique.SetValeurChamp(variable, this);
                        break;
                    }
                }
                CResultAErreur result = filtreDynamique.GetFiltreData();
                if (result)
                {
                    return((CFiltreData)result.Data);
                }
            }
            catch
            {
            }
            return(null);
        }
Exemplo n.º 10
0
        void itemMenuFiltre_Click(object sender, EventArgs e)
        {
            CMenuItemFiltre menuFiltre = sender as CMenuItemFiltre;

            if (menuFiltre != null)
            {
                CFiltreDynamiqueInDb filtreInDb = menuFiltre.Filtre;
                CFiltreDynamique     filtre     = filtreInDb.Filtre;

                if (m_lastFiltreDynamique != null)
                {
                    foreach (IVariableDynamique variable in m_lastFiltreDynamique.ListeVariables)
                    {
                        object             val  = m_lastFiltreDynamique.GetValeurChamp(variable.IdVariable);
                        IVariableDynamique var2 = filtre.GetVariable(variable.IdVariable);
                        if (var2 != null && var2.Nom == variable.Nom)
                        {
                            filtre.SetValeurChamp(var2, val);
                        }
                    }
                }
                m_lastFiltreDynamique = filtre;

                if (filtre.FormulaireEdition.Childs.Count() > 0)
                {
                    if (!CFormFormulairePopup.EditeElement(
                            filtre.FormulaireEdition, filtre, "Filter|20175"))
                    {
                        return;
                    }
                }
                ApplyFiltre(filtre);
            }
        }
Exemplo n.º 11
0
 /// ////////////////////////////////////////////////////////////////////////////
 private void Init(CComposantFiltreDynamiqueSousFiltre composant,
                   CFiltreDynamique filtre,
                   CDefinitionProprieteDynamique definitionRacineDeChampsFiltres)
 {
     m_composant = composant;
     m_filtre    = filtre;
     m_definitionRacineDeChampsFiltres = definitionRacineDeChampsFiltres;
 }
Exemplo n.º 12
0
 public void InitFromContexteNavigation(CContexteFormNavigable ctx)
 {
     if (ctx != null)
     {
         CFiltreDynamique filtre = ctx["GANTT_FILTER"] as CFiltreDynamique;
         ApplyFiltre(filtre);
     }
 }
Exemplo n.º 13
0
        public static void EditeOptions(CFiltreDynamique filtre)
        {
            CFormOptionsFiltreDynamique form = new CFormOptionsFiltreDynamique();

            form.m_filtre = filtre;
            bool bResult = form.ShowDialog() == DialogResult.OK;

            form.Dispose();
        }
Exemplo n.º 14
0
        //-------------------------------------------------------------------------
        protected override CResultAErreur MyInitChamps()
        {
            CResultAErreur result = base.MyInitChamps();

            AffecterTitre(I.T("Entity list |30223") + ListeEntites.Libelle);
            InitComboTypes(false);

            m_chkSourceRecherche.Checked = ListeEntites.TypeElementsSourceRecherche == null;

            if (ListeEntites.TypeElements != null)
            {
                m_cmbTypeElements.SelectedValue = ListeEntites.TypeElements;
            }

            if (m_cmbTypeElements.SelectedValue is Type && m_cmbTypeElements.SelectedValue != typeof(DBNull))
            {
                m_panelListe.Init((Type)m_cmbTypeElements.SelectedValue, ListeEntites.ElementsLies, null);
            }
            else
            {
                m_panelListe.Visible = false;
            }

            if (ListeEntites.FiltreDynamique == null)
            {
                m_filtreDynamique = new CFiltreDynamique(ListeEntites.ContexteDonnee);
            }
            else
            {
                m_filtreDynamique = ListeEntites.FiltreDynamique;
            }

            if (ListeEntites.TypeElements != null)
            {
                m_filtreDynamique.TypeElements = ListeEntites.TypeElements;
            }
            if (ListeEntites.TypeElementsSourceRecherche != null)
            {
                m_filtreDynamique.ElementAVariablesExterne = ListeEntites.GetElementAVariableSourceFromType(ListeEntites.TypeElementsSourceRecherche);
            }
            else
            {
                m_filtreDynamique.ElementAVariablesExterne = null;
            }

            m_panelFiltre.InitSansVariables(m_filtreDynamique);

            m_btnDynamique.Checked = ListeEntites.FiltreDynamique != null;
            m_btnStatique.Checked  = !m_btnDynamique.Checked;

            UpdateAspect();


            UpdateEnableComboType();

            return(result);
        }
Exemplo n.º 15
0
        //-------------------------------------------------------------------------
        protected override CResultAErreur MyInitChamps()
        {
            CResultAErreur result = base.MyInitChamps();

            AffecterTitre("filtre " + Filtre.Libelle);
            m_filtre = Filtre.Filtre;
            m_panelFiltre.Init(m_filtre);
            return(result);
        }
Exemplo n.º 16
0
        /// //////////////////////////////////////////////////////////
        private void ItemFiltreClick(object sender, EventArgs e)
        {
            if (!(sender is CMenuItemFiltre))
            {
                return;
            }
            CFiltreDynamiqueInDb filtreInDb = ((CMenuItemFiltre)sender).Filtre;
            CFiltreDynamique     filtreDyn  = filtreInDb.Filtre;
            CFiltreData          filtreData = CFormFiltreDynamic.GetFiltreData(filtreDyn);

            if (filtreData == null)
            {
                return;
            }
            CListeObjetsDonnees listeSel = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, m_typeLien.TypeElements);

            filtreData      = CFiltreData.GetAndFiltre(filtreData, m_typeLien.FiltreDataAssocie);
            listeSel.Filtre = filtreData;

            try
            {
                if (listeSel.CountNoLoad == 0)
                {
                    CFormAlerte.Afficher(I.T("No @1 matches the filter|30089", DynamicClassAttribute.GetNomConvivial(m_typeLien.TypeElements)), EFormAlerteType.Exclamation);
                    return;
                }
                if (CFormAlerte.Afficher(I.T("You will add @1 element(s) to the selection. Continue ?|30088", listeSel.CountNoLoad.ToString()), EFormAlerteType.Question) == DialogResult.Yes)
                {
                    CListeObjetsDonnees listeExiste = m_entreeAgenda.RelationsElementsAgenda;
                    listeExiste.Filtre = new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champId + "=@1",
                                                         m_typeLien.Id);
                    listeExiste.Filtre = CFiltreData.GetAndFiltre(listeExiste.Filtre, new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champId + "=@1",
                                                                                                      m_typeLien.Id));
                    using (CWaitCursor waiter = new CWaitCursor())
                    {
                        foreach (CObjetDonneeAIdNumerique objet in listeSel)
                        {
                            listeExiste.Filtre = new CFiltreData(CRelationEntreeAgenda_ElementAAgenda.c_champIdElementAAgenda + "=@1",
                                                                 objet.Id);
                            if (listeExiste.Count == 0)
                            {
                                CRelationEntreeAgenda_ElementAAgenda rel = new CRelationEntreeAgenda_ElementAAgenda(m_entreeAgenda.ContexteDonnee);
                                rel.CreateNewInCurrentContexte();
                                rel.EntreeAgenda = m_entreeAgenda;
                                rel.RelationTypeEntree_TypeElement = m_typeLien;
                                rel.ElementLie = objet;
                            }
                        }
                        UpdateListe();
                    }
                }
            }
            catch
            {
            }
        }
Exemplo n.º 17
0
        //----------------------------------------------------------------------------
        public void InitChamps(CActionSur2iLink action, CObjetPourSousProprietes objetPourSousProprietes)
        {
            m_actionEditee = action as CActionSur2iLinkAfficherListe;
            if (action == null)
            {
                Visible = false;
                return;
            }
            m_objetPourSousProprietes = objetPourSousProprietes;
            Visible = true;

            if (m_filtreEdite == null)
            {
                m_filtreEdite = m_actionEditee.Filtre;
                if (m_filtreEdite == null)
                {
                    m_filtreEdite = new CFiltreDynamique();
                }
                m_filtreEdite = (CFiltreDynamique)m_filtreEdite.Clone();
                if (m_objetPourSousProprietes != null)
                {
                    CActionSur2iLinkAfficherListe.AssureVariableElementCible(m_filtreEdite, m_objetPourSousProprietes);
                }
                m_panelEditFiltre.Init(m_filtreEdite);
                m_panelEditFiltre.MasquerFormulaire(true);
                m_wndAide.FournisseurProprietes = new CFournisseurPropDynStd(true);
                m_wndAide.ObjetInterroge        = m_objetPourSousProprietes;

                m_txtContexteListe.Init(m_wndAide.FournisseurProprietes, m_wndAide.ObjetInterroge);
                m_txtTitreListe.Init(m_wndAide.FournisseurProprietes, m_wndAide.ObjetInterroge);
                if (m_actionEditee.FormuleContexte != null)
                {
                    m_txtContexteListe.Text = m_actionEditee.FormuleContexte.GetString();
                }
                else
                {
                    m_txtContexteListe.Text = "";
                }
                if (m_actionEditee.FormuleTitre != null)
                {
                    m_txtTitreListe.Text = m_actionEditee.FormuleTitre.GetString();
                }
                else
                {
                    m_txtTitreListe.Text = "";
                }
                m_rbtnActionDetailEditElement.Checked = m_actionEditee.ActionSurDetail == null;
                m_rbtnActionDetailSpecifique.Checked  = !m_rbtnActionDetailEditElement.Checked;
                m_chkListeAvecAjouter.Checked         = m_actionEditee.ShowBoutonAjouter;
                m_chkListeAvecDetail.Checked          = m_actionEditee.ShowBoutonDetail;
                m_chkListeAvecRemove.Checked          = m_actionEditee.ShowBoutonSupprimer;
                m_imgFiltreSpecifiqueOnList.Visible   = m_actionEditee.IdFiltreDynamiqueAUtiliser >= 0;
                m_lnkOptionsFiltre.Visible            = m_actionEditee.IdFiltreDynamiqueAUtiliser >= 0;
            }
        }
Exemplo n.º 18
0
 /// ////////////////////////////////////////////////////////////////////
 public void SetFiltreDynamique(CFiltreDynamique filtre)
 {
     m_filtre = filtre;
     if (Visible)
     {
         AfficheFiltreCourant();
     }
     else
     {
         m_bAfficheInitialise = false;
     }
 }
Exemplo n.º 19
0
 /// ////////////////////////////////////////////////////////////////////
 ///Affecte les valeurs du formulaire au filtre
 public static bool SetValeursFiltre(CFiltreDynamique filtre)
 {
     using (CFormFiltreDynamic form = new CFormFiltreDynamic())
     {
         form.m_filtreDyn = filtre;
         if (form.ShowDialog() == DialogResult.OK)
         {
             return(true);
         }
     }
     return(false);
 }
Exemplo n.º 20
0
        /// ////////////////////////////////////////////////////////////////////////////
        public static bool EditeComposant(
            CComposantFiltreDynamiqueTestNull composant,
            CFiltreDynamique filtre,
            IFournisseurProprietesDynamiques fournisseurProprietesFiltrees)
        {
            CFormEditComposantFiltreTestNull form = new CFormEditComposantFiltreTestNull();

            form.Init(composant, filtre);
            form.m_fournisseurProprietes = fournisseurProprietesFiltrees;
            bool bResult = form.ShowDialog() == DialogResult.OK;

            form.Dispose();
            return(bResult);
        }
        /// /////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            CResultAErreur result   = CResultAErreur.True;
            int            nVersion = GetNumVersion();

            result = serializer.TraiteVersion(ref nVersion);
            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }

            I2iSerializable objet = m_filtreDynamique;

            result = serializer.TraiteObject(ref objet, Process, Process.ContexteDonnee);
            if (!result)
            {
                result.EmpileErreur(I.T("Error in filter serialization|416"));
                return(result);
            }
            m_filtreDynamique = (CFiltreDynamique)objet;

            serializer.TraiteBool(ref m_bAppliquerFiltreParDefaut);

            if (nVersion >= 1)
            {
                objet  = ExpressionContexteFenetre;
                result = serializer.TraiteObject(ref objet);
                if (!result)
                {
                    return(result);
                }
                ExpressionContexteFenetre = (C2iExpression)objet;

                objet  = ExpressionTitreFenetre;
                result = serializer.TraiteObject(ref objet);
                if (!result)
                {
                    return(result);
                }
                ExpressionTitreFenetre = (C2iExpression)objet;
            }

            return(result);
        }
Exemplo n.º 22
0
        //private CDefinitionProprieteDynamique m_propriete;


        public CFiltreDynamique EditeFiltre(CFiltreDynamique filtreDynamique, IElementAVariablesDynamiquesAvecContexteDonnee eltAVariablesExternes)

        {
            if (filtreDynamique == null)
            {
                filtreDynamique = new CFiltreDynamique();
            }
            filtreDynamique.ElementAVariablesExterne = eltAVariablesExternes;
            CFormEditFiltreDynamique.EditeFiltre(filtreDynamique,
                                                 false,
                                                 true,
                                                 null);

            return(filtreDynamique);
        }
        private void m_btnFiltreDynamique_Click(object sender, EventArgs e)
        {
            CFiltreDynamique filtre = new CFiltreDynamique();

            filtre.TypeElements = m_typeEdite;
            if (CFormEditFiltreDynamique.EditeFiltre(filtre, true, true, null))
            {
                CResultAErreur result = filtre.GetFiltreData();
                if (result)
                {
                    CFiltreData filtreData = result.Data as CFiltreData;
                    m_txtFiltre.Text += filtreData.Filtre;
                }
            }
        }
Exemplo n.º 24
0
 private void ApplyFiltre(CFiltreDynamique filtre)
 {
     if (filtre != null)
     {
         m_lastFiltreDynamique = filtre;
         CResultAErreur result = filtre.GetFiltreData();
         if (!result)
         {
             CFormAlerte.Afficher(result.Erreur.Erreurs);
             return;
         }
         m_filtreUser = result.Data as CFiltreData;
         Init();
     }
 }
Exemplo n.º 25
0
        //-------------------------------------------------------------------------
        protected override CResultAErreur MyInitChamps()
        {
            CResultAErreur result = base.MyInitChamps();

            AffecterTitre(I.T("Gantt setting @1|20160", ParametrageGantt.Libelle));
            CFiltreDynamique filtre = ParametrageGantt.FiltreElements;

            if (filtre == null)
            {
                filtre = new CFiltreDynamique(ParametrageGantt.ContexteDonnee);
                filtre.TypeElements = typeof(CProjet);
            }
            m_panelFiltre.Init(filtre);
            UpdateGroupes();
            return(result);
        }
Exemplo n.º 26
0
        /// //////////////////////////////////////////////////////////
        private void ItemFiltreClick(object sender, EventArgs e)
        {
            if (!(sender is CMenuItemFiltre))
            {
                return;
            }
            CFiltreDynamiqueInDb filtreInDb = ((CMenuItemFiltre)sender).Filtre;
            CFiltreDynamique     filtreDyn  = filtreInDb.Filtre;
            CFiltreData          filtreData = CFormFiltreDynamic.GetFiltreData(filtreDyn);

            if (filtreData == null)
            {
                return;
            }
            CListeObjetsDonnees listeSel = new CListeObjetsDonnees(CSc2iWin32DataClient.ContexteCourant, m_typElements);

            filtreData      = CFiltreData.GetAndFiltre(filtreData, m_filtreInitial);
            listeSel.Filtre = filtreData;

            try
            {
                if (listeSel.CountNoLoad == 0)
                {
                    CFormAlerte.Afficher("Aucun " + DynamicClassAttribute.GetNomConvivial(m_typElements) + " ne correspond au filtre", EFormAlerteType.Exclamation);
                    return;
                }
                if (CFormAlerte.Afficher(I.T("You will add @1 element(s) to the selection. Continue ?|30088", listeSel.CountNoLoad.ToString()), EFormAlerteType.Question) == DialogResult.Yes)
                {
                    using (CWaitCursor waiter = new CWaitCursor())
                    {
                        bool bModif = false;
                        foreach (CObjetDonneeAIdNumerique objet in listeSel)
                        {
                            bModif |= AddElement(objet);
                        }
                        if (bModif && OnChangeSelection != null)
                        {
                            OnChangeSelection(this, new EventArgs( ));
                        }
                        UpdateListe();
                    }
                }
            }
            catch
            {
            }
        }
        /// /////////////////////////////////////////////////////////
        protected override CResultAErreur MySerialize(C2iSerializer serializer)
        {
            CResultAErreur result   = CResultAErreur.True;
            int            nVersion = GetNumVersion();

            result = serializer.TraiteVersion(ref nVersion);
            if (!result)
            {
                return(result);
            }
            result = base.MySerialize(serializer);
            if (!result)
            {
                return(result);
            }

            I2iSerializable objet = m_filtreDynamique;

            result = serializer.TraiteObject(ref objet, Process, Process.ContexteDonnee);
            if (!result)
            {
                result.EmpileErreur(I.T("Filter serialisation error|154"));
                return(result);
            }
            m_filtreDynamique = (CFiltreDynamique)objet;

            if (nVersion >= 1)
            {
                serializer.TraiteBool(ref m_bCompterSeulement);
            }
            else
            {
                m_bCompterSeulement = false;
            }

            if (nVersion >= 2)
            {
                serializer.TraiteBool(ref m_bAppliquerFiltreParDefaut);
            }
            else
            {
                m_bAppliquerFiltreParDefaut = true;
            }

            return(result);
        }
        /// ////////////////////////////////////////////////////////////////////////////
        public static bool EditeComposantRechercheAvancee(
            CComposantFiltreDynamiqueRechercheAvancee composant,
            CFiltreDynamique filtre,
            bool bAvecVariables,
            CDefinitionProprieteDynamique definitionRacineDeChampsFiltres /*pour traduction*/)
        {
            CFormEditComposantFiltreRechercheAvancee form = new CFormEditComposantFiltreRechercheAvancee();

            form.Init(composant, filtre, definitionRacineDeChampsFiltres);
            if (!bAvecVariables)
            {
                form.m_btnCreerVariable.Visible = false;
            }
            bool bResult = form.ShowDialog() == DialogResult.OK;

            form.Dispose();
            return(bResult);
        }
        //-----------------------------------------------------------
        public void AlloueControl()
        {
            if (m_variable == null)
            {
                return;
            }
            Type        typeElements    = null;
            string      strPropAffichee = "";
            CFiltreData filtre          = null;

            if (m_variable is CVariableDynamiqueSelectionObjetDonnee)
            {
                C2iExpression expression = ((CVariableDynamiqueSelectionObjetDonnee)m_variable).ExpressionAffichee;
                if (expression is C2iExpressionChamp)
                {
                    strPropAffichee = ((C2iExpressionChamp)expression).DefinitionPropriete.NomProprieteSansCleTypeChamp;
                }
                CFiltreDynamique filtreDyn = ((CVariableDynamiqueSelectionObjetDonnee)m_variable).FiltreSelection;
                filtre       = GetFiltre(filtreDyn);
                typeElements = filtreDyn.TypeElements;
            }
            else if (m_variable is CChampCustom)
            {
                CFiltreDynamique filtreDyn = ((CChampCustom)m_variable).FiltreObjetDonnee;
                if (filtreDyn != null)
                {
                    filtre = GetFiltre(filtreDyn);
                }
                typeElements = ((CChampCustom)m_variable).TypeObjetDonnee;
            }

            if (m_control == null)
            {
                m_control = new C2iTextBoxFiltreRapide();
                m_control.ElementSelectionneChanged += new EventHandler(m_control_ElementSelectionneChanged);
            }
            if (strPropAffichee == "")
            {
                strPropAffichee = DescriptionFieldAttribute.GetDescriptionField(typeElements, "DescriptionElement");
            }
            m_control.InitAvecFiltreDeBase(typeElements,
                                           strPropAffichee,
                                           filtre, true);
        }
        public void FillInventaireNonRecursifTest5()
        {
            // Test Inventaire d'un objet
            CFiltreDynamique filtreDyn = new CFiltreDynamique();

            m_helper.FillInventaireNonRecursifTestHelper <C2iExpression>(filtreDyn);
            // Asserts
            Assert.AreEqual(3, m_helper.ListeResultInventaire.Count);     // 3 Expressions constante false
            Assert.AreEqual(1, m_helper.ListeResultHorsInventaire.Count); // 1 Formulaire C2iWndFenetre qui utilise des C2iExpression

            m_helper.FillInventaireNonRecursifTestHelper <CFiltreData>(filtreDyn);
            Assert.AreEqual(0, m_helper.ListeResultInventaire.Count);     //
            Assert.AreEqual(0, m_helper.ListeResultHorsInventaire.Count); //

            C2iWndFenetre fenetre = filtreDyn.FormulaireEdition as C2iWndFenetre;

            m_helper.FillInventaireNonRecursifTestHelper <C2iExpression>(fenetre);
            Assert.AreEqual(0, m_helper.ListeResultInventaire.Count);
            Assert.AreEqual(18, m_helper.ListeResultHorsInventaire.Count);


            m_helper.FillInventaireNonRecursifTestHelper <CFormuleNommee>(fenetre);
            Assert.AreEqual(3, m_helper.ListeResultInventaire.Count);
            Assert.AreEqual(0, m_helper.ListeResultHorsInventaire.Count);
            m_helper.FillInventaireNonRecursifTestHelper <C2iExpression>(fenetre);
            Assert.AreEqual(0, m_helper.ListeResultInventaire.Count);
            Assert.AreEqual(24, m_helper.ListeResultHorsInventaire.Count); // 18 + 3 Formules Nommees + 3 Def Methode Dynamique

            // Ajout de variables
            CVariableDynamiqueSaisie varX = new CVariableDynamiqueSaisie();

            varX.Nom = "varX";
            filtreDyn.AddVariable(varX);
            CVariableDynamiqueSaisie varY = new CVariableDynamiqueSaisie();

            varX.Nom = "varY";
            filtreDyn.AddVariable(varY);
            m_helper.FillInventaireNonRecursifTestHelper <IVariableDynamique>(filtreDyn);
            Assert.AreEqual(2, m_helper.ListeResultInventaire.Count);
            Assert.AreEqual(1, m_helper.ListeResultHorsInventaire.Count);
            m_helper.FillInventaireNonRecursifTestHelper <C2iExpression>(filtreDyn);
            Assert.AreEqual(3, m_helper.ListeResultInventaire.Count);
            Assert.AreEqual(5, m_helper.ListeResultHorsInventaire.Count);
        }