511 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			511 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| using System.CodeDom.Compiler;
 | |
| using System.Reflection;
 | |
| using Microsoft.CSharp;
 | |
| 
 | |
| namespace FEQ0000
 | |
| {
 | |
|     public partial class fEquipment : Form
 | |
|     {
 | |
|         public enum eTabletype
 | |
|         {
 | |
|             ALL,
 | |
|             //MOLD,
 | |
|             //FOL,
 | |
|             //BUMP,
 | |
|             //ING,
 | |
|             //OTHER
 | |
|         }
 | |
|         string tableName = string.Empty;
 | |
|         eTabletype dataType = eTabletype.ALL;
 | |
| 
 | |
|         public fEquipment(eTabletype type_)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             dataType = type_;
 | |
| 
 | |
|             this.tbSearch.KeyDown += (s1, e1) => { 
 | |
|                 if(e1.KeyCode == Keys.Enter)
 | |
|                 {
 | |
|                     btRefresh.PerformClick();
 | |
|                 }
 | |
|             };
 | |
|             //if (dataType == eTabletype.MOLD)
 | |
|             //{
 | |
| 
 | |
|             //    tableName = "EquipmentME";
 | |
|             //    this.dsEQ.EquipmentME.TableNewRow += Equipment_TableNewRow;
 | |
|             //    dvc_param.Visible = false;
 | |
|             //}
 | |
|             //else if (dataType == eTabletype.FOL)
 | |
|             //{
 | |
| 
 | |
|             //    tableName = "EquipmentF";
 | |
|             //    this.dsEQ.EquipmentF.TableNewRow += Equipment_TableNewRow;
 | |
|             //    dvc_param.Visible = false;
 | |
|             //}
 | |
|             //else if (dataType == eTabletype.ING)
 | |
|             //{
 | |
| 
 | |
|             //    tableName = "EETGW_EquipmentIng";
 | |
|             //    this.dsEQ.EETGW_EquipmentIng.TableNewRow += Equipment_TableNewRow;
 | |
|             //    dvc_param.Visible = false;
 | |
|             //}
 | |
|             //else if (dataType == eTabletype.OTHER)
 | |
|             //{
 | |
| 
 | |
|             //    tableName = "EETGW_EquipmentOther";
 | |
|             //    this.dsEQ.EETGW_EquipmentOther.TableNewRow += Equipment_TableNewRow;
 | |
|             //    dvc_param.Visible = false;
 | |
|             //}
 | |
|             //else
 | |
|             //if (dataType == eTabletype.ALL)
 | |
|             //{
 | |
| 
 | |
|                 tableName = "EETGW_Equipment";
 | |
|                 //this.dsEQ.EETGW_EquipmentOther.TableNewRow += Equipment_TableNewRow;
 | |
|                 dvc_param.Visible = false;
 | |
|                 panel1.Visible = true; //필터창보이게
 | |
|             //}
 | |
|             //else
 | |
|             //{
 | |
| 
 | |
|             //    tableName = "EquipmentB";
 | |
|             //    //this.dsEQ.EquipmentB.TableNewRow += Equipment_TableNewRow;
 | |
|             //    dvc_param.Visible = true;
 | |
|             //}
 | |
|             this.FormClosed += fEquipment_FormClosed;
 | |
| 
 | |
|         }
 | |
| 
 | |
|         void fEquipment_FormClosed(object sender, FormClosedEventArgs e)
 | |
|         {
 | |
|             var form = this as Form;
 | |
|             FCOMMON.Util.SetFormStatus(ref form, this.Name + this.tableName, false);
 | |
|         }
 | |
| 
 | |
|         void RefreshDate()
 | |
|         {
 | |
|             //등록된 날짜 목록을 가져온다.
 | |
|             var taDateList = new dsEQTableAdapters.EqDateListTableAdapter();
 | |
|             DataTable dtList = null;
 | |
| 
 | |
|             if (dataType == eTabletype.ALL) dtList = taDateList.GetData();
 | |
|             else dtList = taDateList.GetData();
 | |
| 
 | |
|             this.cmbDate.Items.Clear();
 | |
|             if (dtList != null)
 | |
|             {
 | |
|                 foreach (DataRow dr in dtList.Rows)
 | |
|                 {
 | |
|                     this.cmbDate.Items.Add(dr["pdate"].ToString());
 | |
|                 }
 | |
|             }
 | |
|             if (this.cmbDate.Items.Count > 0) this.cmbDate.SelectedIndex = 0;
 | |
|         }
 | |
| 
 | |
|         private void __Load(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Text = string.Format("Equipment List({0})", this.dataType);
 | |
|             var form = this as Form;
 | |
|             FCOMMON.Util.SetFormStatus(ref form, this.Name + this.tableName, true);
 | |
|             this.Show();
 | |
|             Application.DoEvents();
 | |
| 
 | |
|             RefreshDate();
 | |
| 
 | |
|             //목록을 가져온다.
 | |
|             var tlList = DatabaseManager.getEQGroupLiist("linet +'-' + linep ", this.tableName);
 | |
|             var lcList = DatabaseManager.getEQGroupLiist("linecode", this.tableName);
 | |
|             var manuList = DatabaseManager.getEQGroupLiist("manu", this.tableName);
 | |
|             var typeList = DatabaseManager.getEQGroupLiist("type", this.tableName);
 | |
|             var plantList = DatabaseManager.getEQGroupLiist("plant", this.tableName);
 | |
|             //var grp2List = DatabaseManager.getEQGroupLiist("grp2", this.tableName);
 | |
| 
 | |
|             cbTeamPart.Items.Add("-- All --");
 | |
|             cmbLine.Items.Add("-- All --");
 | |
|             cmbManu.Items.Add("-- All --");
 | |
|             cmbType.Items.Add("-- All --");
 | |
|             cmbPlant.Items.Add("-- All --");
 | |
|             // cmbCate.Items.Add("-- All --");
 | |
| 
 | |
|             foreach (var item in tlList) this.cbTeamPart.Items.Add(item);
 | |
|             foreach (var item in lcList) this.cmbLine.Items.Add(item);
 | |
|             foreach (var item in manuList) this.cmbManu.Items.Add(item);
 | |
|             foreach (var item in typeList) this.cmbType.Items.Add(item);
 | |
|             foreach (var item in plantList) this.cmbPlant.Items.Add(item);
 | |
|             // foreach (var item in grp2List) this.cmbCate.Items.Add(item);
 | |
| 
 | |
|             if (this.cbTeamPart.Items.Count > 0) cbTeamPart.SelectedIndex = 0;
 | |
|             if (this.cmbLine.Items.Count > 0) cmbLine.SelectedIndex = 0;
 | |
|             if (this.cmbManu.Items.Count > 0) cmbManu.SelectedIndex = 0;
 | |
|             if (this.cmbType.Items.Count > 0) cmbType.SelectedIndex = 0;
 | |
|             if (this.cmbPlant.Items.Count > 0) cmbPlant.SelectedIndex = 0;
 | |
|             //if (this.cmbCate.Items.Count > 0) cmbCate.SelectedIndex = 0;
 | |
| 
 | |
|             //if (this.dataType == eTabletype.ING)
 | |
|             //    dvc_param.HeaderText = "RCS Flag";
 | |
|             //else
 | |
|             dvc_param.HeaderText = "Wafer Size";
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void equipmentBindingNavigatorSaveItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Validate();
 | |
|             this.bsAll.EndEdit();
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 taAll.Update(this.dsEQ.EETGW_Equipment);
 | |
|                 this.dsEQ.AcceptChanges();
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE(ex.Message);
 | |
|             }
 | |
|         }
 | |
| 
 | |
| 
 | |
|         void Equipment_TableNewRow(object sender, DataTableNewRowEventArgs e)
 | |
|         {
 | |
|             e.Row["wuid"] = FCOMMON.info.Login.no;
 | |
|             e.Row["wdate"] = DateTime.Now;
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private int applyFilter(string filter, string apply)
 | |
|         {
 | |
|             if (filter.isEmpty() || apply.isEmpty()) return -1;
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 DataRow[] dRows = null;
 | |
|                 dRows = this.dsEQ.EETGW_Equipment.Select(filter);
 | |
| 
 | |
|                 int cnt = 0;
 | |
|                 foreach (DataRow dr in dRows)
 | |
|                 {
 | |
|                     var appList = apply.Split(';');
 | |
|                     foreach (var item in appList)
 | |
|                     {
 | |
|                         if (item.isEmpty()) continue;
 | |
|                         var field = item.Split('=')[0].Trim();
 | |
|                         var value = item.Split('=')[1].Trim();
 | |
|                         dr[field] = value;
 | |
|                     }
 | |
|                     cnt += 1;
 | |
|                 }
 | |
|                 //this.bsB.Filter = filter;
 | |
|                 //Util.MsgI(string.Format("{0} 건의 자료가 업데이트 되었습니다.",cnt));
 | |
|                 return cnt;
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE(ex.Message);
 | |
|                 return -1;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 string key = tbFilter.Text.Trim();
 | |
|                 string filter = "";
 | |
|                 if (!key.isEmpty())
 | |
|                 {
 | |
|                     filter = "asset like @ or type like @ or manu like @ or model like @ or linecode like @  or serial like @";
 | |
|                     filter = filter.Replace("@", "'%" + key.Replace("'", "''") + "%'");
 | |
|                 }
 | |
|                 try
 | |
|                 {
 | |
|                     this.bsAll.Filter = filter;
 | |
| 
 | |
|                     if (key.isEmpty()) this.tbFilter.BackColor = Color.White;
 | |
|                     else this.tbFilter.BackColor = Color.Lime;
 | |
|                 }
 | |
|                 catch (Exception ex)
 | |
|                 {
 | |
|                     tbFilter.BackColor = Color.HotPink;
 | |
|                     FCOMMON.Util.MsgE("filter error\n" + ex.Message);
 | |
|                 }
 | |
|                 tbFilter.Focus();
 | |
|                 tbFilter.SelectAll();
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE(ex.Message);
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private void toolStripButton4_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (this.dsEQ.EETGW_Equipment.Count < 1)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("자료가 없습니다. 자료를 조회하고 시도하세요");
 | |
|                 return;
 | |
|             }
 | |
|             var f = new rpt_equipmentAll(this.dsEQ.EETGW_Equipment, "Equipment");
 | |
|             f.Show();
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton2_Click(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton5_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var f = new fImpEquipment(dataType);
 | |
|             f.ShowDialog();
 | |
|             RefreshDate();
 | |
|         }
 | |
| 
 | |
|         //string grp2name = string.Empty;
 | |
|         private void toolStripButton6_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             if (cmbDate.SelectedIndex < 0)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("No Date");
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
| 
 | |
|             // this.grp2name = this.cmbCate.Text;
 | |
| 
 | |
| 
 | |
|             //select query
 | |
|             string newSQL = "select * from {0}";
 | |
|             string newWhere = "pdate = '{1}'";
 | |
|             if (cbTeamPart.SelectedIndex != 0 && !cbTeamPart.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += "linet +'-' + linep ='" + cbTeamPart.Text + "'";
 | |
|             }
 | |
|             if (this.cmbManu.SelectedIndex != 0 && !cmbManu.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += "manu='" + cmbManu.Text + "'";
 | |
|             }
 | |
|             if (this.cmbLine.SelectedIndex != 0 && !cmbLine.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += "linecode='" + cmbLine.Text + "'";
 | |
|             }
 | |
|             if (this.cmbType.SelectedIndex != 0 && !cmbType.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += "[type]='" + cmbType.Text + "'";
 | |
|             }
 | |
|             if (!this.tbSearch.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += string.Format("(asset like '%{0}%' or type like '%{0}%' or manu like '%{0}%' or model like '%{0}%' or linet like '%{0}%' or linep like '%{0}%' or linecode like '%{0}%' or serial like '%{0}%')", tbSearch.Text);
 | |
|             }
 | |
|             if (this.cmbPlant.SelectedIndex > 0 && !this.cmbPlant.Text.isEmpty())
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += "[plant]='" + cmbPlant.Text + "'";
 | |
|             }
 | |
| 
 | |
|             if (radexpn.Checked)
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += string.Format("isnull([except],0) = 0");
 | |
|             }
 | |
|             if (radexpy.Checked)
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += string.Format("isnull([except],0) = 1");
 | |
|             }
 | |
|             if (radioButton1.Checked) //yes
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += string.Format("isnull([ing],0) = 1");
 | |
|             }
 | |
|             if (radioButton3.Checked) //no
 | |
|             {
 | |
|                 if (!newWhere.isEmpty()) newWhere += " and ";
 | |
|                 newWhere += string.Format("isnull([ing],0) = 0");
 | |
|             }
 | |
| 
 | |
|             string CommandText = newSQL;
 | |
|             if (!newWhere.isEmpty()) CommandText += " where " + newWhere;
 | |
| 
 | |
| 
 | |
| 
 | |
|             CommandText = string.Format(CommandText, "EETGW_Equipment", this.cmbDate.Text);
 | |
|             var cmd = new System.Data.SqlClient.SqlCommand(CommandText, this.taAll.Connection);
 | |
|             var da = new System.Data.SqlClient.SqlDataAdapter(cmd);
 | |
|             dsEQ.EETGW_Equipment.Clear();
 | |
|             da.Fill(this.dsEQ.EETGW_Equipment);
 | |
|             dsEQ.EETGW_Equipment.AcceptChanges();
 | |
| 
 | |
| 
 | |
|             ////select command
 | |
|             //if (this.taAll.Adapter.SelectCommand == null)
 | |
|             //    this.taAll.Adapter.SelectCommand = new System.Data.SqlClient.SqlCommand();
 | |
|             //this.taAll.Adapter.SelectCommand.CommandText = string.Format(CommandText, "EETGW_Equipment");
 | |
|             //this.dsEQ.EETGW_Equipment.Clear();
 | |
|             //taAll.Fill(this.dsEQ.EETGW_Equipment, this.cmbDate.Text);
 | |
|             //this.dsEQ.EETGW_Equipment.AcceptChanges();
 | |
|             dv.DataSource = bsAll;
 | |
|             bn.BindingSource = bsAll;
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void toolStripDropDownButton1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             panel1.Visible = !panel1.Visible;
 | |
|         }
 | |
| 
 | |
|         private void autosizeColumnsToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.dv.AutoResizeColumns();
 | |
|         }
 | |
| 
 | |
|         private void applyToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var f = new EQFilterApply("E");
 | |
|             if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|             {
 | |
|                 var dlg = FCOMMON.Util.MsgQ("매크로를 적용 하시겠습니까?");
 | |
|                 if (dlg != System.Windows.Forms.DialogResult.Yes) return;
 | |
| 
 | |
|                 int cnt = 0;
 | |
|                 foreach (ListViewItem lvitem in f.listView1.CheckedItems)
 | |
|                 {
 | |
|                     //filter =2 , apply=3l
 | |
|                     var filter = lvitem.SubItems[2].Text;
 | |
|                     var apply = lvitem.SubItems[3].Text;
 | |
| 
 | |
|                     cnt += applyFilter(filter, apply);
 | |
|                 }
 | |
| 
 | |
|                 FCOMMON.Util.MsgI(string.Format("{0}건의 매크로를 적용했습니다", cnt));
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton7_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //var eqdiv = this.dataType == eTabletype.ING ? "I" : "E";
 | |
|             var f = new EQfilterManager("E");
 | |
|             if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
 | |
|             {
 | |
|                 var filter = f.filter;
 | |
|                 var apply = f.apply;
 | |
|                 if (filter.isEmpty() || apply.isEmpty())
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("no data");
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 var dlg = FCOMMON.Util.MsgQ("다음 매크로를 적용 하시겠습니까?\nFilter:" + filter + "\n" +
 | |
|                     "apply : " + apply);
 | |
|                 if (dlg != System.Windows.Forms.DialogResult.Yes) return;
 | |
| 
 | |
|                 var cnt = applyFilter(filter, apply);
 | |
|                 if (cnt == -1) FCOMMON.Util.MsgE("오류로 인해 실행되지 않았습니다.");
 | |
|                 else FCOMMON.Util.MsgI(cnt.ToString() + "건의 자료가 변경되었습니다.");
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void tbFilter_KeyDown(object sender, KeyEventArgs e)
 | |
|         {
 | |
|             if (e.KeyCode == Keys.Enter) btFind.PerformClick();
 | |
|         }
 | |
| 
 | |
|         private void 장비모델생성공통07ToolStripMenuItem_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var cn1 = FCOMMON.DBM.getCn();
 | |
|             var cn2 = FCOMMON.DBM.getCn();
 | |
|             cn1.Open();
 | |
|             cn2.Open();
 | |
| 
 | |
|             System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("", cn1);
 | |
|             System.Data.SqlClient.SqlCommand cmd2 = new System.Data.SqlClient.SqlCommand("", cn2);
 | |
| 
 | |
| 
 | |
|             cmd.CommandText = "select * from common where grp ='07' and svalue <> '' and isnull(code,'') = ''";
 | |
|             var rdr = cmd.ExecuteReader();
 | |
|             while (rdr.Read())
 | |
|             {
 | |
|                 string manu = rdr["svalue"].ToString();
 | |
|                 cmd2.CommandText = "select code from common where grp ='06' and memo='" + manu + "'";
 | |
|                 var manu_data = cmd2.ExecuteScalar();
 | |
|                 if (manu_data == null) continue;
 | |
| 
 | |
|                 var manu_code = manu_data.ToString();
 | |
| 
 | |
|                 cmd2.CommandText = "update common set code = '" + manu_code + "'  where grp = '07' and isnull(code,'') = '' and svalue = '" + manu + "'";
 | |
|                 cmd2.ExecuteNonQuery();
 | |
|             }
 | |
| 
 | |
| 
 | |
|             cmd.Dispose();
 | |
|             cn1.Close();
 | |
|             cn2.Close();
 | |
|             cn1.Dispose();
 | |
|             cn2.Dispose();
 | |
| 
 | |
|             FCOMMON.Util.MsgI("ok");
 | |
|         }
 | |
| 
 | |
|         private void toolStripButton1_Click_1(object sender, EventArgs e)
 | |
|         {
 | |
|             var dlg = FCOMMON.Util.MsgQ("Plant 정보를 서버의 정보로 변경 할까요?");
 | |
|             if (dlg != DialogResult.Yes) return;
 | |
| 
 | |
|             this.prb1.Minimum = 0;
 | |
|             this.prb1.Value = 0;
 | |
| 
 | |
| 
 | |
|             var ucnt = 0;
 | |
|             var taLIne = new dsEQTableAdapters.LineCodeTableAdapter();
 | |
|             var dtLineCode = taLIne.GetData();
 | |
| 
 | |
| 
 | |
|             this.prb1.Maximum = this.dsEQ.EETGW_Equipment.Count;
 | |
|             foreach (dsEQ.EETGW_EquipmentRow dr in this.dsEQ.EETGW_Equipment)
 | |
|             {
 | |
|                 if (this.prb1.Value < this.prb1.Maximum) this.prb1.Value += 1;
 | |
|                 if (dr.RowState == DataRowState.Deleted || dr.RowState == DataRowState.Detached) continue;
 | |
|                 var linedata = dtLineCode.Where(t => t.code == dr.linecode).FirstOrDefault();
 | |
|                 if (linedata != null)
 | |
|                 {
 | |
|                     if (dr.grp2 != linedata.grp2 || dr.lineP != linedata.part || dr.lineT != linedata.team || dr.plant != linedata.plant)
 | |
|                     {
 | |
|                         //dr.lineP = linedata.part;
 | |
|                         //dr.lineT = linedata.team;
 | |
|                         dr.plant = linedata.plant;
 | |
|                         //dr.grp2 = linedata.grp2;
 | |
|                         dr.EndEdit();
 | |
|                         ucnt += 1;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
| 
 | |
| 
 | |
|             FCOMMON.Util.MsgI($"{ucnt} 건의 자료가 변경 되었습니다. 적용하려면 '저장' 버튼을 누르세요");
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void groupBox2_Enter(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | 
