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
            {
            }
        }
Example #2
0
        public override CResultAErreur TraitementAvantSauvegarde(CContexteDonnee contexte)
        {
            CResultAErreur result = base.TraitementAvantSauvegarde(contexte);

            if (!result)
            {
                return(result);
            }
            DataTable table    = contexte.Tables[GetNomTable()];
            bool      bOldMode = contexte.IsModeDeconnecte;

            if (!bOldMode)
            {
                contexte.BeginModeDeconnecte();
            }
            ArrayList lst = new ArrayList(table.Rows);

            foreach (DataRow row in lst)
            {
                if (row.RowState == DataRowState.Deleted)
                {
                    CRelationEntreeAgenda_ElementAAgenda relation = new CRelationEntreeAgenda_ElementAAgenda(row);
                    relation.VersionToReturn = DataRowVersion.Original;
                    if (relation.RelationTypeEntree_TypeElement.SuppressionAutomatique && relation.EntreeAgenda.Row.RowState != DataRowState.Deleted)
                    {
                        bool bIsRemplace = false;
                        foreach (CRelationEntreeAgenda_ElementAAgenda rel in relation.EntreeAgenda.RelationsElementsAgenda)
                        {
                            if (rel.RelationTypeEntree_TypeElement.Id == relation.RelationTypeEntree_TypeElement.Id)
                            {
                                bIsRemplace = true;
                                break;
                            }
                        }
                        if (!bIsRemplace)
                        {
                            result = relation.EntreeAgenda.Delete();
                            if (!result)
                            {
                                return(result);
                            }
                        }
                    }
                }
            }
            if (!bOldMode)
            {
                contexte.EndModeDeconnecteSansSauvegardeEtSansReject();
            }
            return(result);
        }
        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 #4
0
        //////////////////////////////////////////////////////////////////////
        public override CResultAErreur VerifieDonnees(CObjetDonnee objet)
        {
            CResultAErreur result = CResultAErreur.True;

            try
            {
                CRelationEntreeAgenda_ElementAAgenda rel = (CRelationEntreeAgenda_ElementAAgenda)objet;

                return(result);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error in the data of Diary Entry|297"));
            }
            return(result);
        }
Example #5
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();
         }
     }
 }
 private void m_btnSelect_Click(object sender, System.EventArgs e)
 {
     if (m_typeRelation.Multiple)
     {
         SelectionMultiples();
         //CFormSelectLiensAgendaMultiples.GetListeElements ( m_entreeAgenda, m_typeRelation );
         RefreshText();
     }
     else
     {
         Type typeForm = CFormFinder.GetTypeFormToList(m_typeRelation.TypeElements);
         if (typeForm == null || !typeForm.IsSubclassOf(typeof(CFormListeStandard)))
         {
             CFormAlerte.Afficher(I.T("The system cannot list elements from type @1|30119", m_typeRelation.TypeElementsConvivial), EFormAlerteType.Exclamation);
             return;
         }
         CObjetDonneeAIdNumerique objetSel;
         CFormListeStandard       form = (CFormListeStandard)Activator.CreateInstance(typeForm, new object[] {});
         form.FiltreDeBase = m_typeRelation.FiltreDataAssocie;
         objetSel          = (CObjetDonneeAIdNumerique)CFormNavigateurPopupListe.SelectObject(form, null, CFormNavigateurPopupListe.CalculeContexteUtilisation(this));
         if (objetSel != null)
         {
             if (ListeRelations.Count > 1)
             {
                 DeleteAll();
             }
             if (ListeRelations.Count == 0)
             {
                 CRelationEntreeAgenda_ElementAAgenda rel = new CRelationEntreeAgenda_ElementAAgenda(m_entreeAgenda.ContexteDonnee);
                 rel.EntreeAgenda = m_entreeAgenda;
                 rel.RelationTypeEntree_TypeElement = m_typeRelation;
             }
             ((CRelationEntreeAgenda_ElementAAgenda)ListeRelations[0]).ElementLie = objetSel;
             RefreshText();
         }
     }
 }