using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using grproLib; using MESClassLibrary.BLL.BasicInfo; using MESClassLibrary.BLL.Log; using MESClassLibrary.DAL; using MESClassLibrary.Model; using DataTable = System.Data.DataTable; namespace InjectionSearch { public partial class FrmBarCodeSearchNew : Form { private string _printTemplateName = string.Empty; private DataTable _stationTable = null; public FrmBarCodeSearchNew() { InitializeComponent(); _printTemplateName = Application.StartupPath + "\\Report\\111 - 副本.grf"; lbVer.Text = Application.ProductVersion; } private void initProduct() { comboBox1.Items.Clear(); ProductBLL bll = new ProductBLL(); DataTable dt = bll.SearchInfoAllByType("2000"); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { comboBox1.Items.Add(dt.Rows[i]["StockNo"].ToString() +"--"+dt.Rows[i]["ProductName"].ToString()); } } dt.Dispose(); } private void initBarCode() { BarCodeBLL bll = new BarCodeBLL(); glacialList1.Items.Clear(); DataTable dt = bll.SearchBarCode(); if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { glacialList1.Items.Add(i.ToString()); glacialList1.Items[i].SubItems[0].Text = dt.Rows[i]["BarCode"].ToString(); glacialList1.Items[i].SubItems[1].Text = dt.Rows[i]["ProductName"].ToString(); glacialList1.Items[i].SubItems[2].Text = dt.Rows[i]["PrintType"].ToString(); glacialList1.Items[i].SubItems[3].Text = dt.Rows[i]["PrintTime"].ToString() == "" ? "" : Convert.ToDateTime(dt.Rows[i]["PrintTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss.fff"); glacialList1.Items[i].SubItems[4].Text = dt.Rows[i]["MaterialName"].ToString(); glacialList1.Items[i].SubItems[5].Text = dt.Rows[i]["BatchNo"].ToString(); } } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (string.IsNullOrEmpty(comboBox1.Text) || comboBox1.Text.Length < 10) return; string stockNo = comboBox1.Text.Substring(0, 10); ProductBLL bll=new ProductBLL(); BomBLL bombll=new BomBLL(); DataTable dt = bll.SearchInfoByStock(stockNo); if (dt != null && dt.Rows.Count > 0) { textBox1.Text = dt.Rows[0]["PartNo"].ToString(); dt.Dispose(); } else { textBox1.Text = ""; } DataTable dt1 = bombll.SearchBom(textBox1.Text); if (dt1 != null && dt1.Rows.Count > 0) { textBox2.Text = dt1.Rows[0]["PartNo2"].ToString(); dt.Dispose(); } else { textBox2.Text = ""; } } private void FrmBarCodeSearch_Load(object sender, EventArgs e) { initProduct(); initBarCode(); comboBox2.Items.Clear(); comboBox2.Items.Add("IM01"); comboBox2.Items.Add("IM02"); comboBox2.Items.Add("IM03"); comboBox2.Items.Add("IM04"); comboBox2.Items.Add("IM05"); comboBox2.Items.Add("IM06"); StationBLL sbll = new StationBLL(); _stationTable = sbll.SearchAllInfo(); } /// /// 补打 /// /// /// private void label18_Click(object sender, EventArgs e) { string code = ""; BarCodeModel md = new BarCodeModel(); BarCodeBLL bll = new BarCodeBLL(); ProductBLL pbll=new ProductBLL(); try { if (glacialList1.SelectedItems.Count == 0) { MessageBox.Show("请选择要补打的条码!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } else { GlacialComponents.Controls.GLItem gv; gv = glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem; code = gv.Text; DataTable dt = bll.SearchInfoByBarCode(code); if (dt != null && dt.Rows.Count > 0) { md.ID = Guid.NewGuid().ToString(); md.BarCode = code; md.StationID = Program.StationID; md.StockNo = dt.Rows[0]["StockNo"].ToString(); md.OneBarCode = dt.Rows[0]["OneBarCode"].ToString(); md.StationID2 = dt.Rows[0]["StationID"].ToString(); md.PrintType = 2; DataTable pdt = pbll.SearchIsImportByStockNo(md.StockNo); if (pdt != null && pdt.Rows.Count > 0) { if (pdt.Rows[0]["isImport"].ToString() == "1") { md.Import = "国产料Kingfa"; } else { md.Import = ""; } } //if (md.StockNo == "2200000064" || md.StockNo == "2200000093" || md.StockNo == "2200000096" || // md.StockNo == "2200000052") //{ // md.Import = "国产料Kingfa"; //} //else //{ // md.Import = ""; //} } dt.Dispose(); bll.Add_Info(md); #region 打印条码 //GridppReport report = new GridppReport(); //report.Register(""); ////report.LoadFromFile(@"D:\P02 - 副本.grf"); //report.LoadFromFile(_printTemplateName); //report.ConnectionString = ConfigurationManager.ConnectionStrings["report"].ToString(); ////report.PrintPreview(true); //report.Print(false); //(glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem).SubItems[1].Text string productName = string.Empty; if (glacialList1.SelectedItems.Count > 0) { GlacialComponents.Controls.GLItem gLItem = glacialList1.SelectedItems[0] as GlacialComponents.Controls.GLItem; if(gLItem.SubItems.Count > 1) { productName = gLItem.SubItems[1].Text; } } Print(md.OneBarCode, md.BarCode, md.Import, productName); #endregion bll.Update_Info(md); initBarCode(); } } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); } } public DateTime GetDateTime() { string sql = ""; DateTime time; DataTable dt; try { sql = @"select getdate() as time"; dt = SqlHelper.ExecuteDataset(SqlHelper.GetConnSting(), CommandType.Text, sql, null).Tables[0]; if (dt != null && dt.Rows.Count > 0) { time = Convert.ToDateTime(dt.Rows[0]["time"].ToString()); } else { time = DateTime.Now; } return time; } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); return DateTime.Now; } } private static bool IsNumeric(string str) { System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^[0-9]\d*$"); return reg1.IsMatch(str); } private void label19_Click(object sender, EventArgs e) { string code = "", stationID = "", OneCode = ""; string newcode = "", partNo = "", stockNo = "", NewOneCode = ""; try { #region 数据合法性判断 if (comboBox2.Text.Trim() == "") { MessageBox.Show("请选择机台!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (comboBox1.Text.Trim() == "") { MessageBox.Show("请选择产品!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (textBox3.Text.Trim() == "") { MessageBox.Show("请输入批次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (textBox3.Text.Trim().Length != 6) { MessageBox.Show("输入批次格式错误(yyMMdd)!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } DateTime dt = DateTime.Now; if (DateTime.TryParse("20" + textBox3.Text.Trim().Substring(0, 2) + "-" + textBox3.Text.Trim().Substring(2, 2) + "-" + textBox3.Text.Trim().Substring(4, 2), out dt) == false) { MessageBox.Show("批次格式错误", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (textBox4.Text.Trim() == "") { MessageBox.Show("请输入数量!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (textBox1.Text.Trim() == "") { MessageBox.Show("零件号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (!IsNumeric(textBox4.Text.Trim())) { MessageBox.Show("数量格式不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (Convert.ToInt32(textBox4.Text.Trim()) > 1000) { MessageBox.Show("数量不能大于1000!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } #endregion #region 获取工位编号 // StationBLL sbll = new StationBLL(); // DataTable sdt = sbll.SearchInfoByNo(comboBox2.Text.Trim()); List stationList = _stationTable.AsEnumerable().Where(p => p.Field("StationNo") == comboBox2.Text.Trim()).ToList(); if (stationList != null && stationList.Count > 0) { stationID = stationList[0]["StationID"].ToString(); } //sdt.Dispose(); #endregion DialogResult result = MessageBox.Show($"确定手工打印批次为[{textBox3.Text}]的[{textBox4.Text}]个条码?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); if (result == DialogResult.OK) { #region 生成条码 ProductBLL pbll = new ProductBLL(); //查询零件号 stockNo = comboBox1.Text.Substring(0, 10); partNo = textBox1.Text.Trim(); //根据零件号、批次号查找 BarCodeBLL bll = new BarCodeBLL(); BarCodeModel md = new BarCodeModel(); for (int i = 1; i <= Convert.ToInt32(textBox4.Text.Trim()); i++) { string batch = textBox3.Text.Trim(); NewOneCode = BasicDAL.GetSjBarCodeSerialNo(stockNo, batch); newcode = partNo + "." + batch + "." + NewOneCode.Substring(16, 4); string[] part = newcode.Split('.'); //存入tb_BarCode表 md.ID = Guid.NewGuid().ToString(); md.StationID = Program.StationID; md.StationID2 = stationID; md.OneBarCode = NewOneCode; md.BarCode = newcode; md.BatchNo = batch; md.StockNo = stockNo; md.PrintType = 1; DataTable pdt = pbll.SearchIsImportByStockNo(stockNo); string productName = string.Empty; if (pdt != null && pdt.Rows.Count > 0) { if (pdt.Rows[0]["isImport"].ToString() == "1") { md.Import = "国产料Kingfa"; } else { md.Import = ""; } productName = pdt.Rows[0]["ProductName"].ToString(); } if (bll.Add_Info(md)) { #region 打印条码 //GridppReport report = new GridppReport(); //report.Register(""); ////report.LoadFromFile(@"D:\P02.grf"); ////report.LoadFromFile(@"D:\P02 - 副本.grf"); //report.LoadFromFile(_printTemplateName); //report.ConnectionString = ConfigurationManager.ConnectionStrings["report"].ToString(); ////report.PrintPreview(true); //report.Print(false); Print(NewOneCode, newcode, md.Import, productName); #endregion bll.Update_Info(md); } } // //DataTable dt = bll.SearchSerialNoByBarCode(partNo + "." + textBox3.Text.Trim()); // //DataTable dt = bll.SearchInfoByStock(stockNo); // DataTable dt = bll.SearchSerialNoByBarCode(stockNo, textBox3.Text.Trim()); //if (dt != null && dt.Rows.Count > 0) //{ // OneCode = dt.Rows[0]["OneBarCode"].ToString().Trim(); // code = dt.Rows[0]["BarCode"].ToString().TrimEnd(); // for (int i = 1; i <= Convert.ToInt32(textBox4.Text.Trim()); i++) // { // newcode = code.Substring(0, code.Length - 4) + // (Convert.ToInt32(code.Substring(code.Length - 4, 4)) + i) // .ToString() // .PadLeft(4, '0'); // NewOneCode = OneCode.Substring(0, OneCode.Length - 4) + // (Convert.ToInt32(OneCode.Substring(OneCode.Length - 4, 4)) + i).ToString() // .PadLeft(4, '0'); // string[] part = newcode.Split('.'); // //存入tb_BarCode表 // md.ID = Guid.NewGuid().ToString(); // md.StationID = Program.StationID; // md.StationID2 = stationID; // md.OneBarCode = NewOneCode; // md.BarCode = newcode; // md.BatchNo= textBox3.Text.Trim(); // md.StockNo = stockNo; // md.PrintType = 1; // DataTable pdt = pbll.SearchIsImportByStockNo(stockNo); // if (pdt != null && pdt.Rows.Count > 0) // { // if (pdt.Rows[0]["isImport"].ToString() == "1") // { // md.Import = "国产料Kingfa"; // } // else // { // md.Import = ""; // } // } // //if (NewOneCode.Substring(0, 10) == "2200000064" || // // NewOneCode.Substring(0, 10) == "2200000093" || // // NewOneCode.Substring(0, 10) == "2200000096" || // // NewOneCode.Substring(0, 10) == "2200000084" || // // NewOneCode.Substring(0, 10) == "2200000090" || // // NewOneCode.Substring(0, 10) == "2200000052") // //{ // // md.Import = "国产料Kingfa"; // //} // //else // //{ // // md.Import = ""; // //} // if (bll.Add_Info(md)) // { // #region 打印条码 // GridppReport report = new GridppReport(); // report.Register(""); // //report.LoadFromFile(@"D:\P02.grf"); // report.LoadFromFile(@"D:\P02 - 副本.grf"); // report.ConnectionString = ConfigurationManager.ConnectionStrings["report"].ToString(); // //report.PrintPreview(true); // report.Print(false); // #endregion // bll.Update_Info(md); // } // } //} //else //{ // for (int i = 1; i <= Convert.ToInt32(textBox4.Text.Trim()); i++) // { // newcode = partNo + "." + textBox3.Text.Trim() + "." + i.ToString().PadLeft(4, '0'); // NewOneCode = stockNo + textBox3.Text.Trim() + i.ToString().PadLeft(4, '0'); // string[] part = newcode.Split('.'); // //存入tb_BarCode表 // md.ID = Guid.NewGuid().ToString(); // md.StationID = Program.StationID; // md.StationID2 = stationID; // md.StockNo = stockNo; // md.OneBarCode = NewOneCode; // md.BarCode = newcode; // md.PrintType = 1; // md.BatchNo = textBox3.Text.Trim(); // DataTable pdt = pbll.SearchIsImportByStockNo(stockNo); // if (pdt != null && pdt.Rows.Count > 0) // { // if (pdt.Rows[0]["isImport"].ToString() == "1") // { // md.Import = "国产料Kingfa"; // } // else // { // md.Import = ""; // } // } // bll.Add_Info(md); // #region 打印条码 // GridppReport report = new GridppReport(); // report.Register(""); // //report.LoadFromFile(@"D:\P02.grf"); // report.LoadFromFile(@"D:\P02 - 副本.grf"); // report.ConnectionString = ConfigurationManager.ConnectionStrings["report"].ToString(); // //report.PrintPreview(true); // report.Print(false); // #endregion // bll.Update_Info(md); // } //} #endregion initBarCode(); } else { return; } } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); } } void Print(string NewOneCode,string newcode,string Import,string productName) { string filename = _printTemplateName; DataTable headTable = new DataTable(); headTable.Columns.Add("StationNo"); headTable.Columns.Add("OneBarCode"); headTable.Columns.Add("BarCode"); headTable.Columns.Add("ProductName"); headTable.Columns.Add("IsImport"); DataRow row = headTable.NewRow(); row["StationNo"] = Program.station; row["OneBarCode"] = NewOneCode; row["BarCode"] = newcode; row["ProductName"] = productName + ";"; row["IsImport"] = Import; string reportName = ConfigurationManager.AppSettings["Printer"]; headTable.Rows.Add(row); InjectionPC.ReportHelper rp = new InjectionPC.ReportHelper(filename, headTable, null, (int)GRPaperOrientation.grpoDefault, 1, reportName); rp.Report.Print(false); InjectionPC.LogHelper.WriteLog("打印时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + ";" + NewOneCode); } private void button1_Click(object sender, EventArgs e) { BarCodeBLL bll = new BarCodeBLL(); DataTable dt = null; try { glacialList1.Items.Clear(); if (textBox5.Text.Trim() == "") { dt = bll.SearchBarCode(); } else { if (textBox5.Text.Trim().Length == 20) { dt = bll.SearchBarCodeByOne(textBox5.Text.Trim()); } else { dt = bll.SearchBarCodeByTwo(textBox5.Text.Trim()); } } if (dt != null && dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { glacialList1.Items.Add(i.ToString()); glacialList1.Items[i].SubItems[0].Text = dt.Rows[i]["BarCode"].ToString(); glacialList1.Items[i].SubItems[1].Text = dt.Rows[i]["ProductName"].ToString(); glacialList1.Items[i].SubItems[2].Text = dt.Rows[i]["PrintType"].ToString(); glacialList1.Items[i].SubItems[3].Text = dt.Rows[i]["PrintTime"].ToString() == "" ? "" : Convert.ToDateTime(dt.Rows[i]["PrintTime"].ToString()).ToString("yyyy-MM-dd HH:mm:ss.fff"); glacialList1.Items[i].SubItems[4].Text = dt.Rows[i]["MaterialName"].ToString(); glacialList1.Items[i].SubItems[5].Text = dt.Rows[i]["BatchNo"].ToString(); } } } catch (Exception ex) { LogErrBLL.AddInfo(ex.ToString(), MethodBase.GetCurrentMethod()); } } private void FrmBarCodeSearch_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); } } }