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

714 lines
29 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 FormICSOQCCKLIST : 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 FormICSOQCCKLIST()
  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));
  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. ICSOQCCKLISTBLL.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. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在加载必要数据...");
  308. _wait.Show();
  309. try
  310. {
  311. FormICSOQCCKLISTAddNew add = new FormICSOQCCKLISTAddNew();
  312. _wait.Close();
  313. add.ShowDialog();
  314. btnRefresh_Click(null, null);
  315. }
  316. catch (Exception ex)
  317. {
  318. _wait.Close();
  319. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  320. }
  321. }
  322. #endregion
  323. #region 页面加载
  324. private void grdDetail_Load(object sender, EventArgs e)
  325. {
  326. btnFilter_Click(null, null);
  327. }
  328. #endregion
  329. #region 修改
  330. private void btnModify_Click(object sender, EventArgs e)
  331. {
  332. SimpleButton btntemp = (SimpleButton)sender;
  333. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  334. {
  335. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  336. return;
  337. }
  338. int count = 0;
  339. for (int i = 0; i < grvDetail.RowCount; i++)
  340. {
  341. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  342. {
  343. count++;
  344. }
  345. }
  346. if (count != 1)
  347. {
  348. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  349. return;
  350. }
  351. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在加载必要数据...");
  352. _wait.Show();
  353. try
  354. {
  355. string id;
  356. for (int i = 0; i < grvDetail.RowCount; i++)
  357. {
  358. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  359. {
  360. id = grvDetail.GetRowCellValue(i, ID).ToString();
  361. FormICSOQCCKLISTAdd add = new FormICSOQCCKLISTAdd(id);
  362. _wait.Close();
  363. add.ShowDialog();
  364. }
  365. }
  366. btnRefresh_Click(null, null);
  367. }
  368. catch (Exception ex)
  369. {
  370. _wait.Close();
  371. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  372. }
  373. }
  374. #endregion
  375. private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
  376. {
  377. AppConfig.DropTemTable(tempTableName);
  378. }
  379. private void FormICSCREW_Load(object sender, EventArgs e)
  380. {
  381. FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
  382. filter.OldTempTableName = tempTableName;
  383. if (filter.ShowDialog() == DialogResult.OK)
  384. {
  385. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  386. try
  387. {
  388. _wait.Show();
  389. tempTableName = filter.NewTempTableName;
  390. sqltxt = filter.SqlText;
  391. sqlconn = filter.FilterConnectString;
  392. dataSource = filter.FilterData.Tables[0];
  393. grdDetail.DataSource = dataSource;
  394. grvDetail.BestFitColumns();
  395. rptPage.RecordNum = dataSource.Rows.Count;
  396. rptPage.PageSize = 499;
  397. rptPage.PageIndex = 1;
  398. rptPage.ReLoad();
  399. rptPage.PageSize = 500;
  400. rptPage.PageIndex = 1;
  401. rptPage.ReLoad();
  402. _wait.Close();
  403. }
  404. catch (Exception ex)
  405. {
  406. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  407. _wait.Close();
  408. }
  409. }
  410. }
  411. private void btnOutPut_Click_1(object sender, EventArgs e)
  412. {
  413. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  414. foe.ShowDialog();
  415. }
  416. private void btnTBLOP_Click(object sender, EventArgs e)
  417. {
  418. string id = "";
  419. List<string> editList = new List<string>();
  420. for (int i = 0; i < grvDetail.RowCount; i++)
  421. {
  422. if (grvDetail.GetRowCellValue(i, coSelect).ToString() == "Y")
  423. {
  424. id = grvDetail.GetRowCellValue(i, ID).ToString();
  425. editList.Add(id);
  426. }
  427. }
  428. if (editList.Count != 1)
  429. {
  430. ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
  431. return;
  432. }
  433. try
  434. {
  435. FormICSOQCCKGROUP2LIST add = new FormICSOQCCKGROUP2LIST(id);
  436. add.ShowDialog();
  437. btnRefresh_Click(null, null);
  438. }
  439. catch (Exception ex)
  440. {
  441. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  442. }
  443. }
  444. private void btnImportMould_Click(object sender, EventArgs e)
  445. {
  446. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  447. _wait.Hide();
  448. string anjianExcelFileName = Environment.CommandLine.Substring(1, Environment.CommandLine.LastIndexOf("\\")) + "Output\\";
  449. try
  450. {
  451. _wait.Show();
  452. _wait.Caption = "模板下载中......";
  453. SaveFileDialog dlgSaveFileDialog = new SaveFileDialog(); //弹框提示保存
  454. dlgSaveFileDialog.InitialDirectory = anjianExcelFileName; //默认打开目录
  455. dlgSaveFileDialog.FilterIndex = 1;
  456. dlgSaveFileDialog.RestoreDirectory = true;
  457. dlgSaveFileDialog.FileName = "检验项目关联导入模板.xlsx"; //默认保存名称
  458. dlgSaveFileDialog.Filter = "Excel文件(*.xlsx)|*.xlsx";
  459. if (dlgSaveFileDialog.ShowDialog() == DialogResult.OK)
  460. {
  461. string fileName = dlgSaveFileDialog.FileName; //获取弹出框选择或填写的文件名称
  462. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  463. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  464. colNameList.Add(new FormReadExcelUIModelColumns("工序编码", true));
  465. colNameList.Add(new FormReadExcelUIModelColumns("检验项目编码", true));
  466. colNameList.Add(new FormReadExcelUIModelColumns("检验方式", true));
  467. colNameList.Add(new FormReadExcelUIModelColumns("检验属性", true));
  468. colNameList.Add(new FormReadExcelUIModelColumns("检验工具", false));
  469. colNameList.Add(new FormReadExcelUIModelColumns("标准值", false));
  470. colNameList.Add(new FormReadExcelUIModelColumns("标准上限", false));
  471. colNameList.Add(new FormReadExcelUIModelColumns("标准下限", false));
  472. colNameList.Add(new FormReadExcelUIModelColumns("单位", false));
  473. colNameList.Add(new FormReadExcelUIModelColumns("启用", true));
  474. FileUtil.exportToExcelFile(fileName, colNameList);
  475. _wait.Close();
  476. ICSBaseSimpleCode.AppshowMessageBox("模板下载成功!");
  477. }
  478. _wait.Close();
  479. }
  480. catch (Exception ex)
  481. {
  482. _wait.Close();
  483. ICSBaseSimpleCode.AppshowMessageBox("模板下载失败:" + ex.Message);
  484. }
  485. }
  486. private void btnImportData_Click(object sender, EventArgs e)
  487. {
  488. string Lot_NO = "", LotNO_X = "";
  489. SimpleButton btntemp = (SimpleButton)sender;
  490. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  491. {
  492. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  493. return;
  494. }
  495. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm();
  496. _wait.Hide();
  497. try
  498. {
  499. FormReadExcel fre = new FormReadExcel();
  500. if (fre.ShowDialog() != DialogResult.OK)
  501. {
  502. return;
  503. }
  504. DataTable dataSource = fre._excelData;
  505. if (dataSource == null)
  506. {
  507. throw new Exception("excel数据取得失败");
  508. }
  509. DataSet ds = ICSOQCCKLISTBLL.SearchImportData(AppConfig.AppConnectString);
  510. if (ds == null || ds.Tables.Count!=6)
  511. {
  512. throw new Exception("查询出错,请重新操作!");
  513. }
  514. _wait.Show();
  515. _wait.Caption = "判断模版是否正确......";
  516. #region 判断模版是否正确
  517. List<FormReadExcelUIModelColumns> colNameList = new List<FormReadExcelUIModelColumns>();
  518. colNameList.Add(new FormReadExcelUIModelColumns("物料编码", true));
  519. colNameList.Add(new FormReadExcelUIModelColumns("工序编码", true));
  520. colNameList.Add(new FormReadExcelUIModelColumns("检验项目编码", true));
  521. colNameList.Add(new FormReadExcelUIModelColumns("检验方式", true));
  522. colNameList.Add(new FormReadExcelUIModelColumns("检验属性", true));
  523. colNameList.Add(new FormReadExcelUIModelColumns("检验工具", false));
  524. colNameList.Add(new FormReadExcelUIModelColumns("标准值", false));
  525. colNameList.Add(new FormReadExcelUIModelColumns("标准上限", false));
  526. colNameList.Add(new FormReadExcelUIModelColumns("标准下限", false));
  527. colNameList.Add(new FormReadExcelUIModelColumns("单位", false));
  528. colNameList.Add(new FormReadExcelUIModelColumns("启用", true));
  529. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  530. {
  531. if (!dataSource.Columns.Contains(columnsName.columnsName))
  532. {
  533. throw new Exception("模版不正确,缺少列" + columnsName.columnsName);
  534. }
  535. }
  536. #endregion
  537. _wait.Caption = "数据整理中......";
  538. List<ICSOQCCKLIST> InfoList = new List<ICSOQCCKLIST>();
  539. int index = 1;
  540. foreach (DataRow dr in dataSource.Rows)
  541. {
  542. index++;
  543. ///判断必输项目是否为空
  544. foreach (FormReadExcelUIModelColumns columnsName in colNameList)
  545. {
  546. if (string.IsNullOrWhiteSpace(dr[columnsName.columnsName].ToString()) == true && columnsName.NotNull == true)
  547. {
  548. throw new Exception("第 " + index + " 行,列" + columnsName.columnsName + "没有输入值");
  549. }
  550. }
  551. string ItemCode = dr["物料编码"].ToString();
  552. string OPCode = dr["工序编码"].ToString();
  553. string CKGROUPCode = dr["检验项目编码"].ToString();
  554. string CKGROUPMETH = dr["检验方式"].ToString();
  555. string CKGROUPATTR = dr["检验属性"].ToString();
  556. string Tool = dr["检验工具"].ToString();
  557. string SetValue = dr["标准值"].ToString();
  558. string SetValueMax = dr["标准上限"].ToString();
  559. string SetValueMin = dr["标准下限"].ToString();
  560. string UNIT = dr["单位"].ToString();
  561. string ISREF = dr["启用"].ToString();
  562. DateTime dataTime = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
  563. DataRow[] drInv = ds.Tables[0].Select("INVCODE='" + ItemCode + "'");
  564. if (drInv == null || drInv.Length <= 0)
  565. {
  566. throw new Exception("第 " + index + " 行,物料编码:" + ItemCode + " 不存在!");
  567. }
  568. DataRow[] drOP = ds.Tables[1].Select("OPCODE='" + OPCode + "'");
  569. if (drOP == null || drOP.Length <= 0)
  570. {
  571. throw new Exception("第 " + index + " 行,工序编码:" + OPCode + " 不存在!");
  572. }
  573. DataRow[] drCKGROUP = ds.Tables[2].Select("CKGROUP='" + CKGROUPCode + "'");
  574. if (drCKGROUP == null || drCKGROUP.Length <= 0)
  575. {
  576. throw new Exception("第 " + index + " 行,检验项目编码:" + CKGROUPCode + " 不存在!");
  577. }
  578. DataRow[] drCKGROUPMETH = ds.Tables[3].Select("EnumText='" + CKGROUPMETH + "'");
  579. if (drCKGROUPMETH == null || drCKGROUPMETH.Length <= 0)
  580. {
  581. throw new Exception("第 " + index + " 行,检验方式:" + CKGROUPMETH + " 不存在!");
  582. }
  583. DataRow[] drCKGROUPATTR = ds.Tables[4].Select("EnumText='" + CKGROUPATTR + "'");
  584. if (drCKGROUPATTR == null || drCKGROUPATTR.Length <= 0)
  585. {
  586. throw new Exception("第 " + index + " 行,检验属性:" + CKGROUPATTR + " 不存在!");
  587. }
  588. DataRow[] drTool = ds.Tables[5].Select("EnumText='" + CKGROUPATTR + "'");
  589. if (drTool == null || drTool.Length <= 0)
  590. {
  591. throw new Exception("第 " + index + " 行,检验工具:" + Tool + " 不存在!");
  592. }
  593. if (CKGROUPATTR == "计量型检验")
  594. {
  595. if (string.IsNullOrWhiteSpace(SetValueMax))
  596. {
  597. throw new Exception("第 " + index + " 行,标准上限不能为空!");
  598. }
  599. if (string.IsNullOrWhiteSpace(SetValueMin))
  600. {
  601. throw new Exception("第 " + index + " 行,标准下限不能为空!");
  602. }
  603. if (string.IsNullOrWhiteSpace(UNIT))
  604. {
  605. throw new Exception("第 " + index + " 行,单位不能为空!");
  606. }
  607. decimal QTY = 0;
  608. bool result = decimal.TryParse(SetValueMax, out QTY);
  609. if (!result)
  610. {
  611. throw new Exception("第 " + index + " 行,标准上限:" + SetValueMax + " 格式不正确!");
  612. }
  613. result = decimal.TryParse(SetValueMin, out QTY);
  614. if (!result)
  615. {
  616. throw new Exception("第 " + index + " 行,标准下限:" + SetValueMin + " 格式不正确!");
  617. }
  618. if (decimal.Parse(SetValueMax) < decimal.Parse(SetValueMin))
  619. {
  620. throw new Exception("第 " + index + " 行,标准上限不能小于标准下限!");
  621. }
  622. }
  623. #region 信息表
  624. ICSOQCCKLIST Info = new ICSOQCCKLIST();
  625. Info.ID = Guid.NewGuid().ToString();
  626. Info.INVCode = ItemCode;
  627. Info.OPCode = OPCode;
  628. Info.CKGROUPCode = CKGROUPCode;
  629. Info.CKGROUPMETH = CKGROUPMETH;
  630. Info.CKGROUPATTR = CKGROUPATTR;
  631. Info.Tool = Tool;
  632. Info.SetValue = string.IsNullOrWhiteSpace(SetValue) ? 0 : Convert.ToDecimal(SetValue); ;
  633. Info.SetValueMax =string.IsNullOrWhiteSpace(SetValueMax)?0:Convert.ToDecimal(SetValueMax);
  634. Info.SetValueMin = string.IsNullOrWhiteSpace(SetValueMin) ? 0 : Convert.ToDecimal(SetValueMin);
  635. Info.UNIT = UNIT;
  636. Info.ISREF = ISREF;
  637. Info.MUSER = AppConfig.UserName;
  638. Info.MTIME = dataTime;
  639. Info.WorkPoint = AppConfig.WorkPointCode;
  640. InfoList.Add(Info);
  641. #endregion
  642. }
  643. _wait.Caption = "导入数据......";
  644. ICSOQCCKLISTBLL.AddandEditList(InfoList, AppConfig.AppConnectString);
  645. _wait.Close();
  646. ICSBaseSimpleCode.AppshowMessageBox("数据导入成功!");
  647. btnRefresh_Click(null, null);
  648. }
  649. catch (Exception ex)
  650. {
  651. _wait.Close();
  652. ICSBaseSimpleCode.AppshowMessageBox("数据导入失败:" + ex.Message);
  653. }
  654. }
  655. }
  656. }