Beispiel #1
0
        //Exportation de l'ensemble des éléments d'un plan
        public void Exporter_Budget()
        {
            DateTime d1 = DateTime.Now;

            //Création de l'application Excel
            app = new Microsoft.Office.Interop.Excel.Application();
            app.DisplayAlerts = false;

            Console.Ajouter("Export des budgets...");

            Texte_Resultat = "EXPORTATION Budget" + "\r\n";


            //Exportation des objectifs
            Console.Ajouter("->Export des objectifs...");
            Texte_Resultat += "### Export des objectifs ###" + "\r\n";
            ExportBudget();


            Console.Ajouter("...Fin Export Plan");
            DateTime d2 = DateTime.Now;

            Texte_Resultat += "### Fin de l'export ###" + "\r\n";
            Texte_Resultat += "Temps : " + string.Format("{0:ss}", d2 - d1) + "\r\n";
            Afficher_Resultat();

            //Fermeture de l'application Excel
            app.Quit();
            app = null;
        }
Beispiel #2
0
        void Initialiser()
        {
            //Vérification environnement local
            if (!(System.IO.Directory.Exists(Chemin)))
            {
                System.IO.Directory.CreateDirectory(Chemin);
            }
            if (!(System.IO.Directory.Exists(Chemin + "\\Fichiers")))
            {
                System.IO.Directory.CreateDirectory(Chemin + "\\Fichiers");
            }
            if (!(System.IO.Directory.Exists(Chemin + "\\Export")))
            {
                System.IO.Directory.CreateDirectory(Chemin + "\\Export");
            }

            //Supprimer le fichier de traçage des requêtes
            if (System.IO.File.Exists(Chemin + "\\log.txt"))
            {
                System.IO.File.Delete(Chemin + "\\log.txt");
            }

            //Supprimer les fichiers d'édition
            foreach (string f in System.IO.Directory.GetFiles(Chemin + "\\Fichiers", "F*.*"))
            {
                try { System.IO.File.Delete(f); } catch { }
            }

            //Création de la console permetant de suivre les opérations
            Afficher_Console();
            Console.Ajouter("Démarrage du chargement...");
            DateTime d1 = DateTime.Now;

            //Initialisation des fonctionnalités
            if (!Initialiser_Connexion())
            {
                return;                             /*Fin dû à un pb de connexion*/
            }

            Afficher_Menu();
            Acces.clsMAIN.Afficher_Accueil();
            lblNom.Text      = user_appli.NomPrenom;
            lblCodeUser.Text = user_appli.Code;
            //Afficher_GestionObjet();

            //Affichage du temps de chargement
            DateTime d2 = DateTime.Now;

            Console.Ajouter("Temps de chargement : " + (d2 - d1).Milliseconds + " ms");
            timer_Connexion.Start();

            //Sauvegarde automatique
            //timer2.Start();
            //Acces.Sauvegarde_local();

            //Ouverture des éléments par commande externe
            timer_Ouverture.Start();

            Agrandir();
        }
Beispiel #3
0
        void Ajouter_Modele()
        {
            if (treeModele.SelectedNode == null)
            {
                return;
            }
            int Parent_ID = int.Parse(treeModele.SelectedNode.Name.Split('-')[1]);

            Console.Ajouter("Parent_ID = " + Parent_ID);

            ModeleDoc mdl = new ModeleDoc();

            mdl.Type_Modele = Type_Modele.MODELE;
            mdl.Parent_ID   = Parent_ID;
            mdl.Code        = "MDL-";
            mdl.Ordre       = treeModele.SelectedNode.Nodes.Count;

            frmModeleDoc f = new frmModeleDoc();

            f.Acces       = Acces;
            f.Creation    = true;
            f.modele_doc  = mdl;
            f.Parent_ID   = Parent_ID;
            f.type_modele = Type_Modele.MODELE;
            f.Initialiser();

            if (f.ShowDialog() == DialogResult.OK)
            {
                Afficher_ListeModele();
            }
        }
        void Repositionner()
        {
            //Placement des objectifs/sous-objectifs
            List <Lien> ListeLienSysteme = Acces.Remplir_ListeLienSYSTEME(Acces.type_OBJECTIF);

            //On balaye la liste des Objectifs
            //Si un lien existe,
            //on recherche la position des 2 objectifs
            //On déplace le fils sous le parent
            foreach (Lien p in ListeLienSysteme)
            {
                TreeNode[] Nod1 = lstObjectif.Nodes.Find(p.Element1_ID.ToString(), true);
                TreeNode[] Nod2 = lstObjectif.Nodes.Find(p.Element2_ID.ToString(), true);

                if (Nod1.Count() > 0 && Nod2.Count() > 0)
                {
                    TreeNode parent  = Nod1[0];
                    TreeNode Element = Nod2[0];

                    Element.Tag = p;

                    //Element.Remove();
                    lstObjectif.Nodes.Remove(Element);
                    parent.Nodes.Add(Element);
                }
                else
                {
                    Console.Ajouter("[Move Objectif] Erreur Lien" + p.ID);
                }
            }
        }
Beispiel #5
0
        public void Initialiser()
        {
            OptActive.Checked = true;
            lblEntete.Text    = "MDL";
            lblRef.Text       = modele_doc.Code.Replace("MDL-", "");
            lblLibelle.Text   = modele_doc.Libelle;
            OptActive.Checked = modele_doc.Actif;

            Console.Ajouter(modele_doc.Type_Modele.ToString());
            //Modèle
            if (modele_doc.Type_Modele == Type_Modele.MODELE)
            {
                tabControl2.SelectedIndex = 0;
                Afficher_ListeTypeModele();
                lblFichierBase.Text = modele_doc.FichierBase;
            }

            //Zone
            if (modele_doc.Type_Modele == Type_Modele.ZONE)
            {
                tabControl2.SelectedIndex = 1;
                lblConditionZone.Text     = modele_doc.Condition;
            }

            //Ligne
            if (modele_doc.Type_Modele == Type_Modele.LIGNE)
            {
                tabControl2.SelectedIndex = 2;
                lblConditionZone.Text     = modele_doc.Condition;
            }

            //Colonne
            if (modele_doc.Type_Modele == Type_Modele.COLONNE)
            {
                tabControl2.SelectedIndex = 3;
                lblTexteColonne.Text      = modele_doc.Contenu;
                lblTexteColonne.Text      = modele_doc.Contenu;
                lblPct.Value           = modele_doc.Taille;
                lblBordureColonne.Text = modele_doc.Bordure;
                Afficher_ListeAlignement();
            }

            //Protection des zones non utilisées
            for (int i = 0; i < tabControl2.TabPages.Count; i++)
            {
                if (tabControl2.TabPages[i] != tabControl2.SelectedTab)
                {
                    for (int j = 0; j < tabControl2.TabPages[i].Controls.Count; j++)
                    {
                        tabControl2.TabPages[i].Controls[j].Enabled = false;
                    }
                }
            }
        }
        void Editer_Noeud(TreeNode nd)
        {
            tree.SelectedNode = nd;
            nd.EnsureVisible();
            nd.ForeColor = Color.Blue;
            Application.DoEvents();

            pb.PerformStep();
            edition.type_element = nd.Name.Split('-')[0];
            edition.id_element   = int.Parse(nd.Name.Split('-')[1]);
            edition.id_parent    = 0;
            edition.ordre        = 0;

            if (edition.type_element == Acces.type_ACTION.Code)
            {
                TreeNode parent      = nd.Parent;
                string   type_parent = parent.Name.Split('-')[0];
                int      id_parent   = int.Parse(parent.Name.Split('-')[1]);
                if (type_parent == Acces.type_ACTION.Code)
                {
                    edition.id_parent = id_parent;
                    edition.ordre     = parent.Nodes[nd.Name].Index + 1;
                    //MessageBox.Show(edition.ordre.ToString());
                }
            }

            nd.Tag = edition.Editer_Fiche();

            FileInfo f = new FileInfo(nd.Tag.ToString() + ".pdf");

            Liste.Add(f);

            Console.Ajouter(nd.Tag.ToString());
            foreach (TreeNode nds in nd.Nodes)
            {
                Editer_Noeud(nds);
            }
        }
        void Afficher_ListePeriode()
        {
            lstPeriode.Nodes.Clear();

            listeBudgetPeriode = (List <Budget_Periode>)Acces.Remplir_ListeElement(Acces.type_BUDGET_PERIODE, "");

            Console.Ajouter("BUDGET_PERIODE : " + listeBudgetPeriode.Count);

            foreach (Budget_Periode bp in listeBudgetPeriode)
            {
                TreeNode nd = new TreeNode();
                nd.Name = bp.ID.ToString();
                nd.Tag  = bp;
                nd.Text = bp.Libelle;
                lstPeriode.Nodes.Add(nd);
            }
        }
Beispiel #8
0
        void Afficher_ListeEnveloppe()
        {
            lstEnveloppe.Nodes.Clear();

            listeBudgetEnveloppe = (List <Budget_Enveloppe>)Acces.Remplir_ListeElement(Acces.type_BUDGET_ENVELOPPE, "");

            Console.Ajouter("Budget_Enveloppe : " + listeBudgetEnveloppe.Count);

            foreach (Budget_Enveloppe bp in listeBudgetEnveloppe)
            {
                TreeNode nd = new TreeNode();
                nd.Name = bp.ID.ToString();
                nd.Tag  = bp;
                nd.Text = bp.Libelle;
                lstEnveloppe.Nodes.Add(nd);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Repositionnement des actions dans une hiérarchie
        /// </summary>
        void Repositionner(List <int> liste)
        {
            //Placement des objectifs/sous-objectifs
            List <Lien> ListeLienSysteme = Acces.Remplir_ListeLienSYSTEME(Acces.type_ACTION);

            //On balaye la liste des actions
            //Si un lien existe,
            //on recherche la position des 2 actions
            //On déplace le fils sous le parent
            foreach (Lien p in ListeLienSysteme)
            {
                TreeNode[] Nod1 = lstAction.Nodes.Find(p.Element1_ID.ToString(), true);
                TreeNode[] Nod2 = lstAction.Nodes.Find(p.Element2_ID.ToString(), true);

                if (Nod1.Count() > 0 && Nod2.Count() > 0)
                {
                    TreeNode parent  = Nod1[0];
                    TreeNode Element = Nod2[0];

                    if (parent.Name == Element.Name)
                    {
                        break;
                    }
                    Element.Tag = p;

                    //Element.Remove();
                    lstAction.Nodes.Remove(Element);
                    parent.Nodes.Add(Element);
                }
                else
                {
                    if (p.Element0_ID > 0)
                    { /*Console.Ajouter("[Move Action] Erreur Lien" + p.ID);*/
                    }
                    else
                    {
                        if (p.Element0_Code.Length > 0)
                        {
                            Console.Ajouter("[Erreur Lien Action] Id : " + p.ID);
                        }
                    }
                }
            }
        }
Beispiel #10
0
        /// <summary>
        /// Repositionne les éléments selon la hiérarchie définie
        /// </summary>
        void Repositionner(Plan plan)
        {
            int nbObjectif = 0; int nbAction = 0; int nbOpération = 0; int nbIndicateur = 0;

            //Placement des objectifs/sous-objectifs
            listeLien = Acces.Remplir_ListeLien_Niv0(Acces.type_PLAN, plan.ID.ToString());
            listeLien.Sort();

            //On balaye la liste des éléments
            //On crée l'élément sous le parent
            foreach (var p in listeLien)
            {
                //Recherche du parent
                string   Parent    = Acces.Trouver_TableValeur(p.Element1_Type).Code + "-" + p.Element1_ID.ToString();
                TreeNode NodParent = NodG;

                if (!(Parent == NodG.Name))
                {
                    TreeNode[] NodP = NodG.Nodes.Find(Parent, true);
                    if (NodP.Length > 0)
                    {
                        NodParent = NodP[0];
                    }
                }

                string Enfant = Acces.Trouver_TableValeur(p.Element2_Type).Code + "-" + p.Element2_ID.ToString();
                if (!(Enfant is null))
                {
                    Boolean Ajoute = true;
                    //Création de l'élément enfant
                    TreeNode NodEnfant = new TreeNode()
                    {
                        Name = Enfant,
                        Tag  = p,
                    };

                    if (p.Element2_Type == Acces.type_OBJECTIF.ID)
                    //if (p.Element2_Type == Acces.Trouver_TableValeur_ID("TYPE_ELEMENT", p.Element1_Type.ToString()))
                    {
                        Objectif q = (Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF, p.Element2_ID);
                        if (!(q is null))
                        {
                            NodEnfant.Text        = q.Libelle;
                            NodEnfant.Name        = Acces.type_OBJECTIF.Code + "-" + q.ID;
                            NodEnfant.ImageIndex  = Donner_ImageIndex(Acces.type_OBJECTIF, p.Element2_ID);
                            NodEnfant.ToolTipText = q.Code;
                            nbObjectif++;
                        }
                        else
                        {
                            Console.Ajouter("[Objectif non trouvé] ID:" + p.Element2_ID + " Code :" + p.Element2_Code);
                        }
                    }

                    if (p.Element2_Type == Acces.type_ACTION.ID)
                    {
                        PATIO.CAPA.Classes.Action q = (PATIO.CAPA.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION, p.Element2_ID);
                        if (!(q is null))
                        {
                            NodEnfant.Text       = q.Libelle;
                            NodEnfant.Name       = Acces.type_ACTION.Code + "-" + q.ID;
                            NodEnfant.ImageIndex = Donner_ImageIndex(Acces.type_ACTION, p.Element2_ID);
                            if (q.ActionPhare)
                            {
                                NodEnfant.ImageIndex = imgs[PosImageActionPhare].Id;
                            }
                            NodEnfant.ToolTipText = q.Code + " [" + p.ordre + "]";
                            if (q.TypeAction == TypeAction.ACTION)
                            {
                                nbAction++;
                            }
                            if (q.TypeAction == TypeAction.OPERATION)
                            {
                                nbOpération++;
                            }
                        }
                        else
                        {
                            Console.Ajouter("[Action non trouvée] ID:" + p.Element2_ID + " CODE:" + p.Element2_Code);
                        }
                    }

                    if (p.Element2_Type == Acces.type_INDICATEUR.ID)
                    {
                        Indicateur q = (Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element2_ID);
                        if (!(q is null))
                        {
                            NodEnfant.Text        = q.Libelle;
                            NodEnfant.Name        = Acces.type_INDICATEUR.Code + "-" + q.ID;
                            NodEnfant.ImageIndex  = Donner_ImageIndex(Acces.type_INDICATEUR, p.Element2_ID);
                            NodEnfant.ToolTipText = q.Code;
                            nbIndicateur++;
                        }
                        else
                        {
                            Console.Ajouter("[Indicateur non trouvée] ID:" + p.Element2_ID + " CODE:" + p.Element2_Code);
                        }
                    }
Beispiel #11
0
        private void treeSelectionBudget_AfterSelect(object sender, TreeViewEventArgs e)
        {
            TreeNode nd = treeSelectionBudget.SelectedNode;

            DateMin_Select     = "";
            DateMax_Select     = "";
            listeCompte_Select = new List <int>();

            if (nd.Parent == null)
            {
                return;
            }                                  //Noeud sans parent
            if (nd.Nodes.Count > 0)
            {
                return;
            }                                   //Noeud avec enfant

            nd.ForeColor = (nd.ForeColor == Color.Black ? Color.Red : Color.Black);

            TreeNode NdBudget = nd.Parent.Parent;

            Console.Ajouter("Nb nodes=" + nd.Parent.Nodes.Count.ToString());

            foreach (TreeNode ndd in NdBudget.Nodes[0].Nodes)
            {
                Console.Ajouter("->" + ndd.Text);
                if (ndd.ForeColor == Color.Red)
                {
                    Budget_Ligne bl = (Budget_Ligne)ndd.Tag;
                    foreach (int k in bl.ListeCompte)
                    {
                        listeCompte_Select.Add(k);
                    }
                }
            }

            foreach (TreeNode ndd in NdBudget.Nodes[1].Nodes)
            {
                Console.Ajouter("->" + ndd.Text + " : " + ndd.ForeColor.ToString());
                if (ndd.ForeColor == Color.Red)
                {
                    Budget_Version bv = (Budget_Version)ndd.Tag;
                    Console.Ajouter("ID=" + bv.ID.ToString());
                    Console.Ajouter("DateMin : " + (DateMin_Select.CompareTo(bv.DateDeb).ToString()));

                    if (DateMin_Select.Length == 0)
                    {
                        DateMin_Select = bv.DateDeb;
                    }
                    else
                    {
                        if (DateMin_Select.CompareTo(bv.DateDeb) < 0)
                        {
                            Console.Ajouter("Date_Min" + bv.DateDeb); DateMin_Select = bv.DateDeb;
                        }
                    }
                    if (DateMax_Select.Length == 0)
                    {
                        DateMax_Select = bv.DateFin;
                    }
                    else
                    {
                        if (DateMax_Select.CompareTo(bv.DateFin) < 0)
                        {
                            Console.Ajouter("Date_Max=" + bv.DateFin); DateMax_Select = bv.DateFin;
                        }
                    }
                }
            }

            Afficher_ListeOperation();
            Afficher_ListeVirement();
        }
Beispiel #12
0
        void Importer()
        {
            OpenFileDialog f = new OpenFileDialog();

            f.Title            = "Choix d'un fichier d'import";
            f.Filter           = "*.xml|*.xml";
            f.InitialDirectory = Acces.CheminTemp + "\\Export";

            if (f.ShowDialog() == DialogResult.OK)
            {
                string[] liste = f.FileName.Split('\\');

                string nom = liste[liste.Length - 1].Replace("tv_", "").Replace(".xml", "");

                Console.Ajouter("### IMPORT TV ###");
                if (MessageBox.Show("Vous allez importer les données pour la table " + nom + ". Continuez ?", "Confirmation", MessageBoxButtons.YesNo) == DialogResult.No)
                {
                    return;
                }

                string fichier = f.FileName;
                listeTV = Acces.ListeTableValeur;

                DataSet Sn = new DataSet();
                Sn.ReadXml(fichier);
                int n = 0;

                foreach (DataRow r in Sn.Tables["dataset"].Rows)
                {
                    table_valeur tv = new table_valeur();
                    //tv.ID = int.Parse(r["id"].ToString());
                    tv.Nom       = r["nom"].ToString();
                    tv.Code      = r["code"].ToString();
                    tv.Valeur    = r["valeur"].ToString();
                    tv.Valeur6PO = r["valeur_6po"].ToString();

                    bool ok = false;
                    foreach (table_valeur tv1 in listeTV)
                    {
                        if (tv1.Nom.ToUpper() == tv.Nom.ToUpper() &&
                            tv1.Code.ToUpper() == tv.Code.ToUpper())
                        {
                            ok = true; break;
                        }
                    }

                    if (!ok)
                    {
                        tv.Acces = Acces;
                        tv.Ajouter();
                        Console.Ajouter("Ajout TV : " + tv.Code);
                        n++;
                    }
                    else
                    {
                        Console.Ajouter("Valeur existante : " + tv.Code);
                    }
                }
                if (lstTable.SelectedIndex < 0)
                {
                    Afficher_Liste();
                }
                Afficher_ListeTV();
                MessageBox.Show("Import terminé. " + n + " ajout(s)");
            }
        }
Beispiel #13
0
        void Extraire()
        {
            string command      = "";
            string CheminImport = Chemin + "/Import";

            lst.Items.Add("Extraction REST");
            lst.Items.Add("->Répertoire de destination " + CheminImport);
            Console.Ajouter("Extraction des fichiers XML REST");

            if (!Directory.Exists(CheminImport))
            {
                Directory.CreateDirectory(CheminImport);
            }

            //Création du fichier de cookies
            lst.Items.Add("->Connexion au site REST");
            Connexion();

            if (optPlan.Checked)
            {
                //Extraction des données
                lst.Items.Add("->Extraction des plans");
                command = "curl -o " + CheminImport + "/plans.xml --cookie " + CheminImport + "/loginCookies https://ars-hdf.xwiki.com/xwiki/rest/wikis/plansactions/spaces/Plan/spaces/pages";
                ExecuteCommandSync(command);
                //Traitement des données
                lst.Items.Add("----------------------");
                lst.Items.Add("->Plan");
                Traitement_Plan();
            }

            if (optObjectif.Checked)
            {
                //Extraction des données
                lst.Items.Add("->Extraction des objectifs");
                command = "curl -o " + CheminImport + "/objectifs.xml --cookie " + CheminImport + "/loginCookies https://ars-hdf.xwiki.com/xwiki/rest/wikis/plansactions/spaces/Objectif/spaces/pages";
                ExecuteCommandSync(command);
                //Traitement des données
                lst.Items.Add("----------------------");
                lst.Items.Add("->Objectif");
                Traitement_Objectif();
            }

            if (optAction.Checked)
            {
                //Extraction des données
                lst.Items.Add("->Extraction des actions");
                command = "curl -o " + CheminImport + "/actions.xml --cookie " + CheminImport + "/loginCookies https://ars-hdf.xwiki.com/xwiki/rest/wikis/plansactions/spaces/Action/spaces/pages";
                ExecuteCommandSync(command);
                //Traitement des données
                lst.Items.Add("----------------------");
                lst.Items.Add("->Action");
                Traitement_Action();
            }

            if (optOperation.Checked)
            {
                //Extraction des données
                lst.Items.Add("->Extraction des opérations");
                command = "curl -o " + CheminImport + "/operations.xml --cookie " + CheminImport + "/loginCookies https://ars-hdf.xwiki.com/xwiki/rest/wikis/plansactions/spaces/Projet/spaces/pages";
                ExecuteCommandSync(command);
                //Traitement ds données
                lst.Items.Add("----------------------");
                lst.Items.Add("->Opération");
                Traitement_Opération();
            }

            if (optIndicateur.Checked)
            {
                //Extraction des données
                lst.Items.Add("->Extraction des indicateurs");
                command = "curl -o " + CheminImport + "/indicateurs.xml --cookie " + CheminImport + "/loginCookies https://ars-hdf.xwiki.com/xwiki/rest/wikis/plansactions/spaces/Indicateur/spaces/pages";
                ExecuteCommandSync(command);
                //Traitement des données
                lst.Items.Add("----------------------");
                lst.Items.Add("->Indicateur");
                Traitement_Indicateur();
            }

            lst.Items.Add("Traitement des fichiers extraits");
            Console.Ajouter("Traitement des fichiers extraits");
        }
Beispiel #14
0
        void Stat_S01() //Nombre d'éléments par plan
        {
            string fichier = Chemin + "\\Fichiers\\F_S01.html";

            //Requête
            string sql;

            sql  = "SELECT distinct Element0_ID, Element2_Type, Element2_ID from lien";
            sql += " WHERE Element0_Code <>'SYSTEME'";

            DataSet Sn = Acces.cls.ContenuRequete(sql);

            if (Acces.cls.NbLignes == 0)
            {
                goto Suite;
            }

            List <LigneS01> Liste = new List <LigneS01>();

            //Ligne total
            LigneS01 lg = new LigneS01();

            lg.id        = 0;
            lg.libelle   = "zzTOTAL";
            lg.nb_obj    = 0;
            lg.nb_action = 0;
            lg.nb_ope    = 0;
            lg.nb_indic  = 0;
            Liste.Add(lg);

            foreach (DataRow r in Sn.Tables["dataset"].Rows)
            {
                int         id_plan    = int.Parse(r[0].ToString());
                TypeElement id_type    = Acces.Trouver_Type_Element(int.Parse(r[1].ToString()));
                int         id_element = int.Parse(r[2].ToString());

                //Détermine l'incrément affecté
                int i_obj = 0; int i_action = 0; int i_ope = 0; int i_indic = 0;

                if (id_type == Acces.type_OBJECTIF)
                {
                    i_obj = 1;
                }
                if (id_type == Acces.type_ACTION) //Cas d'une action
                {
                    PATIO.CAPA.Classes.Action action = (PATIO.CAPA.Classes.Action)Acces.Trouver_Element(id_type, id_element);
                    try
                    {
                        if (action.TypeAction == TypeAction.ACTION)
                        {
                            i_action = 1;
                        }
                        if (action.TypeAction == TypeAction.OPERATION)
                        {
                            i_ope = 1;
                        }
                    } catch { /*MessageBox.Show(r[2].ToString()); */ }
                }
                if (id_type == Acces.type_INDICATEUR)
                {
                    i_indic = 1;
                }

                //Intégration si la ligne (du plan) existe
                Boolean ok = false;
                for (int i = 0; i < Liste.Count; i++)
                {
                    LigneS01 l = Liste[i];
                    if (id_plan.ToString() == l.id.ToString())
                    {
                        ok           = true;
                        l.nb_obj    += i_obj;
                        l.nb_action += i_action;
                        l.nb_ope    += i_ope;
                        l.nb_indic  += i_indic;
                        break;
                    }
                }

                if (!ok) //Création de la ligne
                {
                    Plan     plan = (Plan)Acces.Trouver_Element(Acces.type_PLAN, id_plan);
                    LigneS01 l    = new LigneS01();
                    l.id         = plan.ID;
                    l.libelle    = plan.Libelle;
                    l.nb_obj    += i_obj;
                    l.nb_action += i_action;
                    l.nb_ope    += i_ope;
                    l.nb_indic  += i_indic;
                    Liste.Add(l);
                }

                //Incrémentation sur la ligne total
                LigneS01 lt = Liste[0];
                lt.nb_obj    += i_obj;
                lt.nb_action += i_action;
                lt.nb_ope    += i_ope;
                lt.nb_indic  += i_indic;
                Console.Ajouter(lt.nb_obj.ToString());
            }

            //Affichage du résultat
            string Texte = "<table width=\"100%\" border=\"1\">";

            Texte += "<tr>";
            Texte += "<td>Plan</td>";
            Texte += "<td>Nb objectifs</td>";
            Texte += "<td>Nb actions</td>";
            Texte += "<td>Nb opérations</td>";
            Texte += "<td>Nb indicateurs</td>";
            Texte += "</tr>\n";

            foreach (LigneS01 l in Liste)
            {
                Texte += "<tr>";
                Texte += "<td>" + l.libelle + "</td>";
                Texte += "<td>" + l.nb_obj + "</td>";
                Texte += "<td>" + l.nb_action + "</td>";
                Texte += "<td>" + l.nb_ope + "</td>";
                Texte += "<td>" + l.nb_indic + "</td>";
                Texte += "</tr>\n";
            }
            Texte += "</table>";

            //Ecriture du fichier
            System.IO.File.WriteAllText(fichier, Texte);

            Suite :;
            //Affichag du fichier
            wb.Navigate(fichier);
        }