锐腾搅拌上料功能
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.

626 lines
24 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.Linq;
  6. using System.Linq;
  7. using System.Drawing;
  8. using System.Text;
  9. using System.Windows.Forms;
  10. using DevExpress.XtraEditors;
  11. using DevExpress.XtraGrid.Views.BandedGrid;
  12. using DevExpress.XtraGrid.Columns;
  13. using DevExpress.XtraGrid;
  14. using System.IO;
  15. using System.Threading;
  16. using ICSSoft.Base.Language.Tool;
  17. using ICSSoft.Base.Config.AppConfig;
  18. using ICSSoft.Base.UserControl.MessageControl;
  19. using ICSSoft.Base.Config.DBHelper;
  20. using ICSSoft.Base.Report.Filter;
  21. using ICSSoft.Base.UserControl.FormControl;
  22. using ICSSoft.Base.Report.GridReport;
  23. using ICSSoft.Base.ReferForm.AppReferForm;
  24. using ICSSoft.Frame.Data.BLL;
  25. using ICSSoft.Frame.Data.Entity;
  26. namespace ICSSoft.Frame.APP
  27. {
  28. public partial class FormICSOQCCKGROUP : DevExpress.XtraEditors.XtraForm
  29. {
  30. private string sqltxt = "";
  31. private string sqlconn = "";
  32. String guid = AppConfig.GetGuid();
  33. private DataTable dataSource = null;
  34. #region 构造函数
  35. public FormICSOQCCKGROUP()
  36. {
  37. InitializeComponent();
  38. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  39. this.WindowState = FormWindowState.Maximized;
  40. }
  41. #endregion
  42. #region 操作权限
  43. public DataTable RightOfExute()
  44. {
  45. DataTable rData = new DataTable();
  46. rData.Columns.Add("BtnName");
  47. rData.Columns.Add("ActionName");
  48. //查看权限(必须有)
  49. DataRow seeRow = rData.NewRow();
  50. seeRow["BtnName"] = "see";
  51. seeRow["ActionName"] = "查看";
  52. rData.Rows.Add(seeRow);
  53. List<Control> ControlList = new List<Control>();
  54. ControlList.Add(simpleButton2);
  55. ControlList.Add(simpleButton1);
  56. ControlList.Add(simpleButton3);
  57. ControlList.Add(btnOutPut);
  58. foreach (Control ctr in ControlList)
  59. {
  60. if (ctr.GetType() == typeof(SimpleButton))
  61. {
  62. DataRow dr = rData.NewRow();
  63. dr["BtnName"] = ctr.Name;
  64. dr["ActionName"] = ctr.Text;
  65. rData.Rows.Add(dr);
  66. }
  67. }
  68. rData.AcceptChanges();
  69. return rData;
  70. }
  71. public DataTable RightOfData()// 数据权限
  72. {
  73. DataTable rData = new DataTable();
  74. rData.Columns.Add("BodyName");
  75. rData.Columns.Add("ControlName");
  76. rData.Columns.Add("ControlCaption");
  77. rData.AcceptChanges();
  78. return rData;
  79. }
  80. #endregion
  81. #region 退出
  82. private void btnClose_Click(object sender, EventArgs e)
  83. {
  84. AppConfig.CloseFormShow(this.Text);
  85. this.Close();
  86. }
  87. private void btnExit_Click(object sender, EventArgs e)
  88. {
  89. AppConfig.CloseFormShow(this.Text);
  90. this.Close();
  91. }
  92. #endregion
  93. #region 移动窗体
  94. private const int WM_NCHITTEST = 0x84;
  95. private const int HTCLIENT = 0x1;
  96. private const int HTCAPTION = 0x2;
  97. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  98. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  99. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  100. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  101. //重写窗体,使窗体可以不通过自带标题栏实现移动
  102. protected override void WndProc(ref Message m)
  103. {
  104. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  105. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  106. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  107. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  108. switch (m.Msg)
  109. {
  110. case WM_NCHITTEST:
  111. base.WndProc(ref m);
  112. if ((int)m.Result == HTCLIENT)
  113. m.Result = (IntPtr)HTCAPTION;
  114. return;
  115. }
  116. //拦截双击标题栏、移动窗体的系统消息
  117. if (m.Msg != 0xA3)
  118. {
  119. base.WndProc(ref m);
  120. }
  121. }
  122. #endregion
  123. #region 列表
  124. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  125. {
  126. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  127. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  128. }
  129. #endregion
  130. #region 过滤
  131. private string tempTableName = "";
  132. private void btnFilter_Click(object sender, EventArgs e)
  133. {
  134. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name),false);
  135. filter.OldTempTableName = tempTableName;
  136. if (filter.ShowDialog() == DialogResult.OK)
  137. {
  138. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  139. try
  140. {
  141. _wait.Show();
  142. tempTableName = filter.NewTempTableName;
  143. sqltxt = filter.SqlText;
  144. sqlconn = filter.FilterConnectString;
  145. dataSource = filter.FilterData.Tables[0];
  146. grdDetail.DataSource = dataSource;
  147. grvDetail.BestFitColumns();
  148. rptPage.RecordNum = dataSource.Rows.Count;
  149. rptPage.PageSize = 499;
  150. rptPage.PageIndex = 1;
  151. rptPage.ReLoad();
  152. rptPage.PageSize = 500;
  153. rptPage.PageIndex = 1;
  154. rptPage.ReLoad();
  155. _wait.Close();
  156. }
  157. catch (Exception ex)
  158. {
  159. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  160. _wait.Close();
  161. }
  162. }
  163. }
  164. #endregion
  165. #region 绑定数据源
  166. private void btnConfig_Click(object sender, EventArgs e)
  167. {
  168. //if (AppConfig.UserCode.ToLower() != "demo")
  169. //{
  170. // ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
  171. // return;
  172. //}
  173. FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
  174. fdata.ShowDialog();
  175. }
  176. #endregion
  177. #region 分页
  178. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  179. {
  180. DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
  181. //DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
  182. grdDetail.DataSource = data;
  183. }
  184. #endregion
  185. #region 过滤方法
  186. private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
  187. {
  188. AppConfig.DropTemTable(tempTableName);
  189. }
  190. #endregion
  191. #region 全选
  192. private void btnSelectAll_Click(object sender, EventArgs e)
  193. {
  194. grvDetail.PostEditor();
  195. this.Validate();
  196. for (int i = 0; i < grvDetail.RowCount; i++)
  197. {
  198. grvDetail.SetRowCellValue(i, coSelect, "Y");
  199. }
  200. }
  201. #endregion
  202. #region 全消
  203. private void btnCancelAll_Click(object sender, EventArgs e)
  204. {
  205. grvDetail.PostEditor();
  206. this.Validate();
  207. for (int i = 0; i < grvDetail.RowCount; i++)
  208. {
  209. grvDetail.SetRowCellValue(i, coSelect, "");
  210. }
  211. }
  212. #endregion
  213. #region 双击
  214. private void grvDetail_DoubleClick(object sender, EventArgs e)
  215. {
  216. if (grvDetail.FocusedRowHandle < 0)
  217. {
  218. return;
  219. }
  220. if (grvDetail.FocusedColumn == coSelect)
  221. {
  222. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, coSelect).ToString() == "")
  223. {
  224. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, coSelect, "Y");
  225. }
  226. else
  227. {
  228. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, coSelect, "");
  229. }
  230. }
  231. }
  232. #endregion
  233. #region 删除
  234. private void btnDel_Click(object sender, EventArgs e)
  235. {
  236. List<string> guidList = new List<string>();
  237. for (int i = 0; i < grvDetail.RowCount; i++)
  238. {
  239. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  240. {
  241. guidList.Add(grvDetail.GetRowCellValue(i, ID).ToString());
  242. }
  243. }
  244. if (guidList.Count == 0)
  245. {
  246. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  247. return;
  248. }
  249. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该数据吗?数据删除后无法恢复!!") != DialogResult.OK)
  250. return;
  251. try
  252. {
  253. ICSOQCCKGROUPBLL.delete(guidList);
  254. ICSBaseSimpleCode.AppshowMessageBox(0, "删除成功");
  255. btnRefresh_Click(null, null);
  256. }
  257. catch (Exception ex)
  258. {
  259. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  260. }
  261. }
  262. #endregion
  263. #region 导出
  264. private void btnOutPut_Click(object sender, EventArgs e)
  265. {
  266. }
  267. #endregion
  268. #region 刷新
  269. private void btnRefresh_Click(object sender, EventArgs e)
  270. {
  271. if (sqlconn == null || sqlconn == "")
  272. {
  273. return;
  274. }
  275. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  276. try
  277. {
  278. _wait.Show();
  279. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
  280. filter.OldTempTableName = tempTableName;
  281. //tempTableName = filter.NewTempTableName;
  282. //DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
  283. dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
  284. grdDetail.DataSource = dataSource;
  285. grvDetail.BestFitColumns();
  286. rptPage.RecordNum = dataSource.Rows.Count;
  287. rptPage.PageIndex = 1;
  288. rptPage.ReLoad();
  289. _wait.Close();
  290. }
  291. catch (Exception ex)
  292. {
  293. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  294. _wait.Close();
  295. }
  296. }
  297. #endregion
  298. #region 新增
  299. private void btnCreate_Click(object sender, EventArgs e)
  300. {
  301. SimpleButton btntemp = (SimpleButton)sender;
  302. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  303. {
  304. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  305. return;
  306. }
  307. FormICSOQCCKGROUPAdd add = new FormICSOQCCKGROUPAdd();
  308. add.ShowDialog();
  309. btnRefresh_Click(null, null);
  310. }
  311. #endregion
  312. #region 页面加载
  313. private void grdDetail_Load(object sender, EventArgs e)
  314. {
  315. btnFilter_Click(null, null);
  316. }
  317. #endregion
  318. #region 修改
  319. private void btnModify_Click(object sender, EventArgs e)
  320. {
  321. SimpleButton btntemp = (SimpleButton)sender;
  322. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  323. {
  324. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  325. return;
  326. }
  327. int count = 0;
  328. for (int i = 0; i < grvDetail.RowCount; i++)
  329. {
  330. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  331. {
  332. count++;
  333. }
  334. }
  335. if (count != 1)
  336. {
  337. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  338. return;
  339. }
  340. try
  341. {
  342. string id;
  343. for (int i = 0; i < grvDetail.RowCount; i++)
  344. {
  345. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  346. {
  347. id = grvDetail.GetRowCellValue(i,ID).ToString();
  348. FormICSOQCCKGROUPAdd add = new FormICSOQCCKGROUPAdd(id);
  349. add.ShowDialog();
  350. }
  351. }
  352. btnRefresh_Click(null, null);
  353. }
  354. catch (Exception ex)
  355. {
  356. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  357. }
  358. }
  359. #endregion
  360. private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
  361. {
  362. AppConfig.DropTemTable(tempTableName);
  363. }
  364. private void FormICSCREW_Load(object sender, EventArgs e)
  365. {
  366. btnFilter_Click(sender, e);
  367. }
  368. private void btnOutPut_Click_1(object sender, EventArgs e)
  369. {
  370. FormOutExcel foe = new FormOutExcel();
  371. if (foe.ShowDialog() == DialogResult.OK)
  372. {
  373. try
  374. {
  375. string outtype = foe._OutType;
  376. string exceltype = foe._ExcelType;
  377. string filename = foe._FileName;
  378. string url = foe._Url;
  379. string sheetname = foe._SheetName;
  380. if (outtype.ToLower() == "excel")
  381. {
  382. DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
  383. op.SheetName = sheetname;
  384. grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
  385. }
  386. else
  387. {
  388. grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
  389. }
  390. MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  391. }
  392. catch (Exception ex)
  393. {
  394. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  395. }
  396. }
  397. }
  398. private void grdDetail_Click(object sender, EventArgs e)
  399. {
  400. }
  401. private void btnTBLOP_Click(object sender, EventArgs e)
  402. {
  403. string id="";
  404. List<string> editList = new List<string>();
  405. for (int i = 0; i < grvDetail.RowCount; i++)
  406. {
  407. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  408. {
  409. id = grvDetail.GetRowCellValue(i, ID).ToString();
  410. editList.Add(id);
  411. }
  412. }
  413. if (editList.Count != 1)
  414. {
  415. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  416. return;
  417. }
  418. try
  419. {
  420. FormICSOQCCKGROUP2LIST add = new FormICSOQCCKGROUP2LIST(id);
  421. add.ShowDialog();
  422. btnRefresh_Click(null, null);
  423. }
  424. catch (Exception ex)
  425. {
  426. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  427. }
  428. }
  429. private void btnImportMould_Click(object sender, EventArgs e)
  430. {
  431. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  432. _wait.Hide();
  433. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  434. try
  435. {
  436. _wait.Show();
  437. _wait.Caption = "模板下载中......";
  438. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  439. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  440. dlgSaveFileDialog.FilterIndex = 1;
  441. dlgSaveFileDialog.RestoreDirectory = true;
  442. dlgSaveFileDialog.FileName = "检验项目维护导入模板.xlsx"; //默认保存名称
  443. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  444. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  445. {
  446. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  447. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  448. colNameList.Add(new FormReadExcelUIModelColumns("检验项目代码", true));
  449. colNameList.Add(new FormReadExcelUIModelColumns("名称", true));
  450. colNameList.Add(new FormReadExcelUIModelColumns("描述", true));
  451. colNameList.Add(new FormReadExcelUIModelColumns("是否启用", true));
  452. FileUtil.exportToExcelFile(fileName, colNameList);
  453. _wait.Close();
  454. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  455. }
  456. _wait.Close();
  457. }
  458. catch (Exception ex)
  459. {
  460. _wait.Close();
  461. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  462. }
  463. }
  464. private void btnImportData_Click(object sender, EventArgs e)
  465. {
  466. SimpleButton btntemp = (SimpleButton)sender;
  467. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  468. {
  469. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  470. return;
  471. }
  472. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  473. _wait.Hide();
  474. try
  475. {
  476. FormReadExcel fre = new FormReadExcel();
  477. if (fre.ShowDialog() != DialogResult.OK)
  478. {
  479. return;
  480. }
  481. DataTable dataSource = fre._excelData;
  482. if (dataSource == null)
  483. {
  484. throw new Exception("excel数据取得失败");
  485. }
  486. _wait.Show();
  487. _wait.Caption = "判断模版是否正确......";
  488. #region 判断模版是否正确
  489. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  490. colNameList.Add(new FormReadExcelUIModelColumns("检验项目代码", true));
  491. colNameList.Add(new FormReadExcelUIModelColumns("名称", true));
  492. colNameList.Add(new FormReadExcelUIModelColumns("描述", true));
  493. colNameList.Add(new FormReadExcelUIModelColumns("是否启用", true));
  494. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  495. {
  496. if (!dataSource.Columns.Contains(columnsName.columnsName))
  497. {
  498. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  499. }
  500. }
  501. #endregion
  502. _wait.Caption = "数据整理中......";
  503. List<ICSOQCCKGROUP> RouteLists = new List<ICSOQCCKGROUP>();
  504. //string CKGROUP = "";
  505. //string ID = "";
  506. foreach (DataRow dr in dataSource.Rows)
  507. {
  508. ///判断必输项目是否为空
  509. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  510. {
  511. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  512. {
  513. throw new Exception("列" + columnsName.columnsName + "没有输入值");
  514. }
  515. }
  516. //if (CKGROUP != dr["检验项目代码"].ToString().Trim())
  517. //{
  518. // ID = AppConfig.GetGuid().ToString();
  519. // CKGROUP = dr["检验项目代码"].ToString().Trim();
  520. //ICSOQCCKGROUP line = ICSOQCCKGROUPBLL.search(CKGROUP, AppConfig.AppConnectString);
  521. //if (line == null)
  522. //{
  523. ICSOQCCKGROUP RouteList = new ICSOQCCKGROUP();
  524. RouteList.ID = AppConfig.GetGuid().ToString();
  525. RouteList.CKGROUP = dr["检验项目代码"].ToString();
  526. RouteList.CKGROUPDNAME = dr["名称"].ToString();
  527. RouteList.CKGROUPDESC = dr["描述"].ToString();
  528. RouteList.ISREF = dr["是否启用"].ToString();
  529. RouteList.MUSER = AppConfig.UserId;
  530. RouteList.MUSERName = AppConfig.UserName;
  531. RouteList.MTIME = DateTime.Now;
  532. RouteList.WorkPoint = AppConfig.WorkPointCode;
  533. RouteLists.Add(RouteList);
  534. //}
  535. //else
  536. //{
  537. // _wait.Close();
  538. // ICSBaseSimpleCode.AppshowMessageBox("检验项目代码:" + CKGROUP + "已经存在");
  539. // return;
  540. //}
  541. //}
  542. }
  543. _wait.Caption = "导入数据......";
  544. string mes = ICSOQCCKGROUPBLL.AddList(RouteLists, AppConfig.AppConnectString);
  545. if (mes == "OK")
  546. {
  547. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  548. }
  549. else
  550. {
  551. ICSBaseSimpleCode.AppshowMessageBox(mes);
  552. }
  553. _wait.Close();
  554. btnRefresh_Click(null, null);
  555. }
  556. catch (Exception ex)
  557. {
  558. _wait.Close();
  559. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  560. }
  561. }
  562. }
  563. }