1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591 |
- 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.IO;
- using System.Data.SqlClient;
- using Janus.Windows.GridEX;
- using System.Collections;
- using Janus.Windows.GridEX.EditControls;
- namespace IControls_FireManager
- {
- public partial class Form_ConfigMAP : Form
- {
- //** 용인성북용 : true , 신규용 : false
- bool Yongin = false;
- //** 대화 팝업용
- Form DialogPopup = new Form();
- //** TB_GROUP 테이블에서 현재 출력그룹리스트를 가지고 와서 OutDeviceGroup에 담기 위해서 사용
- ArrayList OutDeviceGroupList = new ArrayList();
- //** TB_Map 테이블에서 현재 맵리스트를 가지고 와서 OutDeviceGroup에 담기 위해서 사용
- ArrayList MapList = new ArrayList();
- //** 나중에 DB에 출력그룹을 ADD 할 때 수신기 ID도 알아야 한다
- string Receiver_ID = null;
- //** GridEX_GroupList의 CurrentCellChanging의 이벤트를 처음 한번은 사용 못하게 함
- bool FirstUnuseGroup_CurrentCellChanging = true;
- //** GridEX_MapList의 CurrentCellChanging의 이벤트를 처음 한번은 사용 못하게 함
- bool FirstUnuseMap_CurrentCellChanging = true;
- // 비상방송 출력을 위해서 변수 선언
- int COMM_ID = 0;
- int BOARD_ID = 0;
- int LOOP_NO = 0;
- int REPEATER_ID = 0;
- int DEVICE_ID = 0;
- string INOUT_TYPE = null;
- string Broadcation_Receiver = null;
- //** 생성자
- public Form_ConfigMAP()
- {
- InitializeComponent();
- ///
- /// 이벤트 핸들러 등록
- ///
- //** Form_AddDevice폼에서 전달됨 -> 디바이스를 선택하고 추가버튼을 클릭하면 날아오는 이벤트
- _Event.Form_AddDevice_SendMessage_Event += new _Event.Form_AddDevice_SendMessage_Handler(_Event_Form_AddDevice_SendMessage_Event);
- //** Form_AddGroup폼에서 전달됨 -> 출력그룹을 선택하고 추가버튼을 클릭하면 날아오는 이벤트
- _Event.Form_AddGroup_SendMessage_Event += new _Event.Form_AddGroup_SendMessage_Handler(_Event_Form_AddGroup_SendMessage_Event);
- // 워크뷰에 그룹 및 연동설정 텝페이지 별로 작업하기 위한 이벤트
- _Event.WorkViewPageName_Oper_SendMessage_Event +=new _Event.WorkViewPageName_Oper_SendMessage_Handler(_Event_WorkViewPageName_Oper_SendMessage_Event);
- // 수신기 추가 및 편집 폼에서 작업 완료 이벤트 핸들러 등록
- _Event.WorkViewPageName_Receiver_SendMessage_Event += new _Event.WorkViewPageName_Receiver_SendMessage_Handler(_Event_WorkViewPageName_Receiver_SendMessage_Event);
- // 탭페이지 속성 (탭은 보여지지 않는다)
- this.uiTab_DeviceDetailInfo.ShowTabs = false;
- }
- //** 폼클로우즈
- private void Form_ConfigMAP_FormClosed(object sender, FormClosedEventArgs e)
- {
- // 이벤트 해제
- _Event.Form_AddDevice_SendMessage_Event -= new _Event.Form_AddDevice_SendMessage_Handler(_Event_Form_AddDevice_SendMessage_Event);
- _Event.Form_AddGroup_SendMessage_Event -= new _Event.Form_AddGroup_SendMessage_Handler(_Event_Form_AddGroup_SendMessage_Event);
- _Event.WorkViewPageName_Oper_SendMessage_Event -= new _Event.WorkViewPageName_Oper_SendMessage_Handler(_Event_WorkViewPageName_Oper_SendMessage_Event);
- _Event.WorkViewPageName_Receiver_SendMessage_Event += new _Event.WorkViewPageName_Receiver_SendMessage_Handler(_Event_WorkViewPageName_Receiver_SendMessage_Event);
- }
- // 프로젝트 열기 이벤트 대신 수신기 추가시에 다시 접속하도록 한다
- public void _Event_WorkViewPageName_Receiver_SendMessage_Event(string RECEIVER_ID)
- {
- if (RECEIVER_ID != null)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//(RECEIVER_ID);
- }
- }
- // 워크뷰에 그룹 및 연동설정 텝페이지 별로 작업하기 위한 이벤트
- public void _Event_WorkViewPageName_Oper_SendMessage_Event(string RECEIVER_ID, Object_Type TypeName)
- {
- //** 폼로드시 Receiver ID 얻음
- Receiver_ID = RECEIVER_ID;
- //** 출력그룹에서 출력 그리드 클리어
- GridEX_OutDevice_IN_Group.ClearItems();
- //** 연동설정에서 입력, 출력 그리드 클리어
- GridEX_InDevice.ClearItems();
- GridEX_OutDevice.ClearItems();
- switch (TypeName)
- {
- case Object_Type.OPER_GROUP:
- this.TabPage_OutGroup.Selected = true;
- //** 폼로드시 출력그룹에 있는 GridEx 셋팅
- UI_OutDeviceGroup_GridEx_Initialize();
- break;
- case Object_Type.OPER_SET:
- this.TabPage_ConfigMap.Selected = true;
- //** 폼로드시 연동설정에 있는 GridEx 셋팅
- UI_MapConfig_GridEx_Initialize();
- break;
- }
- }
- //** Form_AddGroup폼에서 전달됨
- public void _Event_Form_AddGroup_SendMessage_Event(DEVICE_EVENT EventName)
- {
- //** 출력그룹에서 그룹을 추가하고나서 갱신된 그룹을 다시 검색하라고 알려주는 이벤트
- if (EventName == DEVICE_EVENT.MAP)
- {
- // GridEX_OutDevice_IN_Group 셋팅
- GridEX_InOutDevice_IN_Map_SET();
- }
- //** 출력그룹에서 닫기버튼 클릭할때 다시 selection을 멀티로 할 수 있게 알려주는 이벤트
- if (EventName == DEVICE_EVENT.MAP_SELECTIONMODE)
- {
- // 다시 속성을 MultipleSelection 바꿈
- GridEX_MapList.SelectionMode = Janus.Windows.GridEX.SelectionMode.MultipleSelection;
- }
- }
- //** Form_AddDevice폼에서 전달됨
- public void _Event_Form_AddDevice_SendMessage_Event(DEVICE_EVENT EventName)
- {
- //** 출력그룹에서 디바이스를 추가하고나서 갱신된 디바이스 다시 검색하라고 알려주는 이벤트
- if (EventName == DEVICE_EVENT.GROUP)
- {
- // GridEX_OutDevice_IN_Group 셋팅
- GridEX_OutDevice_IN_Group_SET();
- }
- //** 출력그룹에서 닫기버튼 클릭할때 다시 selection을 멀티로 할 수 있게 알려주는 이벤트
- else if (EventName == DEVICE_EVENT.GROUP_SELECTIONMODE)
- {
- // 다시 속성을 MultipleSelection 바꿈
- GridEX_GroupList.SelectionMode = Janus.Windows.GridEX.SelectionMode.MultipleSelection;
- }
- //** 연동설정에서 디바이스를 추가하고나서 갱신된 디바이스 다시 검색하라고 알려주는 이벤트
- else if (EventName == DEVICE_EVENT.MAP)
- {
- // GridEX_OutDevice_IN_Group 셋팅
- GridEX_InOutDevice_IN_Map_SET();
- }
- //** 연동설정에서 닫기버튼 클릭할때 다시 selection을 멀티로 할 수 있게 알려주는 이벤트
- else if (EventName == DEVICE_EVENT.MAP_SELECTIONMODE)
- {
- // 다시 속성을 MultipleSelection 바꿈
- GridEX_MapList.SelectionMode = Janus.Windows.GridEX.SelectionMode.MultipleSelection;
- }
- }
- //** 폼로드시 출력그룹에 있는 GridEx 셋팅
- public void UI_OutDeviceGroup_GridEx_Initialize()
- {
- //
- //** 폼로드 할 때, 먼저 GridEX_GroupList 클리어
- //
- // OutDeviceGroup ArraryList 클리어
- OutDeviceGroupList.Clear();
- // GridEX_GroupList 클리어
- GridEX_GroupList.ClearItems();
- // 마지막 GroupID를 저장
- string Last_GroupID = null;
- //** TB_GROUP 테이블에서 출력그룹을 모두 가지고 온다
- DataRowCollection DB_TABLE_DEVICE = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_GROUP", "GROUP_ID", null)); // 네트워크 수신기에서 그룹 아이디는 유일하다
- if (DB_TABLE_DEVICE != null)
- {
- foreach (DataRow dr in DB_TABLE_DEVICE)
- {
- // 모든 그룹이 들어있는 OutDeviceGroupList에 추가
- _OUTDEVIDE_GROUP OutDevice_Group = new _OUTDEVIDE_GROUP();
- OutDevice_Group.Receive_ID = Int32.Parse(dr["RECEIVER_ID"].ToString());
- OutDevice_Group.ID = dr["GROUP_ID"].ToString();
- OutDevice_Group.Group = dr["GROUP_NAME"].ToString();
- OutDeviceGroupList.Add(OutDevice_Group);
- // 해당 수신기에 있는 그룹만을 보여준다
- if (Receiver_ID == dr["RECEIVER_ID"].ToString())
- {
- GridEXRow row;
- row = GridEX_GroupList.AddItem();
- row.BeginEdit();
- row.Cells["ID"].Value = OutDevice_Group.ID;
- row.Cells["Group"].Value = OutDevice_Group.Group;
- row.EndEdit();
- // 마지막 GroupID를 저장
- Last_GroupID = OutDevice_Group.ID;
- }
- }
- }
- //
- //** 폼로드 할 때, 먼저 GridEX_GroupName 클리어
- //
- // GridEX_GroupName 클리어
- GridEX_GroupName.ClearItems();
- // 다음 설정하는 출력그룹 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_GroupName.AddItem();
- Row.BeginEdit();
- //
- //** 이미 만들어진 용인현장용이 아니라면(신규) 그룹ID를 넣어준다
- //
- if (Yongin == false) // 일반 모든 현장
- {
- //** ID는 내부적으로 관리(입력 할 수 없다)
- GridEX_GroupName.RootTable.Columns[1].EditType = EditType.NoEdit;
- //** GROUP_ID 값을 결정하기 위해서
- int MaxValue = 1;
- //if (GridEX_GroupList.RowCount != 0)
- //{
- // // 맥스값 찾기
- // string group_id = Last_GroupID.Remove(0, 1);
- // MaxValue = Int32.Parse(group_id) + 1;
- //}
- if(DB_TABLE_DEVICE != null)
- MaxValue = DB_TABLE_DEVICE.Count + 1;
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "G" + id;
- }
- Row.EndEdit();
- }
- //** 폼로드시 연동설정에 있는 GridEx 셋팅
- public void UI_MapConfig_GridEx_Initialize()
- {
- // 비상방송 텍스트 클리어
- EditBox_Area.Text = null;
- EditBox_Stair.Text = null;
- EditBox_Floor.Text = null;
- // 비상방송 저장 및 삭제 버튼 비활성화
- UiButton_Broadcastion_Apply.Enabled = false;
- UiButton_Broadcastion_Delete.Enabled = false;
- //
- //** 폼로드 할 때, 먼저 GridEX_MapList 클리어
- //
- // MapList ArraryList 클리어
- MapList.Clear();
- // GridEX_GroupList 클리어
- GridEX_MapList.ClearItems();
- // 마지막 Map_No를 저장
- int Last_MapNo = 0;
- //** TB_MAP 테이블에서 맵명을 모두 가지고 온다
- DataRowCollection DB_TABLE_MAP = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_MAP", "MAP_ID", Receiver_ID));
- if (DB_TABLE_MAP != null)
- {
- foreach (DataRow dr in DB_TABLE_MAP)
- {
- // 모든 맵명이 들어있는 MapList에 추가
- _MAP Map = new _MAP();
- Map.Receive_ID = Int32.Parse(dr["RECEIVER_ID"].ToString());
- Map.Map_No = Int32.Parse(dr["MAP_NO"].ToString());
- Map.ID = dr["MAP_ID"].ToString();
- Map.Map = dr["MAP_NAME"].ToString();
- MapList.Add(Map);
- // 해당 수신기에 있는 맵명만을 보여준다
- if (Receiver_ID == dr["RECEIVER_ID"].ToString())
- {
- GridEXRow row;
- row = GridEX_MapList.AddItem();
- row.BeginEdit();
- row.Cells["ID"].Value = Map.ID;
- row.Cells["Map"].Value = Map.Map;
- row.Cells["Map_No"].Value = Map.Map_No;
- row.EndEdit();
- // 마지막 Map_No를 저장
- Last_MapNo = Map.Map_No;
- }
- }
- }
- //
- //** 폼로드 할 때, 먼저 GridEX_MapName 클리어
- //
- // GridEX_MapName 클리어
- GridEX_MapName.ClearItems();
- // 다음 설정하는 맵 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_MapName.AddItem();
- Row.BeginEdit();
- //
- //** 이미 만들어진 용인현장용이 아니라면(신규) 그룹ID로 넣어준다
- //
- if (Yongin == false) // 일반 모든 현장
- {
- //** ID는 내부적으로 관리(입력 할 수 없다)
- GridEX_MapName.RootTable.Columns[1].EditType = EditType.NoEdit;
- //
- //** MAP_ID 값을 결정하기 위해서(수신기별로 유니크한게 아니라 전체에서 유니크함)
- //
- int MaxValue = 1;
- //** TB_MAP 테이블에서 맵명을 모두 가지고 온다
- DataRowCollection DB_MAP = _Db.ExecuteRead_SqlDataAdapter(_Sql.Get_ColumnMaxValue("TB_MAP","MAP_NO"));
- foreach (DataRow Record in DB_MAP)
- {
- // 데이타가 아무것도 없다
- if (Record[0].ToString().Length != 0)
- {
- //DB에 저장되어 있는 레코드 수를 알자
- MaxValue = Int32.Parse(Record[0].ToString()) + 1;
- }
- }
-
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "M" + id;
- }
- Row.EndEdit();
- }
- //** 해당 출력그룹에 출력 디바이스를 셋팅하는 함수
- public void GridEX_OutDevice_IN_Group_SET()
- {
- // 먼저 클리어 시키고 시작
- GridEX_OutDevice_IN_Group.ClearItems();
- // No.를 출력하기 위해서
- int i = 1;
- //** TB_GROUP_DEVICE 테이블에서 해당그룹을 모두 가지고 와서 GridEX_OutDevice_IN_Group에 보여준다
- DataRowCollection DB_TABLE_DEVICE = _Db.ExecuteRead_SqlDataAdapter(_Sql.Search_Gruop_DeviceTable(_Data.Group_ID, Receiver_ID));
- if (DB_TABLE_DEVICE != null)
- {
- foreach (DataRow dr in DB_TABLE_DEVICE)
- {
- try
- {
- if (_Convert.Exception_Into_object(dr[6], dr[7], dr[8], dr[9], dr[10]) == true)
- {
- // 매개변수 순서 => COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString dev_s = new MskDeviceIDString(
- _Convert.Null_to_IntZero(dr[6].ToString()),
- _Convert.Null_to_IntZero(dr[7].ToString()),
- _Convert.Null_to_IntZero(dr[8].ToString()),
- _Convert.Null_to_IntZero(dr[9].ToString()),
- _Convert.Null_to_IntZero(dr[10].ToString()),
- dr[11].ToString(), dr[15].ToString()); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- GridEXRow row;
- row = GridEX_OutDevice_IN_Group.AddItem();
- row.BeginEdit();
- row.Cells["Number"].Value = i++;
- row.Cells["Receiver_ID"].Value = dr[15].ToString(); // 추가
- row.Cells["ID"].Value = dev_s.MskId;
- row.Cells["DeviceType"].Value = dr[0].ToString();
- row.Cells["Position"].Value = dr[1].ToString();
- row.Cells["DeviceName"].Value = dr[2].ToString();
- row.EndEdit();
- }
- }
- catch (Exception e)
- {
- // LOG
- _Event.DebugView_SendMessage_Write(e.ToString());
- // 정보를 가지고 오는데 문제가 발생하였습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.ProblemMessage, 0);
- }
- }
- }
- }
- //** 해당 맵명에 디바이스와 그룹를 셋팅하는 함수
- public void GridEX_InOutDevice_IN_Map_SET()
- {
- //
- //GridEX_InDevice
- //
- // 먼저 클리어 시키고 시작
- GridEX_InDevice.ClearItems();
- // No.를 출력하기 위해서
- int i = 1;
- //** TB_GROUP_DEVICE 테이블에서 해당그룹을 모두 가지고 와서 GridEX_OutDevice_IN_Group에 보여준다
- DataRowCollection DB_TABLE_MAP_PROCESS = _Db.ExecuteRead_SqlDataAdapter(_Sql.Search_Map_ProcessTable(_Data.Map_No, "I", Receiver_ID));
- if (DB_TABLE_MAP_PROCESS != null)
- {
- foreach (DataRow dr in DB_TABLE_MAP_PROCESS)
- {
- try
- {
- if (_Convert.Exception_Into_object(dr[7], dr[8], dr[9], dr[10], dr[11]) == true)
- {
- // 매개변수 순서 => COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString dev_s = new MskDeviceIDString(
- _Convert.Null_to_IntZero(dr[7].ToString()),
- _Convert.Null_to_IntZero(dr[8].ToString()),
- _Convert.Null_to_IntZero(dr[9].ToString()),
- _Convert.Null_to_IntZero(dr[10].ToString()),
- _Convert.Null_to_IntZero(dr[11].ToString()),
- dr[12].ToString(), dr[6].ToString()); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- GridEXRow row;
- row = GridEX_InDevice.AddItem();
- row.BeginEdit();
- row.Cells["Number"].Value = i++;
- row.Cells["Receiver_ID"].Value = dr[6].ToString(); // 추가
- row.Cells["ID"].Value = dev_s.MskId;
- row.Cells["DeviceType"].Value = dr[0].ToString();
- row.Cells["Position"].Value = dr[1].ToString();
- row.Cells["DeviceName"].Value = dr[2].ToString();
- row.EndEdit();
- }
- }
- catch (Exception e)
- {
- // LOG
- _Event.DebugView_SendMessage_Write(e.ToString());
- // 정보를 가지고 오는데 문제가 발생하였습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.ProblemMessage, 0);
- }
- }
- //
- //GridEX_OutDevice
- //
- // 먼저 클리어 시키고 시작
- GridEX_OutDevice.ClearItems();
- // No.를 출력하기 위해서
- int j = 1;
- //** TB_GROUP_DEVICE 테이블에서 해당그룹을 모두 가지고 와서 GridEX_OutDevice_IN_Group에 보여준다
- DataRowCollection DB_TB_MAP_PROCESS = _Db.ExecuteRead_SqlDataAdapter(_Sql.Search_Map_ProcessTable(_Data.Map_No, "O", "D", Receiver_ID));
- if (DB_TB_MAP_PROCESS != null)
- {
- foreach (DataRow dr in DB_TB_MAP_PROCESS)
- {
- try
- {
- if (_Convert.Exception_Into_object(dr[7], dr[8], dr[9], dr[10], dr[11]) == true)
- {
- // 매개변수 순서 => COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString dev_s = new MskDeviceIDString(
- _Convert.Null_to_IntZero(dr[7].ToString()),
- _Convert.Null_to_IntZero(dr[8].ToString()),
- _Convert.Null_to_IntZero(dr[9].ToString()),
- _Convert.Null_to_IntZero(dr[10].ToString()),
- _Convert.Null_to_IntZero(dr[11].ToString()),
- dr[12].ToString(), dr[6].ToString()); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- GridEXRow row;
- row = GridEX_OutDevice.AddItem();
- row.BeginEdit();
- row.Cells["Number"].Value = j++;
- row.Cells["Receiver_ID"].Value = dr[6].ToString(); // 추가
- row.Cells["ID"].Value = dev_s.MskId;
- row.Cells["DeviceType"].Value = dr[0].ToString();
- row.Cells["Position"].Value = dr[1].ToString();
- row.Cells["DeviceName"].Value = dr[2].ToString();
- row.Cells["ProcessType"].Value = dr[4].ToString();
- row.EndEdit();
- }
- }
- catch (Exception e)
- {
- // LOG
- _Event.DebugView_SendMessage_Write(e.ToString());
- // 정보를 가지고 오는데 문제가 발생하였습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.ProblemMessage, 0);
- }
- }
- }
- //** TB_GROUP_DEVICE 테이블에서 해당그룹을 모두 가지고 와서 GridEX_OutDevice_IN_Group에 보여준다
- DataRowCollection DB_MAP_PROCESS = _Db.ExecuteRead_SqlDataAdapter(_Sql.Search_Map_ProcessTable(_Data.Map_No, "O", "G", Receiver_ID));
- if (DB_MAP_PROCESS != null)
- {
- foreach (DataRow dr in DB_MAP_PROCESS)
- {
- // TB_GROUP 테이블에 접근
- DataRowCollection DB_TABLE_TB_DEVICE_TYPE = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_GROUP", "GROUP_ID", dr[5].ToString(), null)); // 맵연동 설정에서 확인하는 출력그룹은 오로지 그룹아이디로만 판단
- if (DB_TABLE_TB_DEVICE_TYPE != null)
- {
- foreach (DataRow Dr in DB_TABLE_TB_DEVICE_TYPE)
- {
- GridEXRow row;
- row = GridEX_OutDevice.AddItem();
- row.BeginEdit();
- row.Cells["Number"].Value = j++;
- row.Cells["Receiver_ID"].Value = Dr[0].ToString();
- row.Cells["ID"].Value = dr[5].ToString();
- row.Cells["DeviceName"].Value = Dr[2].ToString();
- row.Cells["ProcessType"].Value = dr[4].ToString();
- row.EndEdit();
- }
- }
- }
- }
- }
- // 비상방송 텍스트 클리어
- EditBox_Area.Text = null;
- EditBox_Stair.Text = null;
- EditBox_Floor.Text = null;
- // 비상방송 저장과 삭제버튼도 비활성화
- UiButton_Broadcastion_Apply.Enabled = false;
- UiButton_Broadcastion_Delete.Enabled = false;
- }
- //** 입력 회로 추가 버튼 - 연동설정에 있는 입력회로
- private void UiButton_AddInDevice_Click(object sender, EventArgs e)
- {
- //** 출력그룹을 단지 하나만 선택했을 때 출력회로 추가폼이 활성화 될수 있다
- if (GridEX_MapList.SelectedItems.Count == 1 && GridEX_MapList.HideSelection == HideSelection.Highlight)
- {
- _Data.MenuActivedForm = new Form_AddDevice(Receiver_ID, "Map", "I");
- _Form.Create(_Data.MenuActivedForm, null);
- //** 디바이스추가폼이 로드되면 GridEX_MapList에서 단지 하나만 선택할 수 있도록 한다
- GridEX_MapList.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection;
- }
- else
- {
- // 맵명을 하나만 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapChoiceOnlyOne, 0);
- }
- }
- //** 입력 회로 삭제 버튼 - 연동설정에 있는 입력회로
- private void UiButton_DeleteIn_Click(object sender, EventArgs e)
- {
- //** GridEX_InDevice에서 선택한 행의 갯수를 알기 위해서
- int SelectRowCount = GridEX_InDevice.SelectedItems.Count;
- //** 선택한 행이 없으면 팝업을 띄운다
- if (SelectRowCount == 0)
- {
- // 삭제할 입력을 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.DelInNotChoice, 0);
- return;
- }
- for (int number = 0; number < SelectRowCount; number++)
- {
- GridEXRow row = GridEX_InDevice.SelectedItems[number].GetRow();
- string Real_RECEIVER_ID = row.Cells["Receiver_ID"].Value.ToString();
- string Device_ID = row.Cells["ID"].Value.ToString();
- // COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString device_id = new MskDeviceIDString(Device_ID, Real_RECEIVER_ID); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- // 입력디바이스 삭제
- _Db.Execute(_Sql.Delete_Table("TB_MAP_PROCESS", "MAP_NO", _Data.Map_No, "COMM_ID", device_id.Comm_id, "BOARD_ID", device_id.Board_id,
- "LOOP_NO", device_id.Loop_no, "REPEATER_ID", device_id.Repeater_id,
- "DEVICE_ID", device_id.Device_id, "INOUT_TYPE", device_id.Inout_type,
- "MAP_RECEIVER_ID", Receiver_ID, Real_RECEIVER_ID));
- }
- // 다시 읽어들임
- GridEX_InOutDevice_IN_Map_SET();
- ////** 시컨스 문제 해결 -> 중간에 있는 입력을 삭제해 버리면 시컨스가 틀어진다
- //DataRowCollection DB_TABLE_MAP_PROCESS = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_MAP_PROCESS", "MAP_NO", _Data.Map_No, "MAP_TYPE", "I"));
- //int i = 1;
- //if (DB_TABLE_MAP_PROCESS != null)
- //{
- // foreach (DataRow dr in DB_TABLE_MAP_PROCESS)
- // {
- // // UPDATE로 해결하자
- // _Db.UPDATE("TB_MAP_PROCESS",
- // "MAP_NO=" + _Data.Map_No +
- // ";SEQ_NO=" + dr[3].ToString(),
- // "SEQ_NO=" + i++);
- // }
- //}
- // GridEX_InOutDevice_IN_Map_SET 셋팅
- }
- //** 출력 회로 추가 버튼 - 연동설정에 있는 출력회로
- private void UiButton_AddOutDevice_Click(object sender, EventArgs e)
- {
- //** 출력그룹을 단지 하나만 선택했을 때 출력회로 추가폼이 활성화 될수 있다
- if (GridEX_MapList.SelectedItems.Count == 1 && GridEX_MapList.HideSelection == HideSelection.Highlight)
- {
- _Data.MenuActivedForm = new Form_AddDevice(Receiver_ID, "Map", "O");
- _Form.Create(_Data.MenuActivedForm, null);
- //** 디바이스추가폼이 로드되면 GridEX_MapList에서 단지 하나만 선택할 수 있도록 한다
- GridEX_MapList.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection;
- }
- else
- {
- // 맵명을 하나만 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapChoiceOnlyOne, 0);
- }
- }
- //** 출력 회로 삭제 버튼 - 연동설정에 있는 출력회로
- private void UiButton_DeleteOut_Click(object sender, EventArgs e)
- {
- //** GridEX_OutDevice에서 선택한 행의 갯수를 알기 위해서
- int SelectRowCount = GridEX_OutDevice.SelectedItems.Count;
- //** 선택한 행이 없으면 팝업을 띄운다
- if (SelectRowCount == 0)
- {
- // 삭제할 출력을 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.DelOutNotChoice, 0);
- return;
- }
- for (int number = 0; number < SelectRowCount; number++)
- {
- GridEXRow row = GridEX_OutDevice.SelectedItems[number].GetRow();
- string Real_RECEIVER_ID = row.Cells["Receiver_ID"].Value.ToString();
- if (row.Cells["ProcessType"].Value.ToString() == "D")
- {
- string Device_ID = row.Cells["ID"].Value.ToString();
- // COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString device_id = new MskDeviceIDString(Device_ID, Real_RECEIVER_ID); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- // 출력디바이스 삭제
- _Db.Execute(_Sql.Delete_Table("TB_MAP_PROCESS", "MAP_NO", _Data.Map_No, "COMM_ID", device_id.Comm_id, "BOARD_ID", device_id.Board_id,
- "LOOP_NO", device_id.Loop_no, "REPEATER_ID", device_id.Repeater_id,
- "DEVICE_ID", device_id.Device_id, "INOUT_TYPE", device_id.Inout_type,
- "MAP_RECEIVER_ID", Receiver_ID, Real_RECEIVER_ID));
- }
- else if (row.Cells["ProcessType"].Value.ToString() == "G")
- {
- // 출력그룹 삭제
- _Db.Execute(_Sql.Delete_Table("TB_MAP_PROCESS", "MAP_NO", _Data.Map_No, "GROUP_ID", row.Cells["ID"].Value.ToString(), "MAP_RECEIVER_ID", Receiver_ID, Real_RECEIVER_ID));
- }
- }
- // 다시 읽어들임
- GridEX_InOutDevice_IN_Map_SET();
- }
- //** 출력 그룹 추가 버튼 - 연동설정에 있는 출력그룹
- private void UiButton_AddOutGroup_Click(object sender, EventArgs e)
- {
- //** 출력그룹을 단지 하나만 선택했을 때 출력회로 추가폼이 활성화 될수 있다
- if (GridEX_MapList.SelectedItems.Count == 1 && GridEX_MapList.HideSelection == HideSelection.Highlight)
- {
- _Data.MenuActivedForm = new Form_AddGroup(Receiver_ID);
- _Form.Create(_Data.MenuActivedForm, null);
- //** 디바이스추가폼이 로드되면 GridEX_MapList에서 단지 하나만 선택할 수 있도록 한다
- GridEX_MapList.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection;
- }
- else
- {
- // 맵명을 하나만 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapChoiceOnlyOne, 0);
- }
- }
- //** 출력 회로 추가 버튼 - 출력을 그룹으로 묶을때
- private void UiButton_AddOutDevice_InGroup_Click(object sender, EventArgs e)
- {
- //** 출력그룹을 단지 하나만 선택했을 때 출력회로 추가폼이 활성화 될수 있다
- if (GridEX_GroupList.SelectedItems.Count == 1 && GridEX_GroupList.HideSelection == HideSelection.Highlight)
- {
- _Data.MenuActivedForm = new Form_AddDevice(Receiver_ID, "Group", "O");
- _Form.Create(_Data.MenuActivedForm, null);
- //** 디바이스추가폼이 로드되면 GridEX_GroupList에서 단지 하나만 선택할 수 있도록 한다
- GridEX_GroupList.SelectionMode = Janus.Windows.GridEX.SelectionMode.SingleSelection;
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- }
- else
- {
- // 출력그룹명을 하나만 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.GroupChoiceOnlyOne, 0);
- }
- }
- //** 출력 회로 삭제 버튼 - 특정 출력그룹에서 특정 출력디바이스 삭제
- private void UiButton_DeleteOutDevice_IN_Group_Click(object sender, EventArgs e)
- {
- //** GridEX_OutDevice_IN_Group에서 선택한 행의 갯수를 알기 위해서
- int SelectRowCount = GridEX_OutDevice_IN_Group.SelectedItems.Count;
- //** 선택한 행이 없으면 팝업을 띄운다
- if (SelectRowCount == 0)
- {
- // 삭제할 회로를 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.DelDeviceNotChoice, 0);
- return;
- }
- for (int number = 0; number < SelectRowCount; number++)
- {
- GridEXRow row = GridEX_OutDevice_IN_Group.SelectedItems[number].GetRow();
- string Real_RECEIVER_ID = row.Cells["Receiver_ID"].Value.ToString();
- string Device_ID = row.Cells["ID"].Value.ToString();
- // COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString device_id = new MskDeviceIDString(Device_ID, Real_RECEIVER_ID); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- // 출력디바이스 삭제
- _Db.Execute(_Sql.Delete_Table("TB_GROUP_DEVICE", "GROUP_ID", _Data.Group_ID, "COMM_ID", device_id.Comm_id, "BOARD_ID", device_id.Board_id,
- "LOOP_NO", device_id.Loop_no, "REPEATER_ID", device_id.Repeater_id,
- "DEVICE_ID", device_id.Device_id, "INOUT_TYPE", device_id.Inout_type,
- "GROUP_RECEIVER_ID", Receiver_ID, Real_RECEIVER_ID));
- }
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- // 다시 읽어들임
- GridEX_OutDevice_IN_Group_SET();
- }
- //** 출력그룹 추가 버튼
- private void UiButton_AddGroupName_Click(object sender, EventArgs e)
- {
- // 수신기1 G001 수신기1-1
- // 수신기1 G002 수신기1-2
- // 수신기1 G003 수신기1-3
- // 수신기2 G001 수신기2-1
- // 수신기2 G002 수신기2-2
- // 수신기2 G003 수신기2-3
- string GROUP_ID = null;
- string GROUP_NAME = null;
- //** 일단 입력한 출력그룹 ID 와 출력그룹명을 알아야 한다
- //** GridEX_GroupName에서 그룹
- GridEXRow[] GridEx_Rows = GridEX_GroupName.GetRows();
- // foreach문이지만 무조건 1개의 행만 있으니 한번만 실행
- foreach (GridEXRow row in GridEx_Rows)
- {
- GROUP_ID = row.Cells["ID"].Text;
- GROUP_NAME = row.Cells["Group"].Text;
- }
- //// 용인성북 현장용(일단 주석처리)
- ////** 그룹ID를 입력하지 않았을 경우
- //if(GROUP_ID.Length == 0)
- //{
- // // 그룹ID를 입력해 주세요
- // _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.GroupIDNotInput, 0);
- // return;
- //}
- //** 그룹명을 입력하지 않았을 경우
- if(GROUP_NAME.Length == 0)
- {
- // 출력그룹명을 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.GroupNameNotInput, 0);
- return;
- }
- //// 용인성북 현장용(일단 주석처리)
- ////** 입력한 그룹ID가 DB에 있을 경우
- //foreach (_OUTDEVIDE_GROUP row in OutDeviceGroupList)
- //{
- // if(row.ID == GROUP_ID)
- // {
- // // 동일한 그룹ID가 이미 존재합니다
- // _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.GroupIDAlreadyHave, 0);
- // return;
- // }
- //}
- //** 해당 수신기에 동일한 그룹명이 존재하는지 확인
- // 일단하지말자
- // "TB_GROUP"에 DB 삽입
- _Db.ADD("TB_GROUP",
- "RECEIVER_ID=" + Receiver_ID +
- ";GROUP_ID=" + GROUP_ID +
- ";GROUP_NAME=" + GROUP_NAME +
- ";UPDATE_TIME=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- //** 회로추가나 그룹추가폼을 띄워둔 상태에서 그룹명이나 맵명을 추가하거나 삭제하면 selected 된 행이 없어진다.
- // 하지만 회로추가나 그룹추가는 할 수 있으므로 이를 방지해야한다
- _Data.Group_ID = null;
- // 여기서부터 새롭게 구성
- //** 모든 그룹이 들어있는 OutDeviceGroupList에 추가
- _OUTDEVIDE_GROUP OutDevice_Group = new _OUTDEVIDE_GROUP();
- OutDevice_Group.Receive_ID = Int32.Parse(Receiver_ID);
- OutDevice_Group.ID = GROUP_ID;
- OutDevice_Group.Group = GROUP_NAME;
- OutDeviceGroupList.Add(OutDevice_Group);
- //** GridEx 추가
- GridEXRow ROW;
- ROW = GridEX_GroupList.AddItem();
- ROW.BeginEdit();
- ROW.Cells["ID"].Value = GROUP_ID;
- ROW.Cells["Group"].Value = GROUP_NAME;
- ROW.EndEdit();
- //** 다음 순서를 GridEX_GroupName에 올리자
- // GridEX_GroupName 클리어
- GridEX_GroupName.ClearItems();
- // 다음 설정하는 출력그룹 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_GroupName.AddItem();
- Row.BeginEdit();
- // 맥스값 찾기
- string group_id = GROUP_ID.Remove(0, 1);
- int MaxValue = Int32.Parse(group_id) + 1;
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "G" + id;
- Row.EndEdit();
- // 여기까지 새롭게 구성
- //** GridEX_OutDevice_IN_Group 클리어시켜줌
- GridEX_OutDevice_IN_Group.ClearItems();
- //** GridEX_GroupList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 그룹명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- GridEX_GroupList.HideSelection = HideSelection.HideSelection;
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- }
- //** 출력그룹 삭제 버튼
- private void UiButton_DeleteGroupName_Click(object sender, EventArgs e)
- {
- //** GridEX_GroupList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 그룹명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- if (GridEX_GroupList.HideSelection == HideSelection.HideSelection)
- {
- // 삭제 하실 출력그룹을 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.GroupNotChoice, 0);
- return;
- }
- // 선택한 출력그룹을 삭제하시겠습니까?
- DialogPopup = _Popup.Create(Popup_Type.Dialog, Popup_Style.Normal, _Text.OK, 300, 150, _Text.GroupDelete_Continue, 0);
- // 대화 팝업은 특별처리
- _Event.PopupClose_SendMessage_Event += new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeleteOutGroup);
- }
- //** 팝업에서 Yes, NO 에서 받은 이벤트 처리(출력그룹 삭제시)
- public void _Event_PopupClose_SendMessage_Event_DeleteOutGroup(object sender, object etc)
- {
- // 대화 팝업 주체
- Form popup = (Form)sender;
- int SelectRowCount = GridEX_GroupList.SelectedItems.Count;
- if (DialogPopup.Name == popup.Name && etc.ToString() == _Text.OK)
- {
- DataRowCollection DB_TB_MAP_PROCESS = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_MAP_PROCESS", "GROUP_ID", _Data.Group_ID, Receiver_ID));
- if (DB_TB_MAP_PROCESS != null)
- {
- // 연동설정에서 해당 그룹이 설정되어 있다면 삭제 할 수 없도록 한다
- if (DB_TB_MAP_PROCESS.Count != 0)
- {
- // 연동설정에서 해당 그룹이 설정되어 있어서 삭제 할 수 없습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 500, 150, _Text.GroupNotdelete, 0);
- }
- else // 연동설정에서 해당 그룹이 설정되어 있지 않다면 삭제 할 수 있음
- {
- // Deep Copy (깊은 복사)
- object Copy_OutDeviceGroupList = OutDeviceGroupList.Clone();
- int Selected_Count = GridEX_GroupList.SelectedItems.Count;
- // 출력 그룹도 멀티로 삭제 가능
- for (int number = 0; number < Selected_Count; number++)
- {
- GridEXRow row = GridEX_GroupList.SelectedItems[0].GetRow();
- string Group_ID = row.Cells["ID"].Value.ToString();
- //** DB에서 삭제
- // 출력그룹 삭제
- _Db.Execute(_Sql.Delete_Table("TB_GROUP", "GROUP_ID", Group_ID, Receiver_ID));
- // 해당 그룹에 연동되어 있는 출력디바이스 삭제
- _Db.Execute(_Sql.Delete_Table("TB_GROUP_DEVICE", "GROUP_ID", Group_ID, "GROUP_RECEIVER_ID", Receiver_ID, null));
- //** 리스트에서 삭제
- foreach (_OUTDEVIDE_GROUP OutDevice_Group in (ArrayList)Copy_OutDeviceGroupList)
- {
- // 동일한 수신기 ID와 그룹 ID를 가지면 삭제
- if (OutDevice_Group.Receive_ID.ToString() == Receiver_ID && OutDevice_Group.ID == Group_ID)
- {
- // 리스트에서 삭제
- OutDeviceGroupList.Remove(OutDevice_Group);
- // UI에서 삭제
- row.Cells.Row.Delete();
- break;
- }
- }
- }
- //** 회로추가나 그룹추가폼을 띄워둔 상태에서 그룹명이나 맵명을 추가하거나 삭제하면 selected 된 행이 없어진다.
- // 하지만 회로추가나 그룹추가는 할 수 있으므로 이를 방지해야한다
- _Data.Group_ID = null;
- // 삭제가 되었으니까 다음 순서(GroupID)를 다시 잡아주자
- // GridEX_GroupName 클리어
- GridEX_GroupName.ClearItems();
- // 총 갯수 파악하기 위해
- GridEXRow[] GridEx_Rows = GridEX_GroupList.GetRows();
- int MaxValue = 1;
- // 삭제하였는데 등록되어 있는 그룹이 있다
- if (GridEx_Rows.Count() != 0)
- {
- // 맥스값 찾기
- string group_id = GridEx_Rows[GridEx_Rows.Count() - 1].Cells["ID"].Value.ToString().Remove(0, 1);
- MaxValue = Int32.Parse(group_id) + 1;
- }
- // 다음 설정하는 출력그룹 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_GroupName.AddItem();
- Row.BeginEdit();
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "G" + id;
- Row.EndEdit();
- //** GridEX_OutDevice_IN_Group 클리어시켜줌
- GridEX_OutDevice_IN_Group.ClearItems();
- //** GridEX_GroupList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 그룹명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- GridEX_GroupList.HideSelection = HideSelection.HideSelection;
- }
- }
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- }
- // 대화 팝업은 특별처리(이벤트 해제)
- _Event.PopupClose_SendMessage_Event -= new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeleteOutGroup);
- }
- //** GridEX_GroupList를 클릭할 때 발생
- private void GridEX_GroupList_CurrentCellChanging(object sender, CurrentCellChangingEventArgs e)
- {
- // GridEX_GroupList의 CurrentCellChanging의 이벤트를 처음 한번은 사용 못하게 함
- if (FirstUnuseGroup_CurrentCellChanging == true)
- {
- // 다음부터는 사용 가능
- FirstUnuseGroup_CurrentCellChanging = false;
- if (e.Row == null) return;
- // GridEX_GroupList의 레코드를 선택했을 때, Group_ID를 저장
- _Data.Group_ID = e.Row.Cells["ID"].Value.ToString();
- // GridEX_OutDevice_IN_Group 셋팅
- GridEX_OutDevice_IN_Group_SET();
- }
- else
- {
- // 맨처음 로드 될때 GridEX_GroupList에 행이 선택되어 있는 것을 방지하기 위해서 HideSelection 속성에 HideSelection을 줌
- // 다음부터는 선택한 레코드의 포커스가 남겨짐
- GridEX_GroupList.HideSelection = HideSelection.Highlight;
- if (e.Row == null) return;
- // GridEX_GroupList의 레코드를 선택했을 때, Group_ID를 저장
- _Data.Group_ID = e.Row.Cells["ID"].Value.ToString();
- // GridEX_OutDevice_IN_Group 셋팅
- GridEX_OutDevice_IN_Group_SET();
- }
- }
- //** 맵 추가 버튼
- private void UiButton_AddMapName_Click(object sender, EventArgs e)
- {
- string MAP_ID = null;
- string MAP_NAME = null;
- //** 일단 입력한 출력그룹 ID 와 출력그룹명을 알아야 한다
- //** GridEX_GroupName에서 그룹
- GridEXRow[] GridEx_Rows = GridEX_MapName.GetRows();
- foreach (GridEXRow row in GridEx_Rows)
- {
- MAP_ID = row.Cells["ID"].Text;
- MAP_NAME = row.Cells["Map"].Text;
- }
- //// 용인성북 현장용(일단 주석처리)
- ////** 맵ID를 입력하지 않았을 경우
- //if (MAP_ID.Length == 0)
- //{
- // // 맵ID를 입력해 주세요
- // _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapIDNotInput, 0);
- // return;
- //}
- //** 맵명을 입력하지 않았을 경우
- if (MAP_NAME.Length == 0)
- {
- // 맵명을 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapNameNotInput, 0);
- return;
- }
- //// 용인성북 현장용(일단 주석처리)
- ////** 입력한 맵ID가 DB에 있을 경우
- //foreach (_MAP row in MapList)
- //{
- // if (row.ID == MAP_ID)
- // {
- // // 동일한 맵ID가 이미 존재합니다
- // _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapIDAlreadyHave, 0);
- // return;
- // }
- //}
- //** 어레이리스트 MapList의 가장 마지막 행의 MAP_NO 값을 가지고 온다
- //_MAP Map = (_MAP)MapList[MapList.Count - 1];
- int MAP_NO = Int32.Parse(MAP_ID.Remove(0, 1));
- // "TB_MAP"에 DB 삽입
- _Db.ADD("TB_MAP",
- "RECEIVER_ID=" + Receiver_ID +
- ";MAP_NO=" + MAP_NO +
- ";MAP_ID=" + MAP_ID +
- ";MAP_NAME=" + MAP_NAME +
- ";USE_FLAG=" + "Y" +
- ";UPDATE_TIME=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- //** 회로추가나 그룹추가폼을 띄워둔 상태에서 그룹명이나 맵명을 추가하거나 삭제하면 selected 된 행이 없어진다.
- // 하지만 회로추가나 그룹추가는 할 수 있으므로 이를 방지해야한다
- _Data.Map_No = null;
- // 여기서부터 새롭게 구성
- _MAP Map = new _MAP();
- Map.Receive_ID = Int32.Parse(Receiver_ID);
- Map.Map_No = MAP_NO;
- Map.ID = MAP_ID;
- Map.Map = MAP_NAME;
- MapList.Add(Map);
- //** GridEx 추가
- GridEXRow ROW;
- ROW = GridEX_MapList.AddItem();
- ROW.BeginEdit();
- ROW.Cells["ID"].Value = MAP_ID;
- ROW.Cells["Map"].Value = MAP_NAME;
- ROW.Cells["Map_No"].Value = MAP_NO;
- ROW.EndEdit();
- //** 다음 순서를 GridEX_MapName에 올리자
- // GridEX_MapName 클리어
- GridEX_MapName.ClearItems();
- // 다음 설정하는 맵명 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_MapName.AddItem();
- Row.BeginEdit();
- // 맥스값 찾기
- string map_id = MAP_ID.Remove(0, 1);
- int MaxValue = Int32.Parse(map_id) + 1;
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "M" + id;
-
- Row.EndEdit();
- //** 여기까지 새롭게 구성
- //** GridEX_InDevice 클리어시켜줌
- GridEX_InDevice.ClearItems();
- //** GridEX_OutDevice 클리어시켜줌
- GridEX_OutDevice.ClearItems();
- //** GridEX_MapList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 맵명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- GridEX_MapList.HideSelection = HideSelection.HideSelection;
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- }
- //** 맵 삭제 버튼
- private void UiButton_DeleteMapName_Click(object sender, EventArgs e)
- {
- //** GridEX_MapList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 맵명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- if (GridEX_MapList.HideSelection == HideSelection.HideSelection)
- {
- // 삭제할 맵명을 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.MapNotChoice, 0);
- return;
- }
- // 선택한 맵명을 삭제하시겠습니까?
- DialogPopup = _Popup.Create(Popup_Type.Dialog, Popup_Style.Normal, _Text.OK, 300, 150, _Text.MapDelete_Continue, 0);
- // 대화 팝업은 특별처리
- _Event.PopupClose_SendMessage_Event += new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeleteMap);
- }
- //** 팝업에서 Yes, NO 에서 받은 이벤트 처리(맵 삭제시)
- public void _Event_PopupClose_SendMessage_Event_DeleteMap(object sender, object etc)
- {
- // 대화 팝업 주체
- Form popup = (Form)sender;
- int SelectRowCount = GridEX_MapList.SelectedItems.Count;
- if (DialogPopup.Name == popup.Name && etc.ToString() == _Text.OK)
- {
- // Deep Copy (깊은 복사)
- object Copy_MapList = MapList.Clone();
- int Selected_Count = GridEX_MapList.SelectedItems.Count;
- // 맵명도 멀티로 삭제 가능
- for (int number = 0; number < Selected_Count; number++)
- {
- GridEXRow row = GridEX_MapList.SelectedItems[0].GetRow();
- string Map_No = row.Cells["Map_No"].Value.ToString();
- //** DB에서 삭제
- // 맵명 삭제
- _Db.Execute(_Sql.Delete_Table("TB_MAP", "MAP_NO", Map_No, Receiver_ID));
- // 해당 맵명에 연동되어 있는 그룹이나 입출력 디바이스 삭제
- _Db.Execute(_Sql.Delete_Table("TB_MAP_PROCESS", "MAP_NO", Map_No, "MAP_RECEIVER_ID", Receiver_ID, null));
- //** 리스트에서 삭제
- foreach (_MAP Map in (ArrayList)Copy_MapList)
- {
- // 동일한 수신기 ID와 그룹 ID를 가지면 삭제
- if (Map.Receive_ID.ToString() == Receiver_ID && Map.Map_No.ToString() == Map_No)
- {
- // 리스트에서 삭제
- MapList.Remove(Map);
- // UI에서 삭제
- row.Cells.Row.Delete();
- break;
- }
- }
- }
- //** 회로추가나 그룹추가폼을 띄워둔 상태에서 그룹명이나 맵명을 추가하거나 삭제하면 selected 된 행이 없어진다.
- // 하지만 회로추가나 그룹추가는 할 수 있으므로 이를 방지해야한다
- _Data.Map_No = null;
- // 삭제가 되었으니까 다음 순서(MapID)를 다시 잡아주자
- // GridEX_MapName 클리어
- GridEX_MapName.ClearItems();
- //
- //** MAP_ID 값을 결정하기 위해서(수신기별로 유니크한게 아니라 전체에서 유니크함)
- //
- int MaxValue = 1;
- //** TB_MAP 테이블에서 맵명을 모두 가지고 온다
- DataRowCollection DB_MAP = _Db.ExecuteRead_SqlDataAdapter(_Sql.Get_ColumnMaxValue("TB_MAP", "MAP_NO"));
- foreach (DataRow Record in DB_MAP)
- {
- // 데이타가 아무것도 없다
- if (Record[0].ToString().Length != 0)
- {
- //DB에 저장되어 있는 레코드 수를 알자
- MaxValue = Int32.Parse(Record[0].ToString()) + 1;
- }
- }
- // 다음 설정하는 맵명 넘버를 출력하기 위해서
- GridEXRow Row;
- Row = GridEX_MapName.AddItem();
- Row.BeginEdit();
- // 그룹아이디와 맵아이디는 기존에 4자리에서 6자리다
- string id = "";
- if (_Data.Project_MapGroupIDTypeNumber == "6") // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- id = string.Format("{0:D6}", MaxValue);
- else
- id = string.Format("{0:D4}", MaxValue);
- Row.Cells["ID"].Value = "M" + id;
-
- Row.EndEdit();
- //** GridEX_InDevice 클리어시켜줌
- GridEX_InDevice.ClearItems();
- //** GridEX_OutDevice 클리어시켜줌
- GridEX_OutDevice.ClearItems();
- //** GridEX_MapList는 이상하게 처음에 하나 선택한것처럼 나오기 때문에 선택하지 않았는데도 삭제되는 것을 막기 위해서 사용
- // 맵명을 추가하거나 삭제하면 레코드가 하나도 선택되지 않은것처럼 나온다
- // 그래서 다시 폼로드 한 상태로 돌리려고 HideSelection속성을 HideSelection으로 바꾼다
- GridEX_MapList.HideSelection = HideSelection.HideSelection;
- }
- // 프로젝트 수정
- _Data.ProJect_Save_Complete = false;
- // 대화 팝업은 특별처리(이벤트 해제)
- _Event.PopupClose_SendMessage_Event -= new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeleteMap);
- }
- //** GridEX_MapList를 클릭할 때 발생
- private void GridEX_MapList_CurrentCellChanging(object sender, CurrentCellChangingEventArgs e)
- {
- // GridEX_MapList의 CurrentCellChanging의 이벤트를 처음 한번은 사용 못하게 함
- if (FirstUnuseMap_CurrentCellChanging == true)
- {
- // 다음부터는 사용 가능
- FirstUnuseMap_CurrentCellChanging = false;
- if (e.Row == null) return;
- // GridEX_MapList의 레코드를 선택했을 때, Map_ID를 저장
- _Data.Map_No = e.Row.Cells["Map_No"].Value.ToString();
- // GridEX_InDevice와 GridEX_OutDevice 셋팅
- GridEX_InOutDevice_IN_Map_SET();
- }
- else
- {
- // 맨처음 로드 될때 GridEX_MapList에 행이 선택되어 있는 것을 방지하기 위해서 HideSelection 속성에 HideSelection을 줌
- // 다음부터는 선택한 레코드의 포커스가 남겨짐
- GridEX_MapList.HideSelection = HideSelection.Highlight;
- if (e.Row == null) return;
- // GridEX_MapList의 레코드를 선택했을 때, Map_ID를 저장
- _Data.Map_No = e.Row.Cells["Map_No"].Value.ToString();
- // GridEX_InDevice와 GridEX_OutDevice 셋팅
- GridEX_InOutDevice_IN_Map_SET();
- }
- // 비상방송 텍스트 클리어
- EditBox_Area.Text = null;
- EditBox_Stair.Text = null;
- EditBox_Floor.Text = null;
- }
- //** 추가와 삭제버튼을 연속으로 사용 할 경우 삭제를 할수 없어 아래의 이벤트를 사용한다.
- private void GridEX_GroupList_CurrentCellChanged(object sender, EventArgs e)
- {
- GridEX_GroupList.HideSelection = HideSelection.Highlight;
- }
- //** 추가와 삭제버튼을 연속으로 사용 할 경우 삭제를 할수 없어 아래의 이벤트를 사용한다.
- private void GridEX_MapList_CurrentCellChanged(object sender, EventArgs e)
- {
- GridEX_MapList.HideSelection = HideSelection.Highlight;
- }
- //** GridEX_OutDevice을 마우스로 클릭하였을 발생하는 이벤트
- private void GridEX_OutDevice_MouseClick(object sender, MouseEventArgs e)
- {
- //** 헤더부분을 클릭하였을 경우는 사용하지 못함
- if (e.Y > 40)
- {
- //** 마우스 오른쪽 버튼일 경우
- if (e.Button == System.Windows.Forms.MouseButtons.Right)
- {
- if (GridEX_OutDevice.CurrentRow == null)
- {
- return;
- }
- //** ID컬럼의 첫글자가 'G'일 경우
- if (GridEX_OutDevice.CurrentRow.Cells["ID"].Value.ToString().Remove(1) == "G")
- {
- ContextMenuStrip_OutDeviceInfo.Items.Clear();
- ContextMenuStrip_OutDeviceInfo.Items.Add(_Text.DeviceInfo); // 회로정보 확인
- ContextMenuStrip_OutDeviceInfo.Show(GridEX_OutDevice, e.Location);
- }
- }
- }
- }
- //** ContextMenuStrip의 항목을 클릭하였을 경우
- private void ContextMenuStrip_OutDeviceInfo_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
- {
- // 컨텍스메뉴에서 회로정보 확인을 클릭하였을 경우
- if (e.ClickedItem.Text == _Text.DeviceInfo) // 회로정보 확인
- {
- // 컨텍스트 항목을 클릭하여도 컨텍스 항목이 사라지지 않아서 클로우즈 시켜줌
- ContextMenuStrip_OutDeviceInfo.Close();
- // 폼 생성
- _Data.MenuActivedForm = new Form_Check_Device(GridEX_OutDevice.CurrentRow.Cells["Receiver_ID"].Value.ToString());
- _Form.Create(_Data.MenuActivedForm, null);
- // Form_Check_Device폼으로 이벤트 발생
- _Event.Form_ConfigMAP_SendMessage_Write(GridEX_OutDevice.CurrentRow.Cells["ID"].Value.ToString());
- }
- }
- //** 비상방송코드 적용버튼
- private void UiButton_Broadcastion_Apply_Click(object sender, EventArgs e)
- {
- if (EditBox_Area.Text.Length == 0)
- {
- // 비상방송코드 AREA를 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.AreaNotInput, 0);
- return;
- }
- if (EditBox_Area.Text.Length != 2)
- {
- // 비상방송코드 AREA를 2자리로 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.AreaProblemInput, 0);
- return;
- }
- if (EditBox_Stair.Text.Length == 0)
- {
- // 비상방송코드 STAIR를 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.StairNotInput, 0);
- return;
- }
- if (EditBox_Stair.Text.Length != 2)
- {
- // 비상방송코드 STAIR를 2자리로 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.StairProblemInput, 0);
- return;
- }
- if (EditBox_Floor.Text.Length == 0)
- {
- // 비상방송코드 FLOOR를 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.FloorNotInput, 0);
- return;
- }
- if (EditBox_Floor.Text.Length != 2)
- {
- // 비상방송코드 FLOOR를 2자리로 입력해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.FloorProblemInput, 0);
- return;
- }
- // UPDATE로 해결하자
- _Db.UPDATE("TB_EMERGENCY_BROADCASTION",
- "RECEIVER_ID=" + Broadcation_Receiver +
- ";COMM_ID=" + COMM_ID +
- ";BOARD_ID=" + BOARD_ID +
- ";LOOP_NO=" + LOOP_NO +
- ";REPEATER_ID=" + REPEATER_ID +
- ";DEVICE_ID=" + DEVICE_ID +
- ";INOUT_TYPE=" + INOUT_TYPE,
- "AREA_CODE=" + EditBox_Area.Text +
- ";STAIR_CODE=" + EditBox_Stair.Text +
- ";FLOOR_CODE=" + EditBox_Floor.Text);
- // 저장하였습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.SaveInform, 0);
- }
-
- //** 비상방송코드 삭제버튼
- private void UiButton_Broadcastion_Delete_Click(object sender, EventArgs e)
- {
- //** GridEX_InDevice에서 선택한 행의 갯수를 알기 위해서
- int SelectRowCount = GridEX_InDevice.SelectedItems.Count;
- //** 선택한 행이 없으면 팝업을 띄운다
- if (SelectRowCount == 0)
- {
- // 먼저 입력디바이스를 선택해 주세요
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.InDeviceNotChoice, 0);
- return;
- }
- if (EditBox_Area.Text.Length == 0 || EditBox_Stair.Text.Length == 0 || EditBox_Floor.Text.Length == 0)
- {
- // 삭제 할 수 없습니다
- _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.NotDelete, 0);
- return;
- }
- // 비상방송코드를 삭제하시겠습니까?
- DialogPopup = _Popup.Create(Popup_Type.Dialog, Popup_Style.Normal, _Text.OK, 300, 150, _Text.BroadcastionInfo_Delete_Continue, 0);
- // 대화 팝업은 특별처리
- _Event.PopupClose_SendMessage_Event += new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeletBroadcastion);
- }
- //** 팝업에서 Yes, NO 에서 받은 이벤트 처리(비상방송코드 삭제버튼 클릭시)
- public void _Event_PopupClose_SendMessage_Event_DeletBroadcastion(object sender, object etc)
- {
- // 대화 팝업 주체
- Form popup = (Form)sender;
- if (DialogPopup.Name == popup.Name && etc.ToString() == _Text.OK)
- {
- // 입력디바이스 삭제
- _Db.Execute(_Sql.Delete_Table(
- "TB_EMERGENCY_BROADCASTION", "RECEIVER_ID", Receiver_ID.ToString(), "COMM_ID", COMM_ID, "BOARD_ID", BOARD_ID,
- "LOOP_NO", LOOP_NO, "REPEATER_ID", REPEATER_ID, "DEVICE_ID", DEVICE_ID, "INOUT_TYPE", INOUT_TYPE, Broadcation_Receiver));
- // 텍스트 클리어
- EditBox_Area.Text = null;
- EditBox_Stair.Text = null;
- EditBox_Floor.Text = null;
- }
- // 대화 팝업은 특별처리
- _Event.PopupClose_SendMessage_Event -= new _Event.PopupClose_SendMessage_Handler(_Event_PopupClose_SendMessage_Event_DeletBroadcastion);
- }
- private void GridEX_InDevice_CurrentCellChanging(object sender, CurrentCellChangingEventArgs e)
- {
- // 선택한 행이 없으면
- if (e.Row == null) return;
- Broadcation_Receiver = e.Row.Cells["Receiver_ID"].Value.ToString();
- string InDevice = e.Row.Cells["ID"].Value.ToString();
- // COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString device_id = new MskDeviceIDString(InDevice, Broadcation_Receiver); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- COMM_ID = device_id.Comm_id;
- BOARD_ID = device_id.Board_id;
- LOOP_NO = device_id.Loop_no;
- REPEATER_ID = device_id.Repeater_id;
- DEVICE_ID = device_id.Device_id;
- INOUT_TYPE = device_id.Inout_type;
- //
- // 비상방송 출력
- //
- // 먼저 클릭할때 저장과 삭제 버튼을 활성화 시킨다.
- UiButton_Broadcastion_Apply.Enabled = true;
- UiButton_Broadcastion_Delete.Enabled = true;
- // 먼저 텍스트 클리어
- EditBox_Area.Text = null;
- EditBox_Stair.Text = null;
- EditBox_Floor.Text = null;
- // 조회
- //** TB_MAP 테이블에서 맵명을 모두 가지고 온다
- DataRowCollection DB_TABLE_BROADCASTION = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_TB_EMERGENCY_BROADCASTION(
- "TB_EMERGENCY_BROADCASTION", "COMM_ID", COMM_ID, "BOARD_ID", BOARD_ID,
- "LOOP_NO", LOOP_NO, "REPEATER_ID", REPEATER_ID, "DEVICE_ID", DEVICE_ID, "INOUT_TYPE", INOUT_TYPE, Broadcation_Receiver));
- if (DB_TABLE_BROADCASTION != null)
- {
- foreach (DataRow dr in DB_TABLE_BROADCASTION)
- {
- EditBox_Area.Text = dr[7].ToString();
- EditBox_Stair.Text = dr[8].ToString();
- EditBox_Floor.Text = dr[9].ToString();
- }
- }
- // 조회해 왔는데 값이 없으면 저장과 삭제버튼 비활성화 시킨다
- if (EditBox_Area.Text.Length == 0 || EditBox_Stair.Text.Length == 0 || EditBox_Floor.Text.Length == 0)
- {
- UiButton_Broadcastion_Apply.Enabled = false;
- UiButton_Broadcastion_Delete.Enabled = false;
- }
- }
-
-
- }
- }
|