Beispiel #1
0
        public void SupprimeActeurDansV1()
        {
            ResetModifs();
            CActeur acteur    = ActeurReferentiel;
            int     nIdActeur = acteur.Id;

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[0], false);

            CListeObjetsDonnees listeActeurs = new CListeObjetsDonnees(m_contexteDonnee, typeof(CActeur));

            listeActeurs.Filtre = new CFiltreData(CActeur.c_champId + "=@1", nIdActeur);
            Assert.IsTrue(acteur.Delete());

            m_contexteDonnee.SetVersionDeTravail(null, false);
            Assert.IsTrue(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(1, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[0], false);
            Assert.IsFalse(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(0, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[1], false);
            Assert.IsTrue(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(1, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[2], false);
            Assert.IsFalse(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(0, listeActeurs.Count);
        }
        /// ////////////////////////////////////////////////
        private bool Init(DataRow row, CListeObjetsDonnees listePossibles, bool bResolutionAutomatique)
        {
            m_rowToMap       = row;
            m_listePossibles = listePossibles;

            DisplayElement(row, m_gridObjetAMapper);

            //regarde dans la liste s'il y a un élément existant avec le même id
            CFiltreData oldFiltre = m_listePossibles.Filtre;
            CFiltreData newFiltre = CFiltreData.GetAndFiltre(
                oldFiltre,
                new CFiltreData(row.Table.PrimaryKey[0].ColumnName + "=@1", row[row.Table.PrimaryKey[0]]));

            m_listePossibles.Filtre = newFiltre;
            m_listePossibles.Refresh();
            if (m_listePossibles.Count > 0)
            {
                m_objetSel = (CObjetDonneeAIdNumeriqueAuto)m_listePossibles[0];
                if (bResolutionAutomatique)
                {
                    DataRow rowObjet = m_objetSel.Row.Row;
                    //Compare toutes les valeurs, si elles sont toutes égales, on sélectionne automatique
                    //L'élément
                    bool            bAllOk    = true;
                    CStructureTable structure = CStructureTable.GetStructure(m_objetSel.GetType());
                    foreach (CInfoChampTable info in structure.Champs)
                    {
                        if (info.NomChamp != CSc2iDataConst.c_champIdSynchro && !m_rowToMap[info.NomChamp].Equals(rowObjet[info.NomChamp]))
                        {
                            bAllOk = false;
                            break;
                        }
                    }
                    if (bAllOk)
                    {
                        return(true);
                    }
                }
                DisplayElement(m_objetSel.Row.Row, m_gridObjetPropose);
            }
            else
            {
                DisplayElement(null, m_gridObjetPropose);
            }
            m_listePossibles.Filtre = oldFiltre;
            m_listePossibles.Refresh();



            m_wndListeElements.ListeSource = m_listePossibles;
            return(false);
        }
Beispiel #3
0
 //------------------------------------------------------------------
 public CResultAErreur Actualiser()
 {
     if (m_listeObjets != null)
     {
         m_listeObjets.Refresh();
     }
     InitPanel();
     return(CResultAErreur.True);
 }
Beispiel #4
0
        public void ModifDansV1PuisSuppression()
        {
            ResetModifs();
            CActeur acteur    = ActeurReferentiel;
            int     nIdActeur = acteur.Id;

            //Crée l'objet dans V1
            SetSituation(new M(m_nIdsVersions[0], new CV(CActeur.c_champNom, "TOTO")),
                         new M(m_nIdsVersions[2], new CV(CActeur.c_champNom, "TOTO 2")));

            CListeObjetsDonnees listeActeurs = new CListeObjetsDonnees(m_contexteDonnee, typeof(CActeur));

            listeActeurs.Filtre = new CFiltreData(CActeur.c_champId + "=@1", nIdActeur);
            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[0], false);
            Assert.IsFalse(acteur.CanDelete());            //On ne peut pas car il est utilisé par V3
            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[2], false);
            Assert.IsTrue(acteur.Delete());
            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[0], false);
            acteur = ActeurReferentiel;
            Assert.IsTrue(acteur.Delete());

            m_contexteDonnee.SetVersionDeTravail(null, false);
            acteur = ActeurReferentiel;
            Assert.IsTrue(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(1, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[0], false);
            Assert.IsFalse(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(0, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[1], false);
            Assert.IsTrue(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(1, listeActeurs.Count);

            m_contexteDonnee.SetVersionDeTravail(m_nIdsVersions[2], false);
            Assert.IsFalse(acteur.IsValide());
            listeActeurs.Refresh();
            Assert.AreEqual(0, listeActeurs.Count);
        }
Beispiel #5
0
        /// /////////////////////////////////////////////////////////////
        ///Implémente le tri d'une liste d'objets donnée
        /// <summary>
        /// Sort a column.
        public override void SortColumn(int nColumn)
        {
            if (Count < 2)                                      // nothing to sort
            {
                return;
            }

            if (nColumn < 0 || nColumn > Columns.Count)
            {
                return;
            }

            if (!(ListeSource is CListeObjetsDonnees))
            {
                base.SortColumn(nColumn);
                return;
            }


            GLColumn            col          = Columns[nColumn];
            CListeObjetsDonnees listeDonnees = (CListeObjetsDonnees)ListeSource;

            string strProp = CInfoStructureDynamique.GetProprieteDotNet(col.Propriete);

            if (strProp.IndexOf('.') < 0)
            {
                //Trouve la propriété
                PropertyInfo info = listeDonnees.TypeObjets.GetProperty(strProp);
                if (info != null)
                {
                    //y-a-t-il un attribut TableField sur la propriété
                    object[] attribs = info.GetCustomAttributes(typeof(TableFieldPropertyAttribute), true);
                    if (attribs.Length > 0)
                    {
                        if (CheckedItems.Count != 0 && CheckBoxes)
                        {
                            if (CFormAlerte.Afficher(I.T("Warning, the sorting will uncheck all checked elements. Continue ?|139"),
                                                     EFormAlerteType.Question) == DialogResult.No)
                            {
                                return;
                            }
                        }
                        ResetCheck();
                        TableFieldPropertyAttribute fieldAttr = (TableFieldPropertyAttribute)attribs[0];
                        string strSort = fieldAttr.NomChamp;
                        if (strSort == m_strLastSort)
                        {
                            m_bSortAsc = !m_bSortAsc;
                        }
                        else
                        {
                            m_bSortAsc = true;
                        }
                        m_strLastSort = strSort;
                        if (!m_bSortAsc)
                        {
                            strSort += " desc";
                        }
                        listeDonnees.Tri = strSort;
                        listeDonnees.Refresh();
                        Refresh();
                        base.SortIndex = nColumn;
                        Columns[nColumn].LastSortState = m_bSortAsc ? ColumnSortState.SortedDown : ColumnSortState.SortedUp;
                        return;
                    }
                }
            }
            CFormAlerte.Afficher(I.T("Sort on this field is impossible|138"), EFormAlerteType.Exclamation);
        }