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

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