Esempio n. 1
0
        //-------------------------------------------------------------------------
        private void OnMenuFiltrer(object sender, System.EventArgs e)
        {
            try
            {
                if (sender is CMenuItemAFiltreDynamique)
                {
                    CFiltreDynamiqueInDb filtre = ((CMenuItemAFiltreDynamique)sender).Filtre;
                    if (filtre == null)
                    {
                        m_filtreEntrees = null;
                        CheckMenuFiltre((CMenuItemAFiltreDynamique)sender);
                        ((IControlAgenda)m_controlAffichage).FiltreAAppliquer = null;
                        return;
                    }

                    CFiltreData filtreData = null;
                    filtreData = sc2i.win32.data.dynamic.CFormFiltreDynamic.GetFiltreData(filtre.Filtre);
                    if (filtreData != null)
                    {
                        m_filtreEntrees = filtreData;
                        ((IControlAgenda)m_controlAffichage).FiltreAAppliquer = filtreData;
                        CheckMenuFiltre((CMenuItemAFiltreDynamique)sender);
                    }
                }
            }
            catch
            {
                CFormAlerte.Afficher(I.T("Error while applying filter|30083"), EFormAlerteType.Erreur);
            }
        }
Esempio n. 2
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);
            }
        }
Esempio n. 3
0
        //---------------------------------------------------------------------
        protected override void MyCreateControle(CCreateur2iFormulaireV2 createur, C2iWnd wnd, Control parent, IFournisseurProprietesDynamiques fournisseur)
        {
            C2iWndListeSpeedStandard listeStd = wnd as C2iWndListeSpeedStandard;

            if (listeStd == null)
            {
                return;
            }
            CCreateur2iFormulaireV2.AffecteProprietesCommunes(wnd, m_panelListeSpeedStd);
            m_fournisseurProprietes = fournisseur;
            m_panelListeSpeedStd.BoutonAjouterVisible                    = listeStd.HasAddButton;
            m_panelListeSpeedStd.BoutonSupprimerVisible                  = listeStd.HasDeleteButton;
            m_panelListeSpeedStd.BoutonModifierVisible                   = listeStd.HasDetailButton;
            m_panelListeSpeedStd.BoutonFiltrerVisible                    = listeStd.HasFilterButton;
            m_panelListeSpeedStd.AllowCustomisation                      = listeStd.UserCustomizable;
            m_panelListeSpeedStd.OnChangeSelection                      += new EventHandler(m_panelListeSpeedStd_OnChangeSelection);
            m_panelListeSpeedStd.AffectationsPourNouveauxElements        = listeStd.Affectations;
            m_panelListeSpeedStd.ObjetReferencePourAffectationsInitiales = EditedElement;
            if (listeStd.AlternativeEditedElement != null)
            {
                m_panelListeSpeedStd.TraiterModificationElement = TraiterEditionPanel;
            }
            // Initialisation des colonnes
            foreach (C2iWndListeSpeedStandard.CColonneListeSpeedStd col in WndListeStandard.Columns)
            {
                if (col.InfoChampDynamique != null)
                {
                    m_panelListeSpeedStd.AddColonne(col.Titre, col.InfoChampDynamique.NomPropriete, col.Width);
                }
                //string strCle = "";
                //string strProp = "";
                //if (!CDefinitionProprieteDynamique.DecomposeNomProprieteUnique(col.InfoChampDynamique.NomPropriete, ref strCle, ref strProp))
                //    strProp = col.InfoChampDynamique.Nom;
                //if(col.InfoChampDynamique != null)
                //    m_panelListeSpeedStd.AddColonne(col.Titre, strProp, col.Width);
            }
            // Initialise le filtre
            if (WndListeStandard.Filter != null)
            {
                CDbKey dbKeyFiltreStandard  = WndListeStandard.Filter.DbKey;
                CFiltreDynamiqueInDb filtre = new CFiltreDynamiqueInDb(CSc2iWin32DataClient.ContexteCourant);
                if (filtre.ReadIfExists(dbKeyFiltreStandard))
                {
                    m_panelListeSpeedStd.FiltrePrefere = filtre.Filtre;
                }
            }
            // Initialise le nom du controle pour le registre des colonnes
            string strNom = "CustomListeSpeedStandard_";

            if (WndListeStandard.SourceFormula != null)
            {
                strNom += WndListeStandard.SourceFormula.TypeDonnee.TypeDotNetNatif.ToString();
            }
            m_panelListeSpeedStd.Name = strNom;

            m_panelListeSpeedStd.UseCheckBoxes = WndListeStandard.UseCheckBoxes;


            parent.Controls.Add(m_panelListeSpeedStd);
        }
        /// //////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CFiltreDynamiqueInDb filtre = (CFiltreDynamiqueInDb)objet;
                if (filtre.Libelle.Trim() == "")
                {
                    result.EmpileErreur(I.T("The filter name cannot be empty|117"));
                }
                CFiltreData filtreData = new CFiltreData(
                    CFiltreDynamiqueInDb.c_champLibelle + "=@1 and " +
                    CFiltreDynamiqueInDb.c_champTypeElements + "=@2 and " +
                    CFiltreDynamiqueInDb.c_champId + "<>@3",
                    filtre.Libelle,
                    filtre.StringTypeElements,
                    filtre.Id);
                if (CountRecords(CFiltreDynamiqueInDb.c_nomTable, filtreData) != 0)
                {
                    result.EmpileErreur(I.T("This name is already used|118"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
Esempio n. 5
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
            {
            }
        }
        /// //////////////////////////////////////////////////////////
        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
            {
            }
        }
        //------------------------------------------------------------------------------
        private void m_listBox_SelectedValueChanged(object sender, EventArgs e)
        {
            CFiltreDynamiqueInDb filtre = m_listBox.SelectedItem as CFiltreDynamiqueInDb;

            if (filtre != null)
            {
                m_filtre = filtre;
            }
            else
            {
                m_filtre = null;
            }
            if (m_service != null)
            {
                m_service.CloseDropDown();
            }
        }
        public C2iWndListeSpeedStandard.CPointeurFiltreDynamiqueInDb EditeFiltre(Type typeElement, IServiceProvider provider, object value)
        {
            m_typeElement = typeElement;

            // Uses the IWindowsFormsEditorService to display a
            // drop-down UI in the Properties window.
            IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));

            if (edSvc != null)
            {
                m_typeElement = typeElement;
                m_service     = edSvc;
                // Initialise le dernier filtre sélectionné
                CFiltreDynamiqueInDb filtre = new CFiltreDynamiqueInDb(CSc2iWin32DataClient.ContexteCourant);
                C2iWndListeSpeedStandard.CPointeurFiltreDynamiqueInDb ptrFilter = value as C2iWndListeSpeedStandard.CPointeurFiltreDynamiqueInDb;
                if (ptrFilter != null)
                {
                    if (filtre.ReadIfExists(ptrFilter.DbKey))
                    {
                        Filtre = filtre;
                    }
                }

                // Affiche le controle dans une fenêtre déroulante
                edSvc.DropDownControl(this);

                filtre = Filtre;
                if (filtre != null)
                {
                    if (ptrFilter == null)
                    {
                        ptrFilter = new C2iWndListeSpeedStandard.CPointeurFiltreDynamiqueInDb();
                    }
                    ptrFilter.DbKey   = filtre.DbKey;
                    ptrFilter.Libelle = filtre.Libelle;
                    return(ptrFilter);
                }
            }

            return(new C2iWndListeSpeedStandard.CPointeurFiltreDynamiqueInDb());
        }
Esempio n. 9
0
 //----------------------------------------------------------------------------
 private void m_lnkOptionsFiltre_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
 {
     if (m_actionEditee != null)
     {
         CFiltreDynamiqueInDb filtre = new CFiltreDynamiqueInDb(CContexteDonneeSysteme.GetInstance());
         if (filtre.ReadIfExists(m_actionEditee.IdFiltreDynamiqueAUtiliser))
         {
             CFiltreDynamique filtreDyn = filtre.Filtre;
             if (filtreDyn != null)
             {
                 List <CFormuleNommee> lst = new List <CFormuleNommee>();
                 foreach (IVariableDynamique variable in filtreDyn.ListeVariables)
                 {
                     CFormuleNommee formule = new CFormuleNommee(variable.Nom, null);
                     formule.Id = variable.IdVariable;
                     foreach (CFormuleNommee formuleEx in m_actionEditee.ValeursVariablesFiltre)
                     {
                         if (formuleEx.Id == variable.IdVariable)
                         {
                             formule.Formule = formuleEx.Formule;
                         }
                     }
                     lst.Add(formule);
                 }
                 CFormuleNommee[] formules = lst.ToArray();
                 if (CFormEditeListeFormulesNommees.EditeFormules(ref formules, m_objetPourSousProprietes))
                 {
                     lst = new List <CFormuleNommee>();
                     foreach (CFormuleNommee formule in formules)
                     {
                         if (formule.Formule != null)
                         {
                             lst.Add(formule);
                         }
                     }
                     m_actionEditee.ValeursVariablesFiltre = lst.ToArray();
                 }
             }
         }
     }
 }
Esempio n. 10
0
        void menuFiltre_Click(object sender, EventArgs e)
        {
            CObjetDonneeMenuItem item       = sender as CObjetDonneeMenuItem;
            CFiltreDynamiqueInDb filtreInDb = item != null ? item.ObjetDragDrop as CFiltreDynamiqueInDb : null;

            if (filtreInDb != null)
            {
                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;
                    }
                }
                m_filtreDynamicSelectionnee = filtreInDb;
                m_filtreDynamicApplique     = filtre;
                m_chkIntersFiltre.Checked   = true;
                m_setIdsInterventionsVisiblesCalculéDefiltreEtListe = null;
                FillListeIntersAvecDelai();
            }
        }
Esempio n. 11
0
 public CMenuItemAFiltreDynamique(CFiltreDynamiqueInDb filtre)
 {
     Filtre = filtre;
 }
Esempio n. 12
0
        /// //////////////////////////////////////////////////////////////////
        protected static CResultAErreur ExecuteActionListe(CActionSur2iLinkAfficherListe action, object objetCible)
        {
            CResultAErreur   result = CResultAErreur.True;
            CFiltreDynamique filtre = action.Filtre;

            if (filtre == null || filtre.TypeElements == null)
            {
                result.EmpileErreur(I.T("Link parameter error : filter is null|30077"));
                return(result);
            }

            if (objetCible != null)
            {
                CObjetPourSousProprietes objetPourSousProp = null;
                objetPourSousProp = new CObjetPourSousProprietes(objetCible);
                IVariableDynamique variable = CActionSur2iLinkAfficherListe.AssureVariableElementCible(filtre, objetPourSousProp);

                /*if ( variable.TypeDonnee.TypeDotNetNatif != objetCible.GetType() )
                 * {
                 *      result.EmpileErreur(I.T("Expected type in the filter does not correspond to object type|30078"));
                 *      return result;
                 * }*/
                if (variable != null)
                {
                    filtre.SetValeurChamp(variable.IdVariable, objetCible);
                }
            }
            result = filtre.GetFiltreData();
            if (!result)
            {
                result.EmpileErreur(I.T("Filter error|30079"));
                return(result);
            }
            CFiltreData filtreData = (CFiltreData)result.Data;
            Type        tp         = CFormFinder.GetTypeFormToList(filtre.TypeElements);

            try
            {
                if (tp != null || tp.IsSubclassOf(typeof(CFormListeStandard)))
                {
                    CFormListeStandard            form    = ( CFormListeStandard )Activator.CreateInstance(tp, new object[0]);
                    CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(objetCible);
                    ctxEval.AttacheObjet(typeof(CContexteDonnee), CSc2iWin32DataClient.ContexteCourant);
                    if (action.FormuleContexte != null)
                    {
                        result = action.FormuleContexte.Eval(ctxEval);
                        if (!result)
                        {
                            result.EmpileErreur(I.T("Form context evaluation error|30080"));
                            return(result);
                        }
                        if (result.Data != null)
                        {
                            form.ContexteUtilisation = result.Data.ToString();
                        }
                    }
                    if (action.FormuleTitre != null)
                    {
                        result = action.FormuleTitre.Eval(ctxEval);
                        if (!result)
                        {
                            result.EmpileErreur(I.T("Form title evaluation error|30081"));
                            return(result);
                        }
                        if (result.Data != null)
                        {
                            form.TitreForce = result.Data.ToString();
                        }
                    }
                    form.FiltreDeBase = filtreData;
                    form.AffectationsPourNouveauxElements        = action.Affectations;
                    form.ObjetReferencePourAffectationsInitiales = objetCible;

                    form.BoutonAjouterVisible   = action.ShowBoutonAjouter;
                    form.BoutonModifierVisible  = action.ShowBoutonDetail;
                    form.BoutonSupprimerVisible = action.ShowBoutonSupprimer;
                    if (action.IdFiltreDynamiqueAUtiliser >= 0)
                    {
                        CFiltreDynamiqueInDb filtretoUse = new CFiltreDynamiqueInDb(CContexteDonneeSysteme.GetInstance());
                        if (filtretoUse.ReadIfExists(action.IdFiltreDynamiqueAUtiliser))
                        {
                            CFiltreDynamique filtreDyn = filtretoUse.Filtre;
                            if (filtreDyn != null)
                            {
                                CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);
                                foreach (CFormuleNommee formule in action.ValeursVariablesFiltre)
                                {
                                    if (formule.Formule != null)
                                    {
                                        CResultAErreur res = formule.Formule.Eval(ctx);
                                        if (res)
                                        {
                                            try
                                            {
                                                string strId = formule.Id;
                                                filtreDyn.SetValeurChamp(strId, res.Data);
                                            }
                                            catch { }
                                        }
                                    }
                                }
                                form.FiltrePrefere = filtreDyn;
                            }
                        }
                    }
                    if (action.ActionSurDetail != null)
                    {
                        CExecuteurActionSurPanelListeSpeedStandard executeur = new CExecuteurActionSurPanelListeSpeedStandard(action.ActionSurDetail, form);
                        form.SetModifierElementDelegate(new CPanelListeSpeedStandard.ModifierElementDelegate(executeur.ExecuteAction));
                    }
                    CTimosApp.Navigateur.AffichePage(form);
                }
                else
                {
                    result.EmpileErreur(I.T("Not avaliable|30082"));
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }
Esempio n. 13
0
 public CMenuItemFiltre(CFiltreDynamiqueInDb filtre) :
     base(filtre.Libelle)
 {
     m_filtre = filtre;
 }
 //-------------------------------------------------------------------------
 public CFormEditionFiltreDynamique(CFiltreDynamiqueInDb filtre, CListeObjetsDonnees liste)
     : base(filtre, liste)
 {
     // Cet appel est requis par le Concepteur Windows Form.
     InitializeComponent();
 }
Esempio n. 15
0
 public CMenuItemFiltre(CFiltreDynamiqueInDb filtre)
 {
     Filtre = filtre;
     Text   = filtre.Libelle;
 }
Esempio n. 16
0
 public CMenuItemFiltre(CFiltreDynamiqueInDb filtre)
 {
     Filtre = filtre;
     Text   = DynamicClassAttribute.GetNomConvivial(filtre.TypeElements) + "-" + filtre.Libelle;
 }