华恒Mes鼎捷代码
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.

520 lines
18 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.Base.Language.Tool;
  10. using ICSSoft.Base.UserControl.MessageControl;
  11. using System.Data.SqlClient;
  12. using ICSSoft.Base.Config.AppConfig;
  13. using ICSSoft.Base.Report.Filter;
  14. using ICSSoft.Base.Config.DBHelper;
  15. using ICSSoft.Base.UserControl.FormControl;
  16. using ICSSoft.Base.ReferForm.AppReferForm;
  17. using ICSSoft.Frame.Data.BLL;
  18. namespace ICSSoft.Frame.APP
  19. {
  20. public partial class FormICSEQPTS : DevExpress.XtraEditors.XtraForm
  21. {
  22. private string sqltxt = "";
  23. private string sqlconn = "";
  24. String guid = AppConfig.GetGuid();
  25. private DataTable dataSource = null;
  26. #region 构造函数
  27. public FormICSEQPTS()
  28. {
  29. InitializeComponent();
  30. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  31. this.WindowState = FormWindowState.Maximized;
  32. }
  33. #endregion
  34. #region 构造函数
  35. public FormICSEQPTS(string EQPID)
  36. {
  37. InitializeComponent();
  38. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  39. this.WindowState = FormWindowState.Maximized;
  40. chargeFormState("view");
  41. SearchItemLotInfo(EQPID);
  42. }
  43. #endregion
  44. private void chargeFormState(string state)
  45. {
  46. switch (state)
  47. {
  48. case "view":
  49. btnFilter.Enabled = false;
  50. btnConfig.Enabled = false;
  51. //btnAdd.Enabled = false;
  52. btnEdit.Enabled = false;
  53. btnDelLable.Enabled = false;
  54. break;
  55. //case "Edit":
  56. // //txtModel.Properties.ReadOnly = true;
  57. // //txtEQPStatus.Properties.ReadOnly = false;
  58. // txtMUSERName.Properties.ReadOnly = true;
  59. // txtMTIME.Properties.ReadOnly = true;
  60. // break;
  61. }
  62. }
  63. private void SearchItemLotInfo(string EQPID)
  64. {
  65. string sql = @"select '' as [isSelect],
  66. a.GUID as GUID,
  67. b.EQPID as EQPID,
  68. b.EQPCode as EQPCode,
  69. b.EQPName as EQPName,
  70. a.FINDUSER as FINDUSER,
  71. a.FINDMTIME as FINDMTIME,
  72. a.TSINFO as TSINFO,
  73. a.REASON as REASON,
  74. a.Solution as Solution,
  75. a.Result as Result,
  76. a.TSType as TSType,
  77. a.STATUS as STATUS,
  78. a.Duration as Duration,
  79. a.MUSERName as MUSERName,
  80. a.MTIME as MTIME
  81. from dbo.ICSEQPTS a
  82. left join dbo.ICSEquipment b on a.EQPCode=b.EQPCode
  83. WHERE b.EQPID='{0}' and 1=1";
  84. sql = string.Format(sql, EQPID);
  85. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  86. grdDetail.DataSource = dt;
  87. }
  88. #region 移动窗体
  89. private const int WM_NCHITTEST = 0x84;
  90. private const int HTCLIENT = 0x1;
  91. private const int HTCAPTION = 0x2;
  92. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  93. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  94. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  95. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  96. //重写窗体,使窗体可以不通过自带标题栏实现移动
  97. protected override void WndProc(ref Message m)
  98. {
  99. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  100. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  101. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  102. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  103. switch (m.Msg)
  104. {
  105. case WM_NCHITTEST:
  106. base.WndProc(ref m);
  107. if ((int)m.Result == HTCLIENT)
  108. m.Result = (IntPtr)HTCAPTION;
  109. return;
  110. }
  111. //拦截双击标题栏、移动窗体的系统消息
  112. if (m.Msg != 0xA3)
  113. {
  114. base.WndProc(ref m);
  115. }
  116. }
  117. #endregion
  118. #region SystemOptition
  119. /// <summary>
  120. /// 操作权限
  121. /// </summary>
  122. /// <returns></returns>
  123. public DataTable RightOfExute()
  124. {
  125. DataTable rData = new DataTable();
  126. rData.Columns.Add("BtnName");
  127. rData.Columns.Add("ActionName");
  128. //查看权限(必须有)
  129. DataRow seeRow = rData.NewRow();
  130. seeRow["BtnName"] = "see";
  131. seeRow["ActionName"] = "查看";
  132. rData.Rows.Add(seeRow);
  133. List<Control> ControlList = new List<Control>();
  134. ControlList.Add(btnConfig);
  135. //ControlList.Add(btnAdd);
  136. ControlList.Add(btnEdit);
  137. ControlList.Add(btnDelLable);
  138. foreach (Control ctr in ControlList)
  139. {
  140. if (ctr.GetType() == typeof(SimpleButton))
  141. {
  142. DataRow dr = rData.NewRow();
  143. dr["BtnName"] = ctr.Name;
  144. dr["ActionName"] = ctr.Text;
  145. rData.Rows.Add(dr);
  146. }
  147. }
  148. rData.AcceptChanges();
  149. return rData;
  150. }
  151. /// <summary>
  152. /// 数据权限
  153. /// </summary>
  154. /// <returns></returns>
  155. public DataTable RightOfData()
  156. {
  157. DataTable rData = new DataTable();
  158. rData.Columns.Add("BodyName");
  159. rData.Columns.Add("ControlName");
  160. rData.Columns.Add("ControlCaption");
  161. rData.AcceptChanges();
  162. return rData;
  163. }
  164. #endregion
  165. #region 退出
  166. private void btnClose_Click(object sender, EventArgs e)
  167. {
  168. AppConfig.CloseFormShow(this.Text);
  169. this.Close();
  170. }
  171. private void btnExit_Click(object sender, EventArgs e)
  172. {
  173. AppConfig.CloseFormShow(this.Text);
  174. this.Close();
  175. }
  176. #endregion
  177. #region 过滤
  178. private string tempTableName = "";
  179. private void btnFilter_Click(object sender, EventArgs e)
  180. {
  181. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  182. filter.OldTempTableName = tempTableName;
  183. if (filter.ShowDialog() == DialogResult.OK)
  184. {
  185. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  186. try
  187. {
  188. _wait.Show();
  189. tempTableName = filter.NewTempTableName;
  190. sqltxt = filter.SqlText;
  191. sqlconn = filter.FilterConnectString;
  192. dataSource = filter.FilterData.Tables[0];
  193. grdDetail.DataSource = dataSource;
  194. grvDetail.BestFitColumns();
  195. rptPage.RecordNum = dataSource.Rows.Count;
  196. rptPage.PageSize = 499;
  197. rptPage.PageIndex = 1;
  198. rptPage.ReLoad();
  199. rptPage.PageSize = 500;
  200. rptPage.PageIndex = 1;
  201. rptPage.ReLoad();
  202. _wait.Close();
  203. }
  204. catch (Exception ex)
  205. {
  206. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  207. _wait.Close();
  208. }
  209. }
  210. }
  211. #endregion
  212. #region 分页
  213. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  214. {
  215. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  216. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  217. grdDetail.DataSource = data;
  218. }
  219. #endregion
  220. #region 全选
  221. private void btnSelect_Click(object sender, EventArgs e)
  222. {
  223. for (int i = 0; i < grvDetail.RowCount; i++)
  224. {
  225. grvDetail.SetRowCellValue(i, colisSelect, "Y");
  226. }
  227. }
  228. #endregion
  229. #region 全消
  230. private void btnCanSelect_Click(object sender, EventArgs e)
  231. {
  232. for (int i = 0; i < grvDetail.RowCount; i++)
  233. {
  234. grvDetail.SetRowCellValue(i, colisSelect, "");
  235. }
  236. }
  237. #endregion
  238. #region 刷新
  239. private void btnFalsh_Click(object sender, EventArgs e)
  240. {
  241. if (sqlconn == null || sqlconn == "")
  242. {
  243. return;
  244. }
  245. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  246. try
  247. {
  248. _wait.Show();
  249. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  250. filter.OldTempTableName = tempTableName;
  251. //tempTableName = filter.NewTempTableName;
  252. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  253. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  254. grdDetail.DataSource = dataSource;
  255. grvDetail.BestFitColumns();
  256. rptPage.RecordNum = dataSource.Rows.Count;
  257. rptPage.PageIndex = 1;
  258. rptPage.ReLoad();
  259. _wait.Close();
  260. }
  261. catch (Exception ex)
  262. {
  263. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  264. _wait.Close();
  265. }
  266. }
  267. #endregion
  268. #region 列表
  269. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  270. {
  271. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  272. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  273. }
  274. #endregion
  275. #region 双击选择
  276. private void grvDetail_DoubleClick(object sender, EventArgs e)
  277. {
  278. if (grvDetail.FocusedRowHandle < 0)
  279. {
  280. return;
  281. }
  282. if (grvDetail.FocusedColumn == colisSelect)
  283. {
  284. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  285. {
  286. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  287. }
  288. else
  289. {
  290. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  291. }
  292. }
  293. }
  294. #endregion
  295. #region 删除
  296. private void btnDel_Click(object sender, EventArgs e)
  297. {
  298. grvDetail.PostEditor();
  299. this.Validate();
  300. if (grvDetail.RowCount == 0)
  301. return;
  302. SimpleButton btntemp = (SimpleButton)sender;
  303. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  304. {
  305. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  306. }
  307. List<string> guidList = new List<string>();
  308. List<string> guidList1 = new List<string>();
  309. for (int i = 0; i < grvDetail.RowCount; i++)
  310. {
  311. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  312. {
  313. guidList.Add(grvDetail.GetRowCellValue(i, colGUID).ToString());
  314. }
  315. }
  316. if (guidList.Count == 0)
  317. {
  318. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  319. return;
  320. }
  321. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该设备维修记录吗?删除后无法恢复,确定吗?") != DialogResult.OK)
  322. return;
  323. try
  324. {
  325. ICSEQPTSBLL.delete(guidList);
  326. ICSBaseSimpleCode.AppshowMessageBox(0, "删除成功");
  327. }
  328. catch (Exception ex)
  329. {
  330. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  331. }
  332. btnFalsh_Click(null, null);
  333. }
  334. #endregion
  335. #region 新增
  336. private void btnAdd_Click(object sender, EventArgs e)
  337. {
  338. SimpleButton btntemp = (SimpleButton)sender;
  339. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  340. {
  341. MessageBox.Show("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  342. return;
  343. }
  344. FormICSEQPTSAdd add = new FormICSEQPTSAdd();
  345. add.ShowDialog();
  346. btnFalsh_Click(null, null);
  347. }
  348. #endregion
  349. #region 绑定数据源
  350. private void btnConfig_Click(object sender, EventArgs e)//绑定数据源
  351. {
  352. if (AppConfig.UserCode.ToLower() != "demo")
  353. {
  354. //ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  355. return;
  356. }
  357. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  358. fdata.ShowDialog();
  359. }
  360. #endregion
  361. private void FormICSShift_Load(object sender, EventArgs e)
  362. {
  363. btnFilter_Click(sender, e);
  364. }
  365. #region 修改
  366. private void btnEdit_Click(object sender, EventArgs e)
  367. {
  368. SimpleButton btntemp = (SimpleButton)sender;
  369. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  370. {
  371. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  372. return;
  373. }
  374. int count = 0;
  375. for (int i = 0; i < grvDetail.RowCount; i++)
  376. {
  377. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  378. {
  379. count++;
  380. }
  381. }
  382. if (count != 1)
  383. {
  384. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  385. return;
  386. }
  387. try
  388. {
  389. string id;
  390. for (int i = 0; i < grvDetail.RowCount; i++)
  391. {
  392. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  393. {
  394. id = grvDetail.GetRowCellValue(i, colGUID).ToString();
  395. FormICSEQPTSAdd add = new FormICSEQPTSAdd(id);
  396. add.ShowDialog();
  397. }
  398. }
  399. btnFalsh_Click(null, null);
  400. }
  401. catch (Exception ex)
  402. {
  403. //throw ex;
  404. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  405. }
  406. }
  407. #endregion
  408. private void btnOutPut_Click(object sender, EventArgs e)
  409. {
  410. try
  411. {
  412. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  413. foe.ShowDialog();
  414. }
  415. catch (Exception ex)
  416. {
  417. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  418. }
  419. //FormOutExcel foe = new FormOutExcel();
  420. //if (foe.ShowDialog() == DialogResult.OK)
  421. //{
  422. // try
  423. // {
  424. // string outtype = foe._OutType;
  425. // string exceltype = foe._ExcelType;
  426. // string filename = foe._FileName;
  427. // string url = foe._Url;
  428. // string sheetname = foe._SheetName;
  429. // if (outtype.ToLower() == "excel")
  430. // {
  431. // DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
  432. // op.SheetName = sheetname;
  433. // grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
  434. // }
  435. // else
  436. // {
  437. // grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
  438. // }
  439. // MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  440. // }
  441. // catch (Exception ex)
  442. // {
  443. // MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  444. // }
  445. //}
  446. }
  447. private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
  448. {
  449. if (e.RowHandle >= 0 && e.Column.FieldName == "SHIFTBTIME")
  450. {
  451. e.DisplayText = ICSSoft.Frame.Helper.FormatHelper.ToTimeString(int.Parse(e.CellValue.ToString()));
  452. }
  453. if (e.RowHandle >= 0 && e.Column.FieldName == "SHIFTETIME")
  454. {
  455. e.DisplayText = ICSSoft.Frame.Helper.FormatHelper.ToTimeString(int.Parse(e.CellValue.ToString()));
  456. }
  457. }
  458. }
  459. }