FormRules.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Linq;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using DevExpress.XtraEditors;
  11. using ProjectBase.Controls;
  12. using SIMDP.Model;
  13. using SIMDP.BLL;
  14. using ProjectBase.Data.Logs;
  15. using ProjectBase.Util;
  16. using ProjectBase.Data.BaseDAL;
  17. using System.Timers;
  18. namespace SIMDP.View
  19. {
  20. public partial class FormRules : BaseDock
  21. {
  22. //BlRule blRule = new BlRule();
  23. //private System.Timers.Timer timer = null;
  24. //private int interval = 1000;
  25. //private int count = 0;
  26. //private delegate void winFormDelegate();
  27. ///// <summary>
  28. ///// 30s刷新一次表格
  29. ///// </summary>
  30. //private const int timeSpan = 30;
  31. public FormRules()
  32. {
  33. InitializeComponent();
  34. }
  35. /// <summary>
  36. /// 初始化导航控件
  37. /// </summary>
  38. private void InitNavBarControl()
  39. {
  40. this.navBarControl1.Items.Clear();
  41. this.navBarGroup1.ItemLinks.Clear();
  42. List<MoRule> moRules = BLLFactory<BlRule>.Instance.GetAll();
  43. foreach (MoRule item in moRules)
  44. {
  45. DevExpress.XtraNavBar.NavBarItem navBarItem = new DevExpress.XtraNavBar.NavBarItem();
  46. navBarItem.Caption = item.RuleName;
  47. navBarItem.Name = item.RuleId.ToString();
  48. navBarItem.SmallImage = global::SIMDP.View.Properties.Resources.BOReport_16x16;
  49. navBarItem.LinkClicked += new DevExpress.XtraNavBar.NavBarLinkEventHandler(NavBarItem_Click);
  50. this.navBarControl1.Items.AddRange(new DevExpress.XtraNavBar.NavBarItem[] { navBarItem });
  51. this.navBarGroup1.ItemLinks.AddRange(new DevExpress.XtraNavBar.NavBarItemLink[] { new DevExpress.XtraNavBar.NavBarItemLink(navBarItem) });
  52. }
  53. if (this.navBarGroup1.ItemLinks.Count > 0)
  54. {
  55. this.navBarControl1.SelectedLink = this.navBarGroup1.ItemLinks[0];
  56. }
  57. InitControl();
  58. }
  59. /// <summary>
  60. /// 初始化界面右侧控件
  61. /// </summary>
  62. private void InitControl()
  63. {
  64. if (this.navBarGroup1.ItemLinks.Count > 0)
  65. {
  66. string id = this.navBarControl1.SelectedLink.ItemName.ToString();
  67. MoRule rule = BLLFactory<BlRule>.Instance.FindByID(id);
  68. #region 刷新控件
  69. this.label_Rules.Text = rule.RuleName + "列表:";
  70. this.label_Rules.Visible = true;
  71. this.gridControl_Rules.Visible = true;
  72. #endregion
  73. this.gridControl_Rules.DataSource = BLLFactory<BlRule>.Instance.AnalyzeRuleValue(rule);
  74. this.gridControl_Rules.RefreshDataSource();
  75. }
  76. }
  77. private void NavBarItem_Click(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
  78. {
  79. string id = e.Link.ItemName;
  80. MoRule rule = BLLFactory<BlRule>.Instance.FindByID(id);
  81. this.label_Rules.Text = rule.RuleName + "列表:";
  82. this.gridControl_Rules.DataSource = BLLFactory<BlRule>.Instance.AnalyzeRuleValue(rule);
  83. this.gridControl_Rules.RefreshDataSource();
  84. }
  85. //private void btn_Edit_Click(object sender, EventArgs e)
  86. //{
  87. // DataTable dt = this.gridControl_Rules.DataSource as DataTable;
  88. // DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView;
  89. // DataRow row = selectRow.Row;
  90. // FormEditRuleValue editRules = new FormEditRuleValue(dt, row, "Edit");
  91. // editRules.ShowDialog();
  92. //}
  93. //private void btn_Delete_Click(object sender, EventArgs e)
  94. //{
  95. // try
  96. // {
  97. // DataRowView selectRow = this.gridView_Rules.GetFocusedRow() as DataRowView;
  98. // DataRow row = selectRow.Row;
  99. // if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的记录么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
  100. // {
  101. // return;
  102. // }
  103. // DataTable dt = this.gridControl_Rules.DataSource as DataTable;
  104. // dt.Rows.Remove(row);
  105. // if (dt.Rows.Count == 1)
  106. // {
  107. // DevExpress.XtraEditors.XtraMessageBox.Show("只有一条信息,无法删除。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  108. // return;
  109. // }
  110. // string ruleValue = BLLFactory<BlRule>.Instance.FormRuleValue(dt);
  111. // MoRule rule = BLLFactory<BlRule>.Instance.FindByID(dt.Rows[0]["RuleId"]);
  112. // rule.RuleValue = ruleValue;
  113. // bool flag = BLLFactory<BlRule>.Instance.Update(rule, dt.Rows[0]["RuleId"]);
  114. // if (flag)
  115. // {
  116. // DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  117. // }
  118. // else
  119. // {
  120. // DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  121. // }
  122. // }
  123. // catch (Exception ex)
  124. // {
  125. // DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  126. // LogHelper.log.Error(string.Format("修改数据库rules出现错误:{0}", ex));
  127. // }
  128. //}
  129. //private void btn_Add_Click(object sender, EventArgs e)
  130. //{
  131. // DataTable dt = this.gridControl_Rules.DataSource as DataTable;
  132. // //BlDataPoint bl = new BlDataPoint();
  133. // DataTable dtRule = BLLFactory<BlDataPoint>.Instance.GetVar();
  134. // if (dt.Rows.Count == dtRule.Rows.Count)
  135. // {
  136. // DevExpress.XtraEditors.XtraMessageBox.Show("变量都已存在,无法添加。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  137. // return;
  138. // }
  139. // FormEditRuleValue editRules = new FormEditRuleValue(dt,null, "Add");
  140. // editRules.ShowDialog();
  141. //}
  142. private void menu_Refresh_Click(object sender, EventArgs e)
  143. {
  144. InitNavBarControl();
  145. }
  146. private void menu_Delete_Click(object sender, EventArgs e)
  147. {
  148. try
  149. {
  150. if (this.navBarGroup1.ItemLinks.Count <= 0)
  151. {
  152. DevExpress.XtraEditors.XtraMessageBox.Show("没有可删除的项。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  153. return;
  154. }
  155. if (DevExpress.XtraEditors.XtraMessageBox.Show("您确定删除选定的项么?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
  156. {
  157. return;
  158. }
  159. string id = this.navBarControl1.SelectedLink.ItemName.ToString();
  160. bool flag = BLLFactory<BlRule>.Instance.Delete(id, SysEnvironment.CurrentLoginID);
  161. if (flag)
  162. {
  163. DevExpress.XtraEditors.XtraMessageBox.Show("删除成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  164. InitNavBarControl();
  165. }
  166. else
  167. {
  168. DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  169. }
  170. }
  171. catch (Exception ex)
  172. {
  173. DevExpress.XtraEditors.XtraMessageBox.Show("删除失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
  174. LogHelper.log.Error(string.Format("删除数据库rules出现错误:{0}", ex));
  175. }
  176. }
  177. private void menu_Add_Click(object sender, EventArgs e)
  178. {
  179. FormEditRule editRule = new FormEditRule();
  180. editRule.saveData += new FormEditRule.save(InitNavBarControl);
  181. editRule.ShowDialog();
  182. }
  183. /// <summary>
  184. /// 点击导航栏item,图标变大
  185. /// </summary>
  186. /// <param name="sender"></param>
  187. /// <param name="e"></param>
  188. private void navBarControl1_CustomDrawLink(object sender, DevExpress.XtraNavBar.ViewInfo.CustomDrawNavBarElementEventArgs e)
  189. {
  190. DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs info = e.ObjectInfo as DevExpress.XtraNavBar.ViewInfo.NavLinkInfoArgs;
  191. if (info.State == DevExpress.Utils.Drawing.ObjectState.Selected | info.State == DevExpress.Utils.Drawing.ObjectState.Pressed)
  192. {
  193. //e.Graphics.FillRectangle(Brushes.Red, e.ObjectInfo.Bounds); item背景颜色
  194. e.Graphics.DrawImage(e.Image,info.ImageRectangle);
  195. e.Appearance.DrawString(e.Cache, info.Link.Caption, info.CaptionRectangle);
  196. //e.Appearance.DrawVString(e.Cache,info.Link.Caption,new Font("宋体",16),Brushes.Black,e.ObjectInfo.Bounds,StringFormat.GenericDefault,0);
  197. e.Handled = true;
  198. }
  199. }
  200. private void gridView_Rules_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e)
  201. {
  202. if (e.Column.FieldName == "Type")
  203. {
  204. e.DisplayText = SysEnvironment.dirType.FirstOrDefault(p => p.Key == Convert.ToInt32(e.Value)).Value;
  205. }
  206. }
  207. private void menu_Edit_Click(object sender, EventArgs e)
  208. {
  209. string id = this.navBarControl1.SelectedLink.ItemName.ToString();
  210. MoRule rule = BLLFactory<BlRule>.Instance.FindByID(id);
  211. FormEditRule editRule = new FormEditRule();
  212. editRule.rule = rule;
  213. editRule.saveData += new FormEditRule.save(InitNavBarControl);
  214. editRule.ShowDialog();
  215. }
  216. private void FormRules_Load(object sender, EventArgs e)
  217. {
  218. // this.splitContainerControl1.SplitterPosition =100;
  219. InitNavBarControl();
  220. //timer = new System.Timers.Timer(interval);
  221. //timer.Elapsed += Refresh_Elapsed;
  222. //timer.Start();
  223. }
  224. /// <summary>
  225. /// 定时刷新
  226. /// </summary>
  227. /// <param name="sender"></param>
  228. /// <param name="e"></param>
  229. //private void Refresh_Elapsed(object sender, ElapsedEventArgs e)
  230. //{
  231. // count++;
  232. // if (this.chk_Refresh.Checked != true)
  233. // {
  234. // return;
  235. // }
  236. // if (count % timeSpan == 0)
  237. // {
  238. // if (this.InvokeRequired)
  239. // {
  240. // winFormDelegate mes = new winFormDelegate(InitControl);
  241. // this.Invoke(mes, null);
  242. // }
  243. // else
  244. // {
  245. // InitControl();
  246. // }
  247. // count = 0;
  248. // }
  249. //}
  250. }
  251. }