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

834 lines
33 KiB

5 months ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. using ICSSoft.Base.Config.AppConfig;
  10. using ICSSoft.Base.Config.DBHelper;
  11. using System.IO;
  12. using ICSSoft.Frame.Data.BLL;
  13. using ICSSoft.Frame.Data.Entity;
  14. namespace ICSSoft.Frame.APP
  15. {
  16. public partial class UserControlDrawingView : UserControl
  17. {
  18. public UserControlDrawingView()
  19. {
  20. InitializeComponent();
  21. panelTuZhi.Dock = DockStyle.Fill;
  22. pnlShiYa.Dock = DockStyle.Fill;
  23. pnlZiJian.Dock = DockStyle.Fill;
  24. pnlTechnology.Dock = DockStyle.Fill;
  25. pnlProgram.Dock = DockStyle.Fill;
  26. pnlVideo.Dock = DockStyle.Fill;
  27. pnlItem.Dock = DockStyle.Fill;
  28. panelTool.Dock = DockStyle.Fill;
  29. panelparts.Dock = DockStyle.Fill;
  30. }
  31. public string LotNo;
  32. public string ItemCode;
  33. public string RouteCode;
  34. public string OPCode;
  35. public string OPDesc;
  36. public string EQPCode;
  37. public string EQPType;
  38. private string Type;
  39. private string Suffix = "pdf";
  40. public string ItemStd;
  41. public string MachineState;
  42. public void init(string type)
  43. {
  44. Type = type;
  45. if (type.Equals(FileDrawing.ZhuangPei) || type.Equals(FileDrawing.PengQi) || type.Equals(FileDrawing.QiLu) || type.Equals(FileDrawing.YanMo))
  46. {
  47. panelTuZhi.BringToFront();
  48. panelparts.Visible = false;
  49. if (!string.IsNullOrWhiteSpace(ItemCode))
  50. {
  51. BandData(ItemCode, Suffix, FileDrawing.TuZhi, axAcroPDFTZ);
  52. }
  53. pnlItem.BringToFront();
  54. GetData(gridControl1, gridView1);
  55. }
  56. else if (type.Equals(FileDrawing.ShiYa))
  57. {
  58. pnlShiYa.BringToFront();
  59. SYdtSource(LotNo);
  60. pnlTechnology.BringToFront();
  61. panelparts.Visible = false;
  62. if (!string.IsNullOrWhiteSpace(ItemCode))
  63. {
  64. BandData(ItemCode, Suffix, FileDrawing.TuZhi, axAcroPDF);
  65. }
  66. }
  67. else if (type.Equals(FileDrawing.ZiJian))
  68. {
  69. pnlZiJian.BringToFront();
  70. selfCheckData(LotNo);
  71. pnlTechnology.BringToFront();
  72. panelparts.Visible = false;
  73. if (!string.IsNullOrWhiteSpace(ItemCode))
  74. {
  75. BandData(ItemCode, Suffix, FileDrawing.TuZhi, axAcroPDF);
  76. }
  77. }
  78. }
  79. #region LiewView显示控制
  80. private void listViewZPMenu_SelectedIndexChanged(object sender, EventArgs e)
  81. {
  82. string MainTypeCode = GetMainTypeCode(ItemCode);
  83. MediaStop();
  84. if (listViewZPMenu.SelectedItems.Count == 0)
  85. return;
  86. ListView listView = sender as ListView;
  87. string text = listView.SelectedItems[0].Text;
  88. if (text.Equals(FileDrawing.TuZhi)) //图纸
  89. {
  90. if (!string.IsNullOrWhiteSpace(ItemCode))
  91. {
  92. if (Type.Equals(FileDrawing.ShiYa) || Type.Equals(FileDrawing.ZiJian))
  93. {
  94. pnlTechnology.BringToFront();
  95. panelparts.Visible = false;
  96. BandData(ItemCode, Suffix, FileDrawing.TuZhi, axAcroPDF);
  97. }
  98. else
  99. BandData(ItemCode, Suffix, FileDrawing.TuZhi, axAcroPDFTZ);
  100. }
  101. }
  102. else if (text.Equals(FileDrawing.CuJiaGong)) //规范
  103. {
  104. //pnlSpecs.BringToFront();
  105. pnlTechnology.BringToFront();
  106. panelparts.Visible = false;
  107. if (!string.IsNullOrWhiteSpace(ItemCode + "-" + OPCode))
  108. {
  109. BandData(ItemCode + "-" + OPCode, Suffix, FileDrawing.CuJiaGong, axAcroPDF);
  110. }
  111. }
  112. else if (text.Equals(FileDrawing.WuLiao)) //物料清单
  113. {
  114. pnlItem.BringToFront();
  115. panelparts.Visible = false;
  116. GetData(gridControl1, gridView1);
  117. }
  118. else if (text.Equals(FileDrawing.ZuoYeZhiDao)) //工艺
  119. {
  120. pnlTechnology.BringToFront();
  121. panelparts.Visible = false;
  122. if (!string.IsNullOrWhiteSpace(RouteCode) && !string.IsNullOrWhiteSpace(OPCode))
  123. {
  124. BandData(RouteCode + "_" + OPCode, Suffix, FileDrawing.ZuoYeZhiDao, axAcroPDF);
  125. }
  126. }
  127. else if (text.Equals(FileDrawing.PeiXun)) //培训文件
  128. {
  129. pnlTechnology.BringToFront();
  130. panelparts.Visible = false;
  131. if (!string.IsNullOrWhiteSpace(RouteCode))
  132. {
  133. BandData(RouteCode, Suffix, FileDrawing.PeiXun, axAcroPDF);
  134. }
  135. }
  136. else if (text.Equals(FileDrawing.ChengXu)) //程序
  137. {
  138. pnlProgram.BringToFront();
  139. panelparts.Visible = false;
  140. if (!string.IsNullOrWhiteSpace(ItemCode) && !string.IsNullOrWhiteSpace(OPCode))
  141. {
  142. string fileName = ItemCode + "_" + OPCode;
  143. if (MachineState == "是")
  144. {
  145. fileName += "_N";
  146. }
  147. DataTable dt = FileDrawing.GetDrawingDT(fileName, "CNC", FileDrawing.ChengXu);
  148. gridControl2.DataSource = dt;
  149. gridView3.BestFitColumns();
  150. // string fileName = FileDrawing.GetDrawing(ItemCode + "_" + OPCode, "CNC", FileDrawing.CHENGXU);
  151. // StreamReader reader = new StreamReader(fileName, Encoding.Default);
  152. // txtProgram.Text = reader.ReadToEnd();
  153. // reader.Close();
  154. }
  155. }
  156. else if (text.Equals(FileDrawing.ZhuYi)) //注意事项
  157. {
  158. pnlTechnology.BringToFront();
  159. panelparts.Visible = false;
  160. if (!string.IsNullOrWhiteSpace(RouteCode) && !string.IsNullOrWhiteSpace(OPCode))
  161. {
  162. BandData(RouteCode + "_" + OPCode, Suffix, FileDrawing.ZhuYi, axAcroPDF);
  163. }
  164. }
  165. else if (text.Equals(FileDrawing.GuiFan))
  166. {
  167. pnlTechnology.BringToFront();
  168. panelparts.Visible = false;
  169. if (!string.IsNullOrWhiteSpace(OPCode))
  170. {
  171. BandData(OPCode, Suffix, FileDrawing.GuiFan, axAcroPDF);
  172. }
  173. }
  174. else if (text.Equals(FileDrawing.WenTi))
  175. {
  176. pnlTechnology.BringToFront();
  177. panelparts.Visible = false;
  178. if (!string.IsNullOrWhiteSpace(MainTypeCode))
  179. {
  180. BandData(MainTypeCode, Suffix, FileDrawing.WenTi, axAcroPDF);
  181. }
  182. }
  183. else if (text.Equals(FileDrawing.SZuoYeZhiDao))
  184. {
  185. pnlTechnology.BringToFront();
  186. panelparts.Visible = false;
  187. if (!string.IsNullOrWhiteSpace(EQPType))
  188. {
  189. BandData(EQPType, Suffix, FileDrawing.SZuoYeZhiDao, axAcroPDF);
  190. }
  191. }
  192. else if (text.Equals(FileDrawing.SheBei))
  193. {
  194. pnlTechnology.BringToFront();
  195. panelparts.Visible = false;
  196. if (!string.IsNullOrWhiteSpace(EQPType))
  197. {
  198. BandData(EQPType, Suffix, FileDrawing.SheBei, axAcroPDF);
  199. }
  200. }
  201. else if (text.Equals(FileDrawing.WPS))
  202. {
  203. pnlTechnology.BringToFront();
  204. panelparts.Visible = false;
  205. if (!string.IsNullOrWhiteSpace(ItemCode))
  206. {
  207. BandData(ItemCode, Suffix, FileDrawing.WPS, axAcroPDF);
  208. }
  209. }
  210. else if (text.Equals(FileDrawing.ToolSpec))
  211. {
  212. panelTool.BringToFront();
  213. panelparts.Visible = false;
  214. //20181107
  215. if (!string.IsNullOrWhiteSpace(EQPCode))
  216. {
  217. BandData(ItemCode, Suffix, FileDrawing.ToolSpec, axAcroPDF);
  218. GetDataEQPTools(gridControlEQPTools, gridView2);
  219. if (!string.IsNullOrWhiteSpace(ItemCode))
  220. {
  221. GetDataProTool(gridControlItemOpTools, gridView4);
  222. GetDataProToolDifference(gridControl3, gridView5);
  223. }
  224. }
  225. }
  226. else if (text.Equals(FileDrawing.GongZhuang))
  227. {
  228. #region 工装信息
  229. panelparts.Visible = true;
  230. panelparts.BringToFront();
  231. if (!string.IsNullOrWhiteSpace(ItemCode) && !string.IsNullOrWhiteSpace(OPCode))
  232. {
  233. GetPartsInfo(gridControl4, gridView6);
  234. }
  235. #endregion
  236. }
  237. }
  238. #endregion
  239. #region 根据存货编码查询产品主分类编码
  240. private string GetMainTypeCode(string itemCode)
  241. {
  242. try
  243. {
  244. string MainTypeCode = FileDrawing.GetMainTypeCode(itemCode);
  245. return MainTypeCode;
  246. }
  247. catch (Exception ex)
  248. {
  249. MessageBox.Show(ex.Message);
  250. return "Error";
  251. }
  252. }
  253. #endregion
  254. #region 根据存货编码查询列表信息
  255. private void BandData(string itemCode, string suffix, string type, AxAcroPDFLib.AxAcroPDF axAcroPDF)
  256. {
  257. try
  258. {
  259. string fileName = FileDrawing.GetDrawing(itemCode, suffix, type);
  260. if (!string.IsNullOrEmpty(fileName))
  261. {
  262. axAcroPDF.LoadFile(fileName);
  263. axAcroPDF.setShowToolbar(false);
  264. axAcroPDF.setShowScrollbars(false);
  265. axAcroPDF.setPageMode("thumbs");
  266. axAcroPDF.setLayoutMode("SinglePage");
  267. axAcroPDF.setView("Fit");
  268. axAcroPDF.Show();
  269. }
  270. }
  271. catch (Exception ex)
  272. {
  273. MessageBox.Show(ex.Message);
  274. }
  275. }
  276. #endregion
  277. #region 视频
  278. public void GetMedia(AxWMPLib.AxWindowsMediaPlayer axWindowsMediaPlayer)
  279. {
  280. //string fileName = @"C:\Users\Public\Videos\Sample Videos\ysdw.wmv";
  281. if (string.IsNullOrWhiteSpace(RouteCode))
  282. return;
  283. string fileName = FileDrawing.GetDrawing(RouteCode, "mp4", FileDrawing.ShiPin);
  284. if (!string.IsNullOrEmpty(fileName))
  285. {
  286. axWindowsMediaPlayer.windowlessVideo = false; //设为false后双击屏幕可以全屏
  287. //axWindowsMediaPlayer.fullScreen = true; //设播放器全屏播放
  288. axWindowsMediaPlayer.URL = fileName;
  289. //axWindowsMediaPlayer.Ctlcontrols.play(); //播放
  290. //axWindowsMediaPlayer.Ctlcontrols.stop(); //停止
  291. //axWindowsMediaPlayer.Ctlcontrols.pause(); //暂停
  292. }
  293. }
  294. public void MediaStop()
  295. {
  296. axWindowsMediaPlayer1.Ctlcontrols.stop(); //停止
  297. }
  298. #endregion
  299. #region 物料清单
  300. private void GetData(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  301. {
  302. if (string.IsNullOrWhiteSpace(ItemCode))
  303. return;
  304. string sql = @"SELECT DISTINCT a.ITEMCODE,
  305. b.ItemName,
  306. a.OBITEMCODE,
  307. a.OBITEMNAME,
  308. a.OBITEMQTY
  309. from ICSOPBOMDETAIL a
  310. left join Base_Inventory b on a.ITEMCODE=b.ITEMCODE
  311. where a.ITEMCODE='" + ItemCode + "'";
  312. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  313. gridControl.DataSource = dt;
  314. gridView.BestFitColumns();
  315. }
  316. #region 列表
  317. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  318. {
  319. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  320. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  321. }
  322. #endregion
  323. #endregion
  324. private void SYdtSource(string lotno)
  325. {
  326. try
  327. {
  328. string sql = @" select distinct
  329. a.ID,
  330. a.ProjectCode,
  331. a.PTModelCode,
  332. a.TestSEQ,
  333. list.TestName,
  334. a.TestContent,
  335. a.Data5,
  336. cast(0 as bit) as TestResult
  337. from ICSPressureTestData a
  338. left join ICSPressureTestList list on a.PTModelCode=list.PTModelCode and a.TestSEQ=list.TestSEQ
  339. inner join ICSMO b on a.ProjectCode=b.ProjectCode
  340. inner join ICSMO2Lot c on b.MOCODE=c.MOCODE
  341. WHERE c.LOTNO='" + lotno + "' order by a.TestSEQ";
  342. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  343. foreach (DataRow dr in dt.Rows)
  344. {
  345. if (dr["Data5"].ToString() != "" && dr["TestData"].ToString() != "")
  346. {
  347. if (decimal.Parse(dr["Data5"].ToString()) > decimal.Parse(dr["TestData"].ToString()))
  348. {
  349. dr["TestResult"] = "True";
  350. }
  351. else
  352. {
  353. dr["TestResult"] = "False";
  354. }
  355. }
  356. else
  357. {
  358. if (dr["Data5"].ToString() == "" && dr["TestData"].ToString() != "")
  359. {
  360. if (dr["TestData"].ToString() == "1")
  361. {
  362. dr["TestResult"] = "True";
  363. }
  364. if (dr["TestData"].ToString() == "0")
  365. {
  366. dr["TestResult"] = "0False";
  367. }
  368. }
  369. }
  370. }
  371. gridControlsyks.DataSource = dt;
  372. gridViewsyks.BestFitColumns();
  373. }
  374. catch (Exception ex)
  375. {
  376. MessageBox.Show(ex.Message);
  377. }
  378. }
  379. private void selfCheckData(string lotNo)
  380. {
  381. if (lotNo != "")
  382. {
  383. string sql = @"SELECT b.ProjectCode,c.ItemMainCategoryCode,a.LOTNO INTO #t1
  384. FROM ICSMO2Lot a
  385. INNER JOIN dbo.ICSMO b ON a.MOID = b.ID
  386. INNER JOIN dbo.Base_Inventory c ON b.ITEMCODE = c.ItemCode
  387. WHERE a.LOTNO = '" + lotNo + @"'
  388. SELECT * FROM
  389. (SELECT a.GUID,c.ProjectID,c.ProjectName,d.QCStandardSEQ,
  390. d.QCStandardNAME,d.ID AS PROJECTSID,'' as NGLog,
  391. '' as SelfCheckData,
  392. CONVERT(BIT,1) AS ISOK FROM dbo.ICSQCPROJECTCLASS a
  393. INNER JOIN #t1 b ON a.ItemClassCode = b.ItemMainCategoryCode
  394. INNER JOIN dbo.ICSQCPROJECT c ON a.ProjectGUID = c.guid
  395. INNER JOIN dbo.ICSQCPROJECTCLASSS d ON a.guid = d.guid
  396. UNION ALL
  397. SELECT a.GUID,c.ProjectID,c.ProjectName,d.QCStandardSEQ,
  398. d.QCStandardNAME,d.ID AS PROJECTSID,'' as NGLog,
  399. '' as SelfCheckData,
  400. CONVERT(BIT,1) AS ISOK FROM dbo.ICSQCPROJECTCLASS a
  401. INNER JOIN #t1 b ON a.ProjectCode = b.ProjectCode
  402. INNER JOIN dbo.ICSQCPROJECT c ON a.ProjectGUID = c.guid
  403. INNER JOIN dbo.ICSQCPROJECTCLASSS d ON a.guid = d.guid) a
  404. ORDER BY convert(int,ProjectID),convert(int,QCStandardSEQ)
  405. DROP TABLE #t1";
  406. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  407. if (dt != null && dt.Rows.Count > 0)
  408. {
  409. grdDetails.DataSource = dt;
  410. grvDetails.BestFitColumns();
  411. }
  412. }
  413. }
  414. private void btnEnlarge_Click(object sender, EventArgs e)
  415. {
  416. Button button = sender as Button;
  417. switch (button.Name.ToString())
  418. {
  419. case "btnEnlargeTZ":
  420. FileDrawing.Enlarge(axAcroPDFTZ);
  421. break;
  422. case "btnEnlarge":
  423. FileDrawing.Enlarge(axAcroPDF);
  424. break;
  425. }
  426. }
  427. private void fileRead_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
  428. {
  429. try
  430. {
  431. DevExpress.XtraGrid.Views.Grid.GridView view = ((DevExpress.XtraGrid.Views.Grid.GridView)(gridControl2.MainView));
  432. int rowhandle = view.FocusedRowHandle;
  433. DataRow dr = view.GetDataRow(rowhandle);
  434. string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
  435. string[] ftps = connectionString.Split(';');
  436. string ftpServerIP = ftps[0].Split('=')[1];
  437. string ftpRemotePath = ftps[1].Split('=')[1];
  438. string ftpUserID = ftps[2].Split('=')[1];
  439. string ftpPassword = ftps[3].Split('=')[1];
  440. //string ftpServerIP = System.Configuration.ConfigurationManager.AppSettings["FtpServerIP"];
  441. //string ftpRemotePath = System.Configuration.ConfigurationManager.AppSettings["FtpRemotePath"];
  442. //string ftpUserID = System.Configuration.ConfigurationManager.AppSettings["FtpUserID"];
  443. //string ftpPassword = System.Configuration.ConfigurationManager.AppSettings["FtpPassword"];
  444. //string viewerApp = System.Configuration.ConfigurationManager.AppSettings["ViewerApp"];
  445. FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
  446. string filePath = System.IO.Path.GetTempPath() + "\\tempfiles";
  447. if (!Directory.Exists(filePath))
  448. {
  449. Directory.CreateDirectory(filePath);
  450. }
  451. //文件名称有 ID + “$” + 版本 + 文件格式组成
  452. string fileName = dr["FileID"].ToString() + "$" + dr["FileVer"].ToString() + "." + dr["FileFormat"].ToString();
  453. fileName = fileName.Replace("/", "");
  454. ftpWeb.Download(filePath + "\\", fileName);
  455. string filePathName = filePath + "\\" + fileName;
  456. if (dr["FileFormat"].ToString().Equals("CNC"))
  457. {
  458. string downPath = "C:\\mesjk";
  459. string downName = downPath + "\\NC.txt";
  460. if (!Directory.Exists(downPath))
  461. {
  462. Directory.CreateDirectory(downPath);
  463. }
  464. if (!File.Exists(downName))
  465. {
  466. File.Create(downName).Close();
  467. }
  468. //产品跟踪单_工序_设备编号
  469. //StreamReader reader = new StreamReader(filePathName, Encoding.Default);
  470. //string text = reader.ReadToEnd();
  471. //reader.Close();
  472. StreamWriter writer = new StreamWriter(downName);
  473. string text = LotNo + "_" + OPCode + "_" + EQPCode;
  474. writer.Write(text);
  475. writer.Close();
  476. //using (FileStream fs = new FileStream(downName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite))
  477. //{
  478. // StreamWriter sw = new StreamWriter(fs);
  479. // string text = LotNo + "_" + OPCode + "_" + EQPCode;
  480. // sw.Write(text);
  481. // sw.Close();
  482. // sw.Dispose(); //释放资源
  483. //}
  484. }
  485. }
  486. catch (Exception ex)
  487. {
  488. MessageBox.Show(ex.Message);
  489. }
  490. }
  491. //获取刀具基本信息20181107
  492. private void GetDataEQPTools(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  493. {
  494. if (string.IsNullOrWhiteSpace(EQPCode))
  495. return;
  496. string sql = @"SELECT
  497. a.ID,
  498. a.EQPCode,
  499. a.EQPName,
  500. a.SPECCode,
  501. a.[Size],
  502. a.SPECName,
  503. a.Trademark,
  504. a.EATTRIBUTE1 as ToolNumber,
  505. a.EATTRIBUTE2,
  506. a.WorkPoint,
  507. a.MUSER,
  508. a.MUSERName,
  509. a.MTIME
  510. FROM ICSToolSizeAndEquipment a
  511. where a.EQPCode='" + EQPCode + "' order by ToolNumber";
  512. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  513. gridControl.DataSource = dt;
  514. gridView.BestFitColumns();
  515. }
  516. //获取刀具配置20181107
  517. private void GetDataProTool_bak20181115(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  518. {
  519. if (string.IsNullOrWhiteSpace(ItemCode) || string.IsNullOrWhiteSpace(OPCode))
  520. return;
  521. string sql = @"SELECT
  522. a.ID,
  523. a.ITEMCODE,
  524. b.ItemName AS ITEMNAME,
  525. a.OPCODE,
  526. d.OPDESC AS OPNAME,
  527. a.ToolSPECCode,
  528. f.SPECName AS SPECNamez,
  529. a.WorkPoint,
  530. a.MUSER,
  531. a.MUSERName,
  532. a.ToolNo ,
  533. a.CheckName,
  534. a.CheckTime,
  535. CAST(a.IsChecked AS BIT) AS IsCheck,
  536. a.LotNo,
  537. a.MTIME
  538. FROM
  539. dbo.ICSITEMROUTE2OPTool a
  540. LEFT JOIN Base_Inventory b ON b.ItemCode = a.ITEMCODE
  541. LEFT JOIN ICSOP d ON a.OPCODE = d.OPCODE
  542. LEFT JOIN ICSToolSize f ON f.SPECCode = a.ToolSPECCode
  543. WHERE
  544. 1 = 1
  545. and a.ITEMCODE='" + ItemCode + "' and a.OPCODE='" + OPCode + "' ORDER BY CAST ( substring(a.ToolNo,2,LEN(a.ToolNo)-1) AS INT) ";
  546. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  547. gridControlItemOpTools.DataSource = dt;
  548. gridView4.BestFitColumns();
  549. }
  550. //获取刀具配置20181107
  551. private void GetDataProTool(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  552. {
  553. if (string.IsNullOrWhiteSpace(ItemCode) || string.IsNullOrWhiteSpace(OPCode))
  554. return;
  555. string sql = @"SELECT
  556. a.ID,
  557. a.ITEMCODE,
  558. b.ItemName AS ITEMNAME,
  559. a.OPCODE,
  560. d.OPDESC AS OPNAME,
  561. a.ToolSPECCode,
  562. f.SPECName AS SPECNamez,
  563. a.WorkPoint,
  564. a.MUSER,
  565. a.MUSERName,
  566. a.ToolNo,
  567. a.CheckName,
  568. a.CheckTime,
  569. a.LotNo,
  570. a.MTIME,
  571. CAST (YY.IsChecked AS BIT) AS IsCheck
  572. FROM
  573. dbo.ICSITEMROUTE2OPTool a
  574. LEFT JOIN Base_Inventory b ON b.ItemCode = a.ITEMCODE
  575. LEFT JOIN ICSOP d ON a.OPCODE = d.OPCODE
  576. LEFT JOIN ICSToolSize f ON f.SPECCode = a.ToolSPECCode
  577. LEFT JOIN (
  578. SELECT
  579. tt.OPCODE,
  580. tt.ToolNo,
  581. tt.ITEMCODE,
  582. tt.IsChecked
  583. FROM
  584. ICSITEMROUTE2OPTool tt
  585. WHERE
  586. 1 = 1
  587. AND tt.ITEMCODE = '" + ItemCode + " '" +
  588. "AND tt.OPCODE = '" + OPCode + "' AND tt.LotNo = '" + LotNo + "'" +
  589. ") AS YY ON ( YY.ITEMCODE = a.ITEMCODE AND YY.OPCODE = a.OPCODE AND YY.ToolNo = a.ToolNo)" +
  590. "WHERE 1 = 1 and a.ITEMCODE='" + ItemCode + "' and a.OPCODE='" + OPCode + "' ORDER BY CAST ( substring(a.ToolNo,2,LEN(a.ToolNo)-1) AS INT) ";
  591. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  592. gridControlItemOpTools.DataSource = dt;
  593. gridView4.BestFitColumns();
  594. }
  595. /// <summary>
  596. /// 保存产品刀具点检记录20181114
  597. /// </summary>
  598. /// <param name="sender"></param>
  599. /// <param name="e"></param>
  600. private void btnSave_Click(object sender, EventArgs e)
  601. {
  602. try
  603. {
  604. //List<ICSITEMROUTE2OPTool> list = new List<ICSITEMROUTE2OPTool>();
  605. //for (int j = 0; j < gridView4.RowCount; j++)
  606. //{
  607. // ICSITEMROUTE2OPTool ICSITEMROUTE2OPTool = new ICSITEMROUTE2OPTool();
  608. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colID).ToString()))
  609. // {
  610. // ICSITEMROUTE2OPTool.ID = gridView4.GetRowCellValue(j, colID).ToString();
  611. // }
  612. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colOPCODE).ToString()))
  613. // {
  614. // ICSITEMROUTE2OPTool.OPCODE = gridView4.GetRowCellValue(j, colOPCODE).ToString();
  615. // }
  616. // else
  617. // {
  618. // ICSITEMROUTE2OPTool.OPCODE = string.Empty;
  619. // }
  620. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colITEMCODE).ToString()))
  621. // {
  622. // ICSITEMROUTE2OPTool.ITEMCODE = gridView4.GetRowCellValue(j, colITEMCODE).ToString();
  623. // }
  624. // else
  625. // {
  626. // ICSITEMROUTE2OPTool.ITEMCODE = string.Empty;
  627. // }
  628. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colToolSPECCode).ToString()))
  629. // {
  630. // ICSITEMROUTE2OPTool.ToolSPECCode = gridView4.GetRowCellValue(j, colToolSPECCode).ToString();
  631. // }
  632. // else
  633. // {
  634. // ICSITEMROUTE2OPTool.ToolSPECCode = string.Empty;
  635. // }
  636. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colToolNo).ToString()))
  637. // {
  638. // ICSITEMROUTE2OPTool.ToolNo = gridView4.GetRowCellValue(j, colToolNo).ToString();
  639. // }
  640. // else
  641. // {
  642. // ICSITEMROUTE2OPTool.ToolNo = string.Empty;
  643. // }
  644. // ICSITEMROUTE2OPTool.CheckName = AppConfig.UserCode;
  645. // ICSITEMROUTE2OPTool.CheckTime = DateTime.Parse(DateTime.Now.ToString());
  646. // ICSITEMROUTE2OPTool.LotNo = LotNo;
  647. // if (!string.IsNullOrWhiteSpace(gridView4.GetRowCellValue(j, colIsCheck).ToString()))
  648. // {
  649. // string a = gridView4.GetRowCellValue(j, colIsCheck).ToString();
  650. // if (gridView4.GetRowCellValue(j, colIsCheck).ToString() == "True")
  651. // {
  652. // ICSITEMROUTE2OPTool.IsChecked = 1;
  653. // }
  654. // if (gridView4.GetRowCellValue(j, colIsCheck).ToString() == "False")
  655. // {
  656. // ICSITEMROUTE2OPTool.IsChecked = 0;
  657. // }
  658. // //ICSITEMROUTE2OPTool.IsChecked = Int32.Parse(gridView4.GetRowCellValue(j, colIsCheck).ToString());
  659. // }
  660. // else
  661. // {
  662. // ICSITEMROUTE2OPTool.IsChecked = 0;
  663. // }
  664. // list.Add(ICSITEMROUTE2OPTool);
  665. //}
  666. //ICSDrawingViewBLL.AddList(list, AppConfig.AppConnectString);
  667. //ICSBaseSimpleCode.AppshowMessageBox(0, "保存成功");
  668. }
  669. catch (Exception ex)
  670. {
  671. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  672. }
  673. //for (int i = 0; i < grvDetail.RowCount; i++)
  674. //{
  675. // strContent = grvDetail.GetRowCellValue(i, colContent).ToString();
  676. // strContentList.Add(strContent);
  677. //}
  678. }
  679. //获取差异数据20181114
  680. private void GetDataProToolDifference(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  681. {
  682. if (string.IsNullOrWhiteSpace(ItemCode) || string.IsNullOrWhiteSpace(OPCode))
  683. return;
  684. //工序刀具
  685. string OPToolTable = @"
  686. SELECT
  687. a.ToolSPECCode,
  688. f.SPECName AS SPECNamez,
  689. a.ToolNo
  690. FROM dbo.ICSITEMROUTE2OPTool a
  691. LEFT JOIN ICSToolSize f ON f.SPECCode = a.ToolSPECCode
  692. WHERE 1 = 1
  693. and a.ITEMCODE='" + ItemCode + "' and a.OPCODE='" + OPCode + "' ORDER BY CAST ( substring(a.ToolNo,2,LEN(a.ToolNo)-1) AS INT) ";
  694. DataTable OPTooldt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, OPToolTable).Tables[0];
  695. //设备刀具
  696. string EQPToolTable = @"SELECT
  697. a.SPECCode,
  698. a.SPECName,
  699. a.EATTRIBUTE1 as ToolNumber
  700. FROM ICSToolSizeAndEquipment a
  701. where a.EQPCode='" + EQPCode + "' ORDER BY CAST ( substring(a.EATTRIBUTE1,2,LEN(a.EATTRIBUTE1)-1) AS INT) ";
  702. DataTable EQPTooldt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, EQPToolTable).Tables[0];
  703. DataTable dt2 = new DataTable();
  704. dt2.Columns.Add("ToolSPECCodeEnd", typeof(string));//
  705. dt2.Columns.Add("ToolNo3", typeof(string));//
  706. dt2.Columns["ToolSPECCodeEnd"].Caption = "刀具规格";
  707. dt2.Columns["ToolNo3"].Caption = "刀号";
  708. if (OPTooldt != null && OPTooldt.Rows.Count > 0)
  709. {
  710. foreach (DataRow row in OPTooldt.Rows)
  711. {
  712. string ToolSpecCode = row["ToolSPECCode"].ToString();
  713. string SPECNamez = row["SPECNamez"].ToString();
  714. string ToolNo = row["ToolNo"].ToString();
  715. if (EQPTooldt != null && EQPTooldt.Rows.Count > 0)
  716. {
  717. //var a = from r in EQPTooldt.AsEnumerable()
  718. // where r.Field<string>("ToolSPECCode") != ToolSpecCode
  719. // select EQPTooldt;
  720. if (EQPTooldt.Select("SPECCode" + "='" + ToolSpecCode + "'").Length > 0)
  721. {
  722. }
  723. else
  724. {
  725. DataRow dr2 = null;
  726. dr2 = dt2.NewRow();
  727. dr2["ToolSPECCodeEnd"] = ToolSpecCode;
  728. dr2["ToolNo3"] = ToolNo;
  729. dt2.Rows.Add(dr2);
  730. }
  731. }
  732. }
  733. }
  734. gridControl3.DataSource = dt2;
  735. gridView5.BestFitColumns();
  736. }
  737. //获取工装配置
  738. private void GetPartsInfo(DevExpress.XtraGrid.GridControl gridControl, DevExpress.XtraGrid.Views.Grid.GridView gridView)
  739. {
  740. if (string.IsNullOrWhiteSpace(OPCode) || string.IsNullOrWhiteSpace(ItemCode))
  741. return;
  742. string sql = @" SELECT DISTINCT
  743. a.ITEMCODE,
  744. f.EATTRIBUTE1,
  745. a.PartsCode as ,
  746. e.ToolingManagementCode as ,
  747. e.UseLevel as 使,
  748. e.PartsDesc as ,
  749. e.EATTRIBUTE1 AS
  750. FROM
  751. dbo.ICSITEMROUTE2OPTooling a
  752. LEFT JOIN Base_Inventory b ON b.ItemCode = a.ITEMCODE
  753. LEFT JOIN ICSITEMROUTE2OP c ON c.OPCODE = a.OPCODE
  754. LEFT JOIN ICSOP d ON c.OPCODE = d.OPCODE
  755. LEFT JOIN ICSPartsList e ON e.PartsCode = a.PartsCode AND a.ToolingManagementCode=e.ToolingManagementCode
  756. LEFT JOIN ICSToolingManagement f ON f.ToolingManagementCode=e.ToolingManagementCode
  757. WHERE
  758. a.OPCODE='" + OPCode + "' AND a.ITEMCODE='" + ItemCode + "'";
  759. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  760. gridControl4.DataSource = dt;
  761. gridView6.BestFitColumns();
  762. }
  763. }
  764. }