Files
ATV_STDLabelAttach/Handler/Project_form2/Dialog/fSelectJob.cs
2025-07-17 16:11:46 +09:00

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);
//메뉴얼은 확인창을 꼭 사용한다
}
}
}