using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Collections; namespace FPER { public partial class frmModalDeviceList : Form { // cyim 2016.12.07 : 수신기 모델별 내부 로직 변경 public MDIParent mdi = null; public frmModalDeviceList(MDIParent pMDI) { InitializeComponent(); mdi = pMDI; } //입력값을 받고, 넘기기위한 VO private InputIDVo inputVo; public InputIDVo InputVo { get { return this.inputVo; } set { this.inputVo = value; } } //코드선택값 넘기는 VO private SearchCodeVo searchCode; public SearchCodeVo SearchCode { get { return this.searchCode; } set { this.searchCode = value; } } private int CommID = 1; private void frmModalDeviceList_Load(object sender, EventArgs e) { try { txtReceiverId.Text = String.Format("{0:00}", inputVo.ReceiverID); //cboBoardId 에 item넣기-통신보드ID DacBoardConfig dacBoardConfig = new DacBoardConfig(inputVo.ReceiverID); // cyim 2015.7.30 데이타베이스 접속 루틴 변경 ArrayList ary = dacBoardConfig.Board_ListALL(inputVo.ReceiverID); Util.ComboSetting(cboBoardId, ary, null); //cboIOBoardID에 item넣기-IO보드 DacIOBoardConfig dacIOBoardConfig = new DacIOBoardConfig(inputVo.ReceiverID);// cyim 2015.7.30 데이타베이스 접속 루틴 변경 ArrayList ary1 = dacIOBoardConfig.Board_ListALL(mdi); Util.ComboSetting(cboIOBoardID, ary1, null); this.CommID = inputVo.CommID; if (this.CommID != 1 && this.CommID != 3) this.CommID = 1; if (this.CommID == 1) tabControl1.SelectedIndex = 0; else if (this.CommID == 3) tabControl1.SelectedIndex = 1; dataGridView1.Rows.Clear(); if (searchCode.CodeName != null) { if (searchCode.CodeName.Length < 1) searchCode.CodeName = null; } txtSearchKey.Text = searchCode.CodeName; get_Data(null); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void btnOK_Click(object sender, EventArgs e) { try { String searchKey = txtSearchKey.Text; //if (searchKey.Length < 1) //{ // MessageBox.Show("먼저 검색할 단어를 입력하세요.", Application.ProductName); // return; //} if (tabControl1.SelectedIndex == 0) this.CommID = 1; else this.CommID = 3; if (searchKey.Equals("")) searchKey = null; get_Data(searchKey); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void get_Data(String SearchKey) { dataGridView1.Rows.Clear(); try { if (searchCode != null) { //통신보드 if (this.CommID == 1) { String selectedValue1 = cboBoardId.SelectedValue.ToString(); String selectedValue2 = cboLoopNo.SelectedValue.ToString(); String selectedValue3 = cboRepeaterId.SelectedValue.ToString(); int BoardId = Util.StrToInt(selectedValue1, -1); int LoopNo = Util.StrToInt(selectedValue2, -1); int RepeaterId = Util.StrToInt(selectedValue3, -1); DacDeviceConfig dacDeviceConfig = new DacDeviceConfig(this.inputVo.ReceiverID);// cyim 2015.7.30 데이타베이스 접속 루틴 변경 DataTable dtable = dacDeviceConfig.Device_Modal_Select(this.inputVo.ReceiverID, BoardId, LoopNo, RepeaterId, -1 , this.inputVo.InoutType, SearchKey); if (dtable.Rows.Count > 0) { foreach (DataRow dr in dtable.Rows) { //MI-##-#-###-# :M(구분 M-중계기,I-입력그룹)I,O(회로구분)-##(보드ID)-##(회로ID) //String dev_id = dr["DEVICE_ID"].ToString(); MskDeviceIDString dev_s = new MskDeviceIDString(int.Parse(dr["COMM_ID"].ToString()) , int.Parse(dr["BOARD_ID"].ToString()) , int.Parse(dr["LOOP_NO"].ToString()) , int.Parse(dr["REPEATER_ID"].ToString()) , int.Parse(dr["DEVICE_ID"].ToString()) , dr["INOUT_TYPE"].ToString()); dataGridView1.Rows.Add(dev_s.MskId , string.Format("{0}-{1}", dr["DEVICE_TYPE"].ToString(), dr["DEVICE_TYPE_NAME"].ToString()) , string.Format("{0}-{1}", dr["POSITION_CODE"].ToString(), dr["POSITION_NAME"].ToString()) , dr["DEVICE_NAME"].ToString()); } } } //IO보드 else { //cboIOBoardID String selectedValue1 = cboIOBoardID.SelectedValue.ToString(); int BoardId = Util.StrToInt(selectedValue1, -1); DacIODeviceConfig dacIODeviceConfig = new DacIODeviceConfig(this.inputVo.ReceiverID);// cyim 2015.7.30 데이타베이스 접속 루틴 변경 DataTable dtable = dacIODeviceConfig.Device_Modal_Select(this.inputVo.ReceiverID, BoardId, -1 , this.inputVo.InoutType, SearchKey); if (dtable.Rows.Count > 0) { foreach (DataRow dr in dtable.Rows) { //MI-##-#-###-# :M(구분 M-중계기,I-입력그룹)I,O(회로구분)-##(보드ID)-##(회로ID) int board_id = int.Parse(dr["BOARD_ID"].ToString()); // cyim 2016.10.24 : 통신보드 15번 -> 0번카드로 대체 //15번 보드는 기본보드로 선택불가 // cyim 2016.12.07 : 수신기 모델별 내부 로직 변경 int i; if (mdi.ReceiverModel == "IFC3300") i = 0; else i = 15; if (board_id != i) { MskDeviceIDString dev_s = new MskDeviceIDString(int.Parse(dr["COMM_ID"].ToString()) , int.Parse(dr["BOARD_ID"].ToString()) , int.Parse(dr["LOOP_NO"].ToString()) , int.Parse(dr["REPEATER_ID"].ToString()) , int.Parse(dr["DEVICE_ID"].ToString()) , dr["INOUT_TYPE"].ToString()); dataGridView1.Rows.Add(dev_s.MskId , string.Format("{0}-{1}", dr["DEVICE_TYPE"].ToString(), dr["DEVICE_TYPE_NAME"].ToString()) , string.Format("{0}-{1}", dr["POSITION_CODE"].ToString(), dr["POSITION_NAME"].ToString()) , dr["DEVICE_NAME"].ToString()); } } } } } } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); //MessageBox.Show(ex.Message, Application.ProductName); //MessageBox.Show(string.Format("[{0}]\r\n{1}", ex.Message, ex.StackTrace), Application.ProductName); } } private void btnCancel_Click(object sender, EventArgs e) { try { this.Close(); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) { try { int sCommID = 1; if (tabControl1.SelectedIndex == 0) sCommID = 1; else sCommID = 3; if (sCommID != this.CommID) btnOK_Click(btnOK, EventArgs.Empty); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void btnSaveOK_Click(object sender, EventArgs e) { try { if (dataGridView1.SelectedRows.Count > 0) { InputIDVo[] selectVo = new InputIDVo[dataGridView1.SelectedRows.Count]; int rowindx = 0; foreach (DataGridViewRow row in dataGridView1.SelectedRows) { //DataGridViewRow row = dataGridView1.SelectedRows[0]; selectVo[rowindx] = new InputIDVo(); string dev_id_str = row.Cells[0].Value.ToString(); MskDeviceIDString dev_s = new MskDeviceIDString(dev_id_str); selectVo[rowindx].ReceiverID = Util.StrToInt(txtReceiverId.Text, 0); selectVo[rowindx].CommID = dev_s.Comm_id; selectVo[rowindx].BoardID = dev_s.Board_id; selectVo[rowindx].LoopNo = dev_s.Loop_no; selectVo[rowindx].RepeaterID = dev_s.Repeater_id; selectVo[rowindx].DeviceID = dev_s.Device_id; selectVo[rowindx].InoutType = dev_s.Inout_type; rowindx++; } this.searchCode.SelectObject = selectVo; this.searchCode.SearchOK = true; this.Close(); } else { MessageBox.Show("선택된 코드가 없습니다.", Application.ProductName); return; } } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void cboBoardId_SelectedIndexChanged(object sender, EventArgs e) { try { String selectedValue = cboBoardId.SelectedValue.ToString(); int BoardId = Util.StrToInt(selectedValue, -1); //cboBoardId 에 item넣기-LoopNo DacBoardConfig dacBoardConfig = new DacBoardConfig(this.inputVo.ReceiverID);// cyim 2015.7.30 데이타베이스 접속 루틴 변경 ArrayList ary = dacBoardConfig.Loop_ListALL(this.inputVo.ReceiverID, BoardId); Util.ComboSetting(cboLoopNo, ary, null); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } private void cboLoopNo_SelectedIndexChanged(object sender, EventArgs e) { try { String selectedValue1 = cboBoardId.SelectedValue.ToString(); String selectedValue2 = cboLoopNo.SelectedValue.ToString(); int BoardId = Util.StrToInt(selectedValue1, -1); int LoopNo = Util.StrToInt(selectedValue2, -1); //cboBoardId 에 item넣기-LoopNo DacRepeaterConfig dacRepeaterConfig = new DacRepeaterConfig(this.inputVo.ReceiverID);// cyim 2015.7.30 데이타베이스 접속 루틴 변경 ArrayList ary = dacRepeaterConfig.Repeater_ListALL(this.inputVo.ReceiverID, BoardId, LoopNo); Util.ComboSetting(cboRepeaterId, ary, null); } catch (Exception ex) { Util.UErrorMessage(ex, 0, 0); } } } }