Пример #1
0
 private void colRight_SelectedIndexChanged(object sender, EventArgs e)
 {
     Heren.Common.Controls.TableView.FindComboBoxEditingControl control = sender as Heren.Common.Controls.TableView.FindComboBoxEditingControl;
     if (control.SelectedItem != null)
     {
         RightPoint rightPoint = control.SelectedItem as RightPoint;
         this.dataGridView1.CurrentRow.Cells[this.colRightDesc.Index].Value = rightPoint.RightDesc;
         this.dataGridView1.CurrentRow.Cells[this.colUICommand.Index].Value = rightPoint.RightCommand;
     }
 }
Пример #2
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (this.cboProduct.SelectedItem == null)
            {
                MessageBoxEx.Show("请选择产品");
                return;
            }

            string szProduct = (this.cboProduct.SelectedItem as HdpProduct).NAME_SHORT;
            List <HdpRoleGrant> lstHdpRoleGrant = new List <HdpRoleGrant>();

            foreach (Control item in this.flpGrant.Controls)
            {
                CheckBox chk = item as CheckBox;
                if (item == null)
                {
                    continue;
                }
                if (chk.Checked == false)
                {
                    continue;
                }
                RightPoint   point        = chk.Tag as RightPoint;
                HdpRoleGrant hdpRoleGrant = new HdpRoleGrant();
                hdpRoleGrant.GrantID          = hdpRoleGrant.MakeGrantID();
                hdpRoleGrant.RoleCode         = this.m_roleInfo.RoleCode;
                hdpRoleGrant.Product          = szProduct;
                hdpRoleGrant.RoleRightCommand = point.RightCommand;
                hdpRoleGrant.RoleRightDesc    = point.RightDesc;
                hdpRoleGrant.RoleRightKey     = point.RightKey;
                lstHdpRoleGrant.Add(hdpRoleGrant);
            }
            short shRet = HdpRoleGrantAccess.Instance.SaveHdpRoleGrantList(this.m_roleInfo.RoleCode, szProduct, lstHdpRoleGrant);

            if (shRet != SystemData.ReturnValue.OK)
            {
                MessageBoxEx.Show("授权失败!");
                return;
            }
            MessageBoxEx.ShowMessage("授权成功!");
            this.DialogResult = DialogResult.OK;
        }
 }                                                            //Левая ветвь, для других точек при построении дерева
 //=======================[Обход дерева кодирования]=============================
 public List <bool> ByPassTree(char symbol, List <bool> data) //На вход символ и лист c битами
 {
     if (LeftPoint == null && RightPoint == null)             //Правая и левая пусты
     {
         if (symbol.Equals(this.Sign))
         {
             return(data);                             //Если совпадает вернуть последовательность TrueFalse
         }
         else
         {
             return(null);    //иначе вернуть пустую ссылку
         }
     }
     else                                                               //Если правая или левая не пусты
     {
         List <bool> leftPoint  = null;                                 //Создать булевый лист левых узловых точек, нужный для спуска вниз по дереву
         List <bool> rightPoint = null;                                 //Создать булевый лист правых узловых точек, нужный для спуска вниз по дереву.
         if (LeftPoint != null)                                         //Левая точка не пуста
         {
             List <bool> leftPointKey = new List <bool>();              //Создадим лист кодирования/декодирования знака для левых точек
             leftPointKey.AddRange(data);                               //Добавить в конец списка последовательность TrueFalse
             leftPointKey.Add(false);                                   //Добавить элемент false (0)
             leftPoint = LeftPoint.ByPassTree(symbol, leftPointKey);    //Начнем обход левой точки
         }
         if (RightPoint != null)                                        //Правая точка не пуста
         {
             List <bool> rightPointKey = new List <bool>();             //Создадим лист кодирования/декодирования знака для правых точек
             rightPointKey.AddRange(data);                              //Добавить в конец списка последовательность TrueFalse
             rightPointKey.Add(true);                                   //Добавить элемент true (1)
             rightPoint = RightPoint.ByPassTree(symbol, rightPointKey); //Начнем обход правой точки
         }
         if (leftPoint != null)
         {
             return(leftPoint);
         }
         else
         {
             return(rightPoint);
         }
     }
 }