Example #1
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 SelectionMultiples()
        {
            CListeObjetsDonnees liste = ListeRelations;

            CObjetDonneeAIdNumerique[] elts = (CObjetDonneeAIdNumerique[])CInterpreteurTextePropriete.CreateListeFrom(
                liste, "ElementLie", typeof(CObjetDonneeAIdNumerique));
            elts = CFormSelectElementsMultiples.GetListeElements(
                m_typeRelation.TypeElements,
                m_typeRelation.FiltreDataAssocie,
                elts);
            if (elts != null)
            {
                using (CWaitCursor waiter = new CWaitCursor())
                {
                    //Table Entite->Vrai si existe dans les deux liste
                    //			->Faux si existe uniquement dans l'ancienne liste (à supprimer)
                    //			->Null si existe uniquement dans la nouvelle liste (à créer)
                    Hashtable tableExistants = new Hashtable();
                    foreach (CRelationEntreeAgenda_ElementAAgenda rel in ListeRelations)
                    {
                        tableExistants[rel.ElementLie] = false;
                    }
                    foreach (CObjetDonneeAIdNumerique objet in elts)
                    {
                        if (tableExistants[objet] == null)                          //création
                        {
                            CRelationEntreeAgenda_ElementAAgenda rel = new CRelationEntreeAgenda_ElementAAgenda(m_entreeAgenda.ContexteDonnee);
                            rel.CreateNewInCurrentContexte();
                            rel.ElementLie   = objet;
                            rel.EntreeAgenda = m_entreeAgenda;
                            rel.RelationTypeEntree_TypeElement = m_typeRelation;
                        }
                        else
                        {
                            tableExistants[objet] = true;
                        }
                    }
                    //Supprime ceux qui doivent être supprimés
                    foreach (CRelationEntreeAgenda_ElementAAgenda rel in ListeRelations.ToArrayList())
                    {
                        object val = tableExistants[rel.ElementLie];
                        if (val is bool && ((bool)val) == false)
                        {
                            rel.Delete();
                        }
                    }
                }
            }
            RefreshText();
        }
Example #3
0
 private void AjouteElementUnique()
 {
     if (m_selectionneurElement.ElementSelectionne is CObjetDonneeAIdNumerique)
     {
         CObjetDonneeAIdNumerique objet = (CObjetDonneeAIdNumerique)m_selectionneurElement.ElementSelectionne;
         CListeObjetsDonnees      liste = m_entreeAgenda.RelationsElementsAgenda;
         liste.Filtre = new CFiltreData(CRelationTypeEntreeAgenda_TypeElementAAgenda.c_champId + "=@1",
                                        m_typeLien.Id);
         liste.Filtre = CFiltreData.GetAndFiltre(liste.Filtre, new CFiltreData(CRelationEntreeAgenda_ElementAAgenda.c_champIdElementAAgenda + "=@1 and " +
                                                                               CRelationEntreeAgenda_ElementAAgenda.c_champTypeElementAAgenda + "=@2",
                                                                               objet.Id,
                                                                               objet.GetType().ToString()));
         if (liste.Count == 0)
         {
             CRelationEntreeAgenda_ElementAAgenda rel = new CRelationEntreeAgenda_ElementAAgenda(m_entreeAgenda.ContexteDonnee);
             rel.CreateNewInCurrentContexte();
             rel.EntreeAgenda = m_entreeAgenda;
             rel.ElementLie   = objet;
             rel.RelationTypeEntree_TypeElement = m_typeLien;
             UpdateListe();
         }
     }
 }