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.
283 lines
11 KiB
283 lines
11 KiB
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);
|
|
|
|
}
|
|
|
|
/// <summary>
|
|
/// 顺义门板打印
|
|
/// </summary>
|
|
/// <param name="t_AJIS"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <param name="TaskNo"></param>
|
|
/// <param name="ProdNo"></param>
|
|
/// <param name="Name"></param>
|
|
/// <param name="PackageQty"></param>
|
|
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;
|
|
|
|
}
|
|
}
|
|
}
|
|
|