using Stone.Common; using Stone.Entity; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using gregn6Lib; namespace Stone.WinBiz.JisData { public class F_Print { public static void Print(EntityBase t_AJIS, DataTable dtData, string TaskNo, string ProdNo, string Name, int PackageQty) { DataTable dtHead = new DataTable(); dtHead.Columns.Add("BillNo"); dtHead.Columns.Add("PrintTime"); dtHead.Columns.Add("LastSequence"); dtHead.Columns.Add("FirstSequence"); dtHead.Columns.Add("PackageQty"); dtHead.Columns.Add("AssemblyLine"); dtHead.Columns.Add("Location"); dtHead.Columns.Add("BarCode"); dtHead.Columns.Add("Address"); DataTable dtDetail = new DataTable(); dtDetail.Columns.Add("No"); dtDetail.Columns.Add("ProductionNo"); dtDetail.Columns.Add("SequenceNo"); dtDetail.Columns.Add("ProdNo"); dtDetail.Columns.Add("Option"); var _Address = dtData.Rows[0]["Address"].ToString(); string FirstSequence = dtData.Rows[0]["SequenceNo"].ToString(); string LastSequence = GetLastSequence(t_AJIS, TaskNo,_Address); if (LastSequence == "") LastSequence = FirstSequence; //获取上张单号 string LastTaskNo = GetLastTaskNo(t_AJIS, TaskNo); string BarCode = TaskNo; if (ProdNo == "FLProdNo") BarCode = "1" + BarCode; //左前 if (ProdNo == "FRProdNo") BarCode = "2" + BarCode; //右前 if (ProdNo == "RLProdNo") BarCode = "3" + BarCode; //左后 if (ProdNo == "RRProdNo") BarCode = "4" + BarCode; //右后 if (ProdNo == "moduno") BarCode = "5" + BarCode; //地毯 DataRow drHead = dtHead.NewRow(); drHead["BillNo"] = TaskNo.Substring(TaskNo.Length - 3, 3) + Name; drHead["PrintTime"] = MyDateTime.GetServerDateTime().ToString("yyyy/MM/dd HH:mm:ss"); drHead["LastSequence"] = LastSequence; drHead["FirstSequence"] = FirstSequence; drHead["PackageQty"] = PackageQty; drHead["AssemblyLine"] = dtData.Rows[0]["AssemblyLine"].ToString(); drHead["Location"] = dtData.Rows[0]["Location"].ToString(); drHead["BarCode"] = BarCode+"-"+ LastTaskNo; drHead["Address"] = dtData.Rows[0]["Address"].ToString(); dtHead.Rows.Add(drHead); int n = 1; foreach(DataRow drData in dtData.Rows) { DataRow drDetail = dtDetail.NewRow(); drDetail["No"] = n; drDetail["ProductionNo"] = drData["ProductionNo"].ToString(); drDetail["SequenceNo"] = drData["SequenceNo"].ToString(); drDetail["ProdNo"] = drData[ProdNo].ToString(); //GetProdNo(drData[ProdNo].ToString()); drDetail["Option"] = GetOption(drDetail["ProdNo"].ToString()); dtDetail.Rows.Add(drDetail); n++; } string filename = Application.StartupPath + "\\Report\\JIS序列单.grf"; MyReport6 report = new MyReport6(filename, dtHead, dtDetail); report.Report.Printer.PrinterName = MyAppconfig.ReadValue("Printer"); report.Report.Print(false); } /// /// 顺义门板打印 /// /// /// /// /// /// /// public static void Print_SY_Board(EntityBase t_AJIS, DataTable dtData, string TaskNo, string ProdNo, string Name, int PackageQty) { DataTable dtHead = new DataTable(); dtHead.Columns.Add("BillNo"); dtHead.Columns.Add("PrintTime"); dtHead.Columns.Add("LastSequence"); dtHead.Columns.Add("FirstSequence"); dtHead.Columns.Add("PackageQty"); dtHead.Columns.Add("AssemblyLine"); dtHead.Columns.Add("Location"); dtHead.Columns.Add("BarCode"); dtHead.Columns.Add("Address"); DataTable dtDetail = new DataTable(); dtDetail.Columns.Add("No"); dtDetail.Columns.Add("ProductionNo"); dtDetail.Columns.Add("SequenceNo"); dtDetail.Columns.Add("ProdNo"); dtDetail.Columns.Add("Option"); var _Address = dtData.Rows[0]["Address"].ToString(); string FirstSequence = dtData.Rows[0]["SequenceNo"].ToString(); string LastSequence = GetLastSequence(t_AJIS, TaskNo, _Address); if (LastSequence == "") LastSequence = FirstSequence; //获取上张单号 string LastTaskNo = GetLastTaskNo(t_AJIS, TaskNo); string BarCode = TaskNo; if (ProdNo == "FLProdNo") BarCode = "1" + BarCode; //左前 if (ProdNo == "FRProdNo") BarCode = "2" + BarCode; //右前 if (ProdNo == "RLProdNo") BarCode = "3" + BarCode; //左后 if (ProdNo == "RRProdNo") BarCode = "4" + BarCode; //右后 if (ProdNo == "moduno") BarCode = "5" + BarCode; //地毯 DataRow drHead = dtHead.NewRow(); drHead["BillNo"] = TaskNo.Substring(TaskNo.Length - 3, 3) + Name.Substring(0,1); drHead["PrintTime"] = MyDateTime.GetServerDateTime().ToString("yyyy/MM/dd HH:mm:ss"); drHead["LastSequence"] = LastSequence; drHead["FirstSequence"] = FirstSequence; drHead["PackageQty"] = PackageQty; drHead["AssemblyLine"] = dtData.Rows[0]["AssemblyLine"].ToString(); drHead["Location"] = dtData.Rows[0]["Location"].ToString(); drHead["BarCode"] = BarCode + "-" + LastTaskNo; drHead["Address"] = dtData.Rows[0]["Address"].ToString(); dtHead.Rows.Add(drHead); int n = 1; DataRow drDetail = dtDetail.NewRow(); foreach (DataRow drData in dtData.Rows) { drDetail = dtDetail.NewRow(); drDetail["No"] = n; drDetail["ProductionNo"] = drData["ProductionNo"].ToString(); drDetail["SequenceNo"] = drData["SequenceNo"].ToString(); drDetail["ProdNo"] = drData[ProdNo].ToString(); //GetProdNo(drData[ProdNo].ToString()); drDetail["Option"] = GetOption(drDetail["ProdNo"].ToString()); dtDetail.Rows.Add(drDetail); n++; } //增加空白行 drDetail = dtDetail.NewRow(); drDetail["No"] = ""; drDetail["ProductionNo"] = ""; drDetail["SequenceNo"] = ""; drDetail["ProdNo"] = ""; drDetail["Option"] = ""; dtDetail.Rows.Add(drDetail); if (ProdNo.Substring(0, 2) == "FL") //左前 { //生产号取左后 ProdNo = "RLProdNo"; } if (ProdNo.Substring(0, 2) == "FR") //右前 { //生产号取右后 ProdNo = "RRProdNo"; } //增加后撇 //重新计数 n = 1; foreach (DataRow drData in dtData.Rows) { drDetail = dtDetail.NewRow(); drDetail["No"] = n; drDetail["ProductionNo"] = drData["ProductionNo"].ToString(); drDetail["SequenceNo"] = drData["SequenceNo"].ToString(); drDetail["ProdNo"] = drData[ProdNo].ToString(); //GetProdNo(drData[ProdNo].ToString()); drDetail["Option"] = GetOption(drDetail["ProdNo"].ToString()); dtDetail.Rows.Add(drDetail); n++; } string filename = Application.StartupPath + "\\Report\\JIS序列单.grf"; MyReport6 report = new MyReport6(filename, dtHead, dtDetail); report.Report.Printer.PrinterName = MyAppconfig.ReadValue("Printer"); report.Report.Print(false); } private static string GetLastSequence(EntityBase t_AJIS, string TaskNo,string Address) { var leftSeq = ""; //亦庄 104 Seq MF if(Address == "104") { leftSeq = "MF"; } else { //顺义 1046 Seq SY leftSeq = "SY"; } string ret = ""; DataTable dtAJIS_Last = t_AJIS.GetData("top 1 [SequenceNo]", $"[IsPost]=1 and [TaskNo]<'{TaskNo}' and [SequenceNo] like '{leftSeq}%'", "[SequenceNo] desc").Tables[0]; if(dtAJIS_Last.Rows.Count > 0) { ret = dtAJIS_Last.Rows[0]["SequenceNo"].ToString(); } return ret; } private static object GetProdNo(string ProdNo) { string ret = ProdNo; if (ProdNo.ToUpper().Substring(0, 1) == "A") { Entity_t_ModunoABase t_ModunoABase = new Entity_t_ModunoABase(); DataTable dtModunoABase = t_ModunoABase.GetData($"[Moduno]='{ProdNo}'").Tables[0]; if (dtModunoABase.Rows.Count > 0) { ret = dtModunoABase.Rows[0]["prodno"].ToString(); } } return ret; } private static string GetOption(string ProdNo) { if (ProdNo == "") return ""; EntityBase table = new Entity_t_ProdnoBase(); string ret = ""; DataTable dtOption = table.GetData($"[prodno]='{ProdNo}'").Tables[0]; if(dtOption.Rows.Count > 0) { ret = dtOption.Rows[0]["Option"].ToString(); } return ret; } //获取上张单据的单号 private static string GetLastTaskNo(EntityBase t_AJIS,string billno) { string ret = ""; string where = ""; switch (billno.Substring(8, 1)) { case "1": where = "[TaskNo] <'" + billno + "' and Address='104' "; break; case "2": where = "[TaskNo] <'" + billno + "' and Address='1046' "; break; } DataTable dtAJIS_Last = t_AJIS.GetData("top 1 [TaskNo]", where, "[TaskNo] desc").Tables[0]; if (dtAJIS_Last.Rows.Count > 0) { ret = dtAJIS_Last.Rows[0]["TaskNo"].ToString(); } return ret; } } }