private CResultAErreur Init(CParametrageSystemeCoordonnees parametrage)
        {
            m_bIsInitializing = true;
            CResultAErreur result = CResultAErreur.True;

            m_parametrageAffiche = parametrage;
            if (parametrage == null)
            {
                m_panelParametrage.Visible = false;
                m_radioHerite.Checked      = true;
                m_bIsInitializing          = false;
                return(result);
            }

            m_panelParametrage.Visible = true;

            if (m_parametrageAffiche.ObjetASystemeDeCoordonnees != null &&
                m_parametrageAffiche.ObjetASystemeDeCoordonnees.Equals(m_objetEdite))
            {
                m_parametragePropre = m_parametrageAffiche;
            }
            else
            {
                m_parametragePropre = null;
            }

            m_radioHerite.Checked = m_parametragePropre == null;
            m_radioPropre.Checked = m_parametragePropre != null;

            if (m_parametragePropre == null)
            {
                m_gestionnaireModeEdition.SetModeEdition(m_cmbSystemeCoordonnees, TypeModeEdition.Autonome);
                m_gestionnaireModeEdition.SetModeEdition(m_panelParametrageNiveaux, TypeModeEdition.Autonome);
                m_cmbSystemeCoordonnees.LockEdition   = true;
                m_panelParametrageNiveaux.LockEdition = true;
            }
            else
            {
                m_gestionnaireModeEdition.SetModeEdition(m_cmbSystemeCoordonnees, TypeModeEdition.EnableSurEdition);
                m_gestionnaireModeEdition.SetModeEdition(m_panelParametrageNiveaux, TypeModeEdition.EnableSurEdition);
                m_cmbSystemeCoordonnees.LockEdition   = !m_gestionnaireModeEdition.ModeEdition;
                m_panelParametrageNiveaux.LockEdition = !m_gestionnaireModeEdition.ModeEdition;
            }
            m_cmbSystemeCoordonnees.ElementSelectionne = parametrage.SystemeCoordonnees;

            if (parametrage.SystemeCoordonnees == null)
            {
                m_panelParametrageNiveaux.Visible = false;
            }
            else
            {
                m_panelParametrageNiveaux.SuspendDrawing();
                m_panelParametrageNiveaux.Visible = true;

                List <CControleEditionNiveauParametrage> lstControlesDispo = new List <CControleEditionNiveauParametrage>();
                foreach (Control ctrl in m_panelParametrageNiveaux.Controls)
                {
                    if (ctrl is CControleEditionNiveauParametrage)
                    {
                        lstControlesDispo.Add((CControleEditionNiveauParametrage)ctrl);
                        ((CControleEditionNiveauParametrage)ctrl).InvalideData();
                    }
                }

                int nNiveau = 0;
                foreach (CRelationSystemeCoordonnees_FormatNumerotation rel in m_parametrageAffiche.SystemeCoordonnees.RelationFormatsNumerotation)
                {
                    CControleEditionNiveauParametrage control = null;
                    if (lstControlesDispo.Count > nNiveau)
                    {
                        control = lstControlesDispo[nNiveau];
                    }
                    else
                    {
                        control = new CControleEditionNiveauParametrage();
                    }
                    control.Parent = m_panelParametrageNiveaux;
                    control.Dock   = DockStyle.Top;
                    control.Init(nNiveau == 0, m_parametrageAffiche, rel);
                    control.LockEdition = m_panelParametrageNiveaux.LockEdition;
                    control.Visible     = true;
                    control.BringToFront();
                    nNiveau++;
                }
                m_panelParametrageNiveaux.ResumeDrawing();
                for (int nTmp = nNiveau; nTmp < lstControlesDispo.Count; nTmp++)
                {
                    lstControlesDispo[nTmp].Visible = false;
                }
            }

            m_bIsInitializing = false;

            return(result);
        }
    //------------------------------------------------------------------------
    private static void AddTypesEquipementsToDb(CContexteDonnee ctx, CMemoryDb db)
    {
        CListeObjetDonneeGenerique <CTypeEquipement> lst = new CListeObjetDonneeGenerique <CTypeEquipement>(ctx);

        lst.ReadDependances("RelationsConstructeurs");
        lst.ReadDependances("ParametragesSystemesCoordonnees");
        lst.ReadDependances("RelationsTypesParents");

        TID.CIndexIdTimos <TID.CConstructeur> dicConstructeurs = TID.CIndexIdTimos <TID.CConstructeur> .GetIdTimosIndex(db);

        TID.CIndexIdTimos <TID.CSystemeCoordonnees> dicSC = TID.CIndexIdTimos <TID.CSystemeCoordonnees> .GetIdTimosIndex(db);

        TID.CIndexIdTimos <TID.CRelationSystemeCoordonnees_FormatNumerotation> dicRFN = TID.CIndexIdTimos <TID.CRelationSystemeCoordonnees_FormatNumerotation> .GetIdTimosIndex(db);

        foreach (CTypeEquipement tpTimos in lst)
        {
            TID.CTypeEquipement tp = new TID.CTypeEquipement(db);
            tp.CreateNew(tpTimos.Id);
            tp.Libelle          = tpTimos.Libelle;
            tp.NbUnitesOccupees = tpTimos.NbUnitesOccupees;
            tp.Row[TID.CTypeEquipement.c_champUniteOccupation] = tpTimos.Row[CTypeEquipement.c_champUniteOccupation];
            tp.OptionsControleCoordonneesPropreInt             = tpTimos.OptionsControleCoordonneesPropreInt;
            foreach (CRelationTypeEquipement_Constructeurs relConsTimos in tpTimos.RelationsConstructeurs)
            {
                TID.CTypeEquipementConstructeur tpCons = new TID.CTypeEquipementConstructeur(db);

                int?nId = (int?)relConsTimos.Row[CDonneesActeurConstructeur.c_champId, true];
                TID.CConstructeur cons = dicConstructeurs.GetSafe(nId);

                if (cons != null)
                {
                    tpCons.CreateNew(relConsTimos.Id);
                    tpCons.IdTimos        = relConsTimos.Id;
                    tpCons.TypeEquipement = tp;
                    tpCons.Constructeur   = cons;
                    tpCons.Reference      = relConsTimos.Reference;
                }
            }


            //Coordonnées
            CParametrageSystemeCoordonnees     paramTimos  = tpTimos.ParametrageCoordonneesPropre;
            TID.CParametrageSystemeCoordonnees parametrage = ImporteParametrageSC(
                paramTimos,
                db,
                dicSC,
                dicRFN);
            if (parametrage != null)
            {
                parametrage.TypeEquipement = tp;
            }

            foreach (CRelationTypeEquipement_Heritage relTimos in tpTimos.RelationsTypesParents)
            {
                TID.CRelationTypeEquipement_Heritage rel = new TimosInventory.data.CRelationTypeEquipement_Heritage(db);
                rel.CreateNew(relTimos.Id);
                rel.Row[TID.CRelationTypeEquipement_Heritage.c_champIdTypeFils]   = relTimos.Row[CRelationTypeEquipement_Heritage.c_champIdTypeFils];
                rel.Row[TID.CRelationTypeEquipement_Heritage.c_champIdTypeParent] = relTimos.Row[CRelationTypeEquipement_Heritage.c_champIdTypeParent];
            }
        }
    }
        //-----------------------------------------------------------
        public void Init(bool bAvecEntete, CParametrageSystemeCoordonnees parametrage, CRelationSystemeCoordonnees_FormatNumerotation relFormat)
        {
            m_parametrageEdite = parametrage;
            m_relFormat        = relFormat;

            if (m_relFormat == null)
            {
                Visible = false;
            }
            if (m_relFormat.FormatNumerotation == null)
            {
                Visible = false;
            }
            if (m_parametrageEdite == null)
            {
                Visible = false;
            }

            m_panelEntete.Visible = bAvecEntete;
            int nHeight = m_lblLibelle.Height;

            if (bAvecEntete)
            {
                nHeight += m_panelEntete.Height;
            }
            Size = new Size(Width, nHeight);

            m_lblLibelle.Text = m_relFormat.Libelle;
            CUniteCoordonnee unite = m_relFormat.Unite;

            if (unite != null)
            {
                m_lblUnite.Text = unite.Libelle;
            }
            else
            {
                m_lblUnite.Text = "";
            }

            int nNiveau = m_relFormat.Position;
            CListeObjetsDonnees liste = m_parametrageEdite.RelationParametragesNiveau;

            m_parametrageNiveau = m_parametrageEdite.GetParametrageNiveau(m_relFormat.Position);

            CResultAErreur result = CResultAErreur.True;

            if (m_parametrageNiveau != null)
            {
                result = m_relFormat.FormatNumerotation.GetReference(m_parametrageNiveau.PremierIndice);
                if (result)
                {
                    m_txtStartAt.Text = result.Data.ToString();
                }
                m_numUpSize.IntValue = m_parametrageNiveau.Taille;
            }
            else
            {
                result = m_relFormat.FormatNumerotation.GetReference(0);
                if (result)
                {
                    m_txtStartAt.Text = (string)result.Data;
                }
                else
                {
                    m_txtStartAt.Text = "";
                }
                m_numUpSize.IntValue = 10;
            }
            m_bIsInit = true;
            m_tooltip.SetToolTip(m_txtStartAt, m_relFormat.FormatNumerotation.Libelle);
        }