using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; using ProjectBase.Controls; using SIMDP.BLL; using SIMDP.Model; using ProjectBase.Data.Logs; using SIMDP.Util; using ProjectBase.Data.BaseDAL; namespace SIMDP { public partial class FormMenu : BaseDock { //BlMenuInfo blMenu = new BlMenuInfo(); string condition = null; //查询条件 public FormMenu() { InitializeComponent(); InitTree(); InitGrid(); #region 初始化Winform类型控件 Dictionary winformType = new Dictionary(); winformType.Add("0","全部"); foreach (var item in SysEnvironment.dirWinformType) { winformType.Add(item.Key,item.Value); } //= SysEnvironment.dirWinformType; //winformType.Insert(0, new KeyValuePair("0", "全部")); BindingSource bsType = new BindingSource(); bsType.DataSource = winformType; this.lookUp_WinformType.Properties.DataSource = bsType; this.lookUp_WinformType.Properties.ValueMember = "Key"; this.lookUp_WinformType.Properties.DisplayMember = "Value"; this.lookUp_WinformType.Properties.NullText = "请您选择"; this.lookUp_WinformType.EditValue = "0"; #endregion } /// /// 初始化树 /// private void InitTree() { this.treeView1.BeginUpdate(); this.treeView1.Nodes.Clear(); List moSecondList = null;// 二级标题 string condition = string.Format(" menu_winform_type = '2'"); moSecondList = BLLFactory.Instance.Find(condition); List moFirstList = null; // 一级标题 condition = string.Format(" menu_winform_type = '1'"); moFirstList = BLLFactory.Instance.Find(condition); TreeNode rootNode = new TreeNode(); rootNode.Text = "数据平台"; rootNode.ImageIndex = 0; rootNode.SelectedImageIndex = 0; rootNode.Tag = null; this.treeView1.Nodes.Add(rootNode); foreach (MoMenuInfo first in moFirstList) { if (first != null) { TreeNode oneNode = new TreeNode(); //根节点 oneNode.Text = first.Name; oneNode.Name = first.ID; oneNode.ImageIndex = 1; oneNode.SelectedImageIndex = 1; oneNode.Tag = string.Format(" menu_parent_id = '{0}'", first.ID); //topnode.ImageIndex = Portal.gc.GetImageIndex(groupInfo.Category); //topnode.SelectedImageIndex = Portal.gc.GetImageIndex(groupInfo.Category); rootNode.Nodes.Add(oneNode); foreach (MoMenuInfo second in moSecondList) { if (!second.PID.Equals(first.ID)) continue; TreeNode twoNode = new TreeNode(); //一级节点 twoNode.Text = second.Name; twoNode.Name = second.ID; twoNode.ImageIndex = 2; twoNode.SelectedImageIndex = 2; twoNode.Tag = string.Format(" menu_parent_id = '{0}'", second.ID); //topnode.ImageIndex = Portal.gc.GetImageIndex(groupInfo.Category); //topnode.SelectedImageIndex = Portal.gc.GetImageIndex(groupInfo.Category); oneNode.Nodes.Add(twoNode); } } } this.treeView1.ExpandAll(); this.treeView1.EndUpdate(); } /// /// 选中节点后显示 /// /// /// private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node != null && e.Node.Tag != null) { condition = e.Node.Tag.ToString(); BindData(condition); } else { condition = ""; BindData(condition); } } /// /// 绑定数据源 /// /// private void BindData(string condition) { if (string.IsNullOrEmpty(condition)) { this.winGridViewPager1.DataSource = BLLFactory.Instance.GetAll(this.winGridViewPager1.PagerInfo); for (int i = 0; i < this.winGridViewPager1.gridView1.Columns.Count; i++) //设置每列内容居中显示 { this.winGridViewPager1.gridView1.Columns[i].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; } return; } this.winGridViewPager1.DataSource = BLLFactory.Instance.FindWithPager(condition,this.winGridViewPager1.PagerInfo); for (int i = 0; i < this.winGridViewPager1.gridView1.Columns.Count; i++) //设置每列内容居中显示 { this.winGridViewPager1.gridView1.Columns[i].AppearanceCell.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; } } /// /// 初始化表格控件 /// private void InitGrid() { //entity this.winGridViewPager1.OnPageChanged += new EventHandler(winGridViewPager1_OnPageChanged); this.winGridViewPager1.OnStartExport += new EventHandler(winGridViewPager1_OnStartExport); this.winGridViewPager1.OnEditSelected += new EventHandler(winGridViewPager1_OnEditSelected); this.winGridViewPager1.OnAddNew += new EventHandler(winGridViewPager1_OnAddNew); this.winGridViewPager1.OnDeleteSelected += new EventHandler(winGridViewPager1_OnDeleteSelected); this.winGridViewPager1.OnRefresh += new EventHandler(winGridViewPager1_OnRefresh); this.winGridViewPager1.gridView1.CustomColumnDisplayText += new DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventHandler(gridView1_CustomColumnDisplayText); //this.winGridViewPager1.AppendedMenu = this.contextMenuStrip1; this.winGridViewPager1.ShowLineNumber = true; this.winGridViewPager1.BestFitColumnWith = true; //this.winGridViewPager1.PagerInfo.PageSize = 10; this.winGridViewPager1.DisplayColumns = "Name,Icon,Seq,FunctionId,Visible,WinformType,WebIcon,Url,Creator_ID,CreateTime,Deleted"; #region 添加别名解析 this.winGridViewPager1.AddColumnAlias("ID", ""); this.winGridViewPager1.AddColumnAlias("PID", ""); this.winGridViewPager1.AddColumnAlias("Name", "显示名称"); this.winGridViewPager1.AddColumnAlias("Icon", "图标"); this.winGridViewPager1.AddColumnAlias("Seq", "排序"); this.winGridViewPager1.AddColumnAlias("FunctionId", "功能ID"); this.winGridViewPager1.AddColumnAlias("Visible", "菜单可见"); this.winGridViewPager1.AddColumnAlias("WinformType", "Winform窗体类型"); this.winGridViewPager1.AddColumnAlias("WebIcon", "Web界面的菜单图标"); this.winGridViewPager1.AddColumnAlias("Url", "Web界面Url地址"); this.winGridViewPager1.AddColumnAlias("Creator_ID", "创建人ID"); this.winGridViewPager1.AddColumnAlias("CreateTime", "创建时间"); this.winGridViewPager1.AddColumnAlias("Deleted", "是否已删除"); #endregion //string where = GetConditionSql(); //List list = BLLFactory.Instance.FindWithPager(where, this.winGridViewPager1.PagerInfo); this.winGridViewPager1.PrintTitle = "功能菜单信息报表"; this.winGridViewPager1.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center; } /// /// 分页控件翻页的操作 /// private void winGridViewPager1_OnPageChanged(object sender, EventArgs e) { BindData(condition); } /// /// 分页控件全部导出操作前的操作 /// private void winGridViewPager1_OnStartExport(object sender, EventArgs e) { this.winGridViewPager1.AllToExport = BLLFactory.Instance.Find(condition); } /// /// 分页控件编辑项操作 /// private void winGridViewPager1_OnEditSelected(object sender, EventArgs e) { //string ID = this.winGridViewPager1.gridView1.GetFocusedRowCellDisplayText("ID"); //List IDList = new List(); //for (int i = 0; i < this.winGridViewPager1.gridView1.RowCount; i++) //{ // string strTemp = this.winGridViewPager1.GridView1.GetRowCellDisplayText(i, "ID"); // IDList.Add(strTemp); //} MoMenuInfo selectRow = this.winGridViewPager1.gridView1.GetFocusedRow() as MoMenuInfo; FormEditMenu editMenu = new FormEditMenu(selectRow); editMenu.saveData += new FormEditMenu.save(DataSaved); editMenu.ShowDialog(); } /// /// 分页控件新增操作 /// private void winGridViewPager1_OnAddNew(object sender, EventArgs e) { FormEditMenu editMenu = new FormEditMenu(null); editMenu.saveData += new FormEditMenu.save(DataSaved); editMenu.ShowDialog(); } /// /// 分页控件删除操作 /// private void winGridViewPager1_OnDeleteSelected(object sender, EventArgs e) { try { if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的记录么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return; } MoMenuInfo selectRow = this.winGridViewPager1.gridView1.GetFocusedRow() as MoMenuInfo; selectRow.Deleted = true; bool flag = BLLFactory.Instance.Update(selectRow,selectRow.Seq); if (flag) { DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); BindData(condition); InitTree(); //BlAuthoryRight bl = new BlAuthoryRight(); BLLFactory.Instance.CreateAuthoryRight(); } } catch (Exception ex) { DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); LogHelper.log.Error(string.Format("修改数据库menu出现错误:{0}", ex)); } } /// /// 分页控件刷新操作 /// private void winGridViewPager1_OnRefresh(object sender, EventArgs e) { BindData(condition); } private void btn_Query_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txt_Name.Text) && string.IsNullOrEmpty(txt_FunctionId.Text) && string.IsNullOrEmpty(txt_Url.Text) && check_Visible.CheckState != CheckState.Checked && lookUp_WinformType.EditValue.ToString() == "0") { BindData(null); condition = null; return; } string sql = " 1=1"; if (!string.IsNullOrEmpty(txt_Name.Text)) { sql += string.Format(" AND menu_name = '{0}'", txt_Name.Text); } if (!string.IsNullOrEmpty(txt_FunctionId.Text)) { sql += string.Format(" AND menu_function_id = '{0}'", txt_FunctionId.Text); } if (lookUp_WinformType.EditValue.ToString() != "0") { sql += string.Format(" AND menu_winform_type = '{0}'", lookUp_WinformType.EditValue.ToString()); } if (!string.IsNullOrEmpty(txt_Url.Text)) { sql += string.Format(" AND menu_url = '{0}'", txt_Url.Text); } if (check_Visible.CheckState == CheckState.Checked) { sql += string.Format(" AND menu_visible = '{0}'", 1); } BindData(sql); condition = sql; } /// /// 保存数据成功后调用 /// private void DataSaved() { InitTree(); BindData(condition); } void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.ColumnType == typeof(DateTime)) { string columnName = e.Column.FieldName; if (e.Value != null) { if (Convert.ToDateTime(e.Value) <= Convert.ToDateTime("1900-1-1")) { e.DisplayText = ""; } else { e.DisplayText = Convert.ToDateTime(e.Value).ToString("yyyy-MM-dd HH:mm");//yyyy-MM-dd } } } if (e.Column.FieldName == "WinformType") { e.DisplayText = SysEnvironment.dirWinformType.FirstOrDefault(p => p.Key == e.Value.ToString().Trim()).Value; } } private void menu_Add_Click(object sender, EventArgs e) { winGridViewPager1_OnAddNew(sender, e); } private void menu_Expand_Click(object sender, EventArgs e) { this.treeView1.ExpandAll(); } private void menu_Collapse_Click(object sender, EventArgs e) { this.treeView1.CollapseAll(); } private void menu_Refresh_Click(object sender, EventArgs e) { InitTree(); } } }