华恒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.

725 lines
32 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.Base.Lable.PrintTool;
  26. using DevExpress.XtraPrinting;
  27. using ICSSoft.Frame.Common;
  28. namespace ICSSoft.Frame.APP
  29. {
  30. public partial class FormICSGauge : DevExpress.XtraEditors.XtraForm
  31. {
  32. private string sqltxt = "";
  33. private string sqlconn = "";
  34. String guid = AppConfig.GetGuid();
  35. private DataTable dataSource = null;
  36. private DataTable dataSourceAll = null;
  37. private DataTable dataGauge = null;
  38. private string MoId = "";
  39. private string MoCode = "";
  40. private decimal Qty = 0.00m;
  41. #region 构造函数
  42. public FormICSGauge()
  43. {
  44. InitializeComponent();
  45. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  46. this.WindowState = FormWindowState.Maximized;
  47. }
  48. public FormICSGauge(string moID, string moCode, decimal qty)
  49. {
  50. InitializeComponent();
  51. this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
  52. this.WindowState = FormWindowState.Maximized;
  53. MoId = moID;
  54. MoCode = moCode;
  55. Qty = qty;
  56. }
  57. #endregion
  58. #region 操作权限
  59. public DataTable RightOfExute()
  60. {
  61. DataTable rData = new DataTable();
  62. rData.Columns.Add("BtnName");
  63. rData.Columns.Add("ActionName");
  64. //查看权限(必须有)
  65. DataRow seeRow = rData.NewRow();
  66. seeRow["BtnName"] = "see";
  67. seeRow["ActionName"] = "查看";
  68. rData.Rows.Add(seeRow);
  69. List<Control> ControlList = new List<Control>();
  70. ControlList.Add(btnPrint);
  71. ControlList.Add(btnOutPut);
  72. foreach (Control ctr in ControlList)
  73. {
  74. if (ctr.GetType() == typeof(SimpleButton))
  75. {
  76. DataRow dr = rData.NewRow();
  77. dr["BtnName"] = ctr.Name;
  78. dr["ActionName"] = ctr.Text;
  79. rData.Rows.Add(dr);
  80. }
  81. }
  82. rData.AcceptChanges();
  83. return rData;
  84. }
  85. public DataTable RightOfData()// 数据权限
  86. {
  87. DataTable rData = new DataTable();
  88. rData.Columns.Add("BodyName");
  89. rData.Columns.Add("ControlName");
  90. rData.Columns.Add("ControlCaption");
  91. rData.AcceptChanges();
  92. return rData;
  93. }
  94. #endregion
  95. #region 退出
  96. private void btnClose_Click(object sender, EventArgs e)
  97. {
  98. AppConfig.CloseFormShow(this.Text);
  99. this.Close();
  100. }
  101. private void btnExit_Click(object sender, EventArgs e)
  102. {
  103. AppConfig.CloseFormShow(this.Text);
  104. this.Close();
  105. }
  106. #endregion
  107. #region 移动窗体
  108. private const int WM_NCHITTEST = 0x84;
  109. private const int HTCLIENT = 0x1;
  110. private const int HTCAPTION = 0x2;
  111. //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
  112. //系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
  113. //假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
  114. //同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
  115. //重写窗体,使窗体可以不通过自带标题栏实现移动
  116. protected override void WndProc(ref Message m)
  117. {
  118. //当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
  119. //当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
  120. //这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
  121. //注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
  122. switch (m.Msg)
  123. {
  124. case WM_NCHITTEST:
  125. base.WndProc(ref m);
  126. if ((int)m.Result == HTCLIENT)
  127. m.Result = (IntPtr)HTCAPTION;
  128. return;
  129. }
  130. //拦截双击标题栏、移动窗体的系统消息
  131. if (m.Msg != 0xA3)
  132. {
  133. base.WndProc(ref m);
  134. }
  135. }
  136. #endregion
  137. #region 列表
  138. private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
  139. {
  140. if (e.Info.IsRowIndicator && e.RowHandle >= 0)
  141. e.Info.DisplayText = (e.RowHandle + 1).ToString();
  142. }
  143. #endregion
  144. private void btnFilter_Click(object sender, EventArgs e)
  145. {
  146. }
  147. //加载
  148. private void FormICSGauge_Load(object sender, EventArgs e)
  149. {
  150. init();
  151. }
  152. public bool Search(string TransferNO)
  153. {
  154. bool Search = false;
  155. string sql = @"SELECT DISTINCT TransferNO AS [生产订单号] FROM ICSTransferNO WHERE 1=1 AND TransferNO = '{0}' ORDER BY TransferNO DESC ";
  156. sql = string.Format(sql, TransferNO);
  157. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  158. if (dt.Rows.Count > 0)
  159. {
  160. Search = true;
  161. }
  162. return Search;
  163. }
  164. #region 初始化查询条件
  165. private void init()
  166. {
  167. #region 生产订单号
  168. string sql = @"SELECT DISTINCT [单据号] FROM (SELECT DISTINCT A.TransferNO AS [单据号], A.MTIME FROM ICSPACKINGINPUT A
  169. WHERE 1=1 AND A.TransferNO IS NOT NULL AND A.Status = ''
  170. UNION
  171. SELECT DISTINCT B.TransferNO AS [], B.MTIME FROM ICSTransferNO B WHERE 1=1 AND B.TransferNO IS NOT NULL AND B.Status = '' ) A
  172. ORDER BY [] DESC";
  173. sql = string.Format(sql, AppConfig.WorkPointCode);
  174. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  175. txtMOCode.Properties.ValueMember = "单据号";
  176. txtMOCode.Properties.DisplayMember = "单据号";
  177. txtMOCode.Properties.DataSource = dt;
  178. txtMOCode.Properties.NullText = "";//空时的值
  179. txtMOCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  180. txtMOCode.Properties.ValidateOnEnterKey = true;//回车确认
  181. txtMOCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  182. txtMOCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  183. //自适应宽度
  184. txtMOCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  185. #endregion
  186. DataTable dtWH = new DataTable();
  187. dtWH.Columns.Add("仓库");
  188. txtWHCode.Properties.ValueMember = "仓库";
  189. txtWHCode.Properties.DisplayMember = "仓库";
  190. txtWHCode.Properties.DataSource = dtWH;
  191. txtWHCode.Properties.NullText = "";//空时的值
  192. txtWHCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  193. txtWHCode.Properties.ValidateOnEnterKey = true;//回车确认
  194. txtWHCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  195. txtWHCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  196. //自适应宽度
  197. txtWHCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  198. DataTable dtBin = new DataTable();
  199. dtBin.Columns.Add("库位");
  200. txtBinCode.Properties.ValueMember = "库位";
  201. txtBinCode.Properties.DisplayMember = "库位";
  202. txtBinCode.Properties.DataSource = dtBin;
  203. txtBinCode.Properties.NullText = "";//空时的值
  204. txtBinCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  205. txtBinCode.Properties.ValidateOnEnterKey = true;//回车确认
  206. txtBinCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  207. txtBinCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  208. //自适应宽度
  209. txtBinCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  210. }
  211. #endregion
  212. private void loadData()
  213. {
  214. DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
  215. try
  216. {
  217. _wait.Show();
  218. dataSourceAll = null;
  219. dataSource = null;
  220. dataGauge = null;
  221. txtWHCode.EditValue = "";
  222. txtBinCode.EditValue = "";
  223. if (string.IsNullOrWhiteSpace(txtMOCode.Text.Trim()))
  224. {
  225. _wait.Close();
  226. ICSBaseSimpleCode.AppshowMessageBox("请输入单据号!");
  227. return;
  228. }
  229. string Where = txtMOCode.Text.Trim();
  230. #region 查询
  231. if (this.Search(txtMOCode.Text.Trim()))
  232. {
  233. string sql = @"SELECT a.INVCode as MOBITEMCODE, a.INVName as CINVNAME, b.INVSTD AS CINVTYPE, b.INVUOM as INVUOM,
  234. a.QTY as MOBITEMQTY, f.BinCode, f.LotNO, f.LotQty FROM ICSTransferNO a
  235. LEFT JOIN ICSINVENTORY b ON a.INVCode = b.INVCode
  236. LEFT JOIN ICSWareHouseLotInfo f ON b.INVCODE = f.INVCode and b.WorkPoint = f.WorkPoint
  237. WHERE 1=1 AND a.TransferNO = '{0}'";
  238. sql = string.Format(sql, txtMOCode.Text.Trim());
  239. DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  240. gridControlGroup.DataSource = dt;
  241. }
  242. else
  243. {
  244. if (!string.IsNullOrWhiteSpace(cmbSEQ.Text.Trim()))
  245. {
  246. Where += "' AND e.MOSEQ='" + cmbSEQ.Text.Trim() + " ";
  247. }
  248. DataSet ds1 = ICSGaugeBLL.select_(Where, txtMOCode.Text.Trim(), AppConfig.AppConnectString);
  249. if (ds1 != null && ds1.Tables.Count == 2)
  250. {
  251. dataSourceAll = ds1.Tables[0];
  252. GetDataDetail();
  253. gridControlGroup.DataSource = ds1.Tables[1];
  254. gridViewGroup.BestFitColumns();
  255. }
  256. #endregion
  257. #region 生产拣料表
  258. if (!string.IsNullOrWhiteSpace(cmbSEQ.Text.Trim()))
  259. {
  260. Where += "' AND e.MOSEQ='" + cmbSEQ.Text.Trim() + " ";
  261. }
  262. DataSet ds = ICSGaugeBLL.GetGauge_(Where, AppConfig.AppConnectString);
  263. if (ds != null && ds.Tables.Count == 1)
  264. {
  265. DataTable dt = ds.Tables[0];
  266. string ItemCode = "";
  267. decimal QTY = 0;
  268. bool CanDelete = false;
  269. int count = dt.Rows.Count;
  270. for (int i = 0; i < count; i++)
  271. {
  272. DataRow dr = dt.Rows[i];
  273. if (!ItemCode.Equals(dr["MOBITEMCODE"].ToString()))
  274. {
  275. ItemCode = dr["MOBITEMCODE"].ToString();
  276. QTY = Convert.ToDecimal(dr["QTYXBC"]);
  277. CanDelete = false;
  278. }
  279. if (CanDelete)
  280. {
  281. dr.Delete();
  282. continue;
  283. }
  284. QTY += Convert.ToDecimal(dr["QTY"]);
  285. if (QTY >= Convert.ToDecimal(dr["MOBITEMQTY"]))
  286. {
  287. CanDelete = true;
  288. }
  289. }
  290. dt.AcceptChanges();
  291. dataGauge = dt;
  292. gridControlGauge.DataSource = dataGauge;
  293. gridViewGauge.BestFitColumns();
  294. //#region 仓库
  295. //DataTable dtWH = new DataTable();
  296. //dtWH.Columns.Add("仓库");
  297. //DataRow newdrWH = dtWH.NewRow();
  298. //newdrWH["仓库"] = "";
  299. //dtWH.Rows.Add(newdrWH);
  300. //foreach (DataRow dr in dataGauge.Rows)
  301. //{
  302. // if (!string.IsNullOrWhiteSpace(dr["WHCode"].ToString()))
  303. // {
  304. // bool nothas = true;
  305. // foreach (DataRow drs in dtWH.Rows)
  306. // {
  307. // if (drs["仓库"].ToString().Equals(dr["WHCode"].ToString()))
  308. // {
  309. // nothas = false;
  310. // break;
  311. // }
  312. // }
  313. // if (nothas)
  314. // {
  315. // DataRow newdr = dtWH.NewRow();
  316. // newdr["仓库"] = dr["WHCode"].ToString();
  317. // dtWH.Rows.Add(newdr);
  318. // }
  319. // }
  320. //}
  321. //txtWHCode.Properties.ValueMember = "仓库";
  322. //txtWHCode.Properties.DisplayMember = "仓库";
  323. //txtWHCode.Properties.DataSource = dtWH;
  324. //txtWHCode.Properties.NullText = "";//空时的值
  325. //txtWHCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  326. //txtWHCode.Properties.ValidateOnEnterKey = true;//回车确认
  327. //txtWHCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  328. //txtWHCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  329. // //自适应宽度
  330. //txtWHCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  331. //#endregion
  332. //#region 库位
  333. //DataTable dtBin = new DataTable();
  334. //dtBin.Columns.Add("库位");
  335. //DataRow newdrBin = dtBin.NewRow();
  336. //newdrBin["库位"] = "";
  337. //dtBin.Rows.Add(newdrBin);
  338. //foreach (DataRow dr in dataGauge.Rows)
  339. //{
  340. // if (!string.IsNullOrWhiteSpace(dr["BinCode"].ToString()))
  341. // {
  342. // bool nothas = true;
  343. // foreach (DataRow drs in dtBin.Rows)
  344. // {
  345. // if (drs["库位"].ToString().Equals(dr["BinCode"].ToString()))
  346. // {
  347. // nothas = false;
  348. // break;
  349. // }
  350. // }
  351. // if (nothas)
  352. // {
  353. // DataRow newdr = dtBin.NewRow();
  354. // newdr["库位"] = dr["BinCode"].ToString();
  355. // dtBin.Rows.Add(newdr);
  356. // }
  357. // }
  358. //}
  359. //txtBinCode.Properties.ValueMember = "库位";
  360. //txtBinCode.Properties.DisplayMember = "库位";
  361. //txtBinCode.Properties.DataSource = dtBin;
  362. //txtBinCode.Properties.NullText = "";//空时的值
  363. //txtBinCode.Properties.ImmediatePopup = true;//输入值是否马上弹出窗体
  364. //txtBinCode.Properties.ValidateOnEnterKey = true;//回车确认
  365. //txtBinCode.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;//要使用户可以输入,这里须设为Standard
  366. //txtBinCode.Properties.AllowNullInput = DevExpress.Utils.DefaultBoolean.True; //可用Ctrl + Delete清空选择內容
  367. // //自适应宽度
  368. //txtBinCode.Properties.BestFitMode = DevExpress.XtraEditors.Controls.BestFitMode.BestFitResizePopup;
  369. //#endregion
  370. }
  371. }
  372. #endregion
  373. _wait.Close();
  374. }
  375. catch (Exception ex)
  376. {
  377. _wait.Close();
  378. ICSBaseSimpleCode.AppshowMessageBox(ex.ToString());
  379. }
  380. }
  381. private void GetDataDetail()
  382. {
  383. string ItemCode = "";
  384. decimal qtyPlan = 0;
  385. #region 处理DataTalbe ITEMCODE
  386. for (int i = 0; i < dataSourceAll.Rows.Count; i++)
  387. {
  388. if (!ItemCode.Equals(dataSourceAll.Rows[i]["MOBITEMCODE"].ToString()))
  389. {
  390. if (i > 0 && qtyPlan > 0)
  391. dataSourceAll.Rows[i - 1]["QTYS"] = Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTYS"].ToString()) - qtyPlan;
  392. ItemCode = dataSourceAll.Rows[i]["MOBITEMCODE"].ToString();
  393. qtyPlan = 0;
  394. }
  395. else if ( i > 0 && Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTYS"].ToString()) > 0)
  396. {
  397. if (Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTYS"]) > Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTY"]))
  398. dataSourceAll.Rows[i - 1]["QTYS"] = Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTY"].ToString());
  399. qtyPlan += Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTY"].ToString());
  400. }
  401. if (i == dataSourceAll.Rows.Count - 1 && qtyPlan > 0)
  402. dataSourceAll.Rows[i]["QTYS"] = Convert.ToDecimal(dataSourceAll.Rows[i]["QTYS"].ToString()) - qtyPlan;
  403. if (i > 0)
  404. {
  405. dataSourceAll.Rows[i - 1]["QTYS"] = Convert.ToDecimal(dataSourceAll.Rows[i - 1]["QTYS"]) < 0 ? 0 : dataSourceAll.Rows[i - 1]["QTYS"];
  406. if (i == dataSourceAll.Rows.Count - 1)
  407. {
  408. dataSourceAll.Rows[i]["QTYS"] = Convert.ToDecimal(dataSourceAll.Rows[i]["QTYS"]) < 0 ? 0 : dataSourceAll.Rows[i]["QTYS"];
  409. }
  410. }
  411. }
  412. #endregion
  413. #region DataTalbe排序 SEQ
  414. DataView dv1 = dataSourceAll.DefaultView;
  415. dv1.Sort = "MOSEQ,MOBITEMCODE";
  416. dataSourceAll = dv1.ToTable().Copy();
  417. #endregion
  418. #region 处理dataSource
  419. dataSource = dataSourceAll.Copy();
  420. int count = dataSource.Rows.Count;
  421. for (int i = count-1; i >=0 ; i--)
  422. {
  423. if (Convert.ToDecimal(dataSource.Rows[i]["QTYS"].ToString()) >= Convert.ToDecimal(dataSource.Rows[i]["QTY"].ToString()))
  424. {
  425. dataSource.Rows[i].Delete();
  426. }
  427. }
  428. dataSource.AcceptChanges();
  429. #endregion
  430. if (!string.IsNullOrWhiteSpace(cmbSEQ.Text.Trim()))
  431. {
  432. DataView dvAll = dataSourceAll.DefaultView;
  433. dvAll.RowFilter="MOSEQ='" + cmbSEQ.Text.Trim() + "'";
  434. dataSourceAll = dvAll.ToTable();
  435. DataView dv = dataSource.DefaultView;
  436. dv.RowFilter = "MOSEQ='" + cmbSEQ.Text.Trim() + "'";
  437. dataSource = dv.ToTable();
  438. }
  439. if (chkAll.Checked)
  440. grdDetail.DataSource = dataSourceAll;
  441. else
  442. grdDetail.DataSource = dataSource;
  443. grvDetail.BestFitColumns();
  444. }
  445. private void txtMOCode_EditValueChanged(object sender, EventArgs e)
  446. {
  447. #region
  448. // grdDetail.DataSource = null;
  449. // gridControlGroup.DataSource = null;
  450. // gridControlGauge.DataSource = null;
  451. // cmbSEQ.Text = "";
  452. // cmbSEQ.Properties.Items.Clear();
  453. // string MOCode = txtMOCode.EditValue.ToString();
  454. // string sql = @"SELECT MOSEQ FROM ICSMO A
  455. // LEFT JOIN ICSPACKINGINPUTLog B ON A.MOCODE = B.MOCODE
  456. // WHERE A.WorkPoint = '{0}' AND B.TransferNO = '{1}' ORDER BY MOSEQ";
  457. // sql = string.Format(sql, AppConfig.WorkPointCode, MOCode);
  458. // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
  459. // cmbSEQ.Properties.Items.Add("");
  460. // cmbSEQ.Properties.Items.AddRange(dt.AsEnumerable().Select(a=>a["MOSEQ"]).ToList());
  461. // loadData();
  462. #endregion
  463. DataTable dt = TranOutClass.TranOut(txtMOCode.Text.Trim());
  464. gridControlGroup.DataSource = dt;
  465. gridViewGroup.BestFitColumns();
  466. }
  467. private void cmbSEQ_SelectedIndexChanged(object sender, EventArgs e)
  468. {
  469. grdDetail.DataSource = null;
  470. gridControlGroup.DataSource = null;
  471. gridControlGauge.DataSource = null;
  472. loadData();
  473. }
  474. #region 导出
  475. private void btnOutPut_Click(object sender, EventArgs e)
  476. {
  477. try
  478. {
  479. FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
  480. foe.ShowDialog();
  481. }
  482. catch (Exception ex)
  483. {
  484. MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  485. }
  486. //SimpleButton btntemp = (SimpleButton)sender;
  487. //if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  488. //{
  489. // ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  490. // return;
  491. //}
  492. //FormOutExcel foe = new FormOutExcel();
  493. //if (foe.ShowDialog() == DialogResult.OK)
  494. //{
  495. // try
  496. // {
  497. // string outtype = foe._OutType;
  498. // string exceltype = foe._ExcelType;
  499. // string filename = foe._FileName;
  500. // string url = foe._Url;
  501. // string sheetname = foe._SheetName;
  502. // if (outtype.ToLower() == "excel")
  503. // {
  504. // DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
  505. // op.SheetName = sheetname;
  506. // gridControlGauge.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
  507. // }
  508. // else
  509. // {
  510. // gridControlGauge.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
  511. // }
  512. // MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  513. // }
  514. // catch (Exception ex)
  515. // {
  516. // MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
  517. // }
  518. //}
  519. }
  520. #endregion
  521. #region 打印
  522. private void btnPrint_Click(object sender, EventArgs e)
  523. {
  524. try
  525. {
  526. #region
  527. //this.gridViewGauge.OptionsView.RowAutoHeight = true;
  528. //PrintingSystem print = new DevExpress.XtraPrinting.PrintingSystem();
  529. //PrintableComponentLink link = new PrintableComponentLink(print);
  530. //DevExpress.XtraPrintingLinks.CompositeLink compositeLink = new DevExpress.XtraPrintingLinks.CompositeLink();
  531. //print.Links.Add(link);
  532. //link.Component = gridControlGauge;//这里可以是可打印的部件
  533. //link.Margins.Top = 50;
  534. //link.Margins.Bottom = 0;
  535. //link.Margins.Left = 0;
  536. //link.Margins.Right = 0;
  537. //string _PrintHeader = MOTitle.Text;
  538. //PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
  539. //phf.Header.Content.Clear();
  540. //phf.Header.Content.AddRange(new string[] { "", _PrintHeader, "" });
  541. //phf.Header.Font = new System.Drawing.Font("宋体", 14, System.Drawing.FontStyle.Bold);
  542. //phf.Header.LineAlignment = BrickAlignment.Center;
  543. //link.CreateDocument(); //建立文档
  544. //print.PreviewFormEx.Show();//进行预览
  545. #endregion
  546. #region
  547. //SimpleButton btntemp = (SimpleButton)sender;
  548. //if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  549. //{
  550. // ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  551. // return;
  552. //}
  553. //if (string.IsNullOrWhiteSpace(txtMOCode.EditValue.ToString()))
  554. //{
  555. // ICSBaseSimpleCode.AppshowMessageBox("请选择生产订单号!");
  556. // return;
  557. //}
  558. //string where = txtMOCode.EditValue.ToString();
  559. //string code = txtMOCode.EditValue.ToString();
  560. //if (!string.IsNullOrWhiteSpace(cmbSEQ.Text.Trim()))
  561. //{
  562. // where += "' AND a.SEQ='" + cmbSEQ.Text.Trim();
  563. // code += "' AND MOSEQ='" + cmbSEQ.Text.Trim();
  564. //}
  565. //List<PrintPara> parasList = new List<PrintPara>();
  566. //string BinCode = " d.BinCode OR d.BinCode IS NULL";
  567. //if (!string.IsNullOrWhiteSpace(txtBinCode.Text.Trim()))
  568. //{
  569. // BinCode = " '" + txtBinCode.Text.Trim() + "' ";
  570. //}
  571. //if (!string.IsNullOrWhiteSpace(txtWHCode.Text.Trim()))
  572. //{
  573. // BinCode += " AND d.WHCode='" + txtWHCode.Text.Trim() + "' ";
  574. //}
  575. //PrintPara para = new PrintPara();
  576. //para.PrintKey = "MOCODE";
  577. //para.PrintValues = new object[] { where, BinCode, cmbSEQ.Text.Trim(), code, txtWHCode.Text.Trim()};
  578. //parasList.Add(para);
  579. //if (parasList.Count == 0)
  580. //{
  581. // ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  582. // return;
  583. //}
  584. //FormPrintDialog f = new FormPrintDialog("014", this.Text, parasList, false, null);
  585. //f.ShowDialog();
  586. #endregion
  587. #region
  588. SimpleButton btntemp = (SimpleButton)sender;
  589. if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
  590. {
  591. ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
  592. return;
  593. }
  594. if (string.IsNullOrWhiteSpace(txtMOCode.EditValue.ToString()))
  595. {
  596. ICSBaseSimpleCode.AppshowMessageBox("请选择生产订单号!");
  597. return;
  598. }
  599. string code = txtMOCode.EditValue.ToString();
  600. List<PrintPara> parasList = new List<PrintPara>();
  601. PrintPara para = new PrintPara();
  602. para.PrintKey = "TransferNO";
  603. para.PrintValues = new object[] { txtMOCode.Text };
  604. parasList.Add(para);
  605. if (parasList.Count == 0)
  606. {
  607. ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
  608. return;
  609. }
  610. FormPrintDialog f = new FormPrintDialog("014", this.Text, parasList, false, null);
  611. f.ShowDialog();
  612. #endregion
  613. }
  614. catch (Exception ex)
  615. {
  616. MessageBox.Show(ex.ToString());
  617. }
  618. }
  619. #endregion
  620. private void chkAll_CheckedChanged(object sender, EventArgs e)
  621. {
  622. if (chkAll.Checked)
  623. grdDetail.DataSource = dataSourceAll;
  624. else
  625. grdDetail.DataSource = dataSource;
  626. grvDetail.BestFitColumns();
  627. }
  628. //private void txtBinCode_KeyPress(object sender, KeyPressEventArgs e)
  629. //{
  630. // if (e.KeyChar == 13)
  631. // {
  632. // DataView dv = dataGauge.DefaultView;
  633. // if (!string.IsNullOrWhiteSpace(txtBinCode.Text.Trim()))
  634. // dv.RowFilter = "BinCode='" + txtBinCode.Text.Trim() + "'";
  635. // else
  636. // dv.RowFilter = "";
  637. // //dataGauge = dv.ToTable();
  638. // gridControlGauge.DataSource = dv;
  639. // gridViewGauge.BestFitColumns();
  640. // }
  641. //}
  642. private void txtBinCode_EditValueChanged(object sender, EventArgs e)
  643. {
  644. Select();
  645. }
  646. private void Select()
  647. {
  648. if (dataGauge == null)
  649. return;
  650. DataView dv = dataGauge.DefaultView;
  651. dv.RowFilter = "";
  652. if (!string.IsNullOrWhiteSpace(txtWHCode.Text.Trim()))
  653. dv.RowFilter = "WHCode='" + txtWHCode.Text.Trim() + "'";
  654. if (!string.IsNullOrWhiteSpace(txtBinCode.Text.Trim()))
  655. {
  656. if (string.IsNullOrWhiteSpace(dv.RowFilter))
  657. dv.RowFilter = "BinCode='" + txtBinCode.Text.Trim() + "'";
  658. else
  659. dv.RowFilter += " AND BinCode='" + txtBinCode.Text.Trim() + "'";
  660. }
  661. //dataGauge = dv.ToTable();
  662. gridControlGauge.DataSource = dv;
  663. gridViewGauge.BestFitColumns();
  664. }
  665. }
  666. }