北京安通林JIS系统
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

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;
}
}
}