コード例 #1
0
        private void RecorrerRecursivo(TreeNode treeNode)
        {
            // Print the node.

            /*MessageBoxAdv.Show(treeNode.Text+" Nombre = "+treeNode.Name +
             *      " Padre = "+ ((treeNode.Parent == null)?"Raiz": treeNode.Parent.Name) );*/
            PuiSegAccesos ac = new PuiSegAccesos(db);

            ac.keySAcceso = cboPerfiles.SelectedValue.ToString();
            ac.cmpIdNodo  = treeNode.Name;
            ac.cmpIdPadre = (treeNode.Parent == null) ? "0" : treeNode.Parent.Name;
            ac.cmpAcceso  = (treeNode.Checked == true) ? 1 : 0;

            if (Esnuevo == 1)
            {
                ac.AgregarAcceso();
            }
            else
            {
                if (ac.ElRegistroEsNuevo() == 1)
                {
                    ac.AgregarAcceso();
                }
                else
                {
                    ac.ActualizaAcceso();
                }
            }

            // Print each node recursively.
            foreach (TreeNode tn in treeNode.Nodes)
            {
                RecorrerRecursivo(tn);
            }
        }
コード例 #2
0
        private void btnAsignaSeg_Click(object sender, EventArgs e)
        {
            CargarRegistrosDB();
            PuiSegAccesos Ac = new PuiSegAccesos(db);

            Ac.keySAcceso           = cboPerfiles.SelectedValue.ToString();
            btnActualizaSeg.Enabled = true;
            btnAsignaSeg.Enabled    = false;
            if (Ac.EsAccesoNuevo() == 1)
            {
                CrearArbol("0", null);
                tSeg.ExpandAll();
                tSeg.Nodes[0].Checked = true;
                Esnuevo = 1;
            }
            else
            {
                Esnuevo = 0;
                CrearArbol("0", null);
                tSeg.ExpandAll();
                //Recorrer el arbol y marcar el check conlos Accesos del perfil
                this.tSeg.AfterCheck -= new System.Windows.Forms.TreeViewEventHandler(this.tSeg_AfterCheck);
                MarcaRecursivo2(tSeg.Nodes[0], true);
                this.tSeg.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.tSeg_AfterCheck);
            }
            btnActualizaSeg.Enabled = true;
        }
コード例 #3
0
        private void MarcaRecursivo2(TreeNode n, bool chk)
        {
            //Preguntar el valor de acceso
            PuiSegAccesos ac = new PuiSegAccesos(db);

            ac.keySAcceso = cboPerfiles.SelectedValue.ToString();
            ac.cmpIdNodo  = n.Name;
            ac.cmpIdPadre = (n.Parent == null) ? "0" : n.Parent.Name;
            int Vacceso = ac.ValorDeAcceso();

            //MessageBoxAdv.Show("Nodo " + ac.cmpIdNodo + " padre " + ac.cmpIdPadre + " Acceso " + Vacceso.ToString());

            chk = (Vacceso == 1) ? true : false;


            n.Checked   = chk;
            n.ForeColor = (n.Checked == true) ? Color.Green : Color.Red;

            foreach (TreeNode tn in n.Nodes)
            {
                MarcaRecursivo2(tn, chk);
            }
        }