From 1273ca823688c266863814fac179e2674c1f3c5b Mon Sep 17 00:00:00 2001 From: atvstdla Date: Tue, 30 Sep 2025 17:35:11 +0900 Subject: [PATCH] .. --- Handler/Project/Class/CResult.cs | 5 +- Handler/Project/Class/EEMStatus.cs | 706 +++++++++--------- Handler/Project/Class/KeyenceBarcodeData.cs | 2 +- Handler/Project/Class/VisionData.cs | 21 +- Handler/Project/DataSet1.xsd | 175 ++--- Handler/Project/DataSet1.xss | 8 +- Handler/Project/DataSet11.Designer.cs | 317 ++++---- Handler/Project/Dialog/Model_Motion.cs | 2 +- .../Dialog/Model_Operation.Designer.cs | 250 ++++--- Handler/Project/Dialog/Model_Operation.cs | 100 ++- Handler/Project/Dialog/Model_Operation.resx | 18 +- Handler/Project/Dialog/RegExRule.Designer.cs | 24 +- Handler/Project/Dialog/RegExRule.cs | 14 +- Handler/Project/Dialog/RegExRule.resx | 28 +- .../Project/Dialog/fLoaderInfo.Designer.cs | 21 +- Handler/Project/Dialog/fLoaderInfo.cs | 29 +- Handler/Project/Dialog/fLoaderInfo.resx | 6 + Handler/Project/Dialog/fSelectJob.cs | 2 +- Handler/Project/Manager/DatabaseManager.cs | 30 + Handler/Project/Manager/ModelManager.cs | 2 +- Handler/Project/Pub.cs | 13 +- Handler/Project/RunCode/Device/_Keyence.cs | 7 +- .../RunCode/Display/_Interval_250ms.cs | 12 +- .../RunCode/Display/_Interval_500ms.cs | 2 +- .../RunCode/RunSequence/0_RUN_STARTCHK_SW.cs | 12 +- .../RunSequence/2_RUN_ROOT_SEQUENCE.cs | 2 +- .../RunCode/RunSequence/3_KEYENCE_READ.cs | 76 +- .../Project/RunCode/StateMachine/_Events.cs | 2 +- .../StateMachine/_SPS_BarcodeProcess.cs | 87 ++- .../StateMachine/_SPS_RecvQRProcess.cs | 247 +++--- Handler/Project/STDLabelAttach(ATV).csproj | 1 + Handler/Project/Util/BarcodeDataProcessing.cs | 16 +- Handler/Project/fMain.Designer.cs | 6 +- Handler/Project/fMain.cs | 103 ++- Handler/Project/fMain.resx | 20 +- keyence_front.ptc | Bin 21668 -> 21668 bytes keyence_rear.ptc | Bin 21668 -> 21668 bytes 37 files changed, 1333 insertions(+), 1033 deletions(-) create mode 100644 Handler/Project/Manager/DatabaseManager.cs diff --git a/Handler/Project/Class/CResult.cs b/Handler/Project/Class/CResult.cs index 52d6ce6..76b86f4 100644 --- a/Handler/Project/Class/CResult.cs +++ b/Handler/Project/Class/CResult.cs @@ -24,6 +24,8 @@ namespace Project public List BCDPattern; public List BCDIgnorePattern; + public object BCDPatternLock = new object(); + public DateTime ResetButtonDownTime = DateTime.Now; public Boolean ClearAllSID = false; public Class.CHistorySIDRef SIDReference; //SIDLIST받은 내역 @@ -203,7 +205,7 @@ namespace Project SIDReference = new Class.CHistorySIDRef(); SIDHistory = new DataSet1.SIDHistoryDataTable(); - BCDPattern = new List(); + BCDPattern = new List(); OUTHistory = new List(); this.Clear("Result ctor"); @@ -275,6 +277,7 @@ namespace Project PrintPostionList = new Dictionary(); else PrintPostionList.Clear(); + PUB.log.Add("Print Positoin Clear"); ItemDataL.Clear(Reason); ItemDataC.Clear(Reason); diff --git a/Handler/Project/Class/EEMStatus.cs b/Handler/Project/Class/EEMStatus.cs index d528e18..d2b067b 100644 --- a/Handler/Project/Class/EEMStatus.cs +++ b/Handler/Project/Class/EEMStatus.cs @@ -1,393 +1,393 @@ -using Project; -using Project.Device; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Management; -using System.Net; -using System.Net.NetworkInformation; -using System.Text; -using System.Threading.Tasks; -using AR; +//using Project; +//using Project.Device; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Management; +//using System.Net; +//using System.Net.NetworkInformation; +//using System.Text; +//using System.Threading.Tasks; +//using AR; -/// -/// ============================================================================ -/// 장비기술 상태 모니터링 관련 클래스 -/// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다. -/// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다. -/// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다. -/// ============================================================================ -/// 작성자 : chi -/// 작성일 : 202-06-15 -/// GIT : (none) -/// -public static partial class EEMStatus -{ - static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true); - static string ip = string.Empty; - static string mac = string.Empty; - static DateTime StatusChecktime = DateTime.Now; - static DateTime MonitorChecktime = DateTime.Now.AddYears(-1); - static DateTime FileCheckTime = DateTime.Now; - static string monitorfile = string.Empty; - /// - /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다. - /// - public static int UpdateStatusInterval { get; set; } = 180; - public static int UpdateFileInterval { get; set; } = 3; - static bool queryok = false; - static bool UpdateRun = false; +///// +///// ============================================================================ +///// 장비기술 상태 모니터링 관련 클래스 +///// 이 클래스는 SQLfiletoDB 프로그램과 같이 사용하는 것을 권장합니다. +///// 현재 실행 중인 프로그램의 하위 폴더 Status 에 입력된 상태값을 SQL 파일로 기록합니다. +///// SQLfiletoDB는 SQL파일을 실제 DB에 기록하는 프로그램입니다. +///// ============================================================================ +///// 작성자 : chi +///// 작성일 : 202-06-15 +///// GIT : (none) +///// +//public static partial class EEMStatus +//{ +// static System.Threading.ManualResetEvent mre = new System.Threading.ManualResetEvent(true); +// static string ip = string.Empty; +// static string mac = string.Empty; +// static DateTime StatusChecktime = DateTime.Now; +// static DateTime MonitorChecktime = DateTime.Now.AddYears(-1); +// static DateTime FileCheckTime = DateTime.Now; +// static string monitorfile = string.Empty; +// /// +// /// UpdateStatusSQL 명령이 동작하는 간격이며 기본 180초(=3분)로 되어 있습니다. +// /// +// public static int UpdateStatusInterval { get; set; } = 180; +// public static int UpdateFileInterval { get; set; } = 3; +// static bool queryok = false; +// static bool UpdateRun = false; - public static string IP - { - get - { - if (queryok == false) GetNetworkInfo(); - return ip; - } - set { ip = value; } - } - public static string MAC - { - get - { - if (queryok == false) GetNetworkInfo(); - return mac; - } - set - { - mac = value; - } - } +// public static string IP +// { +// get +// { +// if (queryok == false) GetNetworkInfo(); +// return ip; +// } +// set { ip = value; } +// } +// public static string MAC +// { +// get +// { +// if (queryok == false) GetNetworkInfo(); +// return mac; +// } +// set +// { +// mac = value; +// } +// } - /// - /// 현재 시스템의 IP/MAC정보를 취득합니다. - /// - static void GetNetworkInfo() - { +// /// +// /// 현재 시스템의 IP/MAC정보를 취득합니다. +// /// +// static void GetNetworkInfo() +// { - ip = ""; - mac = ""; - // string prgmName = Application.ProductName; +// ip = ""; +// mac = ""; +// // string prgmName = Application.ProductName; - var nif = NetworkInterface.GetAllNetworkInterfaces(); - var host = Dns.GetHostEntry(Dns.GetHostName()); - string fullname = System.Net.Dns.GetHostEntry("").HostName; - foreach (IPAddress r in host.AddressList) - { - string str = r.ToString(); +// var nif = NetworkInterface.GetAllNetworkInterfaces(); +// var host = Dns.GetHostEntry(Dns.GetHostName()); +// string fullname = System.Net.Dns.GetHostEntry("").HostName; +// foreach (IPAddress r in host.AddressList) +// { +// string str = r.ToString(); - if (str != "" && str.Substring(0, 3) == "10.") - { - ip = str; - break; - } - } +// if (str != "" && str.Substring(0, 3) == "10.") +// { +// ip = str; +// break; +// } +// } - string rtn = string.Empty; - ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); - ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); - foreach (ManagementObject mo in query1.Get()) - { - string[] address = (string[])mo["IPAddress"]; - if (address[0] == ip && mo["MACAddress"] != null) - { - mac = mo["MACAddress"].ToString(); - break; - } - } - queryok = true; - } +// string rtn = string.Empty; +// ObjectQuery oq = new System.Management.ObjectQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'"); +// ManagementObjectSearcher query1 = new ManagementObjectSearcher(oq); +// foreach (ManagementObject mo in query1.Get()) +// { +// string[] address = (string[])mo["IPAddress"]; +// if (address[0] == ip && mo["MACAddress"] != null) +// { +// mac = mo["MACAddress"].ToString(); +// break; +// } +// } +// queryok = true; +// } - public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "") - { - var tsrun = DateTime.Now - StatusChecktime; - if (tsrun.TotalSeconds >= UpdateStatusInterval) - { - AddStatusSQL(status, "UPDATE", extrun: _extrun); - StatusChecktime = DateTime.Now; - } +// public static void UpdateStatusSQL(eSMStep status, bool _extrun = false, string remark = "") +// { +// var tsrun = DateTime.Now - StatusChecktime; +// if (tsrun.TotalSeconds >= UpdateStatusInterval) +// { +// AddStatusSQL(status, "UPDATE", extrun: _extrun); +// StatusChecktime = DateTime.Now; +// } - //내부실행모드일때에만 파일을 처리한다 - if (_extrun == false) - { - var tsfile = DateTime.Now - FileCheckTime; - if (tsfile.TotalSeconds >= UpdateFileInterval) - { - if (UpdateRun == false) - { - UpdateRun = true; - Task.Run(() => - { - UpdateFileToDB(); - UpdateRun = false; - }); - } - FileCheckTime = DateTime.Now; - } - } - } +// //내부실행모드일때에만 파일을 처리한다 +// if (_extrun == false) +// { +// var tsfile = DateTime.Now - FileCheckTime; +// if (tsfile.TotalSeconds >= UpdateFileInterval) +// { +// if (UpdateRun == false) +// { +// UpdateRun = true; +// Task.Run(() => +// { +// UpdateFileToDB(); +// UpdateRun = false; +// }); +// } +// FileCheckTime = DateTime.Now; +// } +// } +// } - /// - /// 상태모니터링 프로그램의 실행파일 명 - /// - static string StatusMonitorFile - { - get - { - if (string.IsNullOrEmpty(monitorfile)) - monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe"); - return monitorfile; - } - } +// /// +// /// 상태모니터링 프로그램의 실행파일 명 +// /// +// static string StatusMonitorFile +// { +// get +// { +// if (string.IsNullOrEmpty(monitorfile)) +// monitorfile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status", "SQLFileToDB.exe"); +// return monitorfile; +// } +// } - static System.Diagnostics.Process CheckMonitor() - { - if (System.IO.File.Exists(StatusMonitorFile) == false) return null; +// static System.Diagnostics.Process CheckMonitor() +// { +// if (System.IO.File.Exists(StatusMonitorFile) == false) return null; - var prcs = System.Diagnostics.Process.GetProcesses(); - return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault(); - } +// var prcs = System.Diagnostics.Process.GetProcesses(); +// return prcs.Where(t => t.ProcessName.ToLower().StartsWith("sqlfiletodb")).FirstOrDefault(); +// } - public static bool RunStatusMonitor() - { - //파일이 없으면 실행 불가 - if (System.IO.File.Exists(StatusMonitorFile) == false) return false; +// public static bool RunStatusMonitor() +// { +// //파일이 없으면 실행 불가 +// if (System.IO.File.Exists(StatusMonitorFile) == false) return false; - //실행프로세스 검사 - var prc = CheckMonitor(); - if (prc == null) - { - try - { - prc = new System.Diagnostics.Process(); - prc.StartInfo = new System.Diagnostics.ProcessStartInfo - { - Arguments = string.Empty, - FileName = StatusMonitorFile, - }; - prc.Start(); - } - catch - { - return false; - } - } +// //실행프로세스 검사 +// var prc = CheckMonitor(); +// if (prc == null) +// { +// try +// { +// prc = new System.Diagnostics.Process(); +// prc.StartInfo = new System.Diagnostics.ProcessStartInfo +// { +// Arguments = string.Empty, +// FileName = StatusMonitorFile, +// }; +// prc.Start(); +// } +// catch +// { +// return false; +// } +// } - return true; - } +// return true; +// } - /// - /// 작업수량을 입력합니다 - /// - /// - /// - public static string AddStatusCount(int cnt, string remark = "") - { - if (remark.isEmpty()) remark = $"Count Set : {cnt}"; - return AddStatusSQL(PUB.sm.Step, remark, count: cnt); - } - /// - /// 상태메세지를 status 폴더에 기록합니다. - /// - /// 상태머신의 상태값 - /// 비고 - /// 기록일시 - /// 오류발생시 오류메세지가 반환 됩니다 - public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null) - { - if (queryok == false || MAC.isEmpty()) GetNetworkInfo(); - if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty; +// /// +// /// 작업수량을 입력합니다 +// /// +// /// +// /// +// public static string AddStatusCount(int cnt, string remark = "") +// { +// if (remark.isEmpty()) remark = $"Count Set : {cnt}"; +// return AddStatusSQL(PUB.sm.Step, remark, count: cnt); +// } +// /// +// /// 상태메세지를 status 폴더에 기록합니다. +// /// +// /// 상태머신의 상태값 +// /// 비고 +// /// 기록일시 +// /// 오류발생시 오류메세지가 반환 됩니다 +// public static string AddStatusSQL(eSMStep status, string remark = "", DateTime? wdate = null, bool extrun = false, int? count = null) +// { +// if (queryok == false || MAC.isEmpty()) GetNetworkInfo(); +// if (status == eSMStep.CLOSEWAIT || status == eSMStep.CLOSED) return string.Empty; - if (extrun) - { - //상태모니터링 프로그램을 실행합니다. - var tsMon = DateTime.Now - MonitorChecktime; - if (tsMon.TotalMinutes > 5) RunStatusMonitor(); - } +// if (extrun) +// { +// //상태모니터링 프로그램을 실행합니다. +// var tsMon = DateTime.Now - MonitorChecktime; +// if (tsMon.TotalMinutes > 5) RunStatusMonitor(); +// } - try - { - var state = 0; - string cntstr = "null"; - if (count != null) cntstr = count.ToString(); - var alarmid = string.Empty; - var alarmmsg = string.Empty; - if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}"; +// try +// { +// var state = 0; +// string cntstr = "null"; +// if (count != null) cntstr = count.ToString(); +// var alarmid = string.Empty; +// var alarmmsg = string.Empty; +// if (string.IsNullOrEmpty(remark)) remark = $"STS:{status}"; - if (status == eSMStep.RUN) state = 1; - else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY) - { - state = 2; - alarmid = PUB.Result.ResultErrorCode.ToString(); - alarmmsg = PUB.Result.ResultMessage; - } - else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다, - { - if (PUB.Result.ResultErrorCode == Project.eECode.USER_STEP || - PUB.Result.ResultErrorCode == Project.eECode.USER_STOP || - PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE")) - { - //사용자에의해 멈추는 것은 오류코드를 넣지 않는다. - } - else - { - alarmid = PUB.Result.ResultErrorCode.ToString(); - alarmmsg = PUB.Result.ResultMessage; - } - } - else if (status == eSMStep.INIT) state = 3; //시작 - else if (status == eSMStep.CLOSING) state = 4; //종료 +// if (status == eSMStep.RUN) state = 1; +// else if (status == eSMStep.ERROR || status == eSMStep.EMERGENCY) +// { +// state = 2; +// alarmid = PUB.Result.ResultErrorCode.ToString(); +// alarmmsg = PUB.Result.ResultMessage; +// } +// else if (status == eSMStep.PAUSE) //일시중지도 오류코드가 포함된다, +// { +// if (PUB.Result.ResultErrorCode == Project.eECode.USER_STEP || +// PUB.Result.ResultErrorCode == Project.eECode.USER_STOP || +// PUB.Result.ResultErrorCode.ToString().StartsWith("MESSAGE")) +// { +// //사용자에의해 멈추는 것은 오류코드를 넣지 않는다. +// } +// else +// { +// alarmid = PUB.Result.ResultErrorCode.ToString(); +// alarmmsg = PUB.Result.ResultMessage; +// } +// } +// else if (status == eSMStep.INIT) state = 3; //시작 +// else if (status == eSMStep.CLOSING) state = 4; //종료 - //length check - if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10); - if (remark.Length > 99) remark = remark.Substring(0, 99); - if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50); +// //length check +// if (alarmid.Length > 10) alarmid = alarmid.Substring(0, 10); +// if (remark.Length > 99) remark = remark.Substring(0, 99); +// if (alarmmsg.Length > 250) alarmmsg = alarmmsg.Substring(0, 50); - var mcid = AR.SETTING.Data.MCID;// Project.PUB.setting.MCID;//.Data.MCID; - //var mcid = Project.PUB.setting.MCID;//.Data.MCID; - var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); - var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " + - " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')"; +// var mcid = AR.SETTING.Data.MCID;// Project.PUB.setting.MCID;//.Data.MCID; +// //var mcid = Project.PUB.setting.MCID;//.Data.MCID; +// var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); +// var file = System.IO.Path.Combine(path, $"{DateTime.Now.ToString("HHmmssfff")}_{status}.sql"); +// var sql = "insert into MCMonitor_Rawdata(Model,status,remark,ip,mac,time,alarmid,alarmmsg,count,version) " + +// " values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}',{8},'{9}')"; - var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss"); - var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); - sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber); - System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); +// var timestr = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); +// if (wdate != null) timestr = ((DateTime)wdate).ToString("yyyy-MM-dd HH:mm:ss"); +// var VersionNumber = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); +// sql = string.Format(sql, mcid, state, remark.Replace("'", "''"), IP, MAC, timestr, alarmid, alarmmsg, cntstr, VersionNumber); +// System.IO.File.WriteAllText(file, sql, System.Text.Encoding.Default); - ////만들어진지 3분이 지난 파일은 삭제한다. - //var di = new System.IO.DirectoryInfo(path); - //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); - //if (fi != null) fi.Delete(); - if (state == 4) UpdateFileToDB(); - return string.Empty; - } - catch (Exception ex) - { - return ex.Message; - } - } +// ////만들어진지 3분이 지난 파일은 삭제한다. +// //var di = new System.IO.DirectoryInfo(path); +// //var fi = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly).Where(t => t.LastWriteTime < DateTime.Now.AddMinutes(-3)).FirstOrDefault(); +// //if (fi != null) fi.Delete(); +// if (state == 4) UpdateFileToDB(); +// return string.Empty; +// } +// catch (Exception ex) +// { +// return ex.Message; +// } +// } - static void UpdateFileToDB() - { - if (mre.WaitOne(1000) == false) return; - mre.Reset(); - var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; - var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); - var di = new System.IO.DirectoryInfo(path); - if (di.Exists == false) return; - var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly) - .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3)) - .OrderByDescending(t => t.LastWriteTime).FirstOrDefault(); +// static void UpdateFileToDB() +// { +// if (mre.WaitOne(1000) == false) return; +// mre.Reset(); +// var cs = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; +// var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Status"); +// var di = new System.IO.DirectoryInfo(path); +// if (di.Exists == false) return; +// var file = di.GetFiles("*.sql", System.IO.SearchOption.TopDirectoryOnly) +// .Where(t => t.LastWriteTime < DateTime.Now.AddSeconds(-3)) +// .OrderByDescending(t => t.LastWriteTime).FirstOrDefault(); - if (file == null) - { - mre.Set(); - return; - } +// if (file == null) +// { +// mre.Set(); +// return; +// } - //파일을 찾아야한다 - // PUB.log.Add($">> {file.FullName}"); +// //파일을 찾아야한다 +// // PUB.log.Add($">> {file.FullName}"); - try - { - var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default); - if (string.IsNullOrEmpty(sql)) - { - //비어잇다면 - var errpath = System.IO.Path.Combine(di.FullName, "Error"); - var errfile = System.IO.Path.Combine(errpath, file.Name); - if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile); - // ecnt += 1; - } - else - { - // var csstr = PUB.setting.ConnectionString; - // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; - var cn = new System.Data.SqlClient.SqlConnection(cs); - var cmd = new System.Data.SqlClient.SqlCommand(sql, cn); - cn.Open(); - var cnt = cmd.ExecuteNonQuery(); - //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}"); - cn.Close(); - cnt += 1; +// try +// { +// var sql = System.IO.File.ReadAllText(file.FullName, System.Text.Encoding.Default); +// if (string.IsNullOrEmpty(sql)) +// { +// //비어잇다면 +// var errpath = System.IO.Path.Combine(di.FullName, "Error"); +// var errfile = System.IO.Path.Combine(errpath, file.Name); +// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); +// System.IO.File.Move(file.FullName, errfile);// file.MoveTo(errfile); +// // ecnt += 1; +// } +// else +// { +// // var csstr = PUB.setting.ConnectionString; +// // if (string.IsNullOrEmpty(csstr)) csstr = "Data Source=10.131.15.18;Initial Catalog=EE;Persist Security Info=True;User ID=eeuser;Password=Amkor123!"; +// var cn = new System.Data.SqlClient.SqlConnection(cs); +// var cmd = new System.Data.SqlClient.SqlCommand(sql, cn); +// cn.Open(); +// var cnt = cmd.ExecuteNonQuery(); +// //if (cnt == 0) PUB.log.Add($"Result Empty : {sql}"); +// cn.Close(); +// cnt += 1; - var errpath = System.IO.Path.Combine(di.FullName, "Complete"); - var errfile = System.IO.Path.Combine(errpath, file.Name); - if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - //file.MoveTo(errfile); - System.IO.File.Move(file.FullName, errfile); - } +// var errpath = System.IO.Path.Combine(di.FullName, "Complete"); +// var errfile = System.IO.Path.Combine(errpath, file.Name); +// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); +// //file.MoveTo(errfile); +// System.IO.File.Move(file.FullName, errfile); +// } - } - catch (Exception ex) - { - if(ex.Message.Contains("deadlocked") == false) - { - var errpath = System.IO.Path.Combine(di.FullName, "Error"); - var errfile = System.IO.Path.Combine(errpath, file.Name); - if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); - try - { - //file.MoveTo(errfile); - System.IO.File.Move(file.FullName, errfile); +// } +// catch (Exception ex) +// { +// if(ex.Message.Contains("deadlocked") == false) +// { +// var errpath = System.IO.Path.Combine(di.FullName, "Error"); +// var errfile = System.IO.Path.Combine(errpath, file.Name); +// if (System.IO.Directory.Exists(errpath) == false) System.IO.Directory.CreateDirectory(errpath); +// try +// { +// //file.MoveTo(errfile); +// System.IO.File.Move(file.FullName, errfile); - //오류내용도 저장한다.. - var errfilename = errfile + "_error.txt"; - System.IO.File.WriteAllText(errfilename, ex.Message, System.Text.Encoding.Default); - } - catch (Exception ex2) - { +// //오류내용도 저장한다.. +// var errfilename = errfile + "_error.txt"; +// System.IO.File.WriteAllText(errfilename, ex.Message, System.Text.Encoding.Default); +// } +// catch (Exception ex2) +// { - } - } - else - { - Console.WriteLine("Dead lock error ignored"); - } +// } +// } +// else +// { +// Console.WriteLine("(UpdateFileToDB) Dead lock error ignored"); +// } - //ecnt += 1; - } +// //ecnt += 1; +// } - //try - //{ - // //생성된지 10일이 넘은 자료는 삭제한다. - // //시간소비를 피해서 1개의 파일만 작업한다 - // //var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories); - // //총3번의 데이터를 처리한다 - // //var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName); - // //int i = 0; - // //var dellist = files.TakeWhile(t => i++ < 3); - // //foreach (var delfile in dellist) - // //System.IO.File.Delete(delfile); - //} - //catch - //{ +// //try +// //{ +// // //생성된지 10일이 넘은 자료는 삭제한다. +// // //시간소비를 피해서 1개의 파일만 작업한다 +// // //var sqlfiles = di.GetFiles("*.sql", System.IO.SearchOption.AllDirectories); +// // //총3번의 데이터를 처리한다 +// // //var files = sqlfiles.Where(t => t.LastWriteTime < DateTime.Now.AddDays(-10)).Select(t => t.FullName); +// // //int i = 0; +// // //var dellist = files.TakeWhile(t => i++ < 3); +// // //foreach (var delfile in dellist) +// // //System.IO.File.Delete(delfile); +// //} +// //catch +// //{ - //} - mre.Set(); - } -} +// //} +// mre.Set(); +// } +//} -/* -================================================= -변경내역 -================================================= -230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함 -230615 chi UpdateFiletoDB의 ManualResetEvent적용 - Version 항목 추가 -230612 chi 프로그램 시작/종료 alarmid항목 추가 - 완료된 파일 10일간 보존하도록 함 -230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함) -230617 chi 파일쓰기함수를 Task 로 처리 - 3분지난데이터 삭제기능 제거 -230516 chi initial commit -*/ +///* +//================================================= +//변경내역 +//================================================= +//230619 chi UpdateFileToDB 에서 폴더가 없다면 return 하도록 함 +//230615 chi UpdateFiletoDB의 ManualResetEvent적용 +// Version 항목 추가 +//230612 chi 프로그램 시작/종료 alarmid항목 추가 +// 완료된 파일 10일간 보존하도록 함 +//230522 chi extrun 모드 추가(agv용 - SQL파일을 외부 프로그램에서 처리하도록 함) +//230617 chi 파일쓰기함수를 Task 로 처리 +// 3분지난데이터 삭제기능 제거 +//230516 chi initial commit +//*/ diff --git a/Handler/Project/Class/KeyenceBarcodeData.cs b/Handler/Project/Class/KeyenceBarcodeData.cs index b8ddcfb..9b3fbd9 100644 --- a/Handler/Project/Class/KeyenceBarcodeData.cs +++ b/Handler/Project/Class/KeyenceBarcodeData.cs @@ -48,7 +48,7 @@ namespace Project.Class /// 정규식 분석이 완료되었다면 True를 반환합니다 /// public Boolean RegExConfirm { get; set; } - public Boolean RefExApply { get; set; } + public int RefExApply { get; set; } public KeyenceBarcodeData() { diff --git a/Handler/Project/Class/VisionData.cs b/Handler/Project/Class/VisionData.cs index 3aa732d..b19dbd7 100644 --- a/Handler/Project/Class/VisionData.cs +++ b/Handler/Project/Class/VisionData.cs @@ -15,7 +15,7 @@ namespace Project.Class public class VisionData : INotifyPropertyChanged { public int RetryLoader { get; set; } - public List bcdMessage { get; set; } + public Dictionary bcdMessage { get; set; } public Boolean LightOn { get; set; } public DateTime STime; //비젼시작시간 public DateTime ETime; //비젼종료시간 @@ -97,6 +97,15 @@ namespace Project.Class return true; } + //실제사용한 데이터 우선한다. + bcddata = bcdCanList.OrderByDescending(t=>t.Value.RefExApply).FirstOrDefault(); + if (bcddata.Value != null && bcddata.Value.RefExApply > 0) + { + bcd = bcddata.Value; + msg = $"Used Data({bcddata.Value.RefExApply})"; + return true; + } + //QR코드를 우선으로 사용 - return 릴은 적용하지 안게한다. //RQ코드가 적용되지 않게한다 210824 bcddata = bcdCanList.Where(t => t.Value.barcodeSymbol == "1" && t.Value.isNewLen15 == false && t.Value.Data.EndsWith(";;;") == false && t.Value.Data.StartsWith("RQ") == false).FirstOrDefault(); @@ -609,7 +618,7 @@ namespace Project.Class ApplyOffset = false; var baktime = new DateTime(1982, 11, 23); if (timeBackup) baktime = this.STime; - bcdMessage = new List(); + bcdMessage = new Dictionary(); PositionAngle = 0; HASHEADER = false; @@ -708,9 +717,9 @@ namespace Project.Class public void CopyTo(ref VisionData obj) { //바코드메세지 복사 - obj.bcdMessage = new List(); + obj.bcdMessage = new Dictionary(); foreach (var item in this.bcdMessage) - obj.bcdMessage.Add(item); + obj.bcdMessage.Add(item.Key, item.Value); obj.ApplyOffset = this.ApplyOffset; obj.ConfirmAuto = this.ConfirmAuto; @@ -839,9 +848,9 @@ namespace Project.Class public void UpdateTo(ref VisionData obj) { //바코드메세지 복사 - obj.bcdMessage = new List(); + obj.bcdMessage = new Dictionary(); foreach (var item in this.bcdMessage) - obj.bcdMessage.Add(item); + obj.bcdMessage.Add(item.Key, item.Value); obj.ApplyOffset = this.ApplyOffset; obj.ConfirmAuto = this.ConfirmAuto; diff --git a/Handler/Project/DataSet1.xsd b/Handler/Project/DataSet1.xsd index 954635c..89993f3 100644 --- a/Handler/Project/DataSet1.xsd +++ b/Handler/Project/DataSet1.xsd @@ -386,54 +386,54 @@ ORDER BY wdate DESC - + DELETE FROM [K4EE_Component_Reel_RegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))) - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - INSERT INTO [K4EE_Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); -SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM K4EE_Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description + + INSERT INTO [K4EE_Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore], [Pattern]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore, @Pattern); +SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern FROM K4EE_Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description - - - - - - - - - - + + + + + + + + + + - SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore -FROM K4EE_Component_Reel_RegExRule -WHERE (ISNULL(CustCode, '') LIKE @custcode) + SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern +FROM K4EE_Component_Reel_RegExRule +WHERE (ISNULL(CustCode, '') LIKE @custcode) ORDER BY CustCode, Seq, Description @@ -441,40 +441,40 @@ ORDER BY CustCode, Seq, Description - - UPDATE [K4EE_Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); -SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM K4EE_Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description + + UPDATE [K4EE_Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore, [Pattern] = @Pattern WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern FROM K4EE_Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -486,12 +486,12 @@ SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus - + @@ -505,37 +505,28 @@ SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus - + - SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol -FROM K4EE_Component_Reel_RegExRule -ORDER BY CustCode, Seq, Description + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule ORDER BY CustCode, Seq, Description - + - SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol -FROM K4EE_Component_Reel_RegExRule -WHERE (ISNULL(CustCode, '') = '') OR - (ISNULL(CustCode, '') LIKE @custcode) -ORDER BY CustCode, Seq, Description + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule WHERE (ISNULL(CustCode, '') = '') OR (ISNULL(CustCode, '') LIKE @custcode) ORDER BY CustCode, Seq, Description - + - SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol -FROM K4EE_Component_Reel_RegExRule -WHERE (ISNULL(CustCode, '') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1) -ORDER BY CustCode, Seq, Description + SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule WHERE (ISNULL(CustCode, '') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1) ORDER BY CustCode, Seq, Description @@ -1629,13 +1620,6 @@ WHERE (iNBOUND = 'OK') AND (STIME >= @stime) AND (SID = @sid) AND (BAT - - - - - - - @@ -1647,6 +1631,13 @@ WHERE (iNBOUND = 'OK') AND (STIME >= @stime) AND (SID = @sid) AND (BAT + + + + + + + diff --git a/Handler/Project/DataSet1.xss b/Handler/Project/DataSet1.xss index dead035..a3593f5 100644 --- a/Handler/Project/DataSet1.xss +++ b/Handler/Project/DataSet1.xss @@ -4,13 +4,13 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + - + - + @@ -19,7 +19,7 @@ - + diff --git a/Handler/Project/DataSet11.Designer.cs b/Handler/Project/DataSet11.Designer.cs index b701f49..9651b04 100644 --- a/Handler/Project/DataSet11.Designer.cs +++ b/Handler/Project/DataSet11.Designer.cs @@ -1906,8 +1906,6 @@ namespace Project { private global::System.Data.DataColumn columnSymbol; - private global::System.Data.DataColumn columnPattern; - private global::System.Data.DataColumn columnGroups; private global::System.Data.DataColumn columnIsEnable; @@ -1918,6 +1916,8 @@ namespace Project { private global::System.Data.DataColumn columnIsIgnore; + private global::System.Data.DataColumn columnPattern; + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public K4EE_Component_Reel_RegExRuleDataTable() { @@ -1991,14 +1991,6 @@ namespace Project { } } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public global::System.Data.DataColumn PatternColumn { - get { - return this.columnPattern; - } - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public global::System.Data.DataColumn GroupsColumn { @@ -2039,6 +2031,14 @@ namespace Project { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public global::System.Data.DataColumn PatternColumn { + get { + return this.columnPattern; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Browsable(false)] @@ -2076,7 +2076,7 @@ namespace Project { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public K4EE_Component_Reel_RegExRuleRow AddK4EE_Component_Reel_RegExRuleRow(int Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, bool IsEnable, bool IsTrust, bool IsAmkStd, bool IsIgnore) { + public K4EE_Component_Reel_RegExRuleRow AddK4EE_Component_Reel_RegExRuleRow(int Seq, string CustCode, string Description, string Symbol, string Groups, bool IsEnable, bool IsTrust, bool IsAmkStd, bool IsIgnore, string Pattern) { K4EE_Component_Reel_RegExRuleRow rowK4EE_Component_Reel_RegExRuleRow = ((K4EE_Component_Reel_RegExRuleRow)(this.NewRow())); object[] columnValuesArray = new object[] { null, @@ -2084,12 +2084,12 @@ namespace Project { CustCode, Description, Symbol, - Pattern, Groups, IsEnable, IsTrust, IsAmkStd, - IsIgnore}; + IsIgnore, + Pattern}; rowK4EE_Component_Reel_RegExRuleRow.ItemArray = columnValuesArray; this.Rows.Add(rowK4EE_Component_Reel_RegExRuleRow); return rowK4EE_Component_Reel_RegExRuleRow; @@ -2124,12 +2124,12 @@ namespace Project { this.columnCustCode = base.Columns["CustCode"]; this.columnDescription = base.Columns["Description"]; this.columnSymbol = base.Columns["Symbol"]; - this.columnPattern = base.Columns["Pattern"]; this.columnGroups = base.Columns["Groups"]; this.columnIsEnable = base.Columns["IsEnable"]; this.columnIsTrust = base.Columns["IsTrust"]; this.columnIsAmkStd = base.Columns["IsAmkStd"]; this.columnIsIgnore = base.Columns["IsIgnore"]; + this.columnPattern = base.Columns["Pattern"]; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -2145,8 +2145,6 @@ namespace Project { base.Columns.Add(this.columnDescription); this.columnSymbol = new global::System.Data.DataColumn("Symbol", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnSymbol); - this.columnPattern = new global::System.Data.DataColumn("Pattern", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnPattern); this.columnGroups = new global::System.Data.DataColumn("Groups", typeof(string), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnGroups); this.columnIsEnable = new global::System.Data.DataColumn("IsEnable", typeof(bool), null, global::System.Data.MappingType.Element); @@ -2157,6 +2155,8 @@ namespace Project { base.Columns.Add(this.columnIsAmkStd); this.columnIsIgnore = new global::System.Data.DataColumn("IsIgnore", typeof(bool), null, global::System.Data.MappingType.Element); base.Columns.Add(this.columnIsIgnore); + this.columnPattern = new global::System.Data.DataColumn("Pattern", typeof(string), null, global::System.Data.MappingType.Element); + base.Columns.Add(this.columnPattern); this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { this.columnId}, true)); this.columnId.AutoIncrement = true; @@ -2168,8 +2168,8 @@ namespace Project { this.columnCustCode.MaxLength = 20; this.columnDescription.MaxLength = 100; this.columnSymbol.MaxLength = 3; - this.columnPattern.MaxLength = 2147483647; this.columnGroups.MaxLength = 255; + this.columnPattern.MaxLength = 2147483647; } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -10676,22 +10676,6 @@ namespace Project { } } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public string Pattern { - get { - if (this.IsPatternNull()) { - return string.Empty; - } - else { - return ((string)(this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn])); - } - } - set { - this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn] = value; - } - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public string Groups { @@ -10772,6 +10756,22 @@ namespace Project { } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public string Pattern { + get { + if (this.IsPatternNull()) { + return string.Empty; + } + else { + return ((string)(this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn])); + } + } + set { + this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn] = value; + } + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public bool IsSeqNull() { @@ -10820,18 +10820,6 @@ namespace Project { this[this.tableK4EE_Component_Reel_RegExRule.SymbolColumn] = global::System.Convert.DBNull; } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public bool IsPatternNull() { - return this.IsNull(this.tableK4EE_Component_Reel_RegExRule.PatternColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] - public void SetPatternNull() { - this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn] = global::System.Convert.DBNull; - } - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] public bool IsGroupsNull() { @@ -10891,6 +10879,18 @@ namespace Project { public void SetIsIgnoreNull() { this[this.tableK4EE_Component_Reel_RegExRule.IsIgnoreColumn] = global::System.Convert.DBNull; } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public bool IsPatternNull() { + return this.IsNull(this.tableK4EE_Component_Reel_RegExRule.PatternColumn); + } + + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + public void SetPatternNull() { + this[this.tableK4EE_Component_Reel_RegExRule.PatternColumn] = global::System.Convert.DBNull; + } } /// @@ -17351,86 +17351,86 @@ ORDER BY wdate DESC, idx"; tableMapping.ColumnMappings.Add("CustCode", "CustCode"); tableMapping.ColumnMappings.Add("Description", "Description"); tableMapping.ColumnMappings.Add("Symbol", "Symbol"); - tableMapping.ColumnMappings.Add("Pattern", "Pattern"); tableMapping.ColumnMappings.Add("Groups", "Groups"); tableMapping.ColumnMappings.Add("IsEnable", "IsEnable"); tableMapping.ColumnMappings.Add("IsTrust", "IsTrust"); tableMapping.ColumnMappings.Add("IsAmkStd", "IsAmkStd"); tableMapping.ColumnMappings.Add("IsIgnore", "IsIgnore"); + tableMapping.ColumnMappings.Add("Pattern", "Pattern"); this._adapter.TableMappings.Add(tableMapping); this._adapter.DeleteCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.DeleteCommand.Connection = this.Connection; this._adapter.DeleteCommand.CommandText = @"DELETE FROM [K4EE_Component_Reel_RegExRule] WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore)))"; this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 3, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 255, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.InsertCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = @"INSERT INTO [K4EE_Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Pattern], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Pattern, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore); -SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM K4EE_Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description"; + this._adapter.InsertCommand.CommandText = @"INSERT INTO [K4EE_Component_Reel_RegExRule] ([Seq], [CustCode], [Description], [Symbol], [Groups], [IsEnable], [IsTrust], [IsAmkStd], [IsIgnore], [Pattern]) VALUES (@Seq, @CustCode, @Description, @Symbol, @Groups, @IsEnable, @IsTrust, @IsAmkStd, @IsIgnore, @Pattern); +SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern FROM K4EE_Component_Reel_RegExRule WHERE (Id = SCOPE_IDENTITY()) ORDER BY CustCode, Seq, Description"; this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 3, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 2147483647, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 255, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.InsertCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._adapter.UpdateCommand = new global::System.Data.SqlClient.SqlCommand(); this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE [K4EE_Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Pattern] = @Pattern, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); -SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore FROM K4EE_Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description"; + this._adapter.UpdateCommand.CommandText = @"UPDATE [K4EE_Component_Reel_RegExRule] SET [Seq] = @Seq, [CustCode] = @CustCode, [Description] = @Description, [Symbol] = @Symbol, [Groups] = @Groups, [IsEnable] = @IsEnable, [IsTrust] = @IsTrust, [IsAmkStd] = @IsAmkStd, [IsIgnore] = @IsIgnore, [Pattern] = @Pattern WHERE (([Id] = @Original_Id) AND ((@IsNull_Seq = 1 AND [Seq] IS NULL) OR ([Seq] = @Original_Seq)) AND ((@IsNull_CustCode = 1 AND [CustCode] IS NULL) OR ([CustCode] = @Original_CustCode)) AND ((@IsNull_Description = 1 AND [Description] IS NULL) OR ([Description] = @Original_Description)) AND ((@IsNull_Symbol = 1 AND [Symbol] IS NULL) OR ([Symbol] = @Original_Symbol)) AND ((@IsNull_Groups = 1 AND [Groups] IS NULL) OR ([Groups] = @Original_Groups)) AND ((@IsNull_IsEnable = 1 AND [IsEnable] IS NULL) OR ([IsEnable] = @Original_IsEnable)) AND ((@IsNull_IsTrust = 1 AND [IsTrust] IS NULL) OR ([IsTrust] = @Original_IsTrust)) AND ((@IsNull_IsAmkStd = 1 AND [IsAmkStd] IS NULL) OR ([IsAmkStd] = @Original_IsAmkStd)) AND ((@IsNull_IsIgnore = 1 AND [IsIgnore] IS NULL) OR ([IsIgnore] = @Original_IsIgnore))); +SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern FROM K4EE_Component_Reel_RegExRule WHERE (Id = @Id) ORDER BY CustCode, Seq, Description"; this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.VarChar, 3, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.VarChar, 2147483647, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.VarChar, 255, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@CustCode", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Description", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Symbol", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Groups", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Pattern", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Pattern", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Id", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Seq", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Seq", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_CustCode", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.VarChar, 20, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_CustCode", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "CustCode", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Description", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Description", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Symbol", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.VarChar, 3, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Symbol", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Symbol", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_Groups", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.VarChar, 255, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_Groups", global::System.Data.SqlDbType.NVarChar, 0, global::System.Data.ParameterDirection.Input, 0, 0, "Groups", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsEnable", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsEnable", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsEnable", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsTrust", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsTrust", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsTrust", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsAmkStd", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsAmkStd", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsAmkStd", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@IsNull_IsIgnore", global::System.Data.SqlDbType.Int, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, true, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 1, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Id", global::System.Data.SqlDbType.Variant, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Original_IsIgnore", global::System.Data.SqlDbType.Bit, 0, global::System.Data.ParameterDirection.Input, 0, 0, "IsIgnore", global::System.Data.DataRowVersion.Original, false, null, "", "", "")); + this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@Id", global::System.Data.SqlDbType.Int, 4, global::System.Data.ParameterDirection.Input, 0, 0, "Id", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); } [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] @@ -17446,9 +17446,10 @@ SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus this._commandCollection = new global::System.Data.SqlClient.SqlCommand[5]; this._commandCollection[0] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus" + - "t, IsAmkStd, IsIgnore\r\nFROM K4EE_Component_Reel_RegExRule\r\nWHERE (ISNULL(Cu" + - "stCode, \'\') LIKE @custcode)\r\nORDER BY CustCode, Seq, Description"; + this._commandCollection[0].CommandText = "SELECT Id, Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, " + + "IsAmkStd, IsIgnore, Pattern\r\nFROM K4EE_Component_Reel_RegExRule\r\nWHER" + + "E (ISNULL(CustCode, \'\') LIKE @custcode)\r\nORDER BY CustCode, Seq, Descript" + + "ion"; this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; this._commandCollection[0].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[1] = new global::System.Data.SqlClient.SqlCommand(); @@ -17460,25 +17461,24 @@ SELECT Id, Seq, CustCode, Description, Symbol, Pattern, Groups, IsEnable, IsTrus this._commandCollection[1].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@desc", global::System.Data.SqlDbType.VarChar, 100, global::System.Data.ParameterDirection.Input, 0, 0, "Description", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[2] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[2].Connection = this.Connection; - this._commandCollection[2].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust," + - " Pattern, Seq, Symbol\r\nFROM K4EE_Component_Reel_RegExRule\r\nORDER BY CustCode" + - ", Seq, Description"; + this._commandCollection[2].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, " + + "Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule ORDER BY CustCode, Seq, " + + "Description"; this._commandCollection[2].CommandType = global::System.Data.CommandType.Text; this._commandCollection[3] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[3].Connection = this.Connection; - this._commandCollection[3].CommandText = @"SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, Pattern, Seq, Symbol -FROM K4EE_Component_Reel_RegExRule -WHERE (ISNULL(CustCode, '') = '') OR - (ISNULL(CustCode, '') LIKE @custcode) -ORDER BY CustCode, Seq, Description"; + this._commandCollection[3].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, " + + "Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule WHERE (ISNULL(CustCode, " + + "\'\') = \'\') OR (ISNULL(CustCode, \'\') LIKE @custcode) ORDER BY CustCode, Seq, Descr" + + "iption"; this._commandCollection[3].CommandType = global::System.Data.CommandType.Text; this._commandCollection[3].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); this._commandCollection[4] = new global::System.Data.SqlClient.SqlCommand(); this._commandCollection[4].Connection = this.Connection; - this._commandCollection[4].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust," + - " Pattern, Seq, Symbol\r\nFROM K4EE_Component_Reel_RegExRule\r\nWHERE (ISNULL(Cu" + - "stCode, \'\') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1)\r\nORDER BY CustCode, Se" + - "q, Description"; + this._commandCollection[4].CommandText = "SELECT CustCode, Description, Groups, Id, IsAmkStd, IsEnable, IsIgnore, IsTrust, " + + "Pattern, Seq, Symbol FROM K4EE_Component_Reel_RegExRule WHERE (ISNULL(CustCode, " + + "\'\') LIKE @custcode) AND (ISNULL(IsIgnore, 0) = 1) ORDER BY CustCode, Seq, Descri" + + "ption"; this._commandCollection[4].CommandType = global::System.Data.CommandType.Text; this._commandCollection[4].Parameters.Add(new global::System.Data.SqlClient.SqlParameter("@custcode", global::System.Data.SqlDbType.VarChar, 1024, global::System.Data.ParameterDirection.Input, 0, 0, "", global::System.Data.DataRowVersion.Current, false, null, "", "", "")); } @@ -17742,7 +17742,7 @@ ORDER BY CustCode, Seq, Description"; [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(global::System.Nullable Seq, string CustCode, string Description, string Symbol, string Pattern, string Groups, global::System.Nullable IsEnable, global::System.Nullable IsTrust, global::System.Nullable IsAmkStd, global::System.Nullable IsIgnore) { + public virtual int Insert(global::System.Nullable Seq, string CustCode, string Description, string Symbol, string Groups, global::System.Nullable IsEnable, global::System.Nullable IsTrust, global::System.Nullable IsAmkStd, global::System.Nullable IsIgnore, string Pattern) { if ((Seq.HasValue == true)) { this.Adapter.InsertCommand.Parameters[0].Value = ((int)(Seq.Value)); } @@ -17767,41 +17767,41 @@ ORDER BY CustCode, Seq, Description"; else { this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Symbol)); } - if ((Pattern == null)) { + if ((Groups == null)) { this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; } else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Pattern)); - } - if ((Groups == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Groups)); + this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Groups)); } if ((IsEnable.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + this.Adapter.InsertCommand.Parameters[5].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[6].Value = ((bool)(IsTrust.Value)); } else { this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; } - if ((IsTrust.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + if ((IsAmkStd.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[7].Value = ((bool)(IsAmkStd.Value)); } else { this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; } - if ((IsAmkStd.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + if ((IsIgnore.HasValue == true)) { + this.Adapter.InsertCommand.Parameters[8].Value = ((bool)(IsIgnore.Value)); } else { this.Adapter.InsertCommand.Parameters[8].Value = global::System.DBNull.Value; } - if ((IsIgnore.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + if ((Pattern == null)) { + this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; } else { - this.Adapter.InsertCommand.Parameters[9].Value = global::System.DBNull.Value; + this.Adapter.InsertCommand.Parameters[9].Value = ((string)(Pattern)); } global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) @@ -17828,12 +17828,12 @@ ORDER BY CustCode, Seq, Description"; string CustCode, string Description, string Symbol, - string Pattern, string Groups, global::System.Nullable IsEnable, global::System.Nullable IsTrust, global::System.Nullable IsAmkStd, global::System.Nullable IsIgnore, + string Pattern, int Original_Id, global::System.Nullable Original_Seq, string Original_CustCode, @@ -17844,7 +17844,7 @@ ORDER BY CustCode, Seq, Description"; global::System.Nullable Original_IsTrust, global::System.Nullable Original_IsAmkStd, global::System.Nullable Original_IsIgnore, - object Id) { + int Id) { if ((Seq.HasValue == true)) { this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(Seq.Value)); } @@ -17869,41 +17869,41 @@ ORDER BY CustCode, Seq, Description"; else { this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(Symbol)); } - if ((Pattern == null)) { + if ((Groups == null)) { this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; } else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Pattern)); - } - if ((Groups == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Groups)); + this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Groups)); } if ((IsEnable.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[6].Value = ((bool)(IsEnable.Value)); + this.Adapter.UpdateCommand.Parameters[5].Value = ((bool)(IsEnable.Value)); + } + else { + this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; + } + if ((IsTrust.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[6].Value = ((bool)(IsTrust.Value)); } else { this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; } - if ((IsTrust.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((bool)(IsTrust.Value)); + if ((IsAmkStd.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[7].Value = ((bool)(IsAmkStd.Value)); } else { this.Adapter.UpdateCommand.Parameters[7].Value = global::System.DBNull.Value; } - if ((IsAmkStd.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[8].Value = ((bool)(IsAmkStd.Value)); + if ((IsIgnore.HasValue == true)) { + this.Adapter.UpdateCommand.Parameters[8].Value = ((bool)(IsIgnore.Value)); } else { this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; } - if ((IsIgnore.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((bool)(IsIgnore.Value)); + if ((Pattern == null)) { + this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; } else { - this.Adapter.UpdateCommand.Parameters[9].Value = global::System.DBNull.Value; + this.Adapter.UpdateCommand.Parameters[9].Value = ((string)(Pattern)); } this.Adapter.UpdateCommand.Parameters[10].Value = ((int)(Original_Id)); if ((Original_Seq.HasValue == true)) { @@ -17978,12 +17978,7 @@ ORDER BY CustCode, Seq, Description"; this.Adapter.UpdateCommand.Parameters[27].Value = ((object)(1)); this.Adapter.UpdateCommand.Parameters[28].Value = global::System.DBNull.Value; } - if ((Id == null)) { - throw new global::System.ArgumentNullException("Id"); - } - else { - this.Adapter.UpdateCommand.Parameters[29].Value = ((object)(Id)); - } + this.Adapter.UpdateCommand.Parameters[29].Value = ((int)(Id)); global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) != global::System.Data.ConnectionState.Open)) { @@ -18000,6 +17995,34 @@ ORDER BY CustCode, Seq, Description"; } } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] + [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] + [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] + public virtual int Update( + global::System.Nullable Seq, + string CustCode, + string Description, + string Symbol, + string Groups, + global::System.Nullable IsEnable, + global::System.Nullable IsTrust, + global::System.Nullable IsAmkStd, + global::System.Nullable IsIgnore, + string Pattern, + int Original_Id, + global::System.Nullable Original_Seq, + string Original_CustCode, + string Original_Description, + string Original_Symbol, + string Original_Groups, + global::System.Nullable Original_IsEnable, + global::System.Nullable Original_IsTrust, + global::System.Nullable Original_IsAmkStd, + global::System.Nullable Original_IsIgnore) { + return this.Update(Seq, CustCode, Description, Symbol, Groups, IsEnable, IsTrust, IsAmkStd, IsIgnore, Pattern, Original_Id, Original_Seq, Original_CustCode, Original_Description, Original_Symbol, Original_Groups, Original_IsEnable, Original_IsTrust, Original_IsAmkStd, Original_IsIgnore, Original_Id); + } + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")] [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] diff --git a/Handler/Project/Dialog/Model_Motion.cs b/Handler/Project/Dialog/Model_Motion.cs index 2ea6421..b7f5e7b 100644 --- a/Handler/Project/Dialog/Model_Motion.cs +++ b/Handler/Project/Dialog/Model_Motion.cs @@ -863,7 +863,7 @@ namespace Project if (UTIL.MsgQ(msg) != System.Windows.Forms.DialogResult.Yes) return; - if (!MOT.Move(axis, value, speed, acc, relative, !chkJogMoveForce.Checked, !chkJogMoveForce.Checked)) + if (!MOT.Move(axis, value, speed, acc, relative, true,true)) PUB.log.AddE("MOT:MOVE_:" + axis.ToString() + ",Msg=" + PUB.mot.ErrorMessage); diff --git a/Handler/Project/Dialog/Model_Operation.Designer.cs b/Handler/Project/Dialog/Model_Operation.Designer.cs index 3773b17..c35d63d 100644 --- a/Handler/Project/Dialog/Model_Operation.Designer.cs +++ b/Handler/Project/Dialog/Model_Operation.Designer.cs @@ -29,17 +29,13 @@ private void InitializeComponent() { this.components = new System.ComponentModel.Container(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Model_Operation)); this.dv = new arCtl.arDatagridView(); - this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dvc_title = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Code = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dvc_bsave = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.bs = new System.Windows.Forms.BindingSource(this.components); this.ds1 = new Project.DataSet1(); this.tmDisplay = new System.Windows.Forms.Timer(this.components); @@ -159,6 +155,12 @@ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.arLabel2 = new arCtl.arLabel(); this.arLabel18 = new arCtl.arLabel(); + this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_title = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Code = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dvc_bsave = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.btReName = new System.Windows.Forms.ToolStripButton(); + this.label24 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.dv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.ds1)).BeginInit(); @@ -201,15 +203,15 @@ this.Code, this.dvc_bsave}); this.dv.DataSource = this.bs; - dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle20.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle20.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle20.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle20.Padding = new System.Windows.Forms.Padding(5); - dataGridViewCellStyle20.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle20.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.dv.DefaultCellStyle = dataGridViewCellStyle20; + dataGridViewCellStyle5.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; + dataGridViewCellStyle5.BackColor = System.Drawing.SystemColors.Window; + dataGridViewCellStyle5.Font = new System.Drawing.Font("맑은 고딕", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + dataGridViewCellStyle5.ForeColor = System.Drawing.SystemColors.ControlText; + dataGridViewCellStyle5.Padding = new System.Windows.Forms.Padding(5); + dataGridViewCellStyle5.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle5.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle5.WrapMode = System.Windows.Forms.DataGridViewTriState.False; + this.dv.DefaultCellStyle = dataGridViewCellStyle5; this.dv.Dock = System.Windows.Forms.DockStyle.Fill; this.dv.Location = new System.Drawing.Point(0, 136); this.dv.MultiSelect = false; @@ -220,43 +222,6 @@ this.dv.TabIndex = 1; this.dv.DataError += new System.Windows.Forms.DataGridViewDataErrorEventHandler(this.dv_DataError); // - // Column1 - // - this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; - this.Column1.DataPropertyName = "idx"; - dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.Column1.DefaultCellStyle = dataGridViewCellStyle16; - this.Column1.HeaderText = "*"; - this.Column1.Name = "Column1"; - this.Column1.Width = 50; - // - // dvc_title - // - this.dvc_title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.dvc_title.DataPropertyName = "Title"; - dataGridViewCellStyle17.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); - this.dvc_title.DefaultCellStyle = dataGridViewCellStyle17; - this.dvc_title.HeaderText = "Description"; - this.dvc_title.Name = "dvc_title"; - // - // Code - // - this.Code.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.Code.DataPropertyName = "Code"; - dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.Code.DefaultCellStyle = dataGridViewCellStyle18; - this.Code.HeaderText = "Customer Code"; - this.Code.Name = "Code"; - // - // dvc_bsave - // - this.dvc_bsave.DataPropertyName = "BSave"; - dataGridViewCellStyle19.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dvc_bsave.DefaultCellStyle = dataGridViewCellStyle19; - this.dvc_bsave.HeaderText = "BLoad"; - this.dvc_bsave.Name = "dvc_bsave"; - this.dvc_bsave.Width = 86; - // // bs // this.bs.DataMember = "OPModel"; @@ -312,6 +277,7 @@ // // panel4 // + this.panel4.Controls.Add(this.label24); this.panel4.Controls.Add(this.dv); this.panel4.Controls.Add(this.panel1); this.panel4.Controls.Add(this.tableLayoutPanel1); @@ -707,7 +673,7 @@ this.chkSave2.AutoSize = true; this.chkSave2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); this.chkSave2.ForeColor = System.Drawing.Color.Tomato; - this.chkSave2.Location = new System.Drawing.Point(431, 51); + this.chkSave2.Location = new System.Drawing.Point(407, 51); this.chkSave2.Name = "chkSave2"; this.chkSave2.Size = new System.Drawing.Size(216, 23); this.chkSave2.TabIndex = 39; @@ -719,19 +685,19 @@ // this.checkBox34.AutoSize = true; this.checkBox34.ForeColor = System.Drawing.Color.Green; - this.checkBox34.Location = new System.Drawing.Point(617, 25); + this.checkBox34.Location = new System.Drawing.Point(582, 25); this.checkBox34.Name = "checkBox34"; - this.checkBox34.Size = new System.Drawing.Size(86, 23); + this.checkBox34.Size = new System.Drawing.Size(72, 23); this.checkBox34.TabIndex = 38; this.checkBox34.Tag = "10"; - this.checkBox34.Text = "Qty(Max)"; + this.checkBox34.Text = "Qty(M)"; this.checkBox34.UseVisualStyleBackColor = true; // // checkBox35 // this.checkBox35.AutoSize = true; this.checkBox35.ForeColor = System.Drawing.Color.Green; - this.checkBox35.Location = new System.Drawing.Point(548, 25); + this.checkBox35.Location = new System.Drawing.Point(517, 25); this.checkBox35.Name = "checkBox35"; this.checkBox35.Size = new System.Drawing.Size(63, 23); this.checkBox35.TabIndex = 37; @@ -743,7 +709,7 @@ // this.checkBox30.AutoSize = true; this.checkBox30.ForeColor = System.Drawing.Color.Blue; - this.checkBox30.Location = new System.Drawing.Point(311, 50); + this.checkBox30.Location = new System.Drawing.Point(291, 50); this.checkBox30.Name = "checkBox30"; this.checkBox30.Size = new System.Drawing.Size(62, 23); this.checkBox30.TabIndex = 32; @@ -754,7 +720,7 @@ // checkBox2 // this.checkBox2.AutoSize = true; - this.checkBox2.Location = new System.Drawing.Point(431, 25); + this.checkBox2.Location = new System.Drawing.Point(407, 25); this.checkBox2.Name = "checkBox2"; this.checkBox2.Size = new System.Drawing.Size(111, 23); this.checkBox2.TabIndex = 31; @@ -787,7 +753,7 @@ // checkBox3 // this.checkBox3.AutoSize = true; - this.checkBox3.Location = new System.Drawing.Point(311, 24); + this.checkBox3.Location = new System.Drawing.Point(291, 24); this.checkBox3.Name = "checkBox3"; this.checkBox3.Size = new System.Drawing.Size(114, 23); this.checkBox3.TabIndex = 28; @@ -799,7 +765,7 @@ // this.checkBox20.AutoSize = true; this.checkBox20.ForeColor = System.Drawing.Color.Blue; - this.checkBox20.Location = new System.Drawing.Point(255, 50); + this.checkBox20.Location = new System.Drawing.Point(236, 50); this.checkBox20.Name = "checkBox20"; this.checkBox20.Size = new System.Drawing.Size(50, 23); this.checkBox20.TabIndex = 27; @@ -811,7 +777,7 @@ // this.checkBox21.AutoSize = true; this.checkBox21.ForeColor = System.Drawing.Color.Blue; - this.checkBox21.Location = new System.Drawing.Point(156, 50); + this.checkBox21.Location = new System.Drawing.Point(141, 50); this.checkBox21.Name = "checkBox21"; this.checkBox21.Size = new System.Drawing.Size(93, 23); this.checkBox21.TabIndex = 25; @@ -823,7 +789,7 @@ // this.checkBox22.AutoSize = true; this.checkBox22.ForeColor = System.Drawing.Color.Blue; - this.checkBox22.Location = new System.Drawing.Point(73, 50); + this.checkBox22.Location = new System.Drawing.Point(59, 50); this.checkBox22.Name = "checkBox22"; this.checkBox22.Size = new System.Drawing.Size(77, 23); this.checkBox22.TabIndex = 25; @@ -834,7 +800,7 @@ // checkBox23 // this.checkBox23.AutoSize = true; - this.checkBox23.Location = new System.Drawing.Point(255, 24); + this.checkBox23.Location = new System.Drawing.Point(236, 24); this.checkBox23.Name = "checkBox23"; this.checkBox23.Size = new System.Drawing.Size(50, 23); this.checkBox23.TabIndex = 26; @@ -845,7 +811,7 @@ // checkBox24 // this.checkBox24.AutoSize = true; - this.checkBox24.Location = new System.Drawing.Point(156, 24); + this.checkBox24.Location = new System.Drawing.Point(141, 24); this.checkBox24.Name = "checkBox24"; this.checkBox24.Size = new System.Drawing.Size(93, 23); this.checkBox24.TabIndex = 25; @@ -856,7 +822,7 @@ // checkBox25 // this.checkBox25.AutoSize = true; - this.checkBox25.Location = new System.Drawing.Point(73, 24); + this.checkBox25.Location = new System.Drawing.Point(59, 24); this.checkBox25.Name = "checkBox25"; this.checkBox25.Size = new System.Drawing.Size(77, 23); this.checkBox25.TabIndex = 25; @@ -891,7 +857,7 @@ // this.checkBox29.AutoSize = true; this.checkBox29.ForeColor = System.Drawing.Color.Blue; - this.checkBox29.Location = new System.Drawing.Point(311, 51); + this.checkBox29.Location = new System.Drawing.Point(291, 51); this.checkBox29.Name = "checkBox29"; this.checkBox29.Size = new System.Drawing.Size(62, 23); this.checkBox29.TabIndex = 31; @@ -902,7 +868,7 @@ // checkBox18 // this.checkBox18.AutoSize = true; - this.checkBox18.Location = new System.Drawing.Point(431, 24); + this.checkBox18.Location = new System.Drawing.Point(407, 24); this.checkBox18.Name = "checkBox18"; this.checkBox18.Size = new System.Drawing.Size(111, 23); this.checkBox18.TabIndex = 30; @@ -935,7 +901,7 @@ // checkBox10 // this.checkBox10.AutoSize = true; - this.checkBox10.Location = new System.Drawing.Point(311, 24); + this.checkBox10.Location = new System.Drawing.Point(291, 24); this.checkBox10.Name = "checkBox10"; this.checkBox10.Size = new System.Drawing.Size(114, 23); this.checkBox10.TabIndex = 28; @@ -947,7 +913,7 @@ // this.checkBox9.AutoSize = true; this.checkBox9.ForeColor = System.Drawing.Color.Blue; - this.checkBox9.Location = new System.Drawing.Point(255, 50); + this.checkBox9.Location = new System.Drawing.Point(236, 50); this.checkBox9.Name = "checkBox9"; this.checkBox9.Size = new System.Drawing.Size(50, 23); this.checkBox9.TabIndex = 27; @@ -959,7 +925,7 @@ // this.checkBox6.AutoSize = true; this.checkBox6.ForeColor = System.Drawing.Color.Blue; - this.checkBox6.Location = new System.Drawing.Point(156, 50); + this.checkBox6.Location = new System.Drawing.Point(141, 50); this.checkBox6.Name = "checkBox6"; this.checkBox6.Size = new System.Drawing.Size(93, 23); this.checkBox6.TabIndex = 25; @@ -971,7 +937,7 @@ // this.checkBox7.AutoSize = true; this.checkBox7.ForeColor = System.Drawing.Color.Blue; - this.checkBox7.Location = new System.Drawing.Point(73, 50); + this.checkBox7.Location = new System.Drawing.Point(59, 50); this.checkBox7.Name = "checkBox7"; this.checkBox7.Size = new System.Drawing.Size(77, 23); this.checkBox7.TabIndex = 25; @@ -982,7 +948,7 @@ // checkBox8 // this.checkBox8.AutoSize = true; - this.checkBox8.Location = new System.Drawing.Point(255, 24); + this.checkBox8.Location = new System.Drawing.Point(236, 24); this.checkBox8.Name = "checkBox8"; this.checkBox8.Size = new System.Drawing.Size(50, 23); this.checkBox8.TabIndex = 26; @@ -993,7 +959,7 @@ // checkBox5 // this.checkBox5.AutoSize = true; - this.checkBox5.Location = new System.Drawing.Point(156, 24); + this.checkBox5.Location = new System.Drawing.Point(141, 24); this.checkBox5.Name = "checkBox5"; this.checkBox5.Size = new System.Drawing.Size(93, 23); this.checkBox5.TabIndex = 25; @@ -1004,7 +970,7 @@ // checkBox4 // this.checkBox4.AutoSize = true; - this.checkBox4.Location = new System.Drawing.Point(73, 24); + this.checkBox4.Location = new System.Drawing.Point(59, 24); this.checkBox4.Name = "checkBox4"; this.checkBox4.Size = new System.Drawing.Size(77, 23); this.checkBox4.TabIndex = 25; @@ -1042,7 +1008,7 @@ // this.checkBox28.AutoSize = true; this.checkBox28.ForeColor = System.Drawing.Color.Blue; - this.checkBox28.Location = new System.Drawing.Point(311, 51); + this.checkBox28.Location = new System.Drawing.Point(291, 51); this.checkBox28.Name = "checkBox28"; this.checkBox28.Size = new System.Drawing.Size(62, 23); this.checkBox28.TabIndex = 37; @@ -1054,19 +1020,19 @@ // this.checkBox26.AutoSize = true; this.checkBox26.ForeColor = System.Drawing.Color.Green; - this.checkBox26.Location = new System.Drawing.Point(617, 24); + this.checkBox26.Location = new System.Drawing.Point(582, 24); this.checkBox26.Name = "checkBox26"; - this.checkBox26.Size = new System.Drawing.Size(86, 23); + this.checkBox26.Size = new System.Drawing.Size(72, 23); this.checkBox26.TabIndex = 36; this.checkBox26.Tag = "10"; - this.checkBox26.Text = "Qty(Max)"; + this.checkBox26.Text = "Qty(M)"; this.checkBox26.UseVisualStyleBackColor = true; // // checkBox27 // this.checkBox27.AutoSize = true; this.checkBox27.ForeColor = System.Drawing.Color.Green; - this.checkBox27.Location = new System.Drawing.Point(548, 24); + this.checkBox27.Location = new System.Drawing.Point(517, 24); this.checkBox27.Name = "checkBox27"; this.checkBox27.Size = new System.Drawing.Size(63, 23); this.checkBox27.TabIndex = 35; @@ -1079,7 +1045,7 @@ this.chkSave1.AutoSize = true; this.chkSave1.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold); this.chkSave1.ForeColor = System.Drawing.Color.Tomato; - this.chkSave1.Location = new System.Drawing.Point(431, 50); + this.chkSave1.Location = new System.Drawing.Point(407, 50); this.chkSave1.Name = "chkSave1"; this.chkSave1.Size = new System.Drawing.Size(216, 23); this.chkSave1.TabIndex = 33; @@ -1090,7 +1056,7 @@ // checkBox19 // this.checkBox19.AutoSize = true; - this.checkBox19.Location = new System.Drawing.Point(431, 25); + this.checkBox19.Location = new System.Drawing.Point(407, 25); this.checkBox19.Name = "checkBox19"; this.checkBox19.Size = new System.Drawing.Size(111, 23); this.checkBox19.TabIndex = 31; @@ -1123,7 +1089,7 @@ // checkBox11 // this.checkBox11.AutoSize = true; - this.checkBox11.Location = new System.Drawing.Point(311, 24); + this.checkBox11.Location = new System.Drawing.Point(291, 24); this.checkBox11.Name = "checkBox11"; this.checkBox11.Size = new System.Drawing.Size(114, 23); this.checkBox11.TabIndex = 28; @@ -1135,7 +1101,7 @@ // this.checkBox12.AutoSize = true; this.checkBox12.ForeColor = System.Drawing.Color.Blue; - this.checkBox12.Location = new System.Drawing.Point(255, 50); + this.checkBox12.Location = new System.Drawing.Point(236, 50); this.checkBox12.Name = "checkBox12"; this.checkBox12.Size = new System.Drawing.Size(50, 23); this.checkBox12.TabIndex = 27; @@ -1147,7 +1113,7 @@ // this.checkBox13.AutoSize = true; this.checkBox13.ForeColor = System.Drawing.Color.Blue; - this.checkBox13.Location = new System.Drawing.Point(156, 50); + this.checkBox13.Location = new System.Drawing.Point(141, 50); this.checkBox13.Name = "checkBox13"; this.checkBox13.Size = new System.Drawing.Size(93, 23); this.checkBox13.TabIndex = 25; @@ -1159,7 +1125,7 @@ // this.checkBox14.AutoSize = true; this.checkBox14.ForeColor = System.Drawing.Color.Blue; - this.checkBox14.Location = new System.Drawing.Point(73, 50); + this.checkBox14.Location = new System.Drawing.Point(59, 50); this.checkBox14.Name = "checkBox14"; this.checkBox14.Size = new System.Drawing.Size(77, 23); this.checkBox14.TabIndex = 25; @@ -1170,7 +1136,7 @@ // checkBox15 // this.checkBox15.AutoSize = true; - this.checkBox15.Location = new System.Drawing.Point(255, 24); + this.checkBox15.Location = new System.Drawing.Point(236, 24); this.checkBox15.Name = "checkBox15"; this.checkBox15.Size = new System.Drawing.Size(50, 23); this.checkBox15.TabIndex = 26; @@ -1181,7 +1147,7 @@ // checkBox16 // this.checkBox16.AutoSize = true; - this.checkBox16.Location = new System.Drawing.Point(156, 24); + this.checkBox16.Location = new System.Drawing.Point(141, 24); this.checkBox16.Name = "checkBox16"; this.checkBox16.Size = new System.Drawing.Size(93, 23); this.checkBox16.TabIndex = 25; @@ -1192,7 +1158,7 @@ // checkBox17 // this.checkBox17.AutoSize = true; - this.checkBox17.Location = new System.Drawing.Point(73, 24); + this.checkBox17.Location = new System.Drawing.Point(59, 24); this.checkBox17.Name = "checkBox17"; this.checkBox17.Size = new System.Drawing.Size(77, 23); this.checkBox17.TabIndex = 25; @@ -1227,7 +1193,7 @@ // this.checkBox36.AutoSize = true; this.checkBox36.ForeColor = System.Drawing.Color.Blue; - this.checkBox36.Location = new System.Drawing.Point(311, 51); + this.checkBox36.Location = new System.Drawing.Point(291, 51); this.checkBox36.Name = "checkBox36"; this.checkBox36.Size = new System.Drawing.Size(62, 23); this.checkBox36.TabIndex = 37; @@ -1239,7 +1205,7 @@ // this.checkBox38.AutoSize = true; this.checkBox38.ForeColor = System.Drawing.Color.Green; - this.checkBox38.Location = new System.Drawing.Point(431, 24); + this.checkBox38.Location = new System.Drawing.Point(407, 24); this.checkBox38.Name = "checkBox38"; this.checkBox38.Size = new System.Drawing.Size(63, 23); this.checkBox38.TabIndex = 35; @@ -1272,7 +1238,7 @@ // checkBox41 // this.checkBox41.AutoSize = true; - this.checkBox41.Location = new System.Drawing.Point(311, 24); + this.checkBox41.Location = new System.Drawing.Point(291, 24); this.checkBox41.Name = "checkBox41"; this.checkBox41.Size = new System.Drawing.Size(114, 23); this.checkBox41.TabIndex = 28; @@ -1284,7 +1250,7 @@ // this.checkBox42.AutoSize = true; this.checkBox42.ForeColor = System.Drawing.Color.Blue; - this.checkBox42.Location = new System.Drawing.Point(255, 50); + this.checkBox42.Location = new System.Drawing.Point(236, 50); this.checkBox42.Name = "checkBox42"; this.checkBox42.Size = new System.Drawing.Size(50, 23); this.checkBox42.TabIndex = 27; @@ -1296,7 +1262,7 @@ // this.checkBox43.AutoSize = true; this.checkBox43.ForeColor = System.Drawing.Color.Blue; - this.checkBox43.Location = new System.Drawing.Point(156, 50); + this.checkBox43.Location = new System.Drawing.Point(141, 50); this.checkBox43.Name = "checkBox43"; this.checkBox43.Size = new System.Drawing.Size(93, 23); this.checkBox43.TabIndex = 25; @@ -1308,7 +1274,7 @@ // this.checkBox44.AutoSize = true; this.checkBox44.ForeColor = System.Drawing.Color.Blue; - this.checkBox44.Location = new System.Drawing.Point(73, 50); + this.checkBox44.Location = new System.Drawing.Point(59, 50); this.checkBox44.Name = "checkBox44"; this.checkBox44.Size = new System.Drawing.Size(77, 23); this.checkBox44.TabIndex = 25; @@ -1319,7 +1285,7 @@ // checkBox45 // this.checkBox45.AutoSize = true; - this.checkBox45.Location = new System.Drawing.Point(255, 24); + this.checkBox45.Location = new System.Drawing.Point(236, 24); this.checkBox45.Name = "checkBox45"; this.checkBox45.Size = new System.Drawing.Size(50, 23); this.checkBox45.TabIndex = 26; @@ -1330,7 +1296,7 @@ // checkBox46 // this.checkBox46.AutoSize = true; - this.checkBox46.Location = new System.Drawing.Point(156, 24); + this.checkBox46.Location = new System.Drawing.Point(141, 24); this.checkBox46.Name = "checkBox46"; this.checkBox46.Size = new System.Drawing.Size(93, 23); this.checkBox46.TabIndex = 25; @@ -1341,7 +1307,7 @@ // checkBox47 // this.checkBox47.AutoSize = true; - this.checkBox47.Location = new System.Drawing.Point(73, 24); + this.checkBox47.Location = new System.Drawing.Point(59, 24); this.checkBox47.Name = "checkBox47"; this.checkBox47.Size = new System.Drawing.Size(77, 23); this.checkBox47.TabIndex = 25; @@ -1546,7 +1512,7 @@ // this.label15.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vSIDConv", true)); this.label15.Dock = System.Windows.Forms.DockStyle.Left; - this.label15.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label15.Font = new System.Drawing.Font("Consolas", 9.75F); this.label15.Location = new System.Drawing.Point(400, 0); this.label15.Name = "label15"; this.label15.Size = new System.Drawing.Size(50, 20); @@ -1557,6 +1523,7 @@ // label14 // this.label14.Dock = System.Windows.Forms.DockStyle.Left; + this.label14.Font = new System.Drawing.Font("Consolas", 9.75F); this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.label14.Location = new System.Drawing.Point(300, 0); this.label14.Name = "label14"; @@ -1569,7 +1536,7 @@ // this.label13.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vJobInfo", true)); this.label13.Dock = System.Windows.Forms.DockStyle.Left; - this.label13.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label13.Font = new System.Drawing.Font("Consolas", 9.75F); this.label13.Location = new System.Drawing.Point(250, 0); this.label13.Name = "label13"; this.label13.Size = new System.Drawing.Size(50, 20); @@ -1580,6 +1547,7 @@ // label12 // this.label12.Dock = System.Windows.Forms.DockStyle.Left; + this.label12.Font = new System.Drawing.Font("Consolas", 9.75F); this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.label12.Location = new System.Drawing.Point(200, 0); this.label12.Name = "label12"; @@ -1592,7 +1560,7 @@ // this.label11.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vSIDInfo", true)); this.label11.Dock = System.Windows.Forms.DockStyle.Left; - this.label11.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label11.Font = new System.Drawing.Font("Consolas", 9.75F); this.label11.Location = new System.Drawing.Point(150, 0); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(50, 20); @@ -1603,6 +1571,7 @@ // label10 // this.label10.Dock = System.Windows.Forms.DockStyle.Left; + this.label10.Font = new System.Drawing.Font("Consolas", 9.75F); this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.label10.Location = new System.Drawing.Point(100, 0); this.label10.Name = "label10"; @@ -1615,7 +1584,7 @@ // this.label9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bs, "vOption", true)); this.label9.Dock = System.Windows.Forms.DockStyle.Left; - this.label9.Font = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label9.Font = new System.Drawing.Font("Consolas", 9.75F); this.label9.Location = new System.Drawing.Point(50, 0); this.label9.Name = "label9"; this.label9.Size = new System.Drawing.Size(50, 20); @@ -1626,6 +1595,7 @@ // label8 // this.label8.Dock = System.Windows.Forms.DockStyle.Left; + this.label8.Font = new System.Drawing.Font("Consolas", 9.75F); this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); this.label8.Location = new System.Drawing.Point(0, 0); this.label8.Name = "label8"; @@ -1642,6 +1612,7 @@ this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.btAdd, this.btDel, + this.btReName, this.btSave, this.btCopy, this.toolStripButton10, @@ -1795,6 +1766,65 @@ this.arLabel18.TextShadow = true; this.arLabel18.TextVisible = true; // + // Column1 + // + this.Column1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.AllCells; + this.Column1.DataPropertyName = "idx"; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Column1.DefaultCellStyle = dataGridViewCellStyle1; + this.Column1.HeaderText = "*"; + this.Column1.Name = "Column1"; + this.Column1.Width = 50; + // + // dvc_title + // + this.dvc_title.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.dvc_title.DataPropertyName = "Title"; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); + this.dvc_title.DefaultCellStyle = dataGridViewCellStyle2; + this.dvc_title.HeaderText = "Description(Vendor-Customer)"; + this.dvc_title.Name = "dvc_title"; + this.dvc_title.ReadOnly = true; + // + // Code + // + this.Code.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.Code.DataPropertyName = "Code"; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.Code.DefaultCellStyle = dataGridViewCellStyle3; + this.Code.HeaderText = "Customer Code"; + this.Code.Name = "Code"; + // + // dvc_bsave + // + this.dvc_bsave.DataPropertyName = "BSave"; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dvc_bsave.DefaultCellStyle = dataGridViewCellStyle4; + this.dvc_bsave.HeaderText = "BLoad"; + this.dvc_bsave.Name = "dvc_bsave"; + this.dvc_bsave.Width = 86; + // + // btReName + // + this.btReName.Image = ((System.Drawing.Image)(resources.GetObject("btReName.Image"))); + this.btReName.ImageTransparentColor = System.Drawing.Color.Magenta; + this.btReName.Name = "btReName"; + this.btReName.Size = new System.Drawing.Size(104, 52); + this.btReName.Text = "ReName"; + this.btReName.Click += new System.EventHandler(this.btReName_Click); + // + // label24 + // + this.label24.Dock = System.Windows.Forms.DockStyle.Bottom; + this.label24.Font = new System.Drawing.Font("Consolas", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label24.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.label24.Location = new System.Drawing.Point(0, 671); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(639, 20); + this.label24.TabIndex = 33; + this.label24.Text = "BLoad Descriptoin , 1=QR+DM+PDF417, 2=1D, 3=QR, 4=DM, 5=PDF417"; + this.label24.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // // Model_Operation // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; @@ -1945,10 +1975,6 @@ private System.Windows.Forms.CheckBox chkSave2; private System.Windows.Forms.CheckBox chkOwnZPL; private System.Windows.Forms.Button button1; - private System.Windows.Forms.DataGridViewTextBoxColumn Column1; - private System.Windows.Forms.DataGridViewTextBoxColumn dvc_title; - private System.Windows.Forms.DataGridViewTextBoxColumn Code; - private System.Windows.Forms.DataGridViewTextBoxColumn dvc_bsave; private System.Windows.Forms.Panel panel8; private System.Windows.Forms.CheckBox chkDisablePartNoValue; private System.Windows.Forms.CheckBox chkDisableBatchValue; @@ -1969,5 +1995,11 @@ private System.Windows.Forms.CheckBox checkBox45; private System.Windows.Forms.CheckBox checkBox46; private System.Windows.Forms.CheckBox checkBox47; + private System.Windows.Forms.DataGridViewTextBoxColumn Column1; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_title; + private System.Windows.Forms.DataGridViewTextBoxColumn Code; + private System.Windows.Forms.DataGridViewTextBoxColumn dvc_bsave; + private System.Windows.Forms.ToolStripButton btReName; + private System.Windows.Forms.Label label24; } } \ No newline at end of file diff --git a/Handler/Project/Dialog/Model_Operation.cs b/Handler/Project/Dialog/Model_Operation.cs index 9dc2df2..7286a97 100644 --- a/Handler/Project/Dialog/Model_Operation.cs +++ b/Handler/Project/Dialog/Model_Operation.cs @@ -28,6 +28,7 @@ namespace Project //if (COMM.SETTING.Data.FullScreen) this.WindowState = FormWindowState.Maximized; //this.WindowState = FormWindowState.Normal; dvc_bsave.HeaderText = $"BLoad\n(1~8)"; + this.panel3.Visible = PUB.UserAdmin; } private void FModelV_FormClosing(object sender, FormClosingEventArgs e) @@ -378,31 +379,57 @@ namespace Project { var drv = this.bs.Current as DataRowView; if (drv == null) return; + + //button - save + this.Validate(); + this.bs.EndEdit(); + + if (hasChanged() == true) + { + UTIL.MsgE("Need save"); + return; + } + + if (PUB.PasswordCheck() == false) + { + UTIL.MsgE("Password incorrect"); + return; + } + var dr = drv.Row as DataSet1.OPModelRow; - var dlg = UTIL.MsgQ(string.Format("Do you want to copy the following model information?\n\nModel Name : {0}", dr.Title)); + var oldname = dr.Title; + var newname = UTIL.InputBox("input new name", dr.Title); + + if (newname.Item1 == false) return; + + if(dr.Title.Equals(newname.Item2)) + { + UTIL.MsgE("Same Data"); + return; + } + + + + + var dlg = UTIL.MsgQ(string.Format("Do you want to copy the following model information?\n\nNew Model Name : {0}", newname.Item2)); if (dlg != System.Windows.Forms.DialogResult.Yes) return; var newdr = this.ds1.OPModel.NewOPModelRow(); UTIL.CopyData(dr, newdr); - newdr.Title += "-copy-"; + newdr.Title = newname.Item2; newdr.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; newdr.EndEdit(); this.ds1.OPModel.AddOPModelRow(newdr); if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + PUB.mdm.dataSet.OPModel.Clear(); + PUB.mdm.dataSet.OPModel.Merge(this.ds1.OPModel); + PUB.mdm.dataSet.AcceptChanges(); + PUB.mdm.SaveModelV(); - ////detailcopy - //var childs = ds1.OPModel.Where(t => t.pidx == dr.idx).ToArray(); - //foreach (var dr2 in childs) - //{ - // var newdr2 = this.ds1.OPModel.NewOPModelRow(); - // Util.CopyData(dr2, newdr2); - // newdr2.pidx = newdr.idx; - // newdr2.EndEdit(); - // newdr2.idx = this.ds1.OPModel.OrderByDescending(t => t.idx).FirstOrDefault().idx + 1; - // this.ds1.OPModel.AddOPModelRow(newdr2); - //} - //if (this.bs.Count > 0) this.bs.Position = this.bs.Count - 1; + //copy regex + var cnt = DB.CopyRegEx(oldname,newname.Item2); + PUB.log.AddAT($"model copy(regex : {cnt})"); } @@ -603,6 +630,51 @@ namespace Project f.ShowDialog(); } } + + private void btReName_Click(object sender, EventArgs e) + { + //button - save + this.Validate(); + this.bs.EndEdit(); + + if (hasChanged() == true) + { + UTIL.MsgE("Need save"); + return; + } + + if (PUB.PasswordCheck() == false) + { + UTIL.MsgE("Password incorrect"); + return; + } + + var drv = this.bs.Current as DataRowView; + if (drv == null) return; + var dr = drv.Row as DataSet1.OPModelRow; + var beforename = dr.Title; + var dlg = UTIL.InputBox("Change Model ?Name", dr.Title); + if (dlg.Item1 == false) return; + if(beforename.Equals(dlg.Item2)) + { + UTIL.MsgE("Same data"); + return; + } + if (UTIL.MsgQ($"Change model name\nBefore:{beforename},After:{dlg.Item2}") != DialogResult.Yes) + return; + + dr.Title = dlg.Item2; + dr.EndEdit(); + + //update regexname + DB.ChangeRegExName(beforename, dlg.Item2); + + PUB.mdm.dataSet.OPModel.Clear(); + PUB.mdm.dataSet.OPModel.Merge(this.ds1.OPModel); + PUB.mdm.dataSet.AcceptChanges(); + PUB.mdm.SaveModelV(); + + } } } diff --git a/Handler/Project/Dialog/Model_Operation.resx b/Handler/Project/Dialog/Model_Operation.resx index 515e116..3acc583 100644 --- a/Handler/Project/Dialog/Model_Operation.resx +++ b/Handler/Project/Dialog/Model_Operation.resx @@ -132,9 +132,6 @@ 17, 17 - - 17, 17 - 88, 17 @@ -145,6 +142,21 @@ 356, 17 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG + YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9 + 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw + bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc + VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9 + c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32 + Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo + mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+ + kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D + TgDQASA1MVpwzwAAAABJRU5ErkJggg== + + iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABGdBTUEAALGPC/xhBQAAAwFJREFUWEft diff --git a/Handler/Project/Dialog/RegExRule.Designer.cs b/Handler/Project/Dialog/RegExRule.Designer.cs index f4ff77c..207266c 100644 --- a/Handler/Project/Dialog/RegExRule.Designer.cs +++ b/Handler/Project/Dialog/RegExRule.Designer.cs @@ -123,8 +123,8 @@ this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image"))); this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem"; this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true; - this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(49, 22); - this.bindingNavigatorAddNewItem.Text = "Add"; + this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(65, 22); + this.bindingNavigatorAddNewItem.Text = "Add(&A)"; // // bs // @@ -150,8 +150,8 @@ this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image"))); this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem"; this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true; - this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(60, 22); - this.bindingNavigatorDeleteItem.Text = "Delete"; + this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(76, 22); + this.bindingNavigatorDeleteItem.Text = "Delete(&D)"; // // bindingNavigatorMoveFirstItem // @@ -217,8 +217,8 @@ // this.component_Reel_RegExRuleBindingNavigatorSaveItem.Image = ((System.Drawing.Image)(resources.GetObject("component_Reel_RegExRuleBindingNavigatorSaveItem.Image"))); this.component_Reel_RegExRuleBindingNavigatorSaveItem.Name = "component_Reel_RegExRuleBindingNavigatorSaveItem"; - this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(51, 22); - this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "Save"; + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Size = new System.Drawing.Size(65, 22); + this.component_Reel_RegExRuleBindingNavigatorSaveItem.Text = "Save(&S)"; this.component_Reel_RegExRuleBindingNavigatorSaveItem.Click += new System.EventHandler(this.component_Reel_RegExRuleBindingNavigatorSaveItem_Click); // // toolStripButton1 @@ -227,8 +227,8 @@ this.toolStripButton1.Image = global::Project.Properties.Resources.arrow_refresh_small; this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButton1.Name = "toolStripButton1"; - this.toolStripButton1.Size = new System.Drawing.Size(66, 22); - this.toolStripButton1.Text = "Refresh"; + this.toolStripButton1.Size = new System.Drawing.Size(81, 22); + this.toolStripButton1.Text = "Refresh(&R)"; this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click); // // btCopy @@ -236,8 +236,8 @@ this.btCopy.Image = global::Project.Properties.Resources.copy; this.btCopy.ImageTransparentColor = System.Drawing.Color.Magenta; this.btCopy.Name = "btCopy"; - this.btCopy.Size = new System.Drawing.Size(55, 22); - this.btCopy.Text = "Copy"; + this.btCopy.Size = new System.Drawing.Size(71, 22); + this.btCopy.Text = "Copy(&C)"; this.btCopy.Click += new System.EventHandler(this.btCopy_Click); // // toolStripButton2 @@ -245,8 +245,8 @@ this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripButton2.Name = "toolStripButton2"; - this.toolStripButton2.Size = new System.Drawing.Size(81, 22); - this.toolStripButton2.Text = "Export List"; + this.toolStripButton2.Size = new System.Drawing.Size(98, 22); + this.toolStripButton2.Text = "Export List(&O)"; this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click); // // dv1 diff --git a/Handler/Project/Dialog/RegExRule.cs b/Handler/Project/Dialog/RegExRule.cs index 751d395..cee16a5 100644 --- a/Handler/Project/Dialog/RegExRule.cs +++ b/Handler/Project/Dialog/RegExRule.cs @@ -26,6 +26,7 @@ namespace Project.Dialog if (PUB.Result.isSetvModel) e1.Row["CustCode"] = PUB.Result.vModel.Title; }; + dataGridViewTextBoxColumn1.Visible = false; //모델목록을 업데이트한다. cmbModelList.Items.Clear(); @@ -92,11 +93,14 @@ namespace Project.Dialog UTIL.MsgE("No content has been saved"); } else UTIL.MsgI($"{cnt1} records have been saved"); + lock (PUB.Result.BCDPatternLock) + { + var modelName = PUB.Result.vModel.Title; + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + } - var modelName = PUB.Result.vModel.Title; - PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); - PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); - PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); dv1.AutoResizeColumns(); } @@ -126,7 +130,7 @@ namespace Project.Dialog else drow.DefaultCellStyle.BackColor = Color.WhiteSmoke; } - + } catch (System.Exception ex) { diff --git a/Handler/Project/Dialog/RegExRule.resx b/Handler/Project/Dialog/RegExRule.resx index 4029917..d8d0244 100644 --- a/Handler/Project/Dialog/RegExRule.resx +++ b/Handler/Project/Dialog/RegExRule.resx @@ -201,20 +201,20 @@ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL4SURBVDhPhZLrS1NhHMf3qv6EsF70UohSalFRLyrzMjWw - m6mUeZtTKm+4iUFmzUXmJbRQoSKSohcVkbdZzcxtTjeckWne8tamA6fTue2coztnfnvO2XAFQT/48Lx4 - zvfD+X3PEfETdVObfrraqEmoMa7EqIw0ORmBWv40MQnV/UzcfcPIMYW+fk/i621C6M+Jvdurt7uYZduy - k3N41uFwB1l28TAYs7lQ1mpBas04JclTbw9E/RNfabDbV1xc/5wXpl8sTBYWxjkWhtkNaH+u48OoB+ss - 0D5Oo+z9L2Q9HKH/kkTf6abXqA0MWjl8tbLkZDEgSDagm1rHp1GKCHwYtHEwLXihUlsQcaP7lRBOrj05 - c1GVuClrPI+shgto+NiMine1iCgPw0mCRHUUUcpDqGuvE1ZxMywWVylElehYQZBUHfG2e7gDHZNP0WCU - C5K0R3GQv0xFfnMKpE1nkNmUifahRXSMuNH2fQ1O0lO0spcRBJJ6yfb4igLOONGDF8NKVGnzBEl6YzwJ - n0Xu4xzopzzCKp8naWhID6seL6Ir+vwCfmIrdUzRswyYpwxoMpXgXlcxkmtPIf1RIsxzFMykWL5g/bS/ - EwcRRCn/EBy/Ve49XLobqfUSDE73Q9VzFUp1EVIeRKJZ24Jv8yzMpNj+WS/6CHaXFxG3A4IDihCZWLEL - +c8v4XJjLC7VxQiSInUqFO9yyJtEgr8ftHAY4D8xwUWKPCw3+AVixY55sWIneSgEYnkIzlVF4tqTDOhH - NVBpSnH1TQakjUkwE4GJ/BtGImC8PogLtMEVTsh7GZuTwdA8J6CbWEDhs1xkk6CsKQXFz69v3fFQGxzC - CzqDgoOFWsbqCAr+h4esEJ7TFhQcKfpCjVkdm/96+F843ZRvX1q7OxAnReZ2zVjWKNfY/KpvZonGjJ3G - VIAlt1eAb97NcFh2enw0TTtDr3T+CMTJCrkfr4VLP3Ttl2kc4bJWZotsP2HZLX6kLUyotHN1b2bn57AM - dZZIJBL9BohloZ6S1+tQAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAL2SURBVDhPhZLrS1NhHMf3Kv+EsF70UohScmFRL0pTmxrY + zVTUvM0pmprowiBTppF5CU1UqBCl6EWFqOnUpuac0w1nZNpS8zov4GVOdzlHd8789pyz4QyEfvDhefGc + 74fz+54j4CboiTLhRrlGEV6h2Qou1lDkpHkquVNLh5cP06Ev1BOXparq0xEfj/GhwxPybFC1bqY3VzZM + rNG6C6PFzaaZg8bvVTMK2gyIrZi0iTLlHq6oc8JK1etrxh12eMEO7SIDrYGBZoGBen4Pyj+76NJbscsA + 7ZMUCloWkfxqgvpHElzUS+3Y9jC6xOL7EkNOBiO8ZA8DM7v4qrcRgQOjqyy0K3aUyA0IeNz3gQ9HVfrP + 3SuO2JfU3UFy7V3UdjehuLkSAYXe8CeISi4hSOaHqvYqfhULzWDNZEOQdIDhBZHlAZ/7xjvQMf0WtZo8 + XhJfE4q893HIaoqGuP4mkuqT0D62ho4JC7783ME26SlYNkjzAlG1yCNUls1qpvrxblyGMmUmL0moCyPh + W0h7nQrVjJVfpXeagoL0YLLaEVw85BRwE1I6QOc0JEI3o0a99hGe9+QiqvIaEmoioFuwQUeK5QpWzTo7 + MRJBkOyQ4MrTQvuF/FOIqxZhdHYYJf3pkMlzEP0yEE3KVvxYZqAjxQ7P2zFEWDfbEVDkEvhKPSVC6Ulk + NcYgti4EMVXXeUmOPA7S5lTyJoHg7kcNLEa4T0wwkyL9ctVOgVB6fFkoPUEe8oQwzxO3ywKR8SYRKr0C + JYp8pH9KhLguEjoi0JJ/Q0MEtN0B32yle4WruYP06jaNsWWWZ2BqBQ8b0pBCgpL6aOQ2Pji447DtsfDJ + lrsFQmJbMroF/8NKVvBJbXMLLuZ8s+kNm/tHPXwUJrPVcTa+3eKKkyLTeuYWd2xm/dKWY26Dwtw6hRkX + GxY7D9e8hWaxYbI4KIra9rrf+csVFwjOp3Vn+Ii7es5JFEYfSSt9QIoT75QWJ+IW2kvcaTqT1NnrnShP + FggEgr9Ef6FyBTeROAAAAABJRU5ErkJggg== diff --git a/Handler/Project/Dialog/fLoaderInfo.Designer.cs b/Handler/Project/Dialog/fLoaderInfo.Designer.cs index 0f7e047..afe44d1 100644 --- a/Handler/Project/Dialog/fLoaderInfo.Designer.cs +++ b/Handler/Project/Dialog/fLoaderInfo.Designer.cs @@ -112,6 +112,7 @@ this.tmAutoConfirm = new System.Windows.Forms.Timer(this.components); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); + this.copyToClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.groupBox1.SuspendLayout(); this.cmbarc.SuspendLayout(); this.panel7.SuspendLayout(); @@ -233,14 +234,15 @@ // cmbarc // this.cmbarc.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.회전기준바코드로설정ToolStripMenuItem}); + this.회전기준바코드로설정ToolStripMenuItem, + this.copyToClipboardToolStripMenuItem}); this.cmbarc.Name = "cmbarc"; - this.cmbarc.Size = new System.Drawing.Size(207, 26); + this.cmbarc.Size = new System.Drawing.Size(248, 70); // // 회전기준바코드로설정ToolStripMenuItem // this.회전기준바코드로설정ToolStripMenuItem.Name = "회전기준바코드로설정ToolStripMenuItem"; - this.회전기준바코드로설정ToolStripMenuItem.Size = new System.Drawing.Size(206, 22); + this.회전기준바코드로설정ToolStripMenuItem.Size = new System.Drawing.Size(247, 22); this.회전기준바코드로설정ToolStripMenuItem.Text = "Set as rotation reference barcode"; this.회전기준바코드로설정ToolStripMenuItem.Click += new System.EventHandler(this.회전기준바코드로설정ToolStripMenuItem_Click); // @@ -371,8 +373,7 @@ this.label1.Padding = new System.Windows.Forms.Padding(5); this.label1.Size = new System.Drawing.Size(363, 74); this.label1.TabIndex = 0; - this.label1.Text = "Display all data read from the current barcode reader. \r\n1. First select the data field you want to input from the left side\r\n2. Input data " + - "from the list below\r\n3. Press the \"Input\" button at the bottom"; + this.label1.Text = resources.GetString("label1.Text"); // // tbRID // @@ -1155,9 +1156,16 @@ // toolStripStatusLabel1 // this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(121, 17); + this.toolStripStatusLabel1.Size = new System.Drawing.Size(118, 17); this.toolStripStatusLabel1.Text = "toolStripStatusLabel1"; // + // copyToClipboardToolStripMenuItem + // + this.copyToClipboardToolStripMenuItem.Name = "copyToClipboardToolStripMenuItem"; + this.copyToClipboardToolStripMenuItem.Size = new System.Drawing.Size(247, 22); + this.copyToClipboardToolStripMenuItem.Text = "Copy To Clipboard"; + this.copyToClipboardToolStripMenuItem.Click += new System.EventHandler(this.copyToClipboardToolStripMenuItem_Click); + // // fLoaderInfo // this.AutoScaleDimensions = new System.Drawing.SizeF(12F, 30F); @@ -1284,5 +1292,6 @@ private System.Windows.Forms.TextBox tbBatch; private System.Windows.Forms.LinkLabel linkLabel10; private System.Windows.Forms.TextBox tbQtyMax; + private System.Windows.Forms.ToolStripMenuItem copyToClipboardToolStripMenuItem; } } \ No newline at end of file diff --git a/Handler/Project/Dialog/fLoaderInfo.cs b/Handler/Project/Dialog/fLoaderInfo.cs index 5c5786e..418495b 100644 --- a/Handler/Project/Dialog/fLoaderInfo.cs +++ b/Handler/Project/Dialog/fLoaderInfo.cs @@ -17,7 +17,7 @@ namespace Project.Dialog { string PrintPos = ""; - public fLoaderInfo(List errlist) + public fLoaderInfo(Dictionary errlist) { InitializeComponent(); PUB.flag.set(eVarBool.FG_WAIT_LOADERINFO, true, "_LOAD"); @@ -31,7 +31,7 @@ namespace Project.Dialog { foreach (var item in errlist) - AddErrorMessage(item); + AddErrorMessage($"[{item.Key}] {item.Value}"); } if (PUB.Result.vModel.IgnoreBatch) tbBatch.Enabled = false; if (PUB.Result.vModel.IgnorePartNo) tbpartno.Enabled = false; @@ -320,7 +320,7 @@ namespace Project.Dialog //lv.SubItems.Add(item.CenterPX.Y.ToString()); if (item.RegExConfirm) { - if (item.RefExApply) + if (item.RefExApply > 0) lv.ForeColor = Color.Blue; else lv.ForeColor = Color.Black; @@ -701,7 +701,7 @@ namespace Project.Dialog var preDatas = DBHelper.Get(sql, ps); if (preDatas.Rows.Count > 0) preData = preDatas.Rows[0] as DataSet1.K4EE_Component_Reel_ResultRow; - + //기존자료가 없다면 취소 if (preData == null) return false; @@ -2347,5 +2347,26 @@ namespace Project.Dialog { UTIL.TouchKeyShow(tbQtyMax, "INPUT MAX QTY(SAP)"); } + + private void copyToClipboardToolStripMenuItem_Click(object sender, EventArgs e) + { + if (lvbcdList.FocusedItem == null) + { + UTIL.MsgE("No item has focus"); + return; + } + + try + { + var value = lvbcdList.FocusedItem.SubItems[1].Text.Trim(); + Clipboard.SetText(value); + UTIL.MsgI($"Clipboard Copied\n{value}"); + } + catch (Exception ex) + { + UTIL.MsgE(ex.Message+"\nClipboard"); + } + + } } } diff --git a/Handler/Project/Dialog/fLoaderInfo.resx b/Handler/Project/Dialog/fLoaderInfo.resx index 87bf1b7..616dc34 100644 --- a/Handler/Project/Dialog/fLoaderInfo.resx +++ b/Handler/Project/Dialog/fLoaderInfo.resx @@ -120,6 +120,12 @@ 155, 17 + + Display all data read from the current barcode reader. +1. First select the data field you want to input from the left side +2. Input data from the list below +3. Press the "Input" button at the bottom + AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0 diff --git a/Handler/Project/Dialog/fSelectJob.cs b/Handler/Project/Dialog/fSelectJob.cs index 7c2650a..e0aef00 100644 --- a/Handler/Project/Dialog/fSelectJob.cs +++ b/Handler/Project/Dialog/fSelectJob.cs @@ -586,7 +586,7 @@ namespace Project.Dialog void UpdateHeight() { if (this.tabControl1.Visible) this.Height = 755; - else this.Height = 380; + else this.Height = 420; } private void btOK_Click(object sender, EventArgs e) diff --git a/Handler/Project/Manager/DatabaseManager.cs b/Handler/Project/Manager/DatabaseManager.cs new file mode 100644 index 0000000..59f6264 --- /dev/null +++ b/Handler/Project/Manager/DatabaseManager.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace Project +{ + public static class DB + { + public static int ChangeRegExName(string oldname, string newname) + { + var sql = DBHelper.UpdateWhere("K4EE_Component_Reel_RegExRule", + new Dictionary(){ + { "CustCode",newname } + }, new Dictionary() + { + { "CustCode",oldname } + }); + return sql; + } + public static int CopyRegEx(string oldname, string newname) + { + var sql = "insert into K4EE_Component_Reel_RegExRule(custcode,seq,description,symbol,pattern,groups,isenable,istrust,isamkstd,isignore)" + + $" select '{newname}',seq,description,symbol,pattern,groups,isenable,istrust,isamkstd,isignore " + + $" from K4EE_Component_Reel_RegExRule" + + $" where custcode = '{oldname}'"; + return DBHelper.ExecuteNonQuery(sql); + } + } +} diff --git a/Handler/Project/Manager/ModelManager.cs b/Handler/Project/Manager/ModelManager.cs index ae9bacb..cd35c77 100644 --- a/Handler/Project/Manager/ModelManager.cs +++ b/Handler/Project/Manager/ModelManager.cs @@ -414,7 +414,7 @@ namespace Project.Manager //숫자는 기본 0으로 처리한다 data.Append("0"); } - else data.Append("0"); + else data.Append(""); } data.AppendLine(); } diff --git a/Handler/Project/Pub.cs b/Handler/Project/Pub.cs index 2893086..1c88bf9 100644 --- a/Handler/Project/Pub.cs +++ b/Handler/Project/Pub.cs @@ -235,10 +235,14 @@ namespace Project SETTING.User.Save(); } - PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); - PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + lock (PUB.Result.BCDPatternLock) + { + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + + PUB.log.Add($"Model pattern loading:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + } - PUB.log.Add($"Model pattern loading:{PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); if (modelVision.Code.isEmpty()) { //PUB.Result.CustCode = string.Empty; @@ -866,6 +870,7 @@ namespace Project } } break; + case "PARTNO": case "PART": if (vdata.PARTNO.isEmpty()) { @@ -1303,7 +1308,7 @@ namespace Project GetIPMac(); try { - + if (IP == "" || MAC == "") { return; diff --git a/Handler/Project/RunCode/Device/_Keyence.cs b/Handler/Project/RunCode/Device/_Keyence.cs index c0c01ee..4efc35f 100644 --- a/Handler/Project/RunCode/Device/_Keyence.cs +++ b/Handler/Project/RunCode/Device/_Keyence.cs @@ -41,7 +41,10 @@ namespace Project // PUB.logKeyence.Add($"{resp.Replace("\n", "").Replace("\r", "")}"); var rawdata = e.RawData; //↔▲▼ rawdata = rawdata.Replace('\x1D', '↔').Replace('\x1E', '▲').Replace('\x04', '▼'); - ParseBarcode(rawdata, dev.Tag.ToString()); + + var lines = rawdata.Split(new char[] { '\r' },StringSplitOptions.RemoveEmptyEntries); + foreach(var line in lines) + ParseBarcode(line, dev.Tag.ToString()); } else { @@ -132,6 +135,8 @@ namespace Project void ParseBarcode(string response, string Source) { + + //220901 - 특문있었ㅇ츰 var r1 = (char)0x1D; var r2 = (char)0x1E; diff --git a/Handler/Project/RunCode/Display/_Interval_250ms.cs b/Handler/Project/RunCode/Display/_Interval_250ms.cs index 97862b5..f167f9b 100644 --- a/Handler/Project/RunCode/Display/_Interval_250ms.cs +++ b/Handler/Project/RunCode/Display/_Interval_250ms.cs @@ -58,7 +58,17 @@ namespace Project groupBox2.Text = "Barcode"; } - btAutoReelOut.BackColor = PUB.Result.AutoReelOut ? Color.Lime : SystemColors.Control; + if((VAR.BOOL?.Get(eVarBool.Use_Conveyor) ?? false) == true) + { + btAutoReelOut.BackColor = PUB.Result.AutoReelOut ? Color.Lime : SystemColors.Control; + btAutoReelOut.Visible = true; + } + else + { + btAutoReelOut.Visible = false; + } + + groupBox1.Text = $"Equipment Operation({PUB.sm.Loop_ms:N0}ms)"; //릴사이즈가 맞지 않으면 깜박인다. if (DIO.getCartSize(1) != eCartSize.None) diff --git a/Handler/Project/RunCode/Display/_Interval_500ms.cs b/Handler/Project/RunCode/Display/_Interval_500ms.cs index f18a3b4..f1c8708 100644 --- a/Handler/Project/RunCode/Display/_Interval_500ms.cs +++ b/Handler/Project/RunCode/Display/_Interval_500ms.cs @@ -42,7 +42,7 @@ namespace Project btLightRoom.BackColor = DIO.GetIOOutput(eDOName.ROOMLIGHT) ? Color.Gold : SystemColors.Control; //상태를 DB에 저장한다. - EEMStatus.UpdateStatusSQL(PUB.sm.Step); + //EEMStatus.UpdateStatusSQL(PUB.sm.Step); //컨베이어 가동시간계싼 if(DIO.GetIOOutput(eDOName.LEFT_CONV) && VAR.TIME[eVarTime.CONVL_START].Year != 1982) diff --git a/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs b/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs index db66712..36d6ddd 100644 --- a/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs +++ b/Handler/Project/RunCode/RunSequence/0_RUN_STARTCHK_SW.cs @@ -113,7 +113,7 @@ namespace Project } //Auto Reel Out 250926 - PUB.Result.AutoReelOut = PUB.Result.vModel.AutoOutConveyor>0; + PUB.Result.AutoReelOut = PUB.Result.vModel.AutoOutConveyor > 0; //공용변수초기화 PUB.log.Add("Common variable (count) values initialized"); @@ -140,9 +140,13 @@ namespace Project PUB.Result.ItemDataR.Clear("START_CHKSW"); var modelName = PUB.Result.vModel.Title; - PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); - PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); - PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + lock (PUB.Result.BCDPatternLock) + { + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + } + //변환SID SID확인여부데이터 삭제 PUB.Result.DTSidConvertEmptyList.Clear(); diff --git a/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs b/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs index cda6114..efb87d1 100644 --- a/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs +++ b/Handler/Project/RunCode/RunSequence/2_RUN_ROOT_SEQUENCE.cs @@ -979,7 +979,7 @@ namespace Project if (errmsg.Length > 190) errmsg = errmsg.Substring(0, 190); //230810 maxlength error SaveData_EE(item, (target == eWorkPort.Left ? "L" : "R"), (rlt ? "OK" : errmsg), "root_sequence"); //RefreshList(); //목록업데이트 - EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620 + //EEMStatus.AddStatusCount(1, $"{item.VisionData.SID}|{item.VisionData.RID}"); //eem 추가 230620 PUB.sm.seq.Update(cmdIndex); return false; } diff --git a/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs b/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs index 9560beb..283aa20 100644 --- a/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs +++ b/Handler/Project/RunCode/RunSequence/3_KEYENCE_READ.cs @@ -163,8 +163,8 @@ namespace Project } - var prcResult = BCDProcess_ALL(itemC, "SEQ",true); - if (prcResult != EResultKeyence.Nothing) + var prcResult = BCDProcess_ALL(itemC, "SEQ", true); + if (prcResult != EResultKeyence.Nothing) return prcResult; PUB.sm.seq.Update(cmdIndex); @@ -204,6 +204,18 @@ namespace Project return; } + //처음작업이면 반드시 확인을 한다 + if (OPT_BYPASS == false && PUB.Result.JobFirst) + { + //사용자확인이 필요없는 상태라면 활성화해준다 + //프린트를 하지 않는다면 처리하지 않는다. + if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false) + { + if (mainjob && item.VisionData.bcdMessage.ContainsKey(6) == false) item.VisionData.bcdMessage.Add(6, "First reel confirmation required"); + NeedConfirm = true; + } + } + //서버의수량업데이트기능 if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_ServerQty]) { @@ -227,7 +239,8 @@ namespace Project { if (mainjob) PUB.log.AddE($"Quantity update failed rID:{item.VisionData.RID}, Message={msg}"); NeedConfirm = true; - if (mainjob) item.VisionData.bcdMessage.Add("Quantity update failed"); + if (mainjob && item.VisionData.bcdMessage.ContainsKey(1) == false) + item.VisionData.bcdMessage.Add(1, "Quantity update failed"); } } } @@ -248,27 +261,24 @@ namespace Project } else { - if (mainjob) item.VisionData.bcdMessage.Add("RQ value error (auto mode not possible)"); + if (mainjob && item.VisionData.bcdMessage.ContainsKey(2) == false) item.VisionData.bcdMessage.Add(2, "RQ value error (auto mode not possible)"); NeedConfirm = true; } } else { - if (mainjob) item.VisionData.bcdMessage.Add("Manual quantity input required"); + if (mainjob && item.VisionData.bcdMessage.ContainsKey(3) == false) item.VisionData.bcdMessage.Add(3, "Manual quantity input required"); NeedConfirm = true; } } //프린트위치확인 + BCDProcess_BCDPrint(item); if (item.VisionData.PrintPositionData.isEmpty() == true || item.VisionData.PrintPositionCheck == false) { - if (NeedConfirm == false) - { - //현작업내에서의 정보를 찾아서 적용한다 231005 - if (mainjob) item.VisionData.bcdMessage.Add("Attachment position not found"); - NeedConfirm = true; - } + if (mainjob && item.VisionData.bcdMessage.ContainsKey(4) == false) item.VisionData.bcdMessage.Add(4, "Attachment position not found"); + NeedConfirm = true; } //SID 존재여부 확인 @@ -298,40 +308,33 @@ namespace Project } else SIDOK = (item.VisionData.SID_Trust && item.VisionData.SID.isEmpty() == false); //시드변환을 사용하지 않으므로 시드값여부에따라 다르다 - //사용자확인이 필요한 옵션이라면 사용한다 - if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserConfim]) + //수량확인 + if (OPT_BYPASS == false) { - if (NeedConfirm == false) + if(double.TryParse(item.VisionData.QTY,out double qtyvalue)==false) { - if (mainjob) item.VisionData.bcdMessage.Add("User confirmation required"); + if (mainjob && item.VisionData.bcdMessage.ContainsKey(8) == false) item.VisionData.bcdMessage.Add(8, "Qty invalid"); NeedConfirm = true; } } - //처음작업이면 반드시 확인을 한다 - if (OPT_BYPASS == false && PUB.Result.JobFirst) + + //사용자확인이 필요한 옵션이라면 사용한다 + if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_UserConfim]) { - //사용자확인이 필요없는 상태라면 활성화해준다 - if (NeedConfirm == false) - { - //프린트를 하지 않는다면 처리하지 않는다. - if (VAR.BOOL[eVarBool.Opt_DisablePrinter] == false) - { - if (mainjob) item.VisionData.bcdMessage.Add("First reel confirmation required"); - NeedConfirm = true; - } - } + if (mainjob && item.VisionData.bcdMessage.ContainsKey(5) == false) item.VisionData.bcdMessage.Add(5, "User confirmation required"); + NeedConfirm = true; } + + + //변환작업인데 원본 값이 없다. //혹은 변환값과 원본이 같다 if (OPT_BYPASS == false && VAR.BOOL[eVarBool.Opt_SIDConvert] && (item.VisionData.SID0.isEmpty() == true || item.VisionData.SID0 == item.VisionData.SID)) { - if (NeedConfirm == false) - { - if (mainjob) item.VisionData.bcdMessage.Add("SID conversion value confirmation required"); - NeedConfirm = true; - } + if (mainjob && item.VisionData.bcdMessage.ContainsKey(7) == false) item.VisionData.bcdMessage.Add(7, "SID conversion value confirmation required"); + NeedConfirm = true; } //데이터의 신뢰성을 확인하고 모두 입력되었다면 자동 확정을 진행한다 @@ -362,13 +365,10 @@ namespace Project } else if (item.VisionData.QRInputRaw.isEmpty() == false) { - if (NeedConfirm == false) + if (mainjob) { - if (mainjob) - { - NeedConfirm = true; - PUB.log.AddAT($"Data incomplete but QR has been read, showing confirmation window immediately"); - } + NeedConfirm = true; + PUB.log.AddAT($"Data incomplete but QR has been read, showing confirmation window immediately"); } } diff --git a/Handler/Project/RunCode/StateMachine/_Events.cs b/Handler/Project/RunCode/StateMachine/_Events.cs index f5f2ae1..fdd2072 100644 --- a/Handler/Project/RunCode/StateMachine/_Events.cs +++ b/Handler/Project/RunCode/StateMachine/_Events.cs @@ -120,7 +120,7 @@ namespace Project PUB.log.AddI($"Step transition({o} >> {n})"); //230313 - EEMStatus.AddStatusSQL(n); + //EEMStatus.AddStatusSQL(n); } } diff --git a/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs b/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs index e2415d7..f437a01 100644 --- a/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs +++ b/Handler/Project/RunCode/StateMachine/_SPS_BarcodeProcess.cs @@ -19,6 +19,7 @@ namespace Project //var patterns = PUB.Result.BCDPattern; IgnoreBarcode = false; findregex = false; + if (barcodeSymbol == "6") barcodeSymbol = "11"; //250930 //get : same symbol data List pats; @@ -46,19 +47,19 @@ namespace Project { if (vm.BCD_DM == false && barcodeSymbol == "2") { - PUB.log.AddAT($"Inactive in model(DM):{bcd}"); + PUB.log.AddAT($"Inactive in model Symbol Setting(DM):{bcd}"); IgnoreBarcode = true; return new Tuple>(0, new List()); } else if (vm.BCD_1D == false && (barcodeSymbol == "6" || barcodeSymbol == "11")) { - PUB.log.AddAT($"Inactive in model(1D):{bcd}"); + PUB.log.AddAT($"Inactive in model Symbol Setting(1D):{bcd}"); IgnoreBarcode = true; return new Tuple>(0, new List()); } else if (vm.BCD_QR == false && (barcodeSymbol == "1")) { - PUB.log.AddAT($"Inactive in model(QR):{bcd}"); + PUB.log.AddAT($"Inactive in model Symbol Setting(QR):{bcd}"); IgnoreBarcode = true; return new Tuple>(0, new List()); } @@ -162,44 +163,52 @@ namespace Project //skip disable item if (pt.IsEnable == false) continue; - var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); - if (regx.IsMatch(bcd)) + var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 5)); + try { - findregex = true; - //find data - var matchs = regx.Matches(bcd); - foreach (System.Text.RegularExpressions.Match mat in matchs) + if (regx.IsMatch(bcd)) { - - if (vdata == null) ValueApplyCount += 1; - else + findregex = true; + //find data + var matchs = regx.Matches(bcd); + foreach (System.Text.RegularExpressions.Match mat in matchs) { - foreach (var matchdata in pt.Groups) + + if (vdata == null) ValueApplyCount += 1; + else { - if (matchdata.GroupNo <= mat.Groups.Count) + foreach (var matchdata in pt.Groups) { - var data = mat.Groups[matchdata.GroupNo]; - if (PUB.SetBCDValue(vdata, matchdata.TargetPos, data.Value, pt.IsTrust)) - ValueApplyCount += 1; + if (matchdata.GroupNo <= mat.Groups.Count) + { + var data = mat.Groups[matchdata.GroupNo]; + if (PUB.SetBCDValue(vdata, matchdata.TargetPos, data.Value, pt.IsTrust)) + ValueApplyCount += 1; + } } } } - } - if (vdata != null && pt.IsAmkStd)// && bcdObj.barcodeSymbol == "1") + if (vdata != null && pt.IsAmkStd)// && bcdObj.barcodeSymbol == "1") + { + vdata.QRInputRaw = bcd; + } + + if (vdata != null) + PUB.log.AddI($"[{pt.Description}]=>{bcd}"); + + list.Add(pt.Customer + "|" + pt.Description); + } + else { - vdata.QRInputRaw = bcd; + //PUB.log.AddAT($"(X)Match ({pt.Pattern}) Data={bcd}"); } - - if (vdata != null) - PUB.log.AddI($"[{pt.Description}]=>{bcd}"); - - list.Add(pt.Customer + "|" + pt.Description); } - else + catch (Exception ex) { - //PUB.log.AddAT($"(X)Match ({pt.Pattern}) Data={bcd}"); + PUB.log.AddE($"BarcodeRegEx Error : {ex.Message}"); } + } return new Tuple>(ValueApplyCount, list); } @@ -209,12 +218,8 @@ namespace Project /// void BarcodeProcess() { - //coffee - //get regexpress patterns - var patterns = PUB.Result.BCDPattern; var itemC = PUB.Result.ItemDataC; var vdata = itemC.VisionData; - bool vQtyOK = false; //No Run - Confirm Data if (vdata.Confirm) return; @@ -231,15 +236,21 @@ namespace Project //already checked if (bcdObj.RegExConfirm) continue; - var ValueApplyCount = BarcodeRegExProcess(PUB.Result.BCDPattern, PUB.Result.BCDIgnorePattern, vdata, bcdObj.barcodeSymbol, bcd, out bool IgnoreBcd, out bool findregex); - bcdObj.Ignore = IgnoreBcd; + lock (PUB.Result.BCDPatternLock) + { + var ValueApplyCount = BarcodeRegExProcess(PUB.Result.BCDPattern, PUB.Result.BCDIgnorePattern, vdata, bcdObj.barcodeSymbol, bcd, out bool IgnoreBcd, out bool findregex); + bcdObj.Ignore = IgnoreBcd; + + //기타바코드 무시기능 적용 221018 + if (vm != null && vm.IgnoreOtherBarcode == true && findregex == false) + bcdObj.Ignore = true; + + bcdObj.RefExApply = (ValueApplyCount?.Item1 ?? 0); + bcdObj.RegExConfirm = true; + } + - //기타바코드 무시기능 적용 221018 - if (vm != null && vm.IgnoreOtherBarcode == true && findregex == false) - bcdObj.Ignore = true; - bcdObj.RefExApply = (ValueApplyCount?.Item1 ?? 0) > 0; - bcdObj.RegExConfirm = true; } } diff --git a/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs b/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs index 9a947a5..983ff4f 100644 --- a/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs +++ b/Handler/Project/RunCode/StateMachine/_SPS_RecvQRProcess.cs @@ -6,79 +6,81 @@ using System.Text.RegularExpressions; namespace Project { - public partial class FMain - { - bool RecvQRProcess(List qrdatas, eWorkPort vIdx) - { - //데이터가없으면 처리하지 않는다. - if (qrdatas == null || qrdatas.Count < 1) return false; + public partial class FMain + { + bool RecvQRProcess(List qrdatas, eWorkPort vIdx) + { + //데이터가없으면 처리하지 않는다. + if (qrdatas == null || qrdatas.Count < 1) return false; - bool FindData = false; - var idata = vIdx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; + bool FindData = false; + var idata = vIdx == eWorkPort.Left ? PUB.Result.ItemDataL : PUB.Result.ItemDataR; - //표준바코드라면 그 값을 표시해준다 - var patterns = PUB.Result.BCDPattern; + //표준바코드라면 그 값을 표시해준다 + lock (PUB.Result.BCDPatternLock) + { + var patterns = PUB.Result.BCDPattern; - foreach (var datas in qrdatas) - { - //원본자료를 체크한다 - if (datas.Equals(idata.VisionData.PrintQRData)) - { - //인쇄한 자료와 동일한 자료이다 - FindData = true; - } + foreach (var datas in qrdatas) + { + //원본자료를 체크한다 + if (datas.Equals(idata.VisionData.PrintQRData)) + { + //인쇄한 자료와 동일한 자료이다 + FindData = true; + } - //표준 바코드 형태만 취한다 - var pats = patterns.Where(t => t.IsAmkStd && t.IsEnable).OrderBy(t => t.Seq).ToList(); - if (pats.Any()) - { - //패턴을 확인하여 값을 표시해준다 - //var ValueApplyCount = 0; - foreach (var pt in pats) - { - var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); - if (regx.IsMatch(datas)) //패턴이 일치하다면 이것만 사용한다 - { - //find data - var matchs = regx.Matches(datas); - foreach (System.Text.RegularExpressions.Match mat in matchs) - { - foreach (var matchdata in pt.Groups) - { - if (matchdata.GroupNo <= mat.Groups.Count) - { - var data = mat.Groups[matchdata.GroupNo]; - switch (matchdata.TargetPos.ToUpper()) - { - case "SID": - idata.VisionData.SID2 = data.Value; - break; - case "RID": - idata.VisionData.RID2 = data.Value; - break; - case "VLOT": - idata.VisionData.VLOT2 = data.Value; - break; - case "VNAME": - idata.VisionData.VNAME2 = data.Value; - break; - case "MFG": - idata.VisionData.MFGDATE2 = data.Value; - break; - case "QTY": - idata.VisionData.QTY2 = data.Value; - break; - case "PART": - idata.VisionData.PARTNO2 = data.Value; - break; - } - } - } - } - break; - } - } - } + //표준 바코드 형태만 취한다 + var pats = patterns.Where(t => t.IsAmkStd && t.IsEnable).OrderBy(t => t.Seq).ToList(); + if (pats.Any()) + { + //패턴을 확인하여 값을 표시해준다 + //var ValueApplyCount = 0; + foreach (var pt in pats) + { + var regx = new Regex(pt.Pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 10)); + if (regx.IsMatch(datas)) //패턴이 일치하다면 이것만 사용한다 + { + //find data + var matchs = regx.Matches(datas); + foreach (System.Text.RegularExpressions.Match mat in matchs) + { + foreach (var matchdata in pt.Groups) + { + if (matchdata.GroupNo <= mat.Groups.Count) + { + var data = mat.Groups[matchdata.GroupNo]; + switch (matchdata.TargetPos.ToUpper()) + { + case "SID": + idata.VisionData.SID2 = data.Value; + break; + case "RID": + idata.VisionData.RID2 = data.Value; + break; + case "VLOT": + idata.VisionData.VLOT2 = data.Value; + break; + case "VNAME": + idata.VisionData.VNAME2 = data.Value; + break; + case "MFG": + idata.VisionData.MFGDATE2 = data.Value; + break; + case "QTY": + idata.VisionData.QTY2 = data.Value; + break; + case "PART": + idata.VisionData.PARTNO2 = data.Value; + break; + } + } + } + } + break; + } + } + } @@ -87,63 +89,66 @@ namespace Project - //var bcdData = new StdLabelPrint.CAmkorSTDBarcode(datas); - //PUB.Result.ItemData[vIdx].VisionData.QTY2 = bcdData.QTY.ToString(); - //PUB.Result.ItemData[vIdx].VisionData.RID2 = bcdData.RID; - //PUB.Result.ItemData[vIdx].VisionData.SID2 = bcdData.SID; - //PUB.Result.ItemData[vIdx].VisionData.VLOT2 = bcdData.VLOT; - //PUB.Result.ItemData[vIdx].VisionData.VNAME2 = bcdData.VENDERNAME; - //PUB.Result.ItemData[vIdx].VisionData.MFGDATE2 = bcdData.MFGDate;//.ToString("yyyyMMdd"); - //PUB.Result.ItemData[vIdx].VisionData.PARTNO2 = bcdData.PARTNO; - //PUB.Result.ItemData[vIdx].VisionData.Ready = true; - ////Pub.Result.ItemData[vIdx].VisionData.ETime = DateTime.Now; - ////Pub.Result.ItemData[vIdx].VisionData.Angle = 5; - //PUB.Result.ItemData[vIdx].VisionData.Complete = true; - //PUB.log.Add("BARCODE", $"{vIdx}바코드 읽기 성공 ID:{bcdData.RID},QTY:{bcdData.QTY}"); + //var bcdData = new StdLabelPrint.CAmkorSTDBarcode(datas); + //PUB.Result.ItemData[vIdx].VisionData.QTY2 = bcdData.QTY.ToString(); + //PUB.Result.ItemData[vIdx].VisionData.RID2 = bcdData.RID; + //PUB.Result.ItemData[vIdx].VisionData.SID2 = bcdData.SID; + //PUB.Result.ItemData[vIdx].VisionData.VLOT2 = bcdData.VLOT; + //PUB.Result.ItemData[vIdx].VisionData.VNAME2 = bcdData.VENDERNAME; + //PUB.Result.ItemData[vIdx].VisionData.MFGDATE2 = bcdData.MFGDate;//.ToString("yyyyMMdd"); + //PUB.Result.ItemData[vIdx].VisionData.PARTNO2 = bcdData.PARTNO; + //PUB.Result.ItemData[vIdx].VisionData.Ready = true; + ////Pub.Result.ItemData[vIdx].VisionData.ETime = DateTime.Now; + ////Pub.Result.ItemData[vIdx].VisionData.Angle = 5; + //PUB.Result.ItemData[vIdx].VisionData.Complete = true; + //PUB.log.Add("BARCODE", $"{vIdx}바코드 읽기 성공 ID:{bcdData.RID},QTY:{bcdData.QTY}"); - ////데이터를 읽었으며, 검증기능이 켜져있다면 검증을한다 - //if (FindData) break; - } + ////데이터를 읽었으며, 검증기능이 켜져있다면 검증을한다 + //if (FindData) break; + } - //자료는 있었지만 바코드검증이 실패된 경우이다 - //타임아웃까지 기다리지 않고 바로 오류처리를 한다. - if (FindData == true) - { - //데이터를 찾았다면 완료처리를 해준다 - idata.VisionData.Complete = true; - //PUB.Result.ItemData[vIdx].VisionData.Complete = true; - return true; - - } - - return false; - - //else - //{ - // var item = Pub.Result.ItemData[vIdx]; - // var tsGrab = DateTime.Now - Pub.GetVarTime(VAR_LIVEVIEW); - // var timeoutVision = vIdx == 1 ? COMM.SETTING.Data.Timeout_VisionProcessL : COMM.SETTING.Data.Timeout_VisionProcessU; - // if (tsGrab.TotalMilliseconds >= timeoutVision) - // { - // //다음 바코드가 있다면 추가 진행을 위해서 남겨준다 - // _SM_SAVEIMAGE(vIdx, DateTime.Now, "Images(QRValid)"); + } - // WS_Send((idx == 0 ? 0 : 1), Pub.wsL, Pub.Result.ItemData[idx].guid, "OFF"); + //자료는 있었지만 바코드검증이 실패된 경우이다 + //타임아웃까지 기다리지 않고 바로 오류처리를 한다. + if (FindData == true) + { + //데이터를 찾았다면 완료처리를 해준다 + idata.VisionData.Complete = true; + //PUB.Result.ItemData[vIdx].VisionData.Complete = true; + return true; + + } + + return false; + + //else + //{ + // var item = Pub.Result.ItemData[vIdx]; + // var tsGrab = DateTime.Now - Pub.GetVarTime(VAR_LIVEVIEW); + // var timeoutVision = vIdx == 1 ? COMM.SETTING.Data.Timeout_VisionProcessL : COMM.SETTING.Data.Timeout_VisionProcessU; + // if (tsGrab.TotalMilliseconds >= timeoutVision) + // { + // //다음 바코드가 있다면 추가 진행을 위해서 남겨준다 + // _SM_SAVEIMAGE(vIdx, DateTime.Now, "Images(QRValid)"); - // var barcodepos = vIdx == 0 ? "LEFT" : "RIGHT"; - // Pub.log.AddE("(" + barcodepos + ")바코드를 검증했지만 일치하지 않습니다"); - // Pub.Result.SetResultMessage(eResult.OPERATION, eECode.BARCODEVALIDERR, eNextStep.pause, - // vIdx, Pub.Result.ItemData[vIdx].VisionData.RID, Pub.Result.ItemData[vIdx].VisionData.RID2, - // Pub.Result.ItemData[vIdx].VisionData.QTY, Pub.Result.ItemData[vIdx].VisionData.QTY2, - // Pub.Result.ItemData[vIdx].VisionData.SID, Pub.Result.ItemData[vIdx].VisionData.SID2, - // Pub.Result.ItemData[vIdx].VisionData.MFGDATE, Pub.Result.ItemData[vIdx].VisionData.MFGDATE2, - // barcodepos); - // return; - // } - //} - } + // WS_Send((idx == 0 ? 0 : 1), Pub.wsL, Pub.Result.ItemData[idx].guid, "OFF"); - } + + // var barcodepos = vIdx == 0 ? "LEFT" : "RIGHT"; + // Pub.log.AddE("(" + barcodepos + ")바코드를 검증했지만 일치하지 않습니다"); + // Pub.Result.SetResultMessage(eResult.OPERATION, eECode.BARCODEVALIDERR, eNextStep.pause, + // vIdx, Pub.Result.ItemData[vIdx].VisionData.RID, Pub.Result.ItemData[vIdx].VisionData.RID2, + // Pub.Result.ItemData[vIdx].VisionData.QTY, Pub.Result.ItemData[vIdx].VisionData.QTY2, + // Pub.Result.ItemData[vIdx].VisionData.SID, Pub.Result.ItemData[vIdx].VisionData.SID2, + // Pub.Result.ItemData[vIdx].VisionData.MFGDATE, Pub.Result.ItemData[vIdx].VisionData.MFGDATE2, + // barcodepos); + // return; + // } + //} + } + + } } diff --git a/Handler/Project/STDLabelAttach(ATV).csproj b/Handler/Project/STDLabelAttach(ATV).csproj index 1643695..ad88ca8 100644 --- a/Handler/Project/STDLabelAttach(ATV).csproj +++ b/Handler/Project/STDLabelAttach(ATV).csproj @@ -402,6 +402,7 @@ True dsWMS.xsd + Form diff --git a/Handler/Project/Util/BarcodeDataProcessing.cs b/Handler/Project/Util/BarcodeDataProcessing.cs index c5d8f9b..7f2b059 100644 --- a/Handler/Project/Util/BarcodeDataProcessing.cs +++ b/Handler/Project/Util/BarcodeDataProcessing.cs @@ -20,10 +20,10 @@ namespace Project if (itemC.VisionData.CUSTCODE.isEmpty() && VAR.STR[eVarString.JOB_CUSTOMER_CODE].isEmpty() == false) { itemC.VisionData.CUSTCODE = VAR.STR[eVarString.JOB_CUSTOMER_CODE]; - PUB.log.Add($"Cutomer Code 고정값 사용 : {itemC.VisionData.CUSTCODE}"); + PUB.log.Add($"Cutomer Code Fixed Value : {itemC.VisionData.CUSTCODE}"); } - + //커스터머 이름 확인 if (mainJob && PUB.OPT_BYPASS() == false) @@ -43,7 +43,7 @@ namespace Project //[WMS] SID정보테이블에서 정보 추출(프린트정보는 없음) //[WMS] 에서 중복검색되면 팝업을 해야하므로 이것을 먼저 처리한다. - if (VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] && itemC.VisionData.BarcodeTouched == true) + if (VAR.BOOL[eVarBool.Opt_ApplyWMSInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true)) { var rlt_FindWMD = BCDProcess_FindWMSInfo(itemC); if (rlt_FindWMD.NewBarcodeUpdated) NewBarcodeUpdated = true; @@ -51,25 +51,25 @@ namespace Project } //SID정보테이블에서 정보 추출 - if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && itemC.VisionData.BarcodeTouched == true) + if (VAR.BOOL[eVarBool.Opt_ApplySIDInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true)) { if (BCDProcess_FindSIDInfo(itemC) == true) NewBarcodeUpdated = true; } //시드변환정보에서 정보 추출 - if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && itemC.VisionData.BarcodeTouched == true) + if (VAR.BOOL[eVarBool.Opt_ApplySIDConv] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true)) { if (BCDProcess_FindSIDConv(itemC) == true) NewBarcodeUpdated = true; } //기존 작업에서 데이터를 찾아서 쓴다 - if (VAR.BOOL[eVarBool.Opt_ApplyJobInfo] && itemC.VisionData.BarcodeTouched == true) + if (VAR.BOOL[eVarBool.Opt_ApplyJobInfo] && (CompleteCheck || itemC.VisionData.BarcodeTouched == true)) { if (BCDProcess_FindJobData(itemC) == true) NewBarcodeUpdated = true; } //릴ID 신규발행 - if (mainJob && PUB.OPT_BYPASS() == false && VAR.BOOL[eVarBool.Opt_NewReelID]) + if (PUB.OPT_BYPASS() == false && VAR.BOOL[eVarBool.Opt_NewReelID]) BCDProcess_MakeReelID(itemC); //SiD CONVERT @@ -189,6 +189,7 @@ namespace Project else if (itemC.VisionData.SID.isEmpty()) { //no sid need confirm + //PUB.log.AddAT($"Print Position Errr (No SID)"); NeedConfirm = true; } else @@ -203,7 +204,6 @@ namespace Project } else if (NeedConfirm == false) { - //현작업내에서의 정보를 찾아서 적용한다 231005 NeedConfirm = true; } } diff --git a/Handler/Project/fMain.Designer.cs b/Handler/Project/fMain.Designer.cs index 82b4294..857234b 100644 --- a/Handler/Project/fMain.Designer.cs +++ b/Handler/Project/fMain.Designer.cs @@ -1661,7 +1661,7 @@ this.toolStripMenuItem16, this.getImageToolStripMenuItem}); this.cmDebug.Name = "cmVision"; - this.cmDebug.Size = new System.Drawing.Size(256, 612); + this.cmDebug.Size = new System.Drawing.Size(256, 590); // // inboundToolStripMenuItem // @@ -3305,6 +3305,7 @@ this.tbVisionL.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.tbVisionL.TextShadow = true; this.tbVisionL.TextVisible = true; + this.tbVisionL.Click += new System.EventHandler(this.tbBarcodeR_Click); // // label5 // @@ -3364,6 +3365,7 @@ this.tbBarcodeR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.tbBarcodeR.TextShadow = true; this.tbBarcodeR.TextVisible = true; + this.tbBarcodeR.Click += new System.EventHandler(this.tbBarcodeR_Click); // // label6 // @@ -3423,6 +3425,7 @@ this.tbVisionR.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.tbVisionR.TextShadow = true; this.tbVisionR.TextVisible = true; + this.tbVisionR.Click += new System.EventHandler(this.tbBarcodeR_Click); // // label2 // @@ -3495,6 +3498,7 @@ this.tbBarcodeF.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.tbBarcodeF.TextShadow = true; this.tbBarcodeF.TextVisible = true; + this.tbBarcodeF.Click += new System.EventHandler(this.tbBarcodeR_Click); // // panel28 // diff --git a/Handler/Project/fMain.cs b/Handler/Project/fMain.cs index b50ddc0..1afd0a0 100644 --- a/Handler/Project/fMain.cs +++ b/Handler/Project/fMain.cs @@ -286,32 +286,41 @@ namespace Project PUB.log.Add($"ListFormmatData"); arDatagridView1.SuspendLayout(); - foreach (DataGridViewRow item in this.arDatagridView1.Rows) + + try { - var drv = item.DataBoundItem as System.Data.DataRowView; - var dr = drv.Row as DataSet1.K4EE_Component_Reel_ResultRow; + foreach (DataGridViewRow item in this.arDatagridView1.Rows) + { + var drv = item.DataBoundItem as System.Data.DataRowView; + var dr = drv.Row as DataSet1.K4EE_Component_Reel_ResultRow; - if (dr.REMARK.StartsWith("(BYPASS")) - { - item.DefaultCellStyle.BackColor = Color.LightSkyBlue; - } - else - { - if (dr.LOC == "L") - item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220); + if (dr.REMARK.StartsWith("(BYPASS")) + { + item.DefaultCellStyle.BackColor = Color.LightSkyBlue; + } else - item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250); - } + { + if (dr.LOC == "L") + item.DefaultCellStyle.BackColor = Color.FromArgb(220, 220, 220); + else + item.DefaultCellStyle.BackColor = Color.FromArgb(250, 250, 250); + } - if (dr.REMARK.StartsWith("(BYPASS")) - item.DefaultCellStyle.ForeColor = Color.Black; - else if (dr.PRNATTACH == false) - item.DefaultCellStyle.ForeColor = Color.FromArgb(0xfe, 0x2a, 0x00); - else if (dr.PRNVALID == false) - item.DefaultCellStyle.ForeColor = Color.FromArgb(0x1f, 0x3b, 0x34); - else - item.DefaultCellStyle.ForeColor = Color.Black; + if (dr.REMARK.StartsWith("(BYPASS")) + item.DefaultCellStyle.ForeColor = Color.Black; + else if (dr.PRNATTACH == false) + item.DefaultCellStyle.ForeColor = Color.FromArgb(0xfe, 0x2a, 0x00); + else if (dr.PRNVALID == false) + item.DefaultCellStyle.ForeColor = Color.FromArgb(0x1f, 0x3b, 0x34); + else + item.DefaultCellStyle.ForeColor = Color.Black; + } } + catch (Exception ex) + { + + } + arDatagridView1.ResumeLayout(); } async private void __Load(object sender, EventArgs e) @@ -492,10 +501,17 @@ namespace Project var data = e.StrValue.Replace("\r", "").Replace("\n", ""); bool findregex = false; PUB.log.Add($"Fixed barcode received\n{data}"); - var cnt = BarcodeRegExProcess( - PUB.Result.BCDPattern, - PUB.Result.BCDIgnorePattern, - PUB.Result.ItemDataC.VisionData, string.Empty, data, out bool IgnoreBarcode, out findregex); + + Tuple> cnt = null; + bool IgnoreBarcode = false; + lock (PUB.Result.BCDPatternLock) + { + cnt = BarcodeRegExProcess( + PUB.Result.BCDPattern, + PUB.Result.BCDIgnorePattern, + PUB.Result.ItemDataC.VisionData, string.Empty, data, out IgnoreBarcode, out findregex); + } + if (IgnoreBarcode) PUB.log.AddE("This is an ignore barcode"); else if (cnt.Item1 == 0) PUB.log.AddAT("(Manual) No applicable barcode value"); @@ -1107,15 +1123,15 @@ namespace Project } if (reelinfo.id.isEmpty() == false) { - vdata.VisionData.SetRID(reelinfo.id,"TEST"); + vdata.VisionData.SetRID(reelinfo.id, "TEST"); vdata.VisionData.RID_Trust = true; } - if(reelinfo.mfg.isEmpty()==false) + if (reelinfo.mfg.isEmpty() == false) { vdata.VisionData.MFGDATE = reelinfo.mfg; vdata.VisionData.MFGDATE_Trust = true; } - if(reelinfo.qty > 0) + if (reelinfo.qty > 0) { vdata.VisionData.QTY = reelinfo.qty.ToString(); vdata.VisionData.QTY_Trust = true; @@ -1769,9 +1785,12 @@ namespace Project private void bcdRegProcessClearToolStripMenuItem_Click(object sender, EventArgs e) { + lock (PUB.Result.BCDPatternLock) + { + PUB.Result.BCDPattern.Clear(); + PUB.Result.BCDIgnorePattern.Clear(); + } - PUB.Result.BCDPattern.Clear(); - PUB.Result.BCDIgnorePattern.Clear(); if (PUB.Result.ItemDataC.VisionData == null) return; @@ -1790,6 +1809,18 @@ namespace Project { using (var f = new Dialog.RegExRule()) f.ShowDialog(); + + if (PUB.sm.Step != eSMStep.IDLE) + { + lock (PUB.Result.BCDPatternLock) + { + var modelName = PUB.Result.vModel.Title; + PUB.Result.BCDPattern = PUB.GetPatterns(modelName, false); + PUB.Result.BCDIgnorePattern = PUB.GetPatterns(modelName, true); + PUB.log.Add($"Model pattern loading: {PUB.Result.BCDPattern.Count}/{PUB.Result.BCDIgnorePattern.Count}"); + } + + } } @@ -2220,5 +2251,17 @@ namespace Project { PUB.Result.AutoReelOut = !PUB.Result.AutoReelOut; } + + private void tbBarcodeR_Click(object sender, EventArgs e) + { + var lb = sender as arCtl.arLabel; + if (lb == null) return; + var txt = lb.Text.Trim(); + if(txt.isEmpty()==false) + { + Clipboard.SetText(txt); + PUB.log.AddI($"Clipboard copy : {txt}"); + } + } } } \ No newline at end of file diff --git a/Handler/Project/fMain.resx b/Handler/Project/fMain.resx index 9abc638..8cb826e 100644 --- a/Handler/Project/fMain.resx +++ b/Handler/Project/fMain.resx @@ -473,16 +473,16 @@ If pressed while motion is moving, motion will also stop. iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIUSURBVGhD7ZPBShtRFIanL6DvEIg7a99Au7OWQrqzuxYE - pVBREBlsIRIptpWigtamFTNjCmNGSzSiL1B9gZbqxi5aS7ptt1nkmIt/mMnMuVDITHLA+eDbzbn/l0WM - hISEG8TDP/X7mWrtd6ZKFIcPqrXLTLV+D3PRcz3Aj0dn7RfmoocfjF7MRQ83FoeYix5uLA4xFxEz30+N - 2XNScmNx2NwzZs6+oKINmo914wco28b3GDcWh/5NVLSB7zFuLA79m6hoA99j3Fgc+jdR8f9MmrmRCTN3 - +czMkSSvmxaGkalHYnzTp2buJzL1cIeSRKYe7kiSyNTDHUkSmXq4I0kiUw93JElk6gkejD4ep/7bA5RO - pzuq2nz0ZKKlRYlMPcGDbsQ37R+409KiRKae4AH3cCcN9iBTT/CAe7STBnuQqWds0iS/qVSqqwZ7kBnG - do76rFLltCHZ7qFI0XaiWpHtoeKDB4I9QbbHB/fzP+ZDoVb+Ituj4O5/4z8WqFP5imwPa+dwm/1YoqUD - G9kejf/ANPuxTKeQ7VFwykNW6aDxT5evXaoMItujWDzuWVrbrG85ZZKsasy7bi+yW8nbOz8+ftoj0RZ3 - L5AbZn3L2XtXcEi4u8gNs5wvPF/JWyTa99YccsO8Xl2/+2p1gyS7uLwxhNwwRHTrxcul/Ww2W59ffEuS - VE1zC2/KqhG5CQkJCQk3HsO4AkjrtxJUp20UAAAAAElFTkSuQmCC + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIUSURBVGhD7ZPBShtRFIanL1DfIZDu1L5B7U4tQty1uxYK + FUGxIDKokBIptinFSrGaCmamEcaMlmhEX0B9gUrbTbtoU9Jtu80ip7n4h5nMnAuFzCQHnA++3Zz7f1nE + SEhIuEZM/m7ey9QbvzJ1ojicqDdqmXpzDHPRczXAj0dn4yfmoocfjF7MRQ83FoeYix5uLA4xFxHzny+M + ha+k5MbisL1nzH85Q0UXtB/rxw9Qdo3vMW4sDv2bqOgC32PcWBz6N1HRBb7HuLE49G+i4v+ZNXPjU2au + NmPmSJJXTSujyNQjMb7ttJn7gUw93KEkkamHO5IkMvVwR5JEph7uSJLI1MMdSRKZeoIH9x8+ocGhYUqn + 0z1VbT54NNXRokSmnuBBP+LbDg7f7mhRIlNP8IB7uJcGe5CpJ3jAPdpLgz3I1PN41iS/qVSqrwZ7kBnG + dk5uWeXqRUuy3WORou1ctSLbQ8UHDwR7jmyP9+7Hv8yHQq3+QbZH0T285D8WqFP9hGwPa+/4A/uxRMtH + NrI9Wv+Bp+zHMp1DtkfRqYxY5aPWP12+drl6B9kepdLpzfzb7eaOUyHJqsaC6w4gu5OCvfd9e/eARFva + /4bcMBs7zsG7okPC3UdumLVCcelNwSLRblmLyA3zcn3j7ov1TZLs6trmCHLDENGN5eevDrPZbPPZ6muS + pGpaXMlXVCNyExISEhKuPYbxDwvXtwz5x5voAAAAAElFTkSuQmCC diff --git a/keyence_front.ptc b/keyence_front.ptc index 98d979363366b54c282ac50f0c8f56225e061255..388100de9a28c190274cdee02c7af8eede7dce62 100644 GIT binary patch delta 342 zcmZ3ol5xpO#tk=^84Wg1WN&6_nUVPeBg5o; z)?DUi{4AUAv)VGUvNA9*FixJxr#^WCGY8{7u+csSDw7qYST_IRD`5r+Z>|v90AU!2 zK^ZS3p^OEx8SG#+0;*7v6Bn75LNAcbUZg5bU#Kiwr9M-{k+s#pAo$M;G((MT8WTu<--^UoAeTYo_imO8Kz?6992TRR| diff --git a/keyence_rear.ptc b/keyence_rear.ptc index 316ca98c4b5306d04f9804e1540b92e429901fff..183771f59a7f1e282aaefe8241f0769917dd0027 100644 GIT binary patch delta 559 zcmZ{hK}!Nb6vyA}%sMM6Dkdgbt`O|Oq6IGnqPtLs2tq$VP#|=*Qv@BhLv&5vSMZQR zQ0y1*1JtFn7cZTKxV#Mir8Z4NfED89~M5aLn{b4w8ix86^(ULbgC`o$w9-C_7ac!6>Pa#9LCa2 zbjz#QX&6}JX~O z(`f2eN5{myCXWrTTMI-JN(7s%!^BgQ=1+zumBJ`Brpn~nUIytUC}1~wZL z910^7(60t+gX)OH@!Yl0b2bXmcM~LdbCUSvl>CuX<1C4Vy?1UF!B6dXQ{v<6BJm9u C%3&4& delta 98 zcmZ3ol5xpO#tmnfH?I+zqqF$~-vhqM3XB|+1MELYHZU?UFaU8q8w10C79bl4;(?fX za-pO8