//정보 입력 후 추가버튼을 누르면 추가되고 사용자관리 페이지의 init함수를 실행하여 새로고침 private void Add_Click(object sender, EventArgs e) { if (UserName.Text.Equals("") || userId.Text.Equals("") || right.Text.Equals("") || position.Text.Equals("")) { MessageBox.Show("정보를 모두 입력하고 등록해주세요"); } else { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 tcp.ConnectServer(); //서버 연결 시작 byte[] user_data = json.UserParse(UserName.Text, userId.Text, right.Text, position.Text); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌 byte[] user_info = tcp.DataParse(user_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(user_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["regis_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) //val=1이면 로그인 성공 { userM.init(); UserName.Text = string.Empty; userId.Text = string.Empty; right.Text = string.Empty; position.Text = string.Empty; MessageBox.Show("사용자가 등록이 되었습니다."); } else //아니면 실패 { MessageBox.Show("이미 존재하는 사원번호입니다."); } } }
public void SelectOper(string _oper, int _page) { TcpSocket tcp = new TcpSocket(); JsonParsing json = new JsonParsing(); tcp.ConnectServer(); byte[] data_oper = json.DataOperParse(oper, Convert.ToInt32(count.Text), cur_page); byte[] oper_info = tcp.DataParse(data_oper); tcp.Request(oper_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 int cnt = Convert.ToInt32(count.Text); totalPage = Convert.ToInt32(recvMsg["data_cnt"]) / cnt; if (totalPage % cnt != 0) { totalPage += 1; } tcp.Close(); if (recvMsg.ContainsKey("ingot_data_oper")) { Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; IngotOper(recvMsg); } else if (recvMsg.ContainsKey("wafer_data_oper")) { Data_Grid.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; WaferOper(recvMsg); } page.Text = cur_page.ToString() + " / " + totalPage.ToString(); }
//잉곳 테이블을 조회하는 함수(새로고침) public void init() { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"ingot_manage\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable ingot = new DataTable(); //table의 칼럼 지정 ingot.Columns.Add("잉곳ID", typeof(string)); ingot.Columns.Add("생성진행현황", typeof(string)); ingot.Columns.Add("생성 일 수", typeof(string)); ingot.Columns.Add("시작시간", typeof(string)); ingot.Columns.Add("완료시간", typeof(string)); ingot.Columns.Add("장비ID", typeof(string)); ingot.Columns.Add("생성자", typeof(string)); //칼럼별 value값 지정 JArray ingots = (JArray)recvMsg["ingot_manage"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = ingots.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { ingot.Rows.Add(ingots[i]["ingot_id"], ingots[i]["ingot_state"], ingots[i]["ingot_create"], ingots[i]["ingot_start"], ingots[i]["ingot_finish"], ingots[i]["equip_id"], ingots[i]["ingot_maker"]); } //값들을 테이블에 표시 Ingot_Grid.DataSource = ingot; }
//정보를 입력 후 변경버튼을 클릭하면 변경됨 private void Update_Click(object sender, EventArgs e) { Menu menu = new Menu(); if (userPw.Text == pwChk.Text) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 tcp.ConnectServer(); //서버 연결 시작 byte[] update_data = json.UpdateParse(userID.Text, AES256_PW.EncryptString(userPw.Text)); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌 byte[] update_info = tcp.DataParse(update_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(update_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["pw_update"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) //val이 null이 아니면 로그인 성공 { MessageBox.Show("변경되었습니다."); this.Visible = false; } else //아니면 실패 { MessageBox.Show("비밀번호 변경실패~!"); } } else { MessageBox.Show("비밀번호가 일치하지 않습니다."); } }
//삭제하고 싶은 경로를 테이블에서 선택 후 삭제버튼을 누리면 삭제 후 새로고침 private void RouteDel_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"route_del\":\"" + selectRoute + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["route_del_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) { init(); SelectRt.CurrentCell = null; route2.Text = string.Empty; route1.Text = string.Empty; route3.Text = string.Empty; route4.Text = string.Empty; route5.Text = string.Empty; route6.Text = string.Empty; route7.Text = string.Empty; MetroFramework.MetroMessageBox.Show(this, "삭제 성공하였습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { SelectRt.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "삭제 실패하였습니다.ㅠ", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
//코드종류를 선택해서 코드ID 테이블에 띄워주는 함수(새로고침) public void init() { TcpSocket tcp = new TcpSocket(); string send = "{\"code_type_select\":\"" + selectType + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable code = new DataTable(); //table의 칼럼 지정 code.Columns.Add("코드ID", typeof(string)); //칼럼별 value값 지정 JArray codes = (JArray)recvMsg["type_select_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = codes.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { code.Rows.Add(codes[i]); } //값들을 테이블에 표시 codeId_select.DataSource = code; }
//등록된 경로들을 테이블에 표시하는 함수(새로고침) public void init() { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"route\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable route = new DataTable(); //table의 칼럼 지정 route.Columns.Add("경로ID", typeof(string)); //칼럼별 value값 지정 JArray routes = (JArray)recvMsg["route_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = routes.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { route.Rows.Add(routes[i]); } //값들을 테이블에 표시 SelectRt.DataSource = route; }
//첫 화면에 공정테이블을 불러와서 보여줌 public EquipManagement() { InitializeComponent(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"equips\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable equip = new DataTable(); //table의 칼럼 지정 equip.Columns.Add("공정ID", typeof(string)); //칼럼별 value값 지정 JArray equips = (JArray)recvMsg["equips_oper_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = equips.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { equip.Rows.Add(equips[i]); } Oper_Grid.CurrentCell = null; //값들을 테이블에 표시 Oper_Grid.DataSource = equip; }
//아이디와 패스워드 입력후 로그인 버튼 클릭시 로그인 private void logIn_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 tcp.ConnectServer(); //서버 연결 시작 byte[] login_data = json.LoginParse(ID.Text, AES256_PW.EncryptString(PW.Text)); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌 byte[] log_info = tcp.DataParse(login_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(log_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 string val = Convert.ToString(recvMsg["login_name"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (!val.Equals("null")) //val이 null이 아니면 로그인 성공 { Person.name = val; this.Visible = false; Menu menu = new Menu(); menu.ShowDialog(); } else //아니면 실패 { MetroFramework.MetroMessageBox.Show(this, "등록되지 않은 아이디이거나, 비밀번호가 틀렸습니다.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
//첫 화면에 코드종류테이블을 보여줌 public CodeManagement() { InitializeComponent(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"code_types\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable code = new DataTable(); //table의 칼럼 지정 code.Columns.Add("코드종류", typeof(string)); //칼럼별 value값 지정 JArray codes = (JArray)recvMsg["code_types"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = codes.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { code.Rows.Add(codes[i]); } //값들을 테이블에 표시 codeType_select.DataSource = code; codeType_select.CurrentCell = null; }
//등록된 사용자들을 테이블에 보여주는 함수 public void init() { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"users\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable user = new DataTable(); //table의 칼럼 지정 user.Columns.Add("사원번호", typeof(string)); user.Columns.Add("비밀번호", typeof(string)); user.Columns.Add("이름", typeof(string)); user.Columns.Add("직급", typeof(string)); user.Columns.Add("권한", typeof(string)); //칼럼별 value값 지정 JArray users = (JArray)recvMsg["users"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = users.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { user.Rows.Add(users[i]["user_id"], "*****", users[i]["user_name"], users[i]["user_pos"], users[i]["user_right"]); } User_Grid.Update(); User_Grid.Refresh(); //값들을 테이블에 표시 User_Grid.DataSource = user; }
//삭제하고 싶은 코드ID를 테이블에서 선택 후 삭제버튼 클릭시 삭제 private void CodeDel_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"code_del_id\":\"" + selectCode + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["code_del_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) { init(); codeType_select.CurrentCell = null; codeId_select.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "삭제 성공하였습니다. ^ㅡ^", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { codeType_select.CurrentCell = null; codeId_select.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "삭제 실패하였습니다. ㅠㅠ", "FAIL", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
//수정하고 싶은 코드를 테이블에서 선택 후 정보들을 수정하고 저장 버튼을 클릭시 수정이 되며 새로고침 private void Save_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 tcp.ConnectServer(); //서버 연결 시작 byte[] code_data = json.CodeUpdateParse(selectCode, Comment.Text, codeAtt1.Text, codeAtt2.Text, codeAtt3.Text, codeAtt4.Text, codeAtt5.Text, codeAtt6.Text, codeAtt7.Text, codeAtt8.Text, codeAtt9.Text, codeAtt10.Text); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌 byte[] code_info = tcp.DataParse(code_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(code_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["code_update_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) //val=1이면 로그인 성공 { init(); codeType_select.CurrentCell = null; codeId_select.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "수정 성공하였습니다. ^ㅡ^", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { codeType_select.CurrentCell = null; codeId_select.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "수정 실패하였습니다. ㅠㅠ", "FAIL", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
//코드ID 테이블의 행을 클릭하면 선택한 코드의 정보들을 텍스트박스에 보여줌 private void CodeId_select_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { selectCode = codeId_select.Rows[e.RowIndex].Cells[0].Value.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"code_id_select\":\"" + selectCode + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JObject codeView = (JObject)recvMsg["code_view"]; //json형식의 변수지정 후 서버에서 받은 데이터를 저장 Comment.Text = codeView["code_comm"].ToString(); codeAtt1.Text = codeView["code_att_fir"].ToString(); codeAtt2.Text = codeView["code_att_sec"].ToString(); codeAtt3.Text = codeView["code_att_thr"].ToString(); codeAtt4.Text = codeView["code_att_four"].ToString(); codeAtt5.Text = codeView["code_att_fif"].ToString(); codeAtt6.Text = codeView["code_att_six"].ToString(); codeAtt7.Text = codeView["code_att_sev"].ToString(); codeAtt8.Text = codeView["code_att_eig"].ToString(); codeAtt9.Text = codeView["code_att_nin"].ToString(); codeAtt10.Text = codeView["code_att_ten"].ToString(); } else { return; } }
//선택하고자하는 웨이트를 테이블에서 선택시 불량률을 테이블에 보여줌 private void Wafer_Grid_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { selectwafer = Wafer_Grid.Rows[e.RowIndex].Cells[0].Value.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"wafer_faulty_id\":\"" + selectwafer + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable error = new DataTable(); //table의 칼럼 지정 error.Columns.Add("불량코드ID", typeof(string)); error.Columns.Add("불량수량", typeof(string)); //칼럼별 value값 지정 JArray errors = (JArray)recvMsg["wafer_faulty"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = errors.Count; //json배열의 길이 for (int i = 0; i < len; i++) { error.Rows.Add(errors[i]["faulty_id"], errors[i]["faulty_quant"]); } //값들을 테이블에 표시 errorRate.DataSource = error; } else { return; } }
//생성버튼 클릭시 생성과 함께 테이블 새로고침 private void Add_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"ingot_start\":" + 1 + ", \"ingot_maker\":\"" + Person.name + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["ingot_create_status"]); if (val == 1) //val=1이면 로그인 성공 { init(); Ingot_Grid.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "잉곳을 생성합니다.", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information); pr.Start(); } else //아니면 실패 { Ingot_Grid.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "잉곳 생산에 실패하였습니다..", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
//코드종류 테이블의 행을 클릭하면 선택한 코드종류의 코드ID들이 조회 private void CodeType_select_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { selectType = codeType_select.Rows[e.RowIndex].Cells[0].Value.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"code_type_select\":\"" + selectType + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable code = new DataTable(); //table의 칼럼 지정 code.Columns.Add("코드ID", typeof(string)); //칼럼별 value값 지정 JArray codes = (JArray)recvMsg["type_select_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 JObject codeAtt = (JObject)recvMsg["code_att"]; int len = codes.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { code.Rows.Add(codes[i]); } //값들을 테이블에 표시 codeId_select.DataSource = code; codeId_select.CurrentCell = null; att1.Text = codeAtt["att_fir"].ToString(); att2.Text = codeAtt["att_sec"].ToString(); att3.Text = codeAtt["att_thr"].ToString(); att4.Text = codeAtt["att_four"].ToString(); att5.Text = codeAtt["att_fif"].ToString(); att6.Text = codeAtt["att_six"].ToString(); att7.Text = codeAtt["att_sev"].ToString(); att8.Text = codeAtt["att_eig"].ToString(); att9.Text = codeAtt["att_nin"].ToString(); att10.Text = codeAtt["att_ten"].ToString(); codeAtt1.Text = string.Empty; codeAtt2.Text = string.Empty; codeAtt3.Text = string.Empty; codeAtt4.Text = string.Empty; codeAtt5.Text = string.Empty; codeAtt6.Text = string.Empty; codeAtt7.Text = string.Empty; codeAtt8.Text = string.Empty; codeAtt9.Text = string.Empty; codeAtt10.Text = string.Empty; } else { return; } }
//제작할 웨이퍼의 정보에 적용시킬 제품정보를 콤보박스로 선택시 해당 제품정보의 경로가 표시 private void SelectMS_SelectedIndexChanged(object sender, EventArgs e) { string selectMs = selectMS.SelectedItem.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"mscode_select\":\"" + selectMs + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JArray routes = (JArray)recvMsg["route_view"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = routes.Count; //json배열의 길이 ArrayList curList = new ArrayList(); string[] nextList = new string[6]; for (int i = 0; i < len; i++) { curList.Add(routes[i]["curr_route"].ToString()); } curList.Remove("SAWING"); for (int i = 0; i < len; i++) { for (int j = 0; j < curList.Count; j++) { if (routes[i]["next_route"].ToString().Equals(curList[j].ToString())) { nextList[i] = routes[i]["next_route"].ToString(); curList.Remove(curList[j]); } } } routeView.BeginUpdate(); routeView.Columns.Clear(); routeView.Items.Clear(); routeView.View = View.Details; routeView.Columns.Add("", 0); routeView.Columns.Add("ROUTE", -2, HorizontalAlignment.Center); ListViewItem lvi = new ListViewItem(); lvi.SubItems.Add("SAWING"); routeView.Items.Add(lvi); foreach (var item in nextList) { ListViewItem lvi2 = new ListViewItem(); lvi2.SubItems.Add(item); routeView.Items.Add(lvi2); } routeView.EndUpdate(); }
//테이블의 행 클릭시 행에 있는 값을 받아와서 텍스트박스에 보여줌 private void Ingot_Grid_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { endTime = null; selectIngot = Ingot_Grid.Rows[e.RowIndex].Cells[0].Value.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"ingot_id\":\"" + selectIngot + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JArray ingots = (JArray)recvMsg["ingot_data"]; int len = ingots.Count - 1; if (ingots.Count == 0) { Ingot_Id.Text = string.Empty; Cur_Temp.Text = string.Empty; Cur_Vel.Text = string.Empty; Cur_Len.Text = string.Empty; StartTime.Text = string.Empty; RestTime.Text = string.Empty; User_Name.Text = string.Empty; //MetroFramework.MetroMessageBox.Show(this, "데이터가 없습니다.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { Ingot_Id.Text = ingots[len]["ingot_id"].ToString(); Cur_Temp.Text = ingots[len]["curr_temp"].ToString() + "℃"; Cur_Vel.Text = ingots[len]["curr_vel"].ToString() + "rpm"; Cur_Len.Text = ingots[len]["curr_len"].ToString() + "m"; StartTime.Text = Ingot_Grid.Rows[e.RowIndex].Cells[3].Value.ToString(); endTime = Ingot_Grid.Rows[e.RowIndex].Cells[4].Value.ToString(); if (endTime.Equals("")) { RestTime.Text = "진행중..."; } else { TimeSpan date = DateTime.Parse(endTime) - DateTime.Parse(StartTime.Text); RestTime.Text = date.Days.ToString() + "일" + date.Hours.ToString() + "시간" + date.Minutes.ToString() + "분" + date.Seconds.ToString() + "초"; } User_Name.Text = Person.name; } } else { return; } }
//원하는 경로를 테이블에서 선택시 해당 경로들을 텍스트박스에 표시 private void SelectRt_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { selectRoute = SelectRt.Rows[e.RowIndex].Cells[0].Value.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"route_id\":\"" + selectRoute + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JArray routes = (JArray)recvMsg["route"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = routes.Count; ArrayList curList = new ArrayList(); string[] nextList = new string[6]; for (int i = 0; i < len; i++) { curList.Add(routes[i]["curr_route"].ToString()); } curList.Remove("SAWING"); for (int i = 0; i < len; i++) { for (int j = 0; j < curList.Count; j++) { if (routes[i]["next_route"].ToString().Equals(curList[j].ToString())) { nextList[i] = routes[i]["next_route"].ToString(); curList.Remove(curList[j]); } } } route1.Text = "SAWING"; route2.Text = nextList[0]; route3.Text = nextList[1]; route4.Text = nextList[2]; route5.Text = nextList[3]; route6.Text = nextList[4]; route7.Text = nextList[5]; } else { return; } }
//선택한 공정의 장비현황을 불러와서 테이블에 표시하는 함수(새로고침) public void init(string operselect) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"oper_select_id\":\"" + operselect + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable oper = new DataTable(); //table의 칼럼 지정 oper.Columns.Add("장비ID", typeof(string)); oper.Columns.Add("장비종류", typeof(string)); oper.Columns.Add("장비상태", typeof(string)); oper.Columns.Add("장비코멘트", typeof(string)); oper.Columns.Add("장비입고날짜", typeof(string)); oper.Columns.Add("장비관리자", typeof(string)); oper.Columns.Add("장비수정날짜", typeof(string)); //칼럼별 value값 지정 JArray opers = (JArray)recvMsg["oper_equip"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = opers.Count; //json배열의 길이 string operState = null; for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { if (Convert.ToInt32(opers[i]["oper_equip_state"]) == 0) { operState = "대기중"; } else { operState = "사용중"; } oper.Rows.Add(opers[i]["oper_equip_id"], opers[i]["oper_equip_type"], operState, opers[i]["oper_equip_comm"], opers[i]["oper_equip_rec_date"], opers[i]["oper_equip_man"], opers[i]["oper_equip_update"]); } //값들을 테이블에 표시 Equip_Grid.DataSource = oper; Equip_Grid.CurrentCell = null; Eqiup_Event.CurrentCell = null; }
//원하는 공정클릭시 해당 공정의 웨이퍼들이 테이블에 표시 private void Select_Oper_SelectedIndexChanged(object sender, EventArgs e) { string oper = select_Oper.SelectedItem.ToString(); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"wafer_oper_id\":\"" + oper + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable wafer = new DataTable(); //table의 칼럼 지정 wafer.Columns.Add("웨이퍼ID", typeof(string)); wafer.Columns.Add("잉곳ID", typeof(string)); wafer.Columns.Add("블록ID", typeof(string)); wafer.Columns.Add("수량", typeof(string)); wafer.Columns.Add("생성일 수", typeof(string)); wafer.Columns.Add("시작 시간", typeof(string)); wafer.Columns.Add("완료 시간", typeof(string)); wafer.Columns.Add("설명", typeof(string)); wafer.Columns.Add("불량 수량", typeof(string)); wafer.Columns.Add("현재 공정", typeof(string)); wafer.Columns.Add("제품정보", typeof(string)); wafer.Columns.Add("사용 된 장비", typeof(string)); wafer.Columns.Add("생성자", typeof(string)); //칼럼별 value값 지정 JArray wafers = (JArray)recvMsg["wafer_select"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = wafers.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { wafer.Rows.Add(wafers[i]["wafer_id"], wafers[i]["ingot_id"], wafers[i]["block_id"], wafers[i]["wafer_quant"], wafers[i]["wafer_create"], wafers[i]["wafer_start"], wafers[i]["wafer_finish"], wafers[i]["wafer_comm"], wafers[i]["wafer_fault"], wafers[i]["oper_id"], wafers[i]["mscode"], wafers[i]["equip_id"], wafers[i]["wafer_maker"]); } //값들을 테이블에 표시 Wafer_Grid.DataSource = wafer; }
//웨이퍼ID를 입력 후 검색버튼 클릭시 검색하고자 하는 웨이퍼가 나옴 private void LotSearch_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"wafer_select_data\":\"" + lotNum.Text.ToString() + "\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable search = new DataTable(); //table의 칼럼 지정 search.Columns.Add("웨이퍼ID", typeof(string)); search.Columns.Add("측정1(X좌표)", typeof(string)); search.Columns.Add("측정1(Y좌표)", typeof(string)); search.Columns.Add("측정2(X좌표)", typeof(string)); search.Columns.Add("측정2(Y좌표)", typeof(string)); search.Columns.Add("평탄도", typeof(string)); search.Columns.Add("볼록함", typeof(string)); search.Columns.Add("뒤틀림", typeof(string)); search.Columns.Add("두께", typeof(string)); search.Columns.Add("제품정보", typeof(string)); search.Columns.Add("장비ID", typeof(string)); search.Columns.Add("공정ID", typeof(string)); search.Columns.Add("RPM", typeof(string)); //칼럼별 value값 지정 JArray searchs = (JArray)recvMsg["wafer_select_data"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = searchs.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { search.Rows.Add(searchs[i]["wafer_id"], searchs[i]["wafer_pX1"], searchs[i]["wafer_pY1"], searchs[i]["wafer_pX2"], searchs[i]["wafer_pY2"], searchs[i]["curr_ttv"], searchs[i]["curr_bow"], searchs[i]["curr_warp"], searchs[i]["curr_thk"], searchs[i]["mscode"], searchs[i]["equip_id"], searchs[i]["oper_id"], searchs[i]["equip_rpm"]); } //값들을 테이블에 표시 WaferMonuter.DataSource = search; lotNum.Text = string.Empty; }
//추가할 경로들을 선택 후 추가버튼을 누르면 추가되고 새로고침 private void Add_Click(object sender, EventArgs e) { if (routeAdd.CheckedItems.Count == 0) { MetroFramework.MetroMessageBox.Show(this, "공장을 선택해주세요!!!", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 string[] selectRt = new string[routeAdd.CheckedItems.Count]; for (int i = 0; i < routeAdd.CheckedItems.Count; i++) { selectRt[i] = routeAdd.CheckedItems[i].ToString(); } tcp.ConnectServer(); //서버 연결 시작 byte[] route_data = json.RouteParse(selectRt); byte[] route_info = tcp.DataParse(route_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(route_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["route_add_status"]); if (val == 1) //val=1이면 로그인 성공 { init(); SelectRt.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "추가 성공하였습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { SelectRt.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "추가 실패하였습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } for (int i = 0; i < routeAdd.Items.Count; i++) { routeAdd.SetItemChecked(i, false); } } }
//제품정보를 추가할 때 경로를 선택하기 위해 콤보박스 클릭시 DB에 있는 경로테이블을 불러옴 private void RouteId_add_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"route\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JArray routes = (JArray)recvMsg["route_id"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 routeId_add.Items.Clear(); string[] selectRoute = routes.ToObject <string[]>(); routeId_add.Items.AddRange(selectRoute); }
private void Run() { while (threadFlag) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"wafer_data\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 DataTable moniter = new DataTable(); //table의 칼럼 지정 moniter.Columns.Add("웨이퍼ID", typeof(string)); moniter.Columns.Add("측정1(X좌표)", typeof(string)); moniter.Columns.Add("측정1(Y좌표)", typeof(string)); moniter.Columns.Add("측정2(X좌표)", typeof(string)); moniter.Columns.Add("측정2(Y좌표)", typeof(string)); moniter.Columns.Add("평탄도", typeof(string)); moniter.Columns.Add("볼록함", typeof(string)); moniter.Columns.Add("뒤틀림", typeof(string)); moniter.Columns.Add("두께", typeof(string)); moniter.Columns.Add("제품정보", typeof(string)); moniter.Columns.Add("장비ID", typeof(string)); moniter.Columns.Add("공정ID", typeof(string)); moniter.Columns.Add("RPM", typeof(string)); //칼럼별 value값 지정 JArray moniters = (JArray)recvMsg["wafer_data"]; //jsonarray형식의 변수지정 후 서버에서 받은 데이터를 저장 int len = moniters.Count; //json배열의 길이 for (int i = 0; i < len; i++) //배열의 길이만큼 반복문을 돌려 DB에 있는 이용자를 모두 user에 저장 { moniter.Rows.Add(moniters[i]["wafer_id"], moniters[i]["wafer_pX1"], moniters[i]["wafer_pY1"], moniters[i]["wafer_pX2"], moniters[i]["wafer_pY2"], moniters[i]["curr_ttv"], moniters[i]["curr_bow"], moniters[i]["curr_warp"], moniters[i]["curr_thk"], moniters[i]["mscode"], moniters[i]["equip_id"], moniters[i]["oper_id"], moniters[i]["equip_rpm"]); } //값들을 테이블에 표시 wafer_MsgRun(moniter); Thread.Sleep(1000); } }
//장비종류를 공정ID로 불러옴 private void Equip_Type_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"equips\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 JArray equips = (JArray)recvMsg["equips_oper_id"]; Equip_Type.Items.Clear(); string[] selectType = equips.ToObject <string[]>(); Equip_Type.Items.AddRange(selectType); }
//제작할 수량 및 정보를 입력 후 제작버튼을 클릭시 제작되며 테이블 새로고침 private void Make_Click(object sender, EventArgs e) { if (selectMS.SelectedItem == null || Qty.Text.Equals("") || Comment.Text.Equals("")) { MetroFramework.MetroMessageBox.Show(this, "데이터를 입력해주세요 ㅠㅠ", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 tcp.ConnectServer(); //서버 연결 시작 byte[] wafer_data = json.WaferMakeParse(selectMS.SelectedItem.ToString(), Qty.Text, Comment.Text, Person.name); byte[] wafer_info = tcp.DataParse(wafer_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(wafer_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["wafer_add_status"]); if (val == 1) { init(); Wafer_Grid.CurrentCell = null; errorRate.CurrentCell = null; Qty.Text = string.Empty; Comment.Text = string.Empty; selectMS.Items[selectMS.SelectedIndex] = string.Empty; routeView.Clear(); MetroFramework.MetroMessageBox.Show(this, "생성을 시작합니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { Wafer_Grid.CurrentCell = null; errorRate.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "사용할 수 있는 장비가 없습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }
private void Run() { while (threadFlag) { Console.WriteLine("스레드 반복 시작"); TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 string send = "{\"ingot_make\":\"null\"}"; tcp.ConnectServer(); //서버 연결 시작 byte[] sendMsg = Encoding.UTF8.GetBytes(send); byte[] buff = tcp.DataParse(sendMsg); tcp.Request(buff); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int makes = Convert.ToInt32(recvMsg["ingot_make"]); if (makes == 1) { ingot_BoolRun(true); } else { ingot_BoolRun(false); } if (selectIngot == null) //아무것도 클릭 안했을 때 { ingot_MsgRun(0); } else if (endTime == null) //현재 진행 중인 잉곳을 클릭했을 때 { ingot_MsgRun(ProgressInfo.status); if (ingotMoniter.Value == 100) { MetroFramework.MetroMessageBox.Show(this, "잉곳생성이 완료되었습니다.", "GOOD", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else //완료된 잉곳을 클릭했을 때 { ingot_MsgRun(pr.getFullStatus()); } Thread.Sleep(1000); } }
//추가하고자 하는 장비의 정보를 입력후 추가버튼을 누르면 추가가 되며 테이블 새로고침 private void Add_Click(object sender, EventArgs e) { TcpSocket tcp = new TcpSocket(); //공통된 기능을 불러오기 위해 TcpSocket클래스 객체를 생성 JsonParsing json = new JsonParsing(); //데이터를 받아오기 위해 클래스의 객체를 생성 if (Equip_Name.Text.Equals("") || Equip_Type.SelectedItem == null) { MetroFramework.MetroMessageBox.Show(this, "정보를 입력하세요.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { byte[] equip_data = json.EquipParse(Equip_Name.Text, Equip_Type.SelectedItem.ToString(), Equip_Type.SelectedItem.ToString(), equip_Comment.Text, Person.name); //아이디와 패스워드를 json형식으로 받아와서 바이트로 바꿔줌 tcp.ConnectServer(); //서버 연결 시작 byte[] equip_info = tcp.DataParse(equip_data); //바이트로 바꾼 데이터를 파싱 tcp.Request(equip_info); //서버로 데이터를 보내줌 JObject recvMsg = tcp.Response(); //서버에서 보내주는 데이터를 받아서 응답하는 함수를 recvMsg 변수에 저장 tcp.Close(); //서버 연결 해제 int val = Convert.ToInt32(recvMsg["equip_add_status"]); //json형태의 데이터에 login_status라는 이름의 값을 찾아서 val변수에 저장 if (val == 1) { init(selectoper); Oper_Grid.CurrentCell = null; Equip_Grid.CurrentCell = null; Eqiup_Event.CurrentCell = null; Equip_Name.Text = string.Empty; equip_Comment.Text = string.Empty; Equip_Type.Items[Equip_Type.SelectedIndex] = string.Empty; MetroFramework.MetroMessageBox.Show(this, "등록 성공했습니다.", "SUCCESS", MessageBoxButtons.OK, MessageBoxIcon.Information); } else //아니면 실패 { Oper_Grid.CurrentCell = null; Equip_Grid.CurrentCell = null; Eqiup_Event.CurrentCell = null; MetroFramework.MetroMessageBox.Show(this, "등록 실패했습니다.", "FAILED", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }