예제 #1
0
        private void lstObjectif_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest == nodSrc)
            {
                return;
            }                                 //Système anti-bouclage

            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            if (!(nodSrc.Tag is null))
            {
                Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);
                Acces.Supprimer_Lien(k);
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces
            };

            p.element1_type = Acces.type_OBJECTIF.id;
            p.element1_id   = int.Parse(NodDest.Name);
            p.element1_code = ((Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF.id, p.element1_id)).Code;
            p.element2_type = Acces.type_OBJECTIF.id;
            p.element2_id   = int.Parse(nodSrc.Name);
            p.element2_code = ((Objectif)Acces.Trouver_Element(Acces.type_OBJECTIF.id, p.element2_id)).Code;
            p.element0_type = Acces.type_PLAN.id; //SYSTEME
            p.element0_id   = 1;                  //SYSTEME
            p.element0_code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            p.Ajouter();
            Acces.Ajouter_Lien(p);

            TreeNode nd = new TreeNode();

            nd = (TreeNode)nodSrc.Clone();
            NodDest.Nodes.Add(nd);
            lstObjectif.SelectedNode = nd;

            TreeNode[] Nods = lstObjectif.Nodes.Find(nodSrc.Name.ToString(), true);

            try { Nods[0].Remove(); } catch { }
        }
예제 #2
0
        private void lstUser_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            // Add a child node.
            //node.Nodes.Add((TreeNode)e.Data.GetData(typeof(TreeNode)));

            // Show the newly added node if it is not already visible.
            //node.Expand();

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest.Name == nodSrc.Name)
            {
                return;
            }

            //Vérification du type de destination
            if (!(Acces.Trouver_Utilisateur(int.Parse(NodDest.Name.ToString())).TypeUtilisateur == TypeUtilisateur.DOSSIER))
            {
                MessageBox.Show("Un utilisateur (hors type DOSSIER) ne peut contenir d'autres utilisateurs", "Erreur", MessageBoxButtons.OK);
                return;
            }
            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);

            if (!(k is null)) //Suppression des liens existants pour le Prop 0 (SYSTEME)
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien();

            p.element1_type = Acces.type_UTILISATEUR.id;
            p.element1_id   = int.Parse(NodDest.Name);
            p.element1_code = Acces.Trouver_Utilisateur(p.element1_id).Code;
            p.element2_type = Acces.type_UTILISATEUR.id;
            p.element1_id   = int.Parse(nodSrc.Name);
            p.element2_code = Acces.Trouver_Utilisateur(p.element2_id).Code;
            p.element0_type = Acces.type_PLAN.id;
            p.element0_id   = 1; //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            if (p.element1_id == p.element2_id)
            {
                return;
            }                                               //Système anti-bouclage

            p.Ajouter();

            Acces.Ajouter_Lien(p);
            Afficher_ListeUser();

            TreeNode[] Nods = lstUser.Nodes.Find(nodSrc.Name.ToString(), true);

            lstUser.SelectedNode = Nods[0];
            Nods[0].EnsureVisible();
        }
예제 #3
0
        private void lstGroupe_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            // Add a child node.
            //node.Nodes.Add((TreeNode)e.Data.GetData(typeof(TreeNode)));

            // Show the newly added node if it is not already visible.
            //node.Expand();

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest.Name == nodSrc.Name)
            {
                return;
            }

            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(((Lien)nodSrc.Tag).ID);

            if (!(k is null)) //Suppression des liens existants pour le Prop 0 (SYSTEME)
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces
            };

            p.Element1_Type = Acces.type_GROUPE.ID;
            p.Element1_ID   = int.Parse(NodDest.Name);
            p.Element1_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element1_ID)).Code;
            p.Element2_Type = Acces.type_GROUPE.ID;
            p.Element2_ID   = int.Parse(nodSrc.Name);
            p.Element2_Code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR, p.Element2_ID)).Code;
            p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
            p.Element0_ID   = 1;                  //SYSTEME
            p.Element0_Code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            if (p.Element1_ID == p.Element2_ID)
            {
                return;
            }                                               //Système anti-bouclage

            p.Ajouter();
            Acces.Ajouter_Lien(p);

            AfficheListeGroupe();

            TreeNode[] Nods = lstGroupe.Nodes.Find(nodSrc.Name.ToString(), true);

            lstGroupe.SelectedNode = Nods[0];
            Nods[0].EnsureVisible();
        }
예제 #4
0
        private void lstIndicateur_DragDrop(object sender, DragEventArgs e)
        {
            // Get the tree.
            TreeView tree = (TreeView)sender;

            // Get the screen point.
            System.Drawing.Point pt = new System.Drawing.Point(e.X, e.Y);

            // Convert to a point in the TreeView's coordinate system.
            pt = tree.PointToClient(pt);

            // Get the node underneath the mouse.
            TreeNode NodDest = tree.GetNodeAt(pt);

            TreeNode nodSrc = (TreeNode)e.Data.GetData(typeof(TreeNode));

            if (NodDest == nodSrc)
            {
                return;
            }

            //Vérification du type de destination
            if (!(((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, int.Parse(NodDest.Name.ToString()))).TypeIndicateur == TypeIndicateur.DOSSIER))
            {
                MessageBox.Show("Un indicateur (hors type DOSSIER) ne peut contenir d'autres indicateurs", "Erreur", MessageBoxButtons.OK);
                return;
            }
            //Prise en compte du changement en base
            //Recherche d'un lien du NodSrc
            Lien k = Acces.Donner_LienParent(int.Parse(nodSrc.Tag.ToString()));

            if (!(k is null))
            {
                k.Acces = Acces;
                k.Supprimer();
            }

            //Création du lien
            Lien p = new Lien()
            {
                Acces = Acces,
            };

            p.element1_type = Acces.type_INDICATEUR.id;
            p.element1_id   = int.Parse(NodDest.Name);
            p.element1_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, p.element1_id)).Code;
            p.element2_type = Acces.type_INDICATEUR.id;
            p.element2_id   = int.Parse(nodSrc.Name);
            p.element2_code = ((Indicateur)Acces.Trouver_Element(Acces.type_INDICATEUR.id, p.element2_id)).Code;
            p.element0_type = Acces.type_PLAN.id; //SYSTEME
            p.element0_id   = 1;                  //SYSTEME
            p.element0_code = "SYSTEME";          //SYSTEME
            p.ordre         = p.Donner_Ordre() + 1;

            p.Ajouter();

            Acces.Ajouter_Lien(p);

            TreeNode nd = new TreeNode();

            nd = (TreeNode)nodSrc.Clone();
            NodDest.Nodes.Add(nd);
            lstIndicateur.SelectedNode = nd;

            TreeNode[] Nods = lstIndicateur.Nodes.Find(nodSrc.Name.ToString(), true);

            try { Nods[0].Remove(); } catch { }
        }
예제 #5
0
        void Valider()
        {
            var LibProcessus  = lblLibelleProcessus.Text.Trim();
            var CodeProcessus = lblCodeProcessus.Text.Trim().ToUpper();
            var OptActive     = OptActiveProcessus.Checked;
            var TypeProcessus = (TypeProcessus)lstTypeProcessus.SelectedIndex;


            if (LibProcessus.Length == 0)
            {
                MessageBox.Show("Libellé du processus obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            if (CodeProcessus.Length == 0)
            {
                MessageBox.Show("Code du processus obligatoire", "Erreur", MessageBoxButtons.OK);
                return;
            }

            bool ok = false;

            if (Creation)
            {
                ok = Acces.Existe_Element(Acces.type_PROCESSUS, "CODE", CodeProcessus);
            }
            else
            {
                //ok = fonc.ExisteCode(Acces.type_INDICATEUR, CodeGroupe, groupe.ID);
            }

            if (ok)
            {
                MessageBox.Show("Pb avec le code", "Erreur", MessageBoxButtons.OK); return;
            }

            processus.Acces          = Acces;
            processus.Libelle        = LibProcessus;
            processus.Code           = CodeProcessus;
            processus.Actif          = OptActive;
            processus.Type_Processus = TypeProcessus;
            processus.DonneeEntrante = ChoixDonneeEntrant.ListeSelectionId;
            processus.DonneeSortante = ChoixDonneeSortant.ListeSelectionId;

            TypeElement Type = Acces.type_PROCESSUS;

            if (Creation)
            {
                if (!(Acces.Existe_Element(Type, "CODE", processus.Code)))
                {
                    processus.ID = Acces.Ajouter_Element(Type, processus);

                    if (processusParent != null)
                    {
                        Lien p = new Lien()
                        {
                            Acces = Acces
                        };
                        p.Element0_Type = Acces.type_PLAN.ID; //SYSTEME
                        p.Element0_ID   = 1;                  //SYSTEME
                        p.Element0_Code = "SYSTEME";          //SYSTEME
                        p.Element1_Type = Acces.type_PROCESSUS.ID;
                        p.Element1_ID   = processusParent.ID;
                        p.Element1_Code = ((Process)Acces.Trouver_Element(Acces.type_PROCESSUS, p.Element1_ID)).Code;
                        p.Element2_Type = Acces.type_PROCESSUS.ID;
                        p.Element2_ID   = processus.ID;
                        p.Element2_Code = ((Process)Acces.Trouver_Element(Acces.type_PROCESSUS, p.Element2_ID)).Code;
                        p.ordre         = p.Donner_Ordre() + 1;

                        p.Ajouter();
                        Acces.Ajouter_Lien(p);
                    }
                }
                else
                {
                    MessageBox.Show("Processus existant (Code)", "Erreur"); return;
                }
            }
            else
            {
                Acces.Enregistrer(Type, processus);
            }

            this.DialogResult = DialogResult.OK;
        }