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; } }
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); } } }