231 lines
7.2 KiB
C#
231 lines
7.2 KiB
C#
using Emgu.CV.OCR;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using AR;
|
|
|
|
namespace Project.Dialog
|
|
{
|
|
public partial class fManualPrint : Form
|
|
{
|
|
bool ReprintMode = false;
|
|
public fManualPrint()
|
|
{
|
|
InitializeComponent();
|
|
this.FormClosed += FManualPrint_FormClosed;
|
|
}
|
|
public fManualPrint(string sid, string lot, string qty, string mfg, string rid, string spy, string pn)
|
|
{
|
|
InitializeComponent();
|
|
this.FormClosed += FManualPrint_FormClosed;
|
|
this.tbSID.Text = sid;
|
|
this.tbVLot.Text = lot;
|
|
this.tbQty.Text = qty;
|
|
this.tbDate.Text = mfg;
|
|
this.tbRID.Text = rid;
|
|
this.tbSPY.Text = spy;
|
|
this.tbPN.Text = pn;
|
|
chkDelinfo.Enabled = false;
|
|
chkDelinfo.Checked = false;
|
|
tbBarcodeInput.Enabled = false;
|
|
this.ReprintMode = true;
|
|
}
|
|
|
|
private void fManualPrint_Load(object sender, EventArgs e)
|
|
{
|
|
var lockvalue = true;
|
|
PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.Z_THETA].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
|
|
PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
|
|
if (ReprintMode) button1.Focus();
|
|
else tbBarcodeInput.Focus();
|
|
}
|
|
|
|
private void FManualPrint_FormClosed(object sender, FormClosedEventArgs e)
|
|
{
|
|
//PUB.LockPKT.set((int)eILockPKX.MPrint, false, "COMMINTERLOCK");
|
|
var lockvalue = false;
|
|
PUB.iLock[(int)eAxis.PZ_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.Z_THETA].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.PX_PICK].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
|
|
PUB.iLock[(int)eAxis.PL_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
PUB.iLock[(int)eAxis.PR_MOVE].set((int)eILock.MPrint, lockvalue, "COMMINTERLOCK");
|
|
}
|
|
|
|
private void btPrint_Click(object sender, EventArgs e)
|
|
{
|
|
//프린트해야한다
|
|
string zpl = "";
|
|
string qrdata = "";
|
|
|
|
var Printer = radLeft.Checked ? PUB.PrinterL : PUB.PrinterR;
|
|
var sid = tbSID.Text.Trim();
|
|
var rid = tbRID.Text.Trim();
|
|
var lot = tbVLot.Text.Trim();
|
|
var mfg = tbDate.Text.Trim();
|
|
var qty = tbQty.Text.Trim();
|
|
var spy = tbSPY.Text.Trim();
|
|
var pan = tbPN.Text.Trim();
|
|
|
|
if (int.TryParse(qty, out int vqty) == false)
|
|
{
|
|
UTIL.MsgE("Please enter quantity as a number");
|
|
tbQty.SelectAll();
|
|
tbQty.Focus();
|
|
return;
|
|
}
|
|
|
|
zpl = Printer.makeZPL_210908(new Class.Reel
|
|
{
|
|
SID = sid,
|
|
venderLot = lot,
|
|
venderName = spy,
|
|
qty = vqty,
|
|
id = rid,
|
|
mfg = mfg,
|
|
PartNo = pan,
|
|
}, SETTING.Data.DrawOutbox, out qrdata);
|
|
|
|
var cnt = (int)nudCnt.Value;
|
|
for (int i = 0; i < cnt; i++)
|
|
{
|
|
var prn = Printer.Print(zpl);
|
|
if (prn.result == false)
|
|
{
|
|
//인쇄실패시 처리하지 않음
|
|
PUB.log.AddE(prn.errmessage);
|
|
UTIL.MsgE("Cannot proceed further due to printing failure");
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
if (i == 0) //첫장만 로깅
|
|
PUB.log.Add("User print completed" + string.Join("|", new string[] { sid, lot, spy, qty, rid, mfg, pan }));
|
|
}
|
|
System.Threading.Thread.Sleep(100);
|
|
}
|
|
|
|
if (ReprintMode) DialogResult = DialogResult.OK;
|
|
else
|
|
{
|
|
//자료를 삭제해야한다
|
|
if (chkDelinfo.Checked)
|
|
{
|
|
ClearData(tbSID, tbVLot, tbQty, tbDate, tbRID, tbSPY, tbPN);
|
|
tbSID.Focus();
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
void ClearData(params TextBox[] tbs)
|
|
{
|
|
foreach (var tb in tbs)
|
|
{
|
|
tb.Text = "";
|
|
tb.Focus();
|
|
}
|
|
|
|
}
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
//sid
|
|
ClearData(tbSID);
|
|
}
|
|
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
//vlot
|
|
ClearData(tbVLot);
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
//qty
|
|
ClearData(tbQty);
|
|
}
|
|
|
|
|
|
private void button4_Click(object sender, EventArgs e)
|
|
{
|
|
//date
|
|
ClearData(tbDate);
|
|
}
|
|
|
|
private void button5_Click(object sender, EventArgs e)
|
|
{
|
|
//rid
|
|
ClearData(tbRID);
|
|
}
|
|
|
|
private void button6_Click(object sender, EventArgs e)
|
|
{
|
|
//spy
|
|
ClearData(tbSPY);
|
|
}
|
|
|
|
private void button7_Click(object sender, EventArgs e)
|
|
{
|
|
//pn
|
|
ClearData(tbPN);
|
|
}
|
|
|
|
private void tbSID_Click(object sender, EventArgs e)
|
|
{
|
|
var tb = sender as TextBox;
|
|
var rlt = AR.UTIL.InputBox("Please enter a value", tb.Text, AR.UTIL.eInputbox.TouchFullSingleLine);
|
|
if (rlt.Item1) tb.Text = rlt.Item2;
|
|
}
|
|
|
|
private void button8_Click(object sender, EventArgs e)
|
|
{
|
|
tbSPY.Text = "N/A";
|
|
}
|
|
|
|
private void button9_Click(object sender, EventArgs e)
|
|
{
|
|
tbPN.Text = "N/A";
|
|
}
|
|
|
|
private void tbBarcodeInput_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.KeyCode == Keys.Enter)
|
|
{
|
|
var buf = tbBarcodeInput.Text.Trim().Split(';');
|
|
if (buf.Length != 7)
|
|
{
|
|
UTIL.MsgE("Barcode data does not contain 7 elements");
|
|
tbBarcodeInput.SelectAll();
|
|
return;
|
|
}
|
|
if (int.TryParse(buf[3], out var code) == false)
|
|
{
|
|
UTIL.MsgE("The 4th data (quantity) is not a number\nOnly Amkor STD barcodes are allowed");
|
|
return;
|
|
}
|
|
tbSID.Text = buf[0];
|
|
tbVLot.Text = buf[1];
|
|
tbSPY.Text = buf[2];
|
|
tbQty.Text = buf[3];
|
|
tbRID.Text = buf[4];
|
|
tbDate.Text = buf[5];
|
|
tbPN.Text = buf[6];
|
|
tbBarcodeInput.SelectAll();
|
|
tbBarcodeInput.Focus();
|
|
}
|
|
}
|
|
}
|
|
}
|