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

661 lines
26 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. using ICSSoft.Base.Lable.PrintTool;
  27. namespace ICSSoft.Frame.APP
  28. {
  29. public partial class FormICSOWarehousingLOT : DevExpress.XtraEditors.XtraForm
  30. {
  31. private string sqltxt = "";
  32. private string sqlconn = "";
  33. String guid = AppConfig.GetGuid();
  34. private DataTable dataSource = null;
  35. private string MoId = "";
  36. private string POCode = "";
  37. private decimal Qty = 0.00m;
  38. DataTable Serialdata = null;
  39. private string Type = "";
  40. private string Batch = "";
  41. private string Status = "";
  42. #region 构造函数
  43. public FormICSOWarehousingLOT()
  44. {
  45. InitializeComponent();
  46. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  47. this.WindowState = FormWindowState.Maximized;
  48. }
  49. public FormICSOWarehousingLOT(string moID, string POCode, decimal qty)
  50. {
  51. InitializeComponent();
  52. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  53. this.WindowState = FormWindowState.Maximized;
  54. MoId = moID;
  55. POCode = POCode;
  56. Qty = qty;
  57. }
  58. #endregion
  59. #region 操作权限
  60. public DataTable RightOfExute()
  61. {
  62. DataTable rData = new DataTable();
  63. rData.Columns.Add("BtnName");
  64. rData.Columns.Add("ActionName");
  65. //查看权限(必须有)
  66. DataRow seeRow = rData.NewRow();
  67. seeRow["BtnName"] = "see";
  68. seeRow["ActionName"] = "查看";
  69. rData.Rows.Add(seeRow);
  70. List<Control> ControlList = new List<Control>();
  71. ControlList.Add(btnCreate);
  72. ControlList.Add(btnDel);
  73. ControlList.Add(simpleButton4);
  74. foreach (Control ctr in ControlList)
  75. {
  76. if (ctr.GetType() == typeof(SimpleButton))
  77. {
  78. DataRow dr = rData.NewRow();
  79. dr["BtnName"] = ctr.Name;
  80. dr["ActionName"] = ctr.Text;
  81. rData.Rows.Add(dr);
  82. }
  83. }
  84. rData.AcceptChanges();
  85. return rData;
  86. }
  87. public DataTable RightOfData()// 数据权限
  88. {
  89. DataTable rData = new DataTable();
  90. rData.Columns.Add("BodyName");
  91. rData.Columns.Add("ControlName");
  92. rData.Columns.Add("ControlCaption");
  93. rData.AcceptChanges();
  94. return rData;
  95. }
  96. #endregion
  97. #region 退出
  98. private void btnClose_Click(object sender, EventArgs e)
  99. {
  100. AppConfig.CloseFormShow(this.Text);
  101. this.Close();
  102. }
  103. private void btnExit_Click(object sender, EventArgs e)
  104. {
  105. AppConfig.CloseFormShow(this.Text);
  106. this.Close();
  107. }
  108. #endregion
  109. #region 移动窗体
  110. private const int WM_NCHITTEST = 0x84;
  111. private const int HTCLIENT = 0x1;
  112. private const int HTCAPTION = 0x2;
  113. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  114. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  115. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  116. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  117. //重写窗体,使窗体可以不通过自带标题栏实现移动
  118. protected override void WndProc(ref Message m)
  119. {
  120. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  121. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  122. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  123. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  124. switch (m.Msg)
  125. {
  126. case WM_NCHITTEST:
  127. base.WndProc(ref m);
  128. if ((int)m.Result == HTCLIENT)
  129. m.Result = (IntPtr)HTCAPTION;
  130. return;
  131. }
  132. //拦截双击标题栏、移动窗体的系统消息
  133. if (m.Msg != 0xA3)
  134. {
  135. base.WndProc(ref m);
  136. }
  137. }
  138. #endregion
  139. #region 列表
  140. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  141. {
  142. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  143. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  144. }
  145. #endregion
  146. #region 分页
  147. private void rptPage_PageIndexChanged(object Sender, EventArgs e)
  148. {
  149. DataTable data = AppConfig.GetPageData(Serialdata, rptPage.PageIndex, rptPage.PageSize).Copy();
  150. grdDetail.DataSource = data;
  151. }
  152. #endregion
  153. private bool check()
  154. {
  155. int i;
  156. if (string.IsNullOrWhiteSpace(txtPOCode.Text.Trim()))
  157. {
  158. ICSBaseSimpleCode.AppshowMessageBox("单据号不能为空!");
  159. return false;
  160. }
  161. if (string.IsNullOrWhiteSpace(PORow.Text.Trim()))
  162. {
  163. ICSBaseSimpleCode.AppshowMessageBox("行号不能为空!");
  164. return false;
  165. }
  166. else if(!int.TryParse(PORow.Text.Trim(),out i))
  167. {
  168. ICSBaseSimpleCode.AppshowMessageBox("行号格式不正确!");
  169. return false;
  170. }
  171. return true;
  172. }
  173. #region 生成
  174. private void btnCreate_Click(object sender, EventArgs e)
  175. {
  176. try
  177. {
  178. SimpleButton btntemp = (SimpleButton)sender;
  179. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  180. {
  181. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  182. return;
  183. }
  184. if (Status.Equals("已经完成"))
  185. {
  186. ICSBaseSimpleCode.AppshowMessageBox("物料条码已存在!");
  187. return;
  188. }
  189. //if (!check())
  190. //{
  191. // return;
  192. //}
  193. //FormICSOWarehousing form = new FormICSOWarehousing(txtPOCode.Text.Trim(), PORow.Text.Trim(), txtINVSTD.Text, Batch);
  194. //form.ShowDialog();
  195. //cmbSEQ_SelectedIndexChanged(null, null);
  196. string moSeq = "";
  197. string moCode = "";
  198. string invStd = "";
  199. for (int i = 0; i < grvMoDetail.RowCount; i++)
  200. {
  201. if (grvMoDetail.GetRowCellValue(i, colMoIsSelect).ToString() == "Y")
  202. {
  203. moSeq = grvMoDetail.GetRowCellValue(i, colMOSEQ1).ToString();
  204. moCode = grvMoDetail.GetRowCellValue(i, colMoCode1).ToString();
  205. invStd = grvMoDetail.GetRowCellValue(i, colINVSTD).ToString();
  206. }
  207. }
  208. if (string.IsNullOrWhiteSpace(moSeq))
  209. {
  210. ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
  211. return;
  212. }
  213. FormICSOWarehousing form = new FormICSOWarehousing(moCode, moSeq, invStd, Type);
  214. form.ShowDialog();
  215. SearchData(moCode, moSeq);
  216. if(ICSBaseSimpleCode.AppshowMessageBoxRepose("是否打印?") == DialogResult.OK)
  217. {
  218. simpleButton4_Click(null, null);
  219. }
  220. }
  221. catch (Exception ex)
  222. {
  223. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  224. }
  225. }
  226. /// <summary>
  227. /// 获取生成的条码
  228. /// </summary>
  229. /// <param name="moCode"></param>
  230. /// <param name="moSeq"></param>
  231. private void SearchData(string moCode, string moSeq)
  232. {
  233. try
  234. {
  235. DataSet ds = ICSOWarehousingLOTBLL.SearchData(moCode, moSeq, AppConfig.AppConnectString);
  236. if (ds != null && ds.Tables.Count == 2)
  237. {
  238. DataTable dt = ds.Tables[0];
  239. Serialdata = ds.Tables[1];
  240. grdDetail.DataSource = Serialdata;
  241. grvDetail.BestFitColumns();
  242. rptPage.RecordNum = Serialdata.Rows.Count;
  243. rptPage.PageSize = 499;
  244. rptPage.PageIndex = 1;
  245. rptPage.ReLoad();
  246. rptPage.PageSize = 500;
  247. rptPage.PageIndex = 1;
  248. rptPage.ReLoad();
  249. rptPage_PageIndexChanged(null, null);
  250. }
  251. }
  252. catch (Exception ex)
  253. {
  254. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  255. }
  256. }
  257. #endregion
  258. //加载
  259. private void FormICSOWarehousingLOT_Load(object sender, EventArgs e)
  260. {
  261. #region
  262. //string sql = @"select '' as isSelect,RCARD from ICSMO2RCARD where MOID='{0}' order by RCARD asc";
  263. //sql = string.Format(sql, MoId);
  264. ////DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  265. ////grdDetail.DataSource = dt;
  266. //Serialdata = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
  267. //rptPage.RecordNum = Serialdata.Rows.Count;
  268. //rptPage.PageIndex = 1;
  269. //rptPage.PageSize = 20;
  270. //rptPage.ReLoad();
  271. //rptPage_PageIndexChanged(null, null);
  272. #endregion
  273. init();
  274. }
  275. #region 初始化查询条件
  276. private void init()
  277. {
  278. #region 单据号
  279. #region 原逻辑
  280. //string sql = "SELECT DISTINCT ReceiptNO AS [单据号] FROM ICSINVReceipt WHERE WorkPoint='{0}' ORDER BY ReceiptNO ";
  281. #endregion
  282. string sql = "SELECT DISTINCT cCode AS [单据号] FROM ICSRdrecord09s WHERE Free3='入' ORDER BY cCode";
  283. sql = string.Format(sql);
  284. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  285. txtPOCode.Properties.ValueMember = "单据号";
  286. txtPOCode.Properties.DisplayMember = "单据号";
  287. txtPOCode.Properties.DataSource = dt;
  288. txtPOCode.Properties.NullText = "";//空时的值
  289. txtPOCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  290. txtPOCode.Properties.ValidateOnEnterKey = true;//回车确认
  291. txtPOCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  292. txtPOCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  293. //自适应宽度
  294. txtPOCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  295. #endregion
  296. }
  297. #endregion
  298. private void txtMOCode_EditValueChanged(object sender, EventArgs e)
  299. {
  300. try
  301. {
  302. //this.txtInvCode.Text = "";
  303. //this.txtINVNAME.Text = "";
  304. //this.txtINVSTD.Text = "";
  305. //this.txtQuantity.Text = "";
  306. //grdDetail.DataSource = null;
  307. //PORow.Properties.Items.Clear();
  308. //PORow.Text = "";
  309. //string Code = txtPOCode.EditValue.ToString();
  310. //string sql = "SELECT DISTINCT iRSRowNO FROM ICSRdrecord09s WHERE cCode='{0}' AND free3='入' ORDER BY iRSRowNO";//行号
  311. //sql = string.Format(sql, Code);
  312. //DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  313. //foreach( DataRow dr in dt.Rows)
  314. //{
  315. // PORow.Properties.Items.Add(dr["iRSRowNO"].ToString());
  316. //}
  317. //if (PORow.Properties.Items.Count > 0)
  318. // PORow.SelectedIndex = 0;
  319. grdDetail.DataSource = null;
  320. string Code = txtPOCode.EditValue.ToString();
  321. string sql = @"SELECT '' as MoIsSelect,
  322. a.cCode MOCODE,
  323. a.iRSRowNO MOSEQ,
  324. a.iQuantity MOPLANQTY,
  325. a.cInvCode ITEMCODE,
  326. b.INVNAME,
  327. b.INVSTD,b.INVCLASS,b.INVDESC
  328. FROM
  329. ICSRdrecord09s a
  330. LEFT JOIN ICSINVENTORY b ON a.cInvCode=b.INVCODE
  331. WHERE
  332. a.cCode='{0}'
  333. AND Free3='入'
  334. AND b.WorkPoint = '{1}'";
  335. sql += " order by CAST(a.iRSRowNO AS INT) asc";
  336. sql = string.Format(sql, Code, AppConfig.WorkPointCode);
  337. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  338. grdMoDetail.DataSource = dt;
  339. grvMoDetail.BestFitColumns();
  340. }
  341. catch (Exception ex)
  342. {
  343. ICSBaseSimpleCode.AppshowMessageBox("没有找到该单据信息!");
  344. return;
  345. }
  346. }
  347. private void cmbSEQ_SelectedIndexChanged(object sender, EventArgs e)
  348. {
  349. try
  350. {
  351. Type = "";
  352. Status = "";
  353. if (PORow.Properties.Items.Count <= 0 || !check())
  354. {
  355. return;
  356. }
  357. DataSet ds = ICSOWarehousingLOTBLL.SearchData(txtPOCode.Text.Trim(), PORow.Text.Trim(), AppConfig.AppConnectString);
  358. if (ds != null && ds.Tables.Count == 2 )
  359. {
  360. DataTable dt = ds.Tables[0];
  361. if (dt != null && dt.Rows.Count > 0)
  362. {
  363. txtInvCode.Text = dt.Rows[0]["cInvCode"].ToString();
  364. txtINVNAME.Text = dt.Rows[0]["INVNAME"].ToString();
  365. txtINVSTD.Text = dt.Rows[0]["INVSTD"].ToString();
  366. txtQuantity.Text = dt.Rows[0]["iQuantity"].ToString();
  367. Batch = dt.Rows[0]["cBatch"].ToString();
  368. }
  369. Serialdata = ds.Tables[1];
  370. grdDetail.DataSource = Serialdata;
  371. grvDetail.BestFitColumns();
  372. rptPage.RecordNum = Serialdata.Rows.Count;
  373. rptPage.PageSize = 499;
  374. rptPage.PageIndex = 1;
  375. rptPage.ReLoad();
  376. rptPage.PageSize = 500;
  377. rptPage.PageIndex = 1;
  378. rptPage.ReLoad();
  379. rptPage_PageIndexChanged(null, null);
  380. }
  381. else
  382. {
  383. return;
  384. }
  385. }
  386. catch (Exception ex)
  387. {
  388. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  389. }
  390. }
  391. private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
  392. {
  393. if (e.RowHandle >= 0 && e.Column.FieldName == "DCTCODE")
  394. {
  395. e.CellValue = "cccc";
  396. }
  397. }
  398. #region 全选
  399. private void btnSelectAll_Click(object sender, EventArgs e)
  400. {
  401. grvDetail.PostEditor();
  402. this.Validate();
  403. for (int i = 0; i < grvDetail.RowCount; i++)
  404. {
  405. grvDetail.SetRowCellValue(i, colisSelect, "Y");
  406. }
  407. }
  408. #endregion
  409. #region 全消
  410. private void btnCancelAll_Click(object sender, EventArgs e)
  411. {
  412. grvDetail.PostEditor();
  413. this.Validate();
  414. for (int i = 0; i < grvDetail.RowCount; i++)
  415. {
  416. grvDetail.SetRowCellValue(i, colisSelect, "");
  417. }
  418. }
  419. #endregion
  420. private void btnDel_Click(object sender, EventArgs e)
  421. {
  422. SimpleButton btntemp = (SimpleButton)sender;
  423. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  424. {
  425. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  426. return;
  427. }
  428. List<string> rcardList = new List<string>();
  429. for (int i = 0; i < grvDetail.RowCount; i++)
  430. {
  431. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y" && grvDetail.GetRowCellValue(i, colisInput).ToString() == "False")
  432. {
  433. rcardList.Add(grvDetail.GetRowCellValue(i, colID).ToString());
  434. }
  435. }
  436. if (rcardList.Count == 0 || rcardList == null)
  437. {
  438. ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
  439. return;
  440. }
  441. if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除序列号吗?删除后无法恢复,确定吗?") != DialogResult.OK)
  442. {
  443. btnCancelAll_Click(sender, e);
  444. return;
  445. }
  446. try
  447. {
  448. ICSOWarehousingLOTBLL.deleteInfo(rcardList, AppConfig.AppConnectString);
  449. ICSBaseSimpleCode.AppshowMessageBox("删除成功");
  450. string moSeq = "";
  451. string moCode = "";
  452. for (int i = 0; i < grvMoDetail.RowCount; i++)
  453. {
  454. if (grvMoDetail.GetRowCellValue(i, colMoIsSelect).ToString() == "Y")
  455. {
  456. moSeq = grvMoDetail.GetRowCellValue(i, colMOSEQ1).ToString();
  457. moCode = grvMoDetail.GetRowCellValue(i, colMoCode1).ToString();
  458. }
  459. }
  460. SearchData(moCode, moSeq);
  461. }
  462. catch (Exception ex)
  463. {
  464. ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
  465. }
  466. cmbSEQ_SelectedIndexChanged(null, null);
  467. }
  468. private void grvDetail_DoubleClick(object sender, EventArgs e)
  469. {
  470. if (grvDetail.FocusedRowHandle < 0)
  471. {
  472. return;
  473. }
  474. if (grvDetail.FocusedColumn == colisSelect)
  475. {
  476. if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
  477. {
  478. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
  479. }
  480. else
  481. {
  482. grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
  483. }
  484. }
  485. }
  486. #region 打印
  487. private void simpleButton4_Click(object sender, EventArgs e)
  488. {
  489. try
  490. {
  491. if (sender != null)
  492. {
  493. SimpleButton btntemp = (SimpleButton)sender;
  494. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  495. {
  496. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  497. return;
  498. }
  499. }
  500. List<PrintPara> parasList = new List<PrintPara>();
  501. List<ICSITEMLot> InfoList = new List<ICSITEMLot>();
  502. for (int i = 0; i < grvDetail.RowCount; i++)
  503. {
  504. if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
  505. {
  506. PrintPara para = new PrintPara();
  507. para.PrintKey = "LOTNO";
  508. para.PrintValues = new object[] { grvDetail.GetRowCellValue(i, colLOTNO).ToString() };
  509. parasList.Add(para);
  510. ICSITEMLot Info = new ICSITEMLot();
  511. Info.LotNO = grvDetail.GetRowCellValue(i, colLOTNO).ToString();
  512. Info.lastPrintUSERID = AppConfig.UserId;
  513. Info.lastPrintTime = AppConfig.GetSeverDateTime("yyyy-MM-dd hh:mm:ss");
  514. Info.WorkPoint = AppConfig.WorkPointCode;
  515. InfoList.Add(Info);
  516. }
  517. }
  518. if (parasList.Count == 0)
  519. {
  520. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  521. return;
  522. }
  523. #region 修改打印模板逻辑
  524. #region
  525. //if (Type.Equals("半成品"))
  526. //{
  527. // FormPrintDialog f = new FormPrintDialog("007", this.Text, parasList, false, null);
  528. // f.ShowDialog();
  529. //}
  530. //else if (Type.Equals("成品"))
  531. //{
  532. // FormPrintDialog f = new FormPrintDialog("008", this.Text, parasList, false, null);
  533. // f.ShowDialog();
  534. //}
  535. #endregion
  536. FormPrintDialog f = new FormPrintDialog("001", this.Text, parasList, false, null);
  537. f.ShowDialog();
  538. #endregion
  539. //更新打印信息
  540. ICSOWarehousingLOTBLL.updatePrint(InfoList, AppConfig.AppConnectString);
  541. string moSeq = "";
  542. string moCode = "";
  543. for (int i = 0; i < grvMoDetail.RowCount; i++)
  544. {
  545. if (grvMoDetail.GetRowCellValue(i, colMoIsSelect).ToString() == "Y")
  546. {
  547. moSeq = grvMoDetail.GetRowCellValue(i, colMOSEQ1).ToString();
  548. moCode = grvMoDetail.GetRowCellValue(i, colMoCode1).ToString();
  549. }
  550. }
  551. SearchData(moCode, moSeq);
  552. }
  553. catch (Exception ex)
  554. {
  555. MessageBox.Show(ex.ToString());
  556. }
  557. }
  558. #endregion
  559. private void grdMoDetail_DoubleClick(object sender, EventArgs e)
  560. {
  561. int x = 0;
  562. if (grvMoDetail.FocusedRowHandle < 0)
  563. {
  564. return;
  565. }
  566. if (grvMoDetail.FocusedColumn == colMoIsSelect)
  567. {
  568. if (grvMoDetail.GetRowCellValue(grvMoDetail.FocusedRowHandle, colMoIsSelect).ToString() == "")
  569. {
  570. grvMoDetail.SetRowCellValue(grvMoDetail.FocusedRowHandle, colMoIsSelect, "Y");
  571. x = grvMoDetail.FocusedRowHandle;
  572. }
  573. else
  574. {
  575. grvMoDetail.SetRowCellValue(grvMoDetail.FocusedRowHandle, colMoIsSelect, "");
  576. }
  577. }
  578. for (int i = 0; i < grvMoDetail.RowCount; i++)
  579. {
  580. if (x != i)
  581. {
  582. grvMoDetail.SetRowCellValue(i, colMoIsSelect, "");
  583. }
  584. }
  585. try
  586. {
  587. Type = "";
  588. Status = "";
  589. string moSeq = "";
  590. string moCode = "";
  591. for (int i = 0; i < grvMoDetail.RowCount; i++)
  592. {
  593. if (grvMoDetail.GetRowCellValue(i, colMoIsSelect).ToString() == "Y")
  594. {
  595. moSeq = grvMoDetail.GetRowCellValue(i, colMOSEQ1).ToString();
  596. moCode = grvMoDetail.GetRowCellValue(i, colMoCode1).ToString();
  597. }
  598. }
  599. DataSet ds = ICSOWarehousingLOTBLL.SearchData(moCode, moSeq, AppConfig.AppConnectString);
  600. if (ds != null && ds.Tables.Count == 2)
  601. {
  602. DataTable dt = ds.Tables[0];
  603. Serialdata = ds.Tables[1];
  604. grdDetail.DataSource = Serialdata;
  605. grvDetail.BestFitColumns();
  606. rptPage.RecordNum = Serialdata.Rows.Count;
  607. rptPage.PageSize = 499;
  608. rptPage.PageIndex = 1;
  609. rptPage.ReLoad();
  610. rptPage.PageSize = 500;
  611. rptPage.PageIndex = 1;
  612. rptPage.ReLoad();
  613. rptPage_PageIndexChanged(null, null);
  614. }
  615. }
  616. catch (Exception ex)
  617. {
  618. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  619. }
  620. }
  621. }
  622. }