// DuplicateRack // Mai 2007 // Ce script duplique l'emplacement spécifié // Paramétrage string sourceRackName = "Cave climadiff"; if(App.ActiveCellar == null) { MessageBox.Show("Aucune cave ouverte"); return; } // Récupere l'emplacement source. Rack theRack = null; ObjectCollection racks = App.ActiveCellar.GetCollection((ushort)ObjectType.Rack); for (int i = 0; i < racks.Count; i++) { Rack rk = (Rack)racks[i]; if(rk.Name.Trim().ToLower() == sourceRackName.ToLower()) { theRack = rk; break; } } // Verifie que le rack a été trouvé if(theRack == null) { MessageBox.Show("Impossible de continuer : \nL'emplacement \"" + sourceRackName + "\" est introuvable."); return; } // OK -> création de l'emplacement RackBuilder rb = new RackBuilder(App.ActiveCellar); rb.SetColumnsSize(theRack.Columns); rb.SetRowsSize(theRack.Rows); rb.SetRackType(theRack.RackType); rb.SetNamingType(theRack.NamingType); rb.SetSpace(theRack.RowSpace, theRack.ColumnSpace); rb.SetRackName(theRack.Name); rb.Save(); rb.NotifyChange(); // Elements for(byte col = 0; col < theRack.Columns; col++) { for(byte row = 0; row < theRack.Rows; row++) { if(theRack.Exist(col, row)) { // Création RackItem item = rb.CreateRackItem(row, col); item.Save(); } } } // ouverture fenetre MessageBox.Show("Copie terminée."); IWindow rackWindow = App.GetWindow(WindowType.Rack, rb.Rack); rackWindow.Show();