Ejemplo n.º 1
0
        void Ouvrir_Action(int ID)
        {
            PATIO.Classes.Action action = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, ID);

            var D = new WeifenLuo.WinFormsUI.Docking.DockContent();

            D.TabText = "Action " + action.Code;

            ctrlFicheAction ctrl = new ctrlFicheAction();

            ctrl.Acces  = Acces;
            ctrl.action = action;
            ctrl.Initialiser();

            ctrl.Dock = DockStyle.Fill;
            D.Controls.Add(ctrl);

            D.Show(DP, WeifenLuo.WinFormsUI.Docking.DockState.Document);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Affichage du code de l'action et des zones de saisie selon les informations stockées
        /// </summary>
        void AfficheCode(PATIO.Classes.Action action)
        {
            EffaceCode();
            if (action.Code is null)
            {
                return;
            }

            lblPlanACT.Text      = action._codeplan;
            lblAxeACT.Text       = action._axe;
            lblOSACT.Text        = action._os;
            lblOGACT.Text        = action._og;
            lblOPACT.Text        = action._op;
            lblAutreACT.Text     = action._cpl;
            lblOrdreACT.Text     = action._ordreact;
            lblAnnéeOPE.Text     = action._annee;
            lblDirectionOPE.Text = action._direction;
            lblRefOPE.Text       = action._reference;
            lblOrdreOPE.Text     = action._ordreope;
        }
Ejemplo n.º 3
0
        public void Editer_Fiche_Direction()
        {
            if (lstDirection.SelectedIndex < 0)
            {
                return;
            }

            //Extrait les informations de l'arborescence
            List <Element> Liste = new List <Element>();

            foreach (TreeNode nd in tree.Nodes)
            {
                if (nd.Checked)
                {
                    Extrait_Info(nd, ref Liste);
                }
            }

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

            var modele  = Chemin + "\\Modeles\\Fiche_PLAN_DIRECTION.xltx";
            var fichier = Chemin + "\\Fichiers\\" + "FD-" + ListeDirection[lstDirection.SelectedIndex].Code + "-" + string.Format("{0:yyMMddHHmmss}", DateTime.Now);

            app.Workbooks.Open(modele);

            Workbooks wk = app.Workbooks;
            Workbook  wb = app.ActiveWorkbook;
            Worksheet ws = wb.Sheets[1];
            Range     r;

            r       = ws.Cells[2, 5];
            r.Value = lstDirection.Text;
            r       = ws.Cells[3, 5];
            r.Value = string.Format("{0:dd/MM/yyyy}", DateTime.Now); //Groupe interne

            //Affichage des éléments
            int n_ligne = 7;

            //Efface la zone
            ws.Range["A8:Y10000"].Clear();

            //Traitement de la liste des éléments extraits
            foreach (Element e in Liste)
            {
                if (e.Element_Type == Acces.type_PLAN.id)
                {
                    Plan plan1 = (Plan)Acces.Trouver_Element(Acces.type_PLAN.id, e.ID);

                    n_ligne++;
                    r       = ws.Cells[n_ligne, 1];
                    r.Value = plan1.Libelle;
                    r       = ws.Cells[n_ligne, 2];
                    string pilote = "";
                    pilote  = (plan1.Pilote != null) ? "\n" + plan1.Pilote.Nom + " " + plan1.Pilote.Prenom : "";
                    r.Value = pilote;

                    r       = ws.Cells[n_ligne, 24];
                    r.Value = plan1.Code.Replace("PAR-", "");
                }

                if (e.Element_Type == Acces.type_OBJECTIF.id)
                {
                    Objectif obj = (Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF.id, e.ID);

                    n_ligne++;
                    r       = ws.Cells[n_ligne, 3];
                    r.Value = obj.Libelle;

                    r       = ws.Cells[n_ligne, 24];
                    r.Value = obj.Code.Replace("OBJ-", "");
                }

                if (e.Element_Type == Acces.type_ACTION.id)
                {
                    PATIO.Classes.Action action = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, e.ID);

                    if (action.TypeAction == TypeAction.ACTION)
                    {
                        n_ligne++;
                        r       = ws.Cells[n_ligne, 4];
                        r.Value = action.Libelle;

                        r = ws.Cells[n_ligne, 5];
                        string pilote = "";
                        pilote  = Acces.Donner_Chaine_Liste(action.DirectionPilote, "DIRECTION_METIER", "", true);
                        pilote += (action.Pilote != null) ? "\n" + action.Pilote.Nom + " " + action.Pilote.Prenom : "";
                        r.Value = pilote;

                        r       = ws.Cells[n_ligne, 24];
                        r.Value = action.Code.Replace("ACT-", "");
                    }

                    if (action.TypeAction == TypeAction.OPERATION)
                    {
                        n_ligne++;
                        r       = ws.Cells[n_ligne, 6];
                        r.Value = action.Libelle;

                        r = ws.Cells[n_ligne, 7];
                        string pilote = "";
                        pilote  = Acces.Donner_Chaine_Liste(action.DirectionPilote, "DIRECTION_METIER", "", true);
                        pilote += (action.Pilote != null) ? "\n" + action.Pilote.Nom + " " + action.Pilote.Prenom : "";
                        r.Value = pilote;

                        r       = ws.Cells[n_ligne, 24];
                        r.Value = action.Code.Replace("OPE-", "");
                    }

                    r       = ws.Cells[n_ligne, 8];
                    r.Value = Acces.Donner_Chaine_Liste(action.DirectionAssocie, "DIRECTION_METIER", "", true);

                    r       = ws.Cells[n_ligne, 9];
                    r.Value = (action.ActionPhare ? "X" : "");
                    if (action.OrdreActionPhare > 0)
                    {
                        r.Value = Acces.Trouver_TableValeur(action.OrdreActionPhare).Valeur;
                    }

                    r = ws.Cells[n_ligne, 10]; //Année 2018
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2018") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2018;
                    r = ws.Cells[n_ligne, 11]; //Année 2019
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2019") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2019;
                    r = ws.Cells[n_ligne, 12]; //Année 2020
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2020") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2020;
                    r = ws.Cells[n_ligne, 13]; //Année 2021
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2021") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2021;
                    r = ws.Cells[n_ligne, 14]; //Année 2022
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2022") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2022;
                    r = ws.Cells[n_ligne, 15]; //Année 2023
                    r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2023") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r.Value          = action.Mt_2023;
                    r       = ws.Cells[n_ligne, 16]; //Financement
                    r.Value = action.CoutFinancier;
                    if (action.Mt_Total != null)
                    {
                        if (action.Mt_Total.Length > 0)
                        {
                            r.Value += "\n TOTAL : " + action.Mt_Total + " k€";
                        }
                    }

                    r                = ws.Cells[n_ligne, 17]; //TDS MF
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS591") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_591", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 18]; //TDS Hainaut
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS592") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_592", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 19]; //TDS 62
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS62") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_62", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 20]; //TDS 80
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS80") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_80", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 21]; //TDS 60
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS60") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_60", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 22]; //TDS 02
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS02") ? "X" : "";
                    r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_02", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                    r                = ws.Cells[n_ligne, 23]; //REGION
                    r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "REGION") ? "X" : "";
                }
            }

            //Tri des lignes
            Range r_data = ws.Range["A8:Y" + n_ligne];

            r_data.Sort(r_data.Columns[24, Type.Missing], Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending);

            r_data.Cells.VerticalAlignment = XlVAlign.xlVAlignCenter;

            //Mise en forme
            {
                r_data.WrapText = true; //Renvoie à la ligne
                //Bordures
                Borders border = r_data.Borders;

                border.LineStyle = XlLineStyle.xlContinuous;
                border.Weight    = 2d;
                border[XlBordersIndex.xlEdgeLeft].LineStyle   = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeTop].LineStyle    = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeRight].LineStyle  = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

                //Alignement
                ws.Columns[2].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[5].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[7].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[8].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                ws.Columns[9].HorizontalAlignment  = XlHAlign.xlHAlignCenter;
                ws.Columns[10].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[11].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[12].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[13].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[14].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[15].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                ws.Columns[17].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[18].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[19].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[20].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[21].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[22].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[23].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                //Colonnes masquées
                ws.Columns["X"].Hidden = true; //Colonne Code
            }

            //Sauvegarde du fichier
            wb.SaveAs(fichier + ".xlsx");
            wb.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, fichier + ".pdf");

            wb.Close(false);
            wk.Close();

            //Fermeture de l'application Excel
            app.Quit();
            app = null;

            Process.Start(fichier + ".xlsx");
        }
Ejemplo n.º 4
0
        void CorrectionCode(PATIO.Classes.Action a)
        {
            string code = a.Code;

            //Cas d'une action
            if (code.Substring(0, 3) == Acces.type_ACTION.code)
            {
                string plan = "";
                string OS = ""; string OG = ""; string OP = "";
                string Autre = "";

                string[] lst = code.Split('-');

                plan = lst[1].ToUpper().Trim();
                if (lst.Length >= 3)
                {
                    OS = lst[2].ToUpper().Trim();
                }
                if (lst.Length >= 4)
                {
                    OG = lst[3].ToUpper().Trim();
                }
                if (lst.Length >= 5)
                {
                    OP = lst[4].ToUpper().Trim();
                }
                if (lst.Length >= 6)
                {
                    Autre = lst[5].ToUpper().Trim();
                }

                code = "ACT-" + plan;

                if (OS.Length > 0)
                {
                    OS = OS.Replace("OS", ""); code += "-OS" + string.Format("{0:00}", int.Parse(OS));
                }
                if (OG.Length > 0)
                {
                    OG = OS.Replace("OS", ""); code += "-OG" + string.Format("{0:00}", int.Parse(OG));
                }
                if (OP.Length > 0)
                {
                    OP = OS.Replace("OS", ""); code += "-OP" + string.Format("{0:00}", int.Parse(OP));
                }
                if (Autre.Length > 0)
                {
                    code += "+" + string.Format("{0:000}", int.Parse(Autre));
                }
                //MessageBox.Show(Code + "-->" + code);
                a.Code       = code;
                a.TypeAction = TypeAction.ACTION;
            }
            else
            {
                //Opération
                code         = code.Replace("OPE-", "");
                code         = "OPE-" + code;
                a.Code       = code;
                a.TypeAction = TypeAction.OPERATION;
            }
        }
Ejemplo n.º 5
0
        void ExtraitAction(XElement element)
        {
            listeutilisateur = (List <Utilisateur>)Acces.Remplir_ListeElement(Acces.type_UTILISATEUR.id, "");

            foreach (XElement childElement in element.Elements())
            {
                if (childElement.Name == "Action")
                {
                    PATIO.Classes.Action p = new PATIO.Classes.Action();

                    foreach (XElement xl in childElement.Elements())
                    {
                        switch (xl.Name.ToString())
                        {
                        case "ID":
                        { p.ID = int.Parse(xl.Value.ToString()); break; }

                        case "Libelle":
                        { p.Libelle = xl.Value.ToString(); break; }

                        case "Code":
                        { p.Code = xl.Value.ToString().Replace("+", "_").Replace("|", ".");; break; }

                        case "Description":
                        { p.Description = xl.Value.ToString(); break; }

                        case "Actif":
                        { p.Actif = bool.Parse(xl.Value.ToString()); break; }

                        case "TypeAction":
                        { p.TypeAction = (TypeAction)int.Parse(xl.Value.ToString()); break; }

                        case "Pilote":
                        { p.Pilote = Acces.Trouver_Utilisateur(int.Parse(xl.Value.ToString())); break; }

                        case "DateDebut":
                        { p.DateDebut = DateTime.Parse(xl.Value.ToString()); break; }

                        case "DateFin":
                        { p.DateFin = DateTime.Parse(xl.Value.ToString()); break; }

                        case "Meteo":
                        { p.Meteo = (Meteo)int.Parse(xl.Value.ToString()); break; }

                        case "TxAvancement":
                        { p.TxAvancement = (TxAvancement)int.Parse(xl.Value.ToString()); break; }

                        case "ActionInnovante":
                        { p.ActionInnovante = bool.Parse(xl.Value.ToString()); break; }

                        case "AnalyseQualitative":
                        { p.AnalyseQualitative = xl.Value.ToString(); break; }

                        case "ReductionInegalite":
                        { p.ReductionInegalite = xl.Value.ToString(); break; }
                        }
                    }

                    if (!Acces.Existe_Element(Acces.type_ACTION, "CODE", p.Code))
                    {
                        Acces.Ajouter_Element(Acces.type_ACTION, p);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Edition de la fiche pour un plan
        /// </summary>
        public string Editer_Fiche_Plan()
        {
            //Création de l'application Excel
            app = new Microsoft.Office.Interop.Excel.Application();
            app.DisplayAlerts = false;

            Plan plan = (Plan)Acces.Trouver_Element(Acces.type_PLAN.id, id_element);

            var modele  = Chemin + "\\Modeles\\Fiche_PLAN.xltx";
            var fichier = Chemin + "\\Fichiers\\" + "FP-" + plan.Code + "-" + string.Format("{0:yyMMddHHmmss}", DateTime.Now);

            app.Workbooks.Open(modele);

            Workbooks wk = app.Workbooks;
            Workbook  wb = app.ActiveWorkbook;
            Worksheet ws = wb.Sheets[1];
            Range     r;

            r       = ws.Cells[2, 4];
            r.Value = plan.Libelle;
            r       = ws.Cells[3, 4];
            if (plan.Pilote != null)
            {
                r.Value = plan.Pilote.Nom + " " + plan.Pilote.Prenom;
            }
            r       = ws.Cells[4, 4];
            r.Value = Acces.Donner_Chaine_Liste_Utilisateur(plan.Equipe);; //Groupe interne
            r       = ws.Cells[5, 4];
            r.Value = plan.GroupeExterne;                                  //Groupe externe
            r       = ws.Cells[6, 4];
            r.Value = string.Format("{0:dd/MM/yyyy}", DateTime.Now);       //Groupe interne
            r       = ws.Cells[6, 14];
            r.Value = plan.Code;

            //Affichage des éléments
            int n_ligne = 10;

            //Efface la zone
            ws.Range["A11:Z10000"].Clear();

            List <Lien> listeLien = Acces.Remplir_ListeLien(Acces.type_PLAN, plan.ID.ToString());

            listeLien.Sort();

            //Passe 1 : les objectifs
            foreach (Lien l in listeLien)
            {
                if (l.element2_type != Acces.type_OBJECTIF.id)
                {
                    goto Suite1;
                }

                Objectif obj = (Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF.id, l.element2_id);

                n_ligne++;
                r       = ws.Cells[n_ligne, 1];
                r.Value = obj._op;
                r       = ws.Cells[n_ligne, 2];
                r.Value = obj.Libelle;

                r       = ws.Cells[n_ligne, 22];
                r.Value = obj.Code.Replace("OBJ-", "");
                Suite1 :;
            }

            //Passe 2 : les actions
            foreach (Lien l in listeLien)
            {
                if (l.element2_type != Acces.type_ACTION.id)
                {
                    goto Suite2;
                }

                PATIO.Classes.Action action = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, l.element2_id);

                if (action.TypeAction != TypeAction.ACTION)
                {
                    goto Suite2;
                }
                n_ligne++;
                r       = ws.Cells[n_ligne, 3];
                r.Value = action.Libelle;

                r = ws.Cells[n_ligne, 4];
                string pilote = "";
                pilote  = Acces.Donner_Chaine_Liste(action.DirectionPilote, "DIRECTION_METIER", "", true);
                pilote += (action.Pilote != null) ? "\n" + action.Pilote.Nom + " " + action.Pilote.Prenom : plan.Pilote.Nom + " " + plan.Pilote.Prenom;
                r.Value = pilote;

                r       = ws.Cells[n_ligne, 7];
                r.Value = (action.ActionPhare ? "X" : "");
                if (action.OrdreActionPhare > 0)
                {
                    r.Value = Acces.Trouver_TableValeur(action.OrdreActionPhare).Valeur;
                }

                r = ws.Cells[n_ligne, 8]; //Année 2018
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2018") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2018;
                r = ws.Cells[n_ligne, 9]; //Année 2019
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2019") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2019;
                r = ws.Cells[n_ligne, 10]; //Année 2020
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2020") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2020;
                r = ws.Cells[n_ligne, 11]; //Année 2021
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2021") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2021;
                r = ws.Cells[n_ligne, 12]; //Année 2022
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2022") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2022;
                r = ws.Cells[n_ligne, 13]; //Année 2023
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2023") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2023;
                r       = ws.Cells[n_ligne, 14]; //Financement
                r.Value = action.CoutFinancier;
                if (action.Mt_Total != null)
                {
                    if (action.Mt_Total.Length > 0)
                    {
                        r.Value += "\n TOTAL : " + action.Mt_Total + " k€";
                    }
                }

                r                = ws.Cells[n_ligne, 15]; //TDS MF
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS591") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_591", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 16]; //TDS Hainaut
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS592") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_592", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 17]; //TDS 62
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS62") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_62", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 18]; //TDS 80
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS80") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_80", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 19]; //TDS 60
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS60") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_60", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 20]; //TDS 02
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS02") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_02", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 21]; //REGION
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "REGION") ? "X" : "";

                r       = ws.Cells[n_ligne, 22];
                r.Value = action.Code.Replace("ACT-", "");
                Suite2 :;
            }

            //Passe 3 : les opérations
            foreach (Lien l in listeLien)
            {
                if (l.element2_type != Acces.type_ACTION.id)
                {
                    goto Suite3;
                }

                PATIO.Classes.Action action = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, l.element2_id);

                if (action.TypeAction != TypeAction.OPERATION)
                {
                    goto Suite3;
                }
                n_ligne++;
                r       = ws.Cells[n_ligne, 5];
                r.Value = action.Libelle;

                r = ws.Cells[n_ligne, 6];
                string pilote = "";
                pilote  = Acces.Donner_Chaine_Liste(action.DirectionPilote, "DIRECTION_METIER", "", true);
                pilote += (action.Pilote != null)? "\n" + action.Pilote.Nom + " " + action.Pilote.Prenom : plan.Pilote.Nom + " " + plan.Pilote.Prenom;
                r.Value = pilote;

                r       = ws.Cells[n_ligne, 7];
                r.Value = (action.ActionPhare ? "X" : "");
                if (action.OrdreActionPhare > 0)
                {
                    r.Value = Acces.Trouver_TableValeur(action.OrdreActionPhare).Valeur;
                }

                r = ws.Cells[n_ligne, 8]; //Année 2018
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2018") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2018;
                r = ws.Cells[n_ligne, 9]; //Année 2019
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2019") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2019;
                r = ws.Cells[n_ligne, 10]; //Année 2020
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2020") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2020;
                r = ws.Cells[n_ligne, 11]; //Année 2021
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2021") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2021;
                r = ws.Cells[n_ligne, 12]; //Année 2022
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2022") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2022;
                r = ws.Cells[n_ligne, 13]; //Année 2023
                r.Interior.Color = Acces.Exister_Valeur(action.AnneeMiseOeuvre, "ANNEE_MO", "2023") ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r.Value          = action.Mt_2023;
                r       = ws.Cells[n_ligne, 14]; //Financement
                r.Value = action.CoutFinancier;
                if (action.Mt_Total != null)
                {
                    if (action.Mt_Total.Length > 0)
                    {
                        r.Value += "\n TOTAL : " + action.Mt_Total + " k€";
                    }
                }

                r                = ws.Cells[n_ligne, 15]; //TDS MF
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS591") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_591", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 16]; //TDS Hainaut
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS592") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_592", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 17]; //TDS 62
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS62") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_62", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 18]; //TDS 80
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS80") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_80", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 19]; //TDS 60
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS60") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_60", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 20]; //TDS 02
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "TS02") ? "X" : "";
                r.Interior.Color = Acces.Exister_Valeur(action.Priorite_CTS, "PRIO_CTS_02", "", true) ? XlRgbColor.rgbLightBlue : XlRgbColor.rgbWhite;
                r                = ws.Cells[n_ligne, 21]; //REGION
                r.Value          = Acces.Exister_Valeur(action.TSante, "TSANTE", "REGION") ? "X" : "";

                //Définition de l'ordre : différent d'action car la structure diffère avec les directions métier
                r = ws.Cells[n_ligne, 22];
                PATIO.Classes.Action parent = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, l.element1_id);
                string ordre = parent.Code.Replace("ACT-", "") + "-" + string.Format("{0:x3}", l.ordre);
                r.Value = ordre;
                //r.Value = action.Code.Replace("OPE-", "");
                Suite3 :;
            }

            //Tri des lignes
            Range r_data = ws.Range["A11:W" + n_ligne];

            r_data.Sort(r_data.Columns[22, Type.Missing], Microsoft.Office.Interop.Excel.XlSortOrder.xlAscending);

            r_data.Cells.VerticalAlignment = XlVAlign.xlVAlignCenter;

            //Mise en forme
            {
                r_data.WrapText = true; //Renvoie à la ligne
                //Bordures
                Borders border = r_data.Borders;

                border.LineStyle = XlLineStyle.xlContinuous;
                border.Weight    = 2d;
                border[XlBordersIndex.xlEdgeLeft].LineStyle   = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeTop].LineStyle    = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeBottom].LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;
                border[XlBordersIndex.xlEdgeRight].LineStyle  = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous;

                //Alignement
                ws.Columns[1].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[4].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[6].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[7].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                ws.Columns[8].HorizontalAlignment  = XlHAlign.xlHAlignCenter;
                ws.Columns[9].HorizontalAlignment  = XlHAlign.xlHAlignCenter;
                ws.Columns[10].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[11].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[12].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[13].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                ws.Columns[15].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[16].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[17].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[18].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[19].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[20].HorizontalAlignment = XlHAlign.xlHAlignCenter;
                ws.Columns[21].HorizontalAlignment = XlHAlign.xlHAlignCenter;

                //Colonnes masquées
                ws.Columns["A"].Hidden = true;
                ws.Columns["V"].Hidden = true;
            }

            //Sauvegarde du fichier
            wb.SaveAs(fichier + ".xlsx");
            wb.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, fichier + ".pdf");

            wb.Close(false);
            wk.Close();

            //Fermeture de l'application Excel
            app.Quit();
            app = null;

            if (OuvertureAuto)
            {
                OuvertureFichier(fichier + ".pdf");
            }

            return(fichier);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Edition de la fiche pour une action
        /// </summary>
        public string Editer_Fiche_Action()
        {
            //Création de l'application Excel
            app = new Microsoft.Office.Interop.Excel.Application();
            app.DisplayAlerts = false;

            PATIO.Classes.Action action = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, id_element);

            PATIO.Classes.Action parent = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, id_parent);

            string Code = action.Code;

            //Correction du fichier en cas d'opération -> pour définir le bon ordre
            if (action.TypeAction == TypeAction.OPERATION)
            {
                Code = parent.Code + "-" + string.Format("{0:x3}", ordre);
            }

            var modele  = Chemin + "\\Modeles\\Fiche_ACTION.xltx";
            var fichier = Chemin + "\\Fichiers\\" + "FA-" + Code;

            app.Workbooks.Open(modele);

            Workbooks wk = app.Workbooks;
            Workbook  wb = app.ActiveWorkbook;
            Worksheet ws = wb.Sheets[1];
            Range     r;

            r       = ws.Cells[2, 2];
            r.Value = action.Code;
            r       = ws.Cells[3, 2];
            r.Value = action.Libelle;
            r       = ws.Cells[4, 2];
            if (action.Pilote != null)
            {
                r.Value = action.Pilote.Nom + " " + action.Pilote.Prenom;
            }
            r       = ws.Cells[6, 2];
            r.Value = Conversion(action.Description);

            r       = ws.Cells[7, 2];  //Public cible
            r.Value = Acces.Donner_Chaine_Liste(action.PublicCible, "PUBLIC_CIBLE");
            r       = ws.Cells[8, 2];  //Territoires
            r.Value = action.Territoire;
            r       = ws.Cells[9, 2];  //Partenaires institutionnels
            r.Value = Acces.Donner_Chaine_Liste(action.Partenaire, "PARTENAIRE_INSTITU");
            r       = ws.Cells[10, 2]; //Partenaires institutionnels
            r.Value = Acces.Donner_Chaine_Liste(action.Usager, "PARTENAIRE_USAGER");

            r       = ws.Cells[12, 2]; //Structures porteuses
            r.Value = Acces.Donner_Chaine_Liste(action.StructurePorteuse, "STRUCTURE_PORTEUSE");
            r       = ws.Cells[13, 2]; //Acteurs de santé
            r.Value = Acces.Donner_Chaine_Liste(action.Acteur, "ACTEUR_SANTE");
            r       = ws.Cells[14, 2]; //Leviers
            r.Value = Acces.Donner_Chaine_Liste(action.Partenaire, "LEVIER");
            r       = ws.Cells[15, 2]; //Cout financier
            r.Value = action.CoutFinancier;
            r       = ws.Cells[16, 2]; //Autrs financements

            r       = ws.Cells[18, 2]; //Résultats
            r.Value = action.ResultatLivrable;
            r       = ws.Cells[19, 2]; //Impact
            r.Value = action.NbPersImpact;
            r       = ws.Cells[20, 2]; //Acteurs mobilisés
            r.Value = action.NbActeurMobilise;
            r       = ws.Cells[21, 2]; //Indicateur de résultat
            r.Value = action.IndicResultat;
            r       = ws.Cells[22, 2]; //Indicateur de moyens
            r.Value = action.IndicMoyen;

            r       = ws.Cells[24, 2]; //Années de mise en oeuvre
            r.Value = Acces.Donner_Chaine_Liste(action.AnneeMiseOeuvre, "ANNEE_MO");

            r       = ws.Cells[26, 2]; //Directions pilote
            r.Value = Acces.Donner_Chaine_Liste(action.DirectionPilote, "DIRECTION_METIER", "", true);
            r       = ws.Cells[27, 2]; //Directions associées
            r.Value = Acces.Donner_Chaine_Liste(action.DirectionAssocie, "DIRECTION_METIER", "", true);

            r       = ws.Cells[29, 2]; //Lien avec les autres plans
            r.Value = Acces.Donner_Chaine_Liste(action.LienPlan, "LIEN_PLAN");
            r       = ws.Cells[30, 2]; //Lien avec les parcours
            r.Value = Acces.Donner_Chaine_Liste(action.LienParcours, "LIEN_PARCOURS");

            r       = ws.Cells[32, 2]; //Lien avec les parcours
            r.Value = Acces.Donner_Chaine_Liste(action.TSante, "TSANTE");

            r       = ws.Cells[34, 2]; //CTS 591
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_591");
            r       = ws.Cells[35, 2]; //CTS 592
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_592");
            r       = ws.Cells[36, 2]; //CTS 62
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_62");
            r       = ws.Cells[37, 2]; //CTS 80
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_80");
            r       = ws.Cells[38, 2]; //CTS 60
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_60");
            r       = ws.Cells[39, 2]; //CTS 02
            r.Value = Acces.Donner_Chaine_Liste(action.Priorite_CTS, "PRIORITE_CTS", "PRIO_CTS_02");

            //Sauvegarde du fichier
            wb.SaveAs(fichier + ".xlsx");
            wb.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, fichier + ".pdf");

            wb.Close(false);
            wk.Close();

            //Fermeture de l'application Excel
            app.Quit();
            app = null;

            if (OuvertureAuto)
            {
                OuvertureFichier(fichier + ".pdf");
            }


            return(fichier);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Repositionne les éléments selon la hiérarchie définie
        /// </summary>
        void CreeStructure()
        {
            int nbObjectif = 0; int nbAction = 0; int nbOpération = 0; int nbIndicateur = 0;

            //Affichage de la structure actuelle du plan d'actions
            tree.Nodes.Clear();
            TreeNode NodG = new TreeNode()
            {
                Text       = "Plan d'actions de " + plan.NiveauPlan,
                Name       = Acces.type_PLAN.code + "-" + plan.ID,
                ImageIndex = 1,
                Tag        = Acces.type_PLAN.id,
            };

            NodG.Expand();
            n = 1;

            //Placement des objectifs/sous-objectifs
            List <Lien> listeLien = Acces.Remplir_ListeLien(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.id, 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.id, 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.Classes.Action q = (PATIO.Classes.Action)Acces.Trouver_Element(Acces.type_ACTION.id, p.element2_id);
                        if (!optOpération.Checked)
                        {
                            Ajoute = (q.TypeAction == TypeAction.ACTION);
                        }
                        if (!(q is null))
                        {
                            NodEnfant.Text = q.Libelle;
                            NodEnfant.Name = Acces.type_ACTION.code + "-" + q.ID;
                            //NodEnfant.ImageIndex = Donner_ImageIndex(Acces.type_ACTION.id, 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)
                    {
                        Ajoute = optIndicateur.Checked;
                        Indicateur q = (Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, 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.id, p.element2_id);
                            NodEnfant.ToolTipText = q.Code;
                            nbIndicateur++;
                        }
                        else
                        {
                            Console.Ajouter("[Indicateur non trouvée] ID:" + p.element2_id + " CODE:" + p.element2_code);
                        }
                    }