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); }
//------------------------------------------------------------------ public CResultAErreur Actualiser() { if (m_listeObjets != null) { m_listeObjets.Refresh(); } InitPanel(); return(CResultAErreur.True); }
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); }
/// ///////////////////////////////////////////////////////////// ///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); }