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.Model; using SIMDP.BLL; using ProjectBase.Data.Logs; using SIMDP.Util; using ProjectBase.Data.BaseDAL; using System.Timers; namespace SIMDP { public partial class FormRules : BaseDock { //BlRule blRule = new BlRule(); //private System.Timers.Timer timer = null; //private int interval = 1000; //private int count = 0; //private delegate void winFormDelegate(); ///// ///// 30s刷新一次表格 ///// //private const int timeSpan = 30; public FormRules() { InitializeComponent(); } /// /// 初始化导航控件 /// private void InitNavBarControl() { this.navBarControl1.Items.Clear(); this.navBarGroup1.ItemLinks.Clear(); List moRules = BLLFactory.Instance.GetAll(); foreach (MoRule item in moRules) { DevExpress.XtraNavBar.NavBarItem navBarItem = new DevExpress.XtraNavBar.NavBarItem(); navBarItem.Caption = item.RuleName; navBarItem.Name = item.RuleId.ToString(); navBarItem.SmallImage = global::SIMDP.Properties.Resources.BOReport_16x16; navBarItem.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(NavBarItem_Click); this.navBarControl1.Items.AddRange(new DevExpress.XtraNavBar.NavBarItem[] { navBarItem }); this.navBarGroup1.ItemLinks.AddRange(new DevExpress.XtraNavBar.NavBarItemLink[] { new DevExpress.XtraNavBar.NavBarItemLink(navBarItem) }); } if (this.navBarGroup1.ItemLinks.Count > 0) { this.navBarControl1.SelectedLink = this.navBarGroup1.ItemLinks[0]; } InitControl(); } /// /// 初始化界面右侧控件 /// private void InitControl() { if (this.navBarGroup1.ItemLinks.Count > 0) { string id = this.navBarControl1.SelectedLink.ItemName.ToString(); MoRule rule = BLLFactory.Instance.FindByID(id); #region 刷新控件 this.label_Rules.Text = rule.RuleName + "列表:"; this.label_Rules.Visible = true; this.gridControl_Rules.Visible = true; #endregion this.gridControl_Rules.DataSource = BLLFactory.Instance.AnalyzeRuleValue(rule); this.gridControl_Rules.RefreshDataSource(); } } private void NavBarItem_Click(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { string id = e.Link.ItemName; MoRule rule = BLLFactory.Instance.FindByID(id); this.label_Rules.Text = rule.RuleName + "列表:"; this.gridControl_Rules.DataSource = BLLFactory.Instance.AnalyzeRuleValue(rule); this.gridControl_Rules.RefreshDataSource(); } //private void btn_Edit_Click(object sender, EventArgs e) //{ // DataTable dt = this.gridControl_Rules.DataSource as DataTable; // DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView; // DataRow row = selectRow.Row; // FormEditRuleValue editRules = new FormEditRuleValue(dt, row, "Edit"); // editRules.ShowDialog(); //} //private void btn_Delete_Click(object sender, EventArgs e) //{ // try // { // DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView; // DataRow row = selectRow.Row; // if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的记录么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) // { // return; // } // DataTable dt = this.gridControl_Rules.DataSource as DataTable; // dt.Rows.Remove(row); // if (dt.Rows.Count == 1) // { // DevExpress.XtraEditors.XtraMessageBox.Show("只有一条信息,无法删除。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; // } // string ruleValue = BLLFactory.Instance.FormRuleValue(dt); // MoRule rule = BLLFactory.Instance.FindByID(dt.Rows[0]["RuleId"]); // rule.RuleValue = ruleValue; // bool flag = BLLFactory.Instance.Update(rule, dt.Rows[0]["RuleId"]); // if (flag) // { // DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // } // else // { // DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // } // } // catch (Exception ex) // { // DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // LogHelper.log.Error(string.Format("修改数据库rules出现错误:{0}", ex)); // } //} //private void btn_Add_Click(object sender, EventArgs e) //{ // DataTable dt = this.gridControl_Rules.DataSource as DataTable; // //BlDataPoint bl = new BlDataPoint(); // DataTable dtRule = BLLFactory.Instance.GetVar(); // if (dt.Rows.Count == dtRule.Rows.Count) // { // DevExpress.XtraEditors.XtraMessageBox.Show("变量都已存在,无法添加。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); // return; // } // FormEditRuleValue editRules = new FormEditRuleValue(dt,null, "Add"); // editRules.ShowDialog(); //} private void menu_Refresh_Click(object sender, EventArgs e) { InitNavBarControl(); } private void menu_Delete_Click(object sender, EventArgs e) { try { if (this.navBarGroup1.ItemLinks.Count <= 0) { DevExpress.XtraEditors.XtraMessageBox.Show("没有可删除的项。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的项么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No) { return; } string id = this.navBarControl1.SelectedLink.ItemName.ToString(); bool flag = BLLFactory.Instance.Delete(id, SysEnvironment.CurrentLoginID); if (flag) { DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); InitNavBarControl(); } else { DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); LogHelper.log.Error(string.Format("删除数据库rules出现错误:{0}", ex)); } } private void menu_Add_Click(object sender, EventArgs e) { FormEditRule editRule = new FormEditRule(); editRule.saveData += new FormEditRule.save(InitNavBarControl); editRule.ShowDialog(); } /// /// 点击导航栏item,图标变大 /// /// /// private void navBarControl1_CustomDrawLink(object sender, DevExpress.XtraNavBar.ViewInfo.CustomDrawNavBarElementEventArgs e) { DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs info = e.ObjectInfo as DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs; if (info.State == DevExpress.Utils.Drawing.ObjectState.Selected | info.State == DevExpress.Utils.Drawing.ObjectState.Pressed) { //e.Graphics.FillRectangle(Brushes.Red, e.ObjectInfo.Bounds); item背景颜色 e.Graphics.DrawImage(e.Image,info.ImageRectangle); e.Appearance.DrawString(e.Cache, info.Link.Caption, info.CaptionRectangle); //e.Appearance.DrawVString(e.Cache,info.Link.Caption,new Font("宋体",16),Brushes.Black,e.ObjectInfo.Bounds,StringFormat.GenericDefault,0); e.Handled = true; } } private void gridView_Rules_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "Type") { e.DisplayText = SysEnvironment.dirType.FirstOrDefault(p => p.Key == Convert.ToInt32(e.Value)).Value; } } private void menu_Edit_Click(object sender, EventArgs e) { string id = this.navBarControl1.SelectedLink.ItemName.ToString(); MoRule rule = BLLFactory.Instance.FindByID(id); FormEditRule editRule = new FormEditRule(); editRule.rule = rule; editRule.saveData += new FormEditRule.save(InitNavBarControl); editRule.ShowDialog(); } private void FormRules_Load(object sender, EventArgs e) { // this.splitContainerControl1.SplitterPosition =100; InitNavBarControl(); //timer = new System.Timers.Timer(interval); //timer.Elapsed += Refresh_Elapsed; //timer.Start(); } /// /// 定时刷新 /// /// /// //private void Refresh_Elapsed(object sender, ElapsedEventArgs e) //{ // count++; // if (this.chk_Refresh.Checked != true) // { // return; // } // if (count % timeSpan == 0) // { // if (this.InvokeRequired) // { // winFormDelegate mes = new winFormDelegate(InitControl); // this.Invoke(mes, null); // } // else // { // InitControl(); // } // count = 0; // } //} } }