//-------------------------------------------------------------- public override sc2i.common.CResultAErreur MyInitChamps() { if (ObjetEdite is CTypeLienReseau) { //m_spvTypeLiaison = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(ObjetEdite as CTypeLienReseau) as CSpvTypliai; m_spvTypeLiaison = CSpvTypliai.GetObjetSpvFromObjetTimos(ObjetEdite as CTypeLienReseau) as CSpvTypliai; m_chkSuperviser.Checked = m_spvTypeLiaison != null; } CResultAErreur result = base.MyInitChamps(); if (!result) { return(result); } return(result); }//MyInitChamps()
//////////////////////////////////////////////////////////////////// public static void PropagerCLienReseau(CContexteDonnee contexte, Hashtable tableData, ref CResultAErreur result) { ///Pour éviter de traiter plusieurs fois une liaisons lors d'une sauvegarde Dictionary <DataRow, bool> rowsDejaTraitees = (Dictionary <DataRow, bool>)tableData[typeof(CSpvLiaiServeur)]; if (rowsDejaTraitees == null) { rowsDejaTraitees = new Dictionary <DataRow, bool>(); tableData[typeof(CSpvLiaiServeur)] = rowsDejaTraitees; } DataTable dt = contexte.Tables[CLienReseau.c_nomTable]; if (dt != null) { ArrayList rows = new ArrayList(dt.Rows); foreach (DataRow row in rows) { if (row.RowState != DataRowState.Unchanged) { if (!rowsDejaTraitees.ContainsKey(row)) { rowsDejaTraitees[row] = true; switch (row.RowState) { case DataRowState.Added: case DataRowState.Modified: CLienReseau lienTimos = new CLienReseau(row); //force la création du schéma pour qu'il se synchronise lienTimos.GetSchemaReseauADessiner(true); CSpvLiai lienSpv = CSpvLiai.GetSpvLiaiFromLienReseau(lienTimos) as CSpvLiai; result = CSpvLiai.CanSupervise(lienTimos); if (lienSpv != null) { if (row.HasVersion(DataRowVersion.Original)) { if (!row[CTypeLienReseau.c_champId].Equals(row[CTypeLienReseau.c_champId, DataRowVersion.Original])) { //CSpvTypliai typeLiai = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(lienTimos.TypeLienReseau) as CSpvTypliai; CSpvTypliai typeLiai = CSpvTypliai.GetObjetSpvFromObjetTimos(lienTimos.TypeLienReseau) as CSpvTypliai; if (typeLiai == null) { result = lienSpv.Delete(true); if (!result) { result.EmpileErreur("Can not cancel supervision of link @1|20005", lienTimos.Libelle); return; } } else { lienSpv.NomTypeLiaison = typeLiai.Libelle; } } } if (!result) { result.EmpileErreur(I.T("Invalide properties for supervised link @1|20004", lienTimos.Libelle)); return; } if (lienSpv != null && lienSpv.IsValide()) { // lienSpv.CopyFromLienReseau(lienTimos); lienSpv.CopyFromObjetTimos(lienTimos); } } else { if (result) { //Création de la liaison SPV CSpvLiai liai = GetSpvLiai(row); } else { //CSpvTypliai typeLiai = CSpvTypliai.GetSpvTypliaiFromTypeLienReseau(lienTimos.TypeLienReseau) as CSpvTypliai; /*CSpvTypliai typeLiai = CSpvTypliai.GetObjetSpvFromObjetTimos(lienTimos.TypeLienReseau) as CSpvTypliai; * if (typeLiai == null)*/ result = CResultAErreur.True; } } break; default: break; } } } } } }