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; namespace Stone.WinBiz.Preordering { public class F_Preordering { public static void PrintLabel(DataSet dsData) { Entity_t_Bom t_Bom = new Entity_t_Bom(); string filename_label = Application.StartupPath + "\\Report\\JIS标签.grf"; string filename_Assemble = Application.StartupPath + "\\Report\\JIS装配单.grf"; foreach (DataRow drData in dsData.Tables["Head"].Rows) { #region 表头 DataTable dtHead = dsData.Tables["Head"].Clone(); dtHead.Columns.Add("TypeName"); dtHead.Rows.Add(drData.ItemArray); string productionNumber = dtHead.Rows[0]["productionNumber"].ToString(); string partType = dtHead.Rows[0]["partType"].ToString(); dtHead.Columns.Add("LUkey1"); dtHead.Columns.Add("LUkey2"); dtHead.Columns.Add("LUkey3"); dtHead.Columns.Add("Deskey1"); dtHead.Columns.Add("Deskey2"); dtHead.Columns.Add("Deskey3"); dtHead.Columns.Add("BomName1"); dtHead.Columns.Add("BomName2"); dtHead.Columns.Add("BomName3"); dtHead.Columns.Add("ColorCode"); dtHead.Columns.Add("BarCodeNew"); DataRow[] drKeys = dsData.Tables["Detail"].Select("[productionNumber]='" + productionNumber + "' and [partType]='" + partType + "' and [IsKey]=1"); for (int i = 0; i < drKeys.Length; i++) { if (i >= 3) break; string BomName = ""; DataTable dtBom = t_Bom.GetData("top 1 ParentName", "ParentCode='" + drKeys[i]["itemNumber"].ToString() + "'", "[ID] asc").Tables[0]; if (dtBom.Rows.Count > 0) { BomName = dtBom.Rows[0]["ParentName"].ToString(); } dtHead.Rows[0]["LUkey" + (i + 1)] = drKeys[i]["itemNumber"].ToString(); dtHead.Rows[0]["Deskey" + (i + 1)] = drKeys[i]["description"].ToString(); dtHead.Rows[0]["BomName" + (i + 1)] = BomName; } dtHead.Rows[0]["TypeName"] = partType == "01" ? "F" : "R"; dtHead.Rows[0]["ColorCode"] = drData["itemNumber"].ToString().Substring(drData["itemNumber"].ToString().Length - 4, 4); dtHead.Columns.Add("InsertStr"); if (dsData.Tables["Head"].Columns.IndexOf("IsInsert") >= 0) { if (Convert.ToInt32(drData["IsInsert"].ToString()) == 1) { dtHead.Rows[0]["InsertStr"] = "X"; } } dtHead.Rows[0]["BarCodeNew"] = productionNumber + partType.Substring(1, 1); MyReport report = new MyReport(filename_label, dtHead, null); report.Report.Printer.PrinterName = MyAppconfig.ReadValue("PrinterBarCode"); report.Report.Print(false); #endregion #region 明细 dtHead = new DataTable(); dtHead.Columns.Add("BillNo"); dtHead.Columns.Add("ShiftNo"); dtHead.Columns.Add("PrintTime"); dtHead.Columns.Add("TypeName"); dtHead.Columns.Add("LUkey1"); dtHead.Columns.Add("LUkey2"); dtHead.Columns.Add("LUkey3"); dtHead.Columns.Add("Deskey1"); dtHead.Columns.Add("Deskey2"); dtHead.Columns.Add("Deskey3"); dtHead.Columns.Add("BomName1"); dtHead.Columns.Add("BomName2"); dtHead.Columns.Add("BomName3"); dtHead.Columns.Add("Sort"); dtHead.Columns.Add("ColorCode"); dtHead.Columns.Add("BarCodeNew"); DataRow drHead = dtHead.NewRow(); drHead["BillNo"] = drData["productionNumber"].ToString(); // dsData.Tables["Head"].Rows[0]["productionNumber"].ToString(); drHead["ShiftNo"] = drData["sequenceNumber"].ToString(); // dsData.Tables["Head"].Rows[0]["sequenceNumber"].ToString(); drHead["PrintTime"] = MyDateTime.GetServerDateTime().ToString("yyyy-MM-dd HH:mm:ss"); drHead["TypeName"] = partType == "01" ? "前" : "后"; drHead["Sort"] = drData["Sort"].ToString(); drHead["ColorCode"] = drData["itemNumber"].ToString().Substring(drData["itemNumber"].ToString().Length - 4, 4); drHead["BarCodeNew"] = productionNumber + partType.Substring(1, 1); dtHead.Rows.Add(drHead); drKeys = dsData.Tables["Detail"].Select("[productionNumber]='" + productionNumber + "' and [partType]='" + partType + "' and [IsKey]=1"); for (int i = 0; i < drKeys.Length; i++) { if (i >= 3) break; string BomName = ""; DataTable dtBom = t_Bom.GetData("top 1 ParentName", "ParentCode='" + drKeys[i]["itemNumber"].ToString() + "'", "[ID] asc").Tables[0]; if (dtBom.Rows.Count > 0) { BomName = dtBom.Rows[0]["ParentName"].ToString(); } dtHead.Rows[0]["LUkey" + (i + 1)] = drKeys[i]["itemNumber"].ToString(); dtHead.Rows[0]["Deskey" + (i + 1)] = drKeys[i]["description"].ToString(); dtHead.Rows[0]["BomName" + (i + 1)] = BomName; } DataTable dtDetail = dsData.Tables["Detail"].Clone(); DataRow[] drDetails = dsData.Tables["Detail"].Select("[productionNumber]='" + productionNumber + "' and [partType]='" + partType + "' and [IsKey]=0", "[IsMajor] desc"); foreach (DataRow drDetail in drDetails) { dtDetail.Rows.Add(drDetail.ItemArray); } MyReport reprt = new MyReport(filename_Assemble, dtHead, dtDetail); reprt.Report.Printer.PrinterName = MyAppconfig.ReadValue("Printer"); reprt.Report.Print(false); #endregion } } } }