391 lines
14 KiB
C#
391 lines
14 KiB
C#
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;
|
|
|
|
namespace Project.Dialog
|
|
{
|
|
public partial class fSelectJob : Form
|
|
{
|
|
public fSelectJob()
|
|
{
|
|
InitializeComponent();
|
|
this.KeyPreview = true;
|
|
this.FormClosing += __Closing;
|
|
this.lbTitle.MouseMove += LbTitle_MouseMove;
|
|
this.lbTitle.MouseUp += LbTitle_MouseUp;
|
|
this.lbTitle.MouseDown += LbTitle_MouseDown;
|
|
this.KeyDown += (s1, e1) =>
|
|
{
|
|
if (e1.KeyCode == Keys.Escape) this.Close();
|
|
};
|
|
|
|
if (System.Diagnostics.Debugger.IsAttached == false)
|
|
{
|
|
//// = new Dialog.fBlurPanel();
|
|
//fb.Show();
|
|
}
|
|
|
|
Pub.flag.set(eFlag.SCR_JOBSELECT, true, "selectjbo");
|
|
Pub.dio.IOValueChanged += Dio_IOValueChanged;
|
|
|
|
|
|
//this.tableLayoutPanel1.Enabled = false;
|
|
// this.tableLayoutPanel2.Enabled = false;
|
|
}
|
|
|
|
private void __LoaD(object sender, EventArgs e)
|
|
{
|
|
//210121 -101SID
|
|
this.chkQty1.Checked = Pub.uSetting.Option_QtyUpdate1;
|
|
// this.chkForce1.Checked = Pub.uSetting.Option_printforce1;
|
|
this.chkUpdatePart.Checked = Pub.uSetting.Option_PartUpdate;
|
|
this.chkconfirm1.Checked = Pub.uSetting.Option_Confirm1;
|
|
this.chkAutoConfirm.Checked = Pub.uSetting.Option_AutoConfirm;
|
|
this.chkVname.Checked = Pub.uSetting.Option_vname;
|
|
//this.chkfixprint1.Checked = Pub.uSetting.Option_FixPrint1;
|
|
//PrintPos1 = Pub.uSetting.Option_PrintPos1;
|
|
//DisplayPrintPos(PrintPos1);
|
|
|
|
|
|
//작업형태를 다시 시작해준다. - 210329
|
|
Func_SelectJobType(Pub.Result.JobType2);
|
|
|
|
//커스터머 목록을 선택
|
|
cmbCustomer.Items.Clear();
|
|
cmbCustomer.Items.Add("[0000] 선택안함");
|
|
if (Pub.setting.OnlineMode)
|
|
{
|
|
var tacustinfo = new DataSet1TableAdapters.Component_Reel_CustInfoTableAdapter();
|
|
var dtcustinfo = tacustinfo.GetData();
|
|
foreach (var dr in dtcustinfo.Where(t => string.IsNullOrEmpty(t.name) == false))
|
|
{
|
|
cmbCustomer.Items.Add($"[{dr.code}] {dr.name}");
|
|
}
|
|
}
|
|
cmbCustomer.SelectedIndex = 0;
|
|
|
|
|
|
//210122 -103SID
|
|
//this.chkQty3.Checked = Pub.uSetting.Option_QtyUpdate3;
|
|
//this.chkForce3.Checked = Pub.uSetting.Option_printforce3;
|
|
//this.chkconfirm3.Checked = Pub.uSetting.Option_Confirm3;
|
|
//this.chkfixprint3.Checked = Pub.uSetting.Option_FixPrint3;
|
|
//PrintPos3 = Pub.uSetting.Option_PrintPos3;
|
|
//DisplayPrintPos(PrintPos3, 3);
|
|
|
|
}
|
|
|
|
|
|
private void Dio_IOValueChanged(object sender, arDev.AzinAxt.DIO.IOValueEventArgs e)
|
|
{
|
|
if (Pub.setting.Enable_ButtonStart)
|
|
{
|
|
var pin = (eDIName)e.ArrIDX;
|
|
if (Util_DO.GetIOInput(pin) == true)
|
|
{
|
|
if (pin == eDIName.BUT_STARTF) this.Confirm();
|
|
else if (pin == eDIName.BUT_STOPF || pin == eDIName.BUT_RESETF) this.Cancel();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
void Confirm()
|
|
{
|
|
if (this.InvokeRequired)
|
|
this.BeginInvoke(new MethodInvoker(Confirm), null);
|
|
else
|
|
{
|
|
this.Validate();
|
|
|
|
if (this.ModeData.isEmpty() || this.ModeData == "--")
|
|
{
|
|
Util.MsgE("작업 방식이 선택되지 않았습니다");
|
|
return;
|
|
}
|
|
if (chkAutoConfirm.Checked && this.chkconfirm1.Checked)
|
|
{
|
|
Util.MsgE("자동확정과 / 사용자 확인 옵션은 동시에 사용할 수 없습니다");
|
|
return;
|
|
}
|
|
if (this.ModeData == "--")
|
|
{
|
|
Util.MsgE("사용할 수 없는 작업방법 입니다");
|
|
return;
|
|
}
|
|
|
|
|
|
//커스터머정보 확인
|
|
Pub.Result.CustomerRule.Clear();
|
|
var code = cmbCustomer.Text.Substring(1, 4);
|
|
var name = cmbCustomer.Text.Substring(6).Trim();
|
|
if (Pub.setting.OnlineMode)
|
|
{
|
|
var taRule = new DataSet1TableAdapters.Component_Reel_CustRuleTableAdapter();
|
|
var dtRule = taRule.GetData(code);
|
|
foreach (var dr in dtRule)
|
|
{
|
|
if (dr.pre.isEmpty() == false || dr.pos.isEmpty() == false)
|
|
{
|
|
Pub.Result.CustomerRule.Add(new CCustRule
|
|
{
|
|
Code = dr.code,
|
|
Name = name,
|
|
Expression = dr.exp,
|
|
Len = dr.len,
|
|
Post = dr.pos,
|
|
Pre = dr.pre,
|
|
}); ;
|
|
}
|
|
}
|
|
}
|
|
//if (chkfixprint1.Checked && this.PrintPos1.isEmpty())
|
|
//{
|
|
// Util.MsgE("프린트 위치 고정옵션이 켜져 있으나 위치가 지정되지 않았습니다");
|
|
// return;
|
|
//}
|
|
|
|
//if (chkfixprint3.Checked && this.PrintPos3.isEmpty())
|
|
//{
|
|
// Util.MsgE("103 SID 의 프린트 위치를 지정하세요");
|
|
// return;
|
|
//}
|
|
|
|
//작업형태 지정
|
|
Pub.Result.JobType2 = this.ModeData;
|
|
Pub.Result.JobFirst = true; //처음시작 220117
|
|
|
|
//사용자 정보에 저장한다. 210219 - a모드별로 저장한다.
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "qtysync", chkQty1.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "qtyman", chkQtyM.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "confirm", chkconfirm1.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "partsync", chkUpdatePart.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "newid", chkNew.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "vname", chkVname.Checked ? "1" : "0");
|
|
Pub.uSetting.Xml.set_Data("M" + ModeData, "autoconf", this.chkAutoConfirm.Checked ? "1" : "0");
|
|
|
|
Pub.uSetting.Save();
|
|
|
|
//옵션사항 설정 210121
|
|
//if (ModeData == "DRY") Pub.setting.DryRun = true;
|
|
Pub.Result.Option_vname = chkVname.Checked;
|
|
Pub.Result.Option_Confirm1 = chkconfirm1.Checked;
|
|
Pub.Result.Option_QtyUpdate1 = chkQty1.Checked;
|
|
Pub.Result.Option_QtyUpdateM = chkQtyM.Checked;
|
|
Pub.Result.Option_partUpdate = chkUpdatePart.Checked;
|
|
Pub.Result.Option_NewReelID = chkNew.Checked;
|
|
Pub.Result.Option_AutoConf = chkAutoConfirm.Checked;
|
|
this.DialogResult = DialogResult.OK;
|
|
}
|
|
|
|
}
|
|
void Cancel()
|
|
{
|
|
if (this.InvokeRequired)
|
|
this.BeginInvoke(new MethodInvoker(Cancel), null);
|
|
else
|
|
this.Close();
|
|
}
|
|
|
|
void __Closing(object sender, FormClosingEventArgs e)
|
|
{
|
|
// if (fb != null) fb.Dispose();
|
|
Pub.dio.IOValueChanged -= Dio_IOValueChanged;
|
|
Pub.flag.set(eFlag.SCR_JOBSELECT, false, "selectjbo");
|
|
}
|
|
|
|
public string GetCntStr(uint cnt)
|
|
{
|
|
if (cnt > 1000000)
|
|
{
|
|
return (cnt * 1.0 / 1000000.0).ToString("N1") + "M";
|
|
|
|
}
|
|
else if (cnt > 1000)
|
|
{
|
|
return (cnt * 1.0 / 1000).ToString("N1") + "K";
|
|
}
|
|
else return cnt.ToString();
|
|
}
|
|
|
|
#region "Mouse Form Move"
|
|
|
|
private Boolean fMove = false;
|
|
private Point MDownPos;
|
|
private void LbTitle_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (fMove)
|
|
{
|
|
Point offset = new Point(e.X - MDownPos.X, e.Y - MDownPos.Y);
|
|
this.Left += offset.X;
|
|
this.Top += offset.Y;
|
|
offset = new Point(0, 0);
|
|
}
|
|
}
|
|
private void LbTitle_MouseUp(object sender, MouseEventArgs e)
|
|
{
|
|
fMove = false;
|
|
}
|
|
private void LbTitle_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
MDownPos = new Point(e.X, e.Y);
|
|
fMove = true;
|
|
}
|
|
|
|
#endregion
|
|
|
|
private void tbClose_Click_1(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
private void btOK_Click(object sender, EventArgs e)
|
|
{
|
|
Confirm();
|
|
}
|
|
|
|
private void btCancle_Click(object sender, EventArgs e)
|
|
{
|
|
Cancel();
|
|
}
|
|
|
|
|
|
|
|
private void arLabel1_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
private void arLabel5_Click(object sender, EventArgs e)
|
|
{
|
|
var lbl = sender as arCtl.arLabel;
|
|
var lblValue = int.Parse(lbl.Tag.ToString());
|
|
|
|
}
|
|
|
|
|
|
private void arLabel18_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void checkBox4_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
//선택에 따라서 라디오 박스 업데이트
|
|
//tableLayoutPanel1.Enabled = chkfixprint1.Checked;
|
|
var chk = sender as CheckBox;
|
|
//label26.Text = this.chkfixprint1.Checked ? "부착위치(지정)" : "부착위치(자동)";
|
|
|
|
}
|
|
|
|
|
|
|
|
//string PrintPos1 = string.Empty;
|
|
//string PrintPos3 = string.Empty;
|
|
private void pb7_Click(object sender, EventArgs e)
|
|
{
|
|
//부착위치
|
|
var lb = sender as Label;
|
|
//PrintPos1 = lb.Tag.ToString();
|
|
//DisplayPrintPos(PrintPos1);
|
|
//this.radO1.Checked = false; //직접선택했으니 해제 한다
|
|
//label26.Text = this.chkfixprint1.Checked ? "부착위치(지정)" : "부착위치(자동)";
|
|
}
|
|
private void label6_Click(object sender, EventArgs e)
|
|
{
|
|
//부착위치
|
|
var lb = sender as Label;
|
|
//PrintPos3 = lb.Tag.ToString();
|
|
//DisplayPrintPos(PrintPos3, 3);
|
|
//this.radO3.Checked = false; //직접선택했으니 해제 한다
|
|
|
|
//label10.Text = this.chkfixprint3.Checked ? "부착위치(지정)" : "부착위치(자동)";
|
|
}
|
|
//void DisplayPrintPos(string v)
|
|
//{
|
|
// Label[] lbs = null;
|
|
// lbs = new Label[] { pb7, pb8, pb9, pb4, pb5, pb6, pb1, pb2, pb3 };
|
|
// //else lbs = new Label[] { pc7, pc8, pc9, pc4, pc5, pc6, pc1, pc2, pc3 };
|
|
|
|
// foreach (Label item in lbs)
|
|
// if (item.Tag.ToString() == v) item.BackColor = Color.Blue;
|
|
// else item.BackColor = Color.FromArgb(64, 64, 64);
|
|
//}
|
|
|
|
private void btMix_Click(object sender, EventArgs e)
|
|
{
|
|
var lb = sender as arCtl.arLabel;
|
|
Func_SelectJobType(lb.Tag.ToString());
|
|
}
|
|
|
|
arCtl.arLabel[] btsMOD;
|
|
string ModeData = string.Empty;
|
|
void Func_SelectJobType(string mode)
|
|
{
|
|
ModeData = mode;
|
|
|
|
if (btsMOD == null)
|
|
btsMOD = new arCtl.arLabel[] { bt33, bt61, bt13, bt31, btRe, btManual };
|
|
|
|
foreach (var lb in btsMOD)
|
|
{
|
|
if (lb.Tag.ToString() == mode)
|
|
{
|
|
lb.BackColor = Color.Green;
|
|
lb.BackColor2 = Color.Lime;
|
|
}
|
|
else
|
|
{
|
|
lb.BackColor = Color.FromArgb(0, 0, 0);
|
|
lb.BackColor2 = Color.FromArgb(150, 150, 150);
|
|
}
|
|
}
|
|
|
|
//각 모드별 옵션값 확인
|
|
if (mode == "M") //manual
|
|
{
|
|
this.chkQty1.Checked = false;
|
|
this.chkconfirm1.Checked = true;
|
|
this.chkNew.Checked = false;
|
|
this.chkUpdatePart.Checked = false;
|
|
this.chkAutoConfirm.Checked = false;
|
|
this.chkQtyM.Checked = false;
|
|
groupBox1.Enabled = true;
|
|
}
|
|
else if (mode == "DRY")
|
|
{
|
|
this.chkQty1.Checked = false;
|
|
this.chkconfirm1.Checked = false;
|
|
this.chkNew.Checked = false;
|
|
this.chkUpdatePart.Checked = false;
|
|
this.chkAutoConfirm.Checked = false;
|
|
this.chkQtyM.Checked = false;
|
|
groupBox1.Enabled = false;
|
|
}
|
|
else
|
|
{
|
|
this.chkQty1.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "qtysync") == "1";
|
|
this.chkUpdatePart.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "partsync") == "1";
|
|
this.chkQtyM.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "qtyman") == "1";
|
|
this.chkconfirm1.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "confirm") == "1";
|
|
//this.PrintPos1 = Pub.uSetting.Xml.get_Data("M" + ModeData, "printpos");
|
|
this.chkNew.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "newid") == "1";
|
|
this.chkAutoConfirm.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "autoconf") == "1";
|
|
this.chkVname.Checked = Pub.uSetting.Xml.get_Data("M" + ModeData, "vname") == "1";
|
|
this.groupBox1.Enabled = true;
|
|
}
|
|
|
|
//DisplayPrintPos(this.PrintPos1);
|
|
//메뉴얼은 확인창을 꼭 사용한다
|
|
}
|
|
}
|
|
}
|