锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

328 lines
14 KiB

5 months ago
  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.Windows.Forms;
  8. using DevExpress.XtraEditors;
  9. using ICSSoft.Frame.WorkPoint.BLL;
  10. using ICSSoft.Frame.WorkPoint.Entity;
  11. using ICSSoft.Base.Config.AppConfig;
  12. using ICSSoft.Base.Language.Tool;
  13. using ICSSoft.Base.UserControl.MessageControl;
  14. namespace ICSSoft.Frame.Main.Entrance
  15. {
  16. public partial class FormWorkPoint : DevExpress.XtraEditors.XtraForm
  17. {
  18. WorkPointBLL workBll = new WorkPointBLL();
  19. public FormWorkPoint()
  20. {
  21. InitializeComponent();
  22. try
  23. {
  24. DataTable dbs = workBll.GetDatas(AppConfig.FrameConnectString);
  25. txtDataBases.Items.Clear();
  26. foreach (DataRow dr in dbs.Rows)
  27. {
  28. txtDataBases.Items.Add(dr["name"].ToString());
  29. }
  30. DataTable data = workBll.GetWorkPointData(AppConfig.FrameConnectString);
  31. grdWorkPoint.DataSource = data;
  32. }
  33. catch
  34. {
  35. }
  36. }
  37. #region 移动窗体
  38. private const int WM_NCHITTEST = 0x84;
  39. private const int HTCLIENT = 0x1;
  40. private const int HTCAPTION = 0x2;
  41. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  42. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  43. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  44. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  45. //重写窗体,使窗体可以不通过自带标题栏实现移动
  46. protected override void WndProc(ref Message m)
  47. {
  48. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  49. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  50. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  51. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  52. switch (m.Msg)
  53. {
  54. case WM_NCHITTEST:
  55. base.WndProc(ref m);
  56. if ((int)m.Result == HTCLIENT)
  57. m.Result = (IntPtr)HTCAPTION;
  58. return;
  59. }
  60. //拦截双击标题栏、移动窗体的系统消息
  61. if (m.Msg != 0xA3)
  62. {
  63. base.WndProc(ref m);
  64. }
  65. }
  66. #endregion
  67. private void btnSave_Click(object sender, EventArgs e)
  68. {
  69. grvWorkPoint.PostEditor();
  70. this.Validate();
  71. List<LangObj> langList = new List<LangObj>();
  72. try
  73. {
  74. List<Sys_WorkPoint> objList = new List<Sys_WorkPoint>();
  75. for (int i = 0; i < grvWorkPoint.RowCount; i++)
  76. {
  77. Sys_WorkPoint obj = new Sys_WorkPoint();
  78. obj.DataBasePwd = grvWorkPoint.GetRowCellValue(i,colDataBasePwd).ToString();
  79. obj.DataBaseName = grvWorkPoint.GetRowCellValue(i, colDataBaseName).ToString();
  80. obj.DataBaseUser = grvWorkPoint.GetRowCellValue(i, colDataBaseUser).ToString();
  81. obj.ServerName = grvWorkPoint.GetRowCellValue(i, colServerName).ToString();
  82. obj.WorkPointCode = grvWorkPoint.GetRowCellValue(i, colWorkPointCode).ToString();
  83. obj.WorkPointName = grvWorkPoint.GetRowCellValue(i, colWorkPointName).ToString();
  84. obj.StartFlag = Convert.ToBoolean(grvWorkPoint.GetRowCellValue(i, colStartFlag));
  85. obj.ID = grvWorkPoint.GetRowCellValue(i, "ID").ToString();
  86. if (obj.WorkPointName.Trim() == "")
  87. {
  88. LangObj langObj = new LangObj();
  89. langObj.LConvertString = "第{0}行站点名称不可以为空!";
  90. langObj.LParameters = new object[] {(i+1).ToString() };
  91. langList.Add(langObj);
  92. }
  93. if (obj.ServerName.Trim() == "")
  94. {
  95. LangObj langObj = new LangObj();
  96. langObj.LConvertString = "第{0}行服务器名称不可以为空!";
  97. langObj.LParameters = new object[] { (i + 1).ToString() };
  98. langList.Add(langObj);
  99. }
  100. if (obj.DataBaseName.Trim() == "")
  101. {
  102. LangObj langObj = new LangObj();
  103. langObj.LConvertString = "第{0}行数据库名称不可以为空!";
  104. langObj.LParameters = new object[] { (i + 1).ToString() };
  105. langList.Add(langObj);
  106. }
  107. if (obj.DataBaseUser.Trim() == "")
  108. {
  109. LangObj langObj = new LangObj();
  110. langObj.LConvertString = "第{0}行帐户不可以为空!";
  111. langObj.LParameters = new object[] { (i + 1).ToString() };
  112. langList.Add(langObj);
  113. }
  114. if (obj.DataBasePwd.Trim() == "")
  115. {
  116. LangObj langObj = new LangObj();
  117. langObj.LConvertString = "第{0}行口令不可以为空!";
  118. langObj.LParameters = new object[] { (i + 1).ToString() };
  119. langList.Add(langObj);
  120. }
  121. objList.Add(obj);
  122. }
  123. if (langList.Count > 0)
  124. {
  125. MessageDialog messBox = new MessageDialog(1, langList);
  126. messBox.ShowDialog();
  127. return;
  128. }
  129. workBll.EditWorkPoint(AppConfig.FrameConnectString, objList);
  130. LangObj msgObj = new LangObj();
  131. msgObj.LConvertString = "保存成功!";
  132. msgObj.LParameters = new object[] { };
  133. langList.Add(msgObj);
  134. if (langList.Count > 0)
  135. {
  136. MessageDialog messBox = new MessageDialog(0, langList);
  137. DialogResult dialog= messBox.ShowDialog();
  138. if (dialog == DialogResult.OK)
  139. {
  140. DataTable data = workBll.GetWorkPointData(AppConfig.FrameConnectString);
  141. grdWorkPoint.DataSource = data;
  142. }
  143. }
  144. }
  145. catch (Exception ex)
  146. {
  147. LangObj langObj = new LangObj();
  148. langObj.LConvertString = "系统异常:{0}";
  149. langObj.LParameters = new object[] { ex.Message };
  150. langList.Add(langObj);
  151. if (langList.Count > 0)
  152. {
  153. MessageDialog messBox = new MessageDialog(2, langList);
  154. messBox.ShowDialog();
  155. }
  156. }
  157. }
  158. private void btnClose_Click(object sender, EventArgs e)
  159. {
  160. this.DialogResult = DialogResult.Cancel;
  161. }
  162. private void btnExit_Click(object sender, EventArgs e)
  163. {
  164. this.DialogResult = DialogResult.Cancel;
  165. }
  166. private void grvWorkPoint_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  167. {
  168. if (e.RowHandle < 0)
  169. return;
  170. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  171. }
  172. private void btnAddRow_Click(object sender, EventArgs e)
  173. {
  174. grvWorkPoint.AddNewRow();
  175. grvWorkPoint.SetRowCellValue(grvWorkPoint.FocusedRowHandle, "ID", AppConfig.GetGuid());
  176. grvWorkPoint.SetRowCellValue(grvWorkPoint.FocusedRowHandle, colStartFlag, true);
  177. grvWorkPoint.AddNewRow();
  178. grvWorkPoint.DeleteRow(grvWorkPoint.FocusedRowHandle);
  179. }
  180. private void btnDelRow_Click(object sender, EventArgs e)
  181. {
  182. grvWorkPoint.PostEditor();
  183. this.Validate();
  184. if (grvWorkPoint.RowCount == 0)
  185. return;
  186. if (grvWorkPoint.FocusedRowHandle < 0)
  187. return;
  188. List<LangObj> langList = new List<LangObj>();
  189. string workpoint = grvWorkPoint.GetRowCellValue(grvWorkPoint.FocusedRowHandle, colWorkPointCode).ToString();
  190. bool flag = workBll.GetIsHadUser(AppConfig.FrameConnectString, workpoint);
  191. if (flag)
  192. {
  193. LangObj langObj = new LangObj();
  194. langObj.LConvertString = "站点已经存在用户,无法删除!";
  195. langObj.LParameters = new object[] {};
  196. langList.Add(langObj);
  197. }
  198. if (langList.Count > 0)
  199. {
  200. MessageDialog messBox = new MessageDialog(1, langList);
  201. messBox.ShowDialog();
  202. return;
  203. }
  204. grvWorkPoint.DeleteRow(grvWorkPoint.FocusedRowHandle);
  205. }
  206. private void btnRefresh_Click(object sender, EventArgs e)
  207. {
  208. DataTable data = workBll.GetWorkPointData(AppConfig.FrameConnectString);
  209. grdWorkPoint.DataSource = data;
  210. }
  211. private void btnCopy_Click(object sender, EventArgs e)
  212. {
  213. grvWorkPoint.PostEditor();
  214. this.Validate();
  215. List<LangObj> langList = new List<LangObj>();
  216. int[] rows = grvWorkPoint.GetSelectedRows();
  217. if (rows.Length == 0)
  218. {
  219. LangObj langObj = new LangObj();
  220. langObj.LConvertString = "无法下发,请选择要下发的数据源,必须选择0001站点,因为0001为来源站点!";
  221. langObj.LParameters = new object[] { };
  222. langList.Add(langObj);
  223. }
  224. if (rows.Length == 1)
  225. {
  226. LangObj langObj = new LangObj();
  227. langObj.LConvertString = "无法下发,只能一次选择0001站点和另外一个需要下发的目标站点!";
  228. langObj.LParameters = new object[] { };
  229. langList.Add(langObj);
  230. }
  231. if (rows.Length > 2)
  232. {
  233. LangObj langObj = new LangObj();
  234. langObj.LConvertString = "无法下发,只能一次选择0001站点和另外一个需要下发的目标站点!";
  235. langObj.LParameters = new object[] { };
  236. langList.Add(langObj);
  237. }
  238. else
  239. {
  240. int n = 0;
  241. int nullNum = 0;
  242. foreach (int i in rows)
  243. {
  244. if (grvWorkPoint.GetRowCellValue(i, colWorkPointCode).ToString().Trim() == "")
  245. {
  246. nullNum++;
  247. }
  248. if (grvWorkPoint.GetRowCellValue(i, colWorkPointCode).ToString() == "0001")
  249. {
  250. n++;
  251. }
  252. }
  253. if (nullNum> 0)
  254. {
  255. LangObj langObj = new LangObj();
  256. langObj.LConvertString = "无法下发,必须选择不为空的站点编号!";
  257. langObj.LParameters = new object[] { };
  258. langList.Add(langObj);
  259. }
  260. if (n == 0)
  261. {
  262. LangObj langObj = new LangObj();
  263. langObj.LConvertString = "无法下发,必须选择0001站点!";
  264. langObj.LParameters = new object[] { };
  265. langList.Add(langObj);
  266. }
  267. }
  268. if (langList.Count > 0)
  269. {
  270. MessageDialog messBox = new MessageDialog(1, langList);
  271. messBox.ShowDialog();
  272. return;
  273. }
  274. langList.Clear();
  275. string targetCode = "";
  276. foreach (int i in rows)
  277. {
  278. if (grvWorkPoint.GetRowCellValue(i, colWorkPointCode).ToString().Trim() != "0001")
  279. targetCode = grvWorkPoint.GetRowCellValue(i, colWorkPointCode).ToString().Trim();
  280. }
  281. try
  282. {
  283. workBll.CreateNewWork(targetCode);
  284. LangObj langObj = new LangObj();
  285. langObj.LConvertString = "下发成功";
  286. langObj.LParameters = new object[] { };
  287. langList.Add(langObj);
  288. if (langList.Count > 0)
  289. {
  290. MessageDialog messBox = new MessageDialog(0, langList);
  291. messBox.ShowDialog();
  292. }
  293. }
  294. catch (Exception ex)
  295. {
  296. LangObj langObj = new LangObj();
  297. langObj.LConvertString = ex.Message;
  298. langObj.LParameters = new object[] { };
  299. langList.Add(langObj);
  300. if (langList.Count > 0)
  301. {
  302. MessageDialog messBox = new MessageDialog(2, langList);
  303. messBox.ShowDialog();
  304. }
  305. }
  306. }
  307. }
  308. }