1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011 |
- 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 Janus.Windows.GridEX;
- using System.Collections;
- ///
- /// 기본 UI 프레임 구조 설명
- /// 1.Panel 안에 Tab가 존재한다
- /// 2.각 Tab 페이지안에 원하는 GridEx 가 존재한다
- /// 3.트리에서 선택한 노드에 의해 페이지가 다르게 보여질 수 있다. (탭페이지의 상단은 감추고 페이지만 선택되므로 UI 프레임을 동적으로 구현하지 않아도 됩니다)
- /// 4.각 GridEx 는 컬럼헤더가 동적으로 생성됩니다 (물론 고정으로 미리 생성해도 상관없습니다. 다만 정확하게 컬럼명이 무엇인지 알기만 한다면 접근가능 합니다)
- /// 5.각 GridEx 는 컬럼헤더의 명을 토대로 리스트에 데이터를 표시합니다
- ///
- namespace IControls_FireManager
- {
- public partial class Frame_Work : Form
- {
- ///
- /// 컬럼 관리 리스트
- ///
- /// _GirdEx 클래스를 통해 동적으로 생성되는 컬럼들은 속성들이 공통적으로 동일하게 됩니다
- /// 이렇게 생성된 컬럼들을 각각 개별적으로 속성들을 편집하고 싶을때 사용합니다
- /// 만약 화면에 표로 표시하지 않는 경우에는 사용하지 않아도 됩니다.
- /// 즉 컬럼관리 리스트와 컬럼명 문자열 리스트 사용하지 않으면 됩니다, 각 뷰에 미리 삽입된 GridEx 는 삭제해버리세요
- ///
- // 프로젝트
- List<GridEXColumn> GridEXColumnList_Project = new List<GridEXColumn>();
- // 수신기
- List<GridEXColumn> GridEXColumnList_Receiver = new List<GridEXColumn>();
- // 수신기 - 입출력
- List<GridEXColumn> GridEXColumnList_InOut = new List<GridEXColumn>();
- // 수신기 - 입출력 - 통신보드
- List<GridEXColumn> GridEXColumnList_InOut_CommBoard = new List<GridEXColumn>();
- // 수신기 - 입출력 - IO보드
- List<GridEXColumn> GridEXColumnList_InOut_IOBoard = new List<GridEXColumn>();
- // 수신기 - 입출력 - 키패드
- List<GridEXColumn> GridEXColumnList_InOut_KeyPAD = new List<GridEXColumn>();
- // 수신기 -입출력 - 비상방송
- List<GridEXColumn> GridEXColumnList_InOut_EmergencyBroadcast = new List<GridEXColumn>();
- // 수신기 - 포인트
- List<GridEXColumn> GridEXColumnList_Point = new List<GridEXColumn>();
- // 수신기 - 포인트 - 입력
- List<GridEXColumn> GridEXColumnList_Point_Input = new List<GridEXColumn>();
- // 수신기 - 포인트 - 출력
- List<GridEXColumn> GridEXColumnList_Point_Output = new List<GridEXColumn>();
- // 수신기 - 연동
- List<GridEXColumn> GridEXColumnList_Oper = new List<GridEXColumn>();
- // 수신기 - 연동 - 그룹 (미사용)
- //List<GridEXColumn> GridEXColumnList_Oper_Group = new List<GridEXColumn>();
- // 수신기 - 연동 - 연동설정 (미사용)
- //List<GridEXColumn> GridEXColumnList_Oper_Set = new List<GridEXColumn>();
- // 수신기 - 그래픽
- List<GridEXColumn> GridEXColumnList_Image = new List<GridEXColumn>();
- ///
- /// 컬럼명 문자열 배열 리스트
- ///
- /// 사전에 미리 지정된 컬럼명을 불러들여서, 이를 토대로 GridEx 의 컬럼헤더가 생성합니다
- /// 차후 데이터를 쓰거나 읽을때도 컬럼 헤더명을 이용하여 접근가능합니다. 현재는 각 페이지 별로 헤더명이 형식에 맞게 저장되어있습니다
- ///
- // 프로젝트
- string[] ColumnNames_Project = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_PROJECT_COLUMNNAME);
- // 수신기
- string[] ColumnNames_Receiver = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_RECEIVER_COLUMNNAME);
- // 수신기 - 입출력
- string[] ColumnNames_InOut = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_INOUT_COLUMNNAME);
- // 수신기 - 입출력 - 통신보드
- string[] ColumnNames_InOut_CommBoard = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_INOUT_COMMBOARD_COLUMNNAME);
- // 수신기 - 입출력 - IO보드
- string[] ColumnNames_InOut_IOBoard = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_INOUT_IOBOARD_COLUMNNAME);
- // 수신기 - 입출력 - 키패드
- string[] ColumnNames_InOut_KeyPad = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_INOUT_KEYPAD_COLUMNNAME);
- // 수신기 - 입출력 - 비상방송
- string[] ColumnNames_InOut_EmergencyBroadcast = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_INOUT_EMERGENCYBROADCAST_COLUMNNAME);
- // 수신기 - 포인트
- string[] ColumnNames_Point = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_POINT_COLUMNNAME);
- // 수신기 - 포인트 - 입력
- string[] ColumnNames_Point_Input = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_POINT_INPUT_COLUMNNAME);
- // 수신기 - 포인트 - 출력
- string[] ColumnNames_Point_Output = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_POINT_OUTPUT_COLUMNNAME);
- // 수신기 - 연동
- string[] ColumnNames_Oper = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_OPER_COLUMNNAME);
- // 수신기 - 연동 - 그룹
- string[] ColumnNames_Oper_Group = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_OPER_GROUP_COLUMNNAME);
- // 수신기 - 연동 - 연동설정
- string[] ColumnNames_Oper_Set = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_OPER_SET_COLUMNNAME);
- // 수신기 - 그래픽
- string[] ColumnNames_Image = _Convert.String_to_ArrayString(_Text.UI_WORKFRAME_IMAGE_COLUMNNAME);
- // 크로스 스레드 해결
- delegate void Cross_Thread(string RECEIVER_ID);
- // 컬럼 사이즈 일반
- int ColumnNames_Image_PageName = 150; // 페이지 이름
- int ColumnNames_Image_ButtonIconCount = 100; // 버튼 총개수
- int ColumnNames_Image_DeviceIconCount = 100; // 디바이스 총개수
- // 데이타바인딩용 (포인트 입력 및 출력)
- DataSet DataSet_Point_Input = new DataSet();
- DataSet DataSet_Point_Output = new DataSet();
- // 생성자
- public Frame_Work()
- {
- ///
- /// 초기화
- ///
- InitializeComponent();
- ///
- /// 이벤트 핸들러 등록
- ///
- // 폼닫기 이벤트 핸들러 등록 (이벤트 핸들러 해제용)
- this.FormClosing += new FormClosingEventHandler(CreateForm_FormClosing);
- // 윈도우 스타일 변경 이벤트 핸들러 등록
- _Event.WindowStyleSet_SendMessage_Event += new _Event.WindowStyleSet_SendMessage_Handler(_Event_WindowStyleSet_SendMessage_Event);
- // 페이지별 생성 이벤트 핸들러 등록
- _Event.WorkViewPageName_SendMessage_Event += new _Event.WorkViewPageName_SendMessage_Handler(_Event_WorkViewPageName_SendMessage_Event);
- // 비상방송 코드편집 이벤트 핸들러 등록
- _Event.EmergencyCodeEdit_SendMessage_Event += new _Event.EmergencyCodeEdit_SendMessage_Handler(_Event_EmergencyCodeEdit_SendMessage_Event);
- // 워크뷰 초기화 이벤트 (예시 : 다른뷰 -> 워크뷰) 핸들러 등록
- _Event.WorkView_Clear_SendMessage_Event += new _Event.WorkView_Clear_SendMessage_Handler(_Event_WorkView_Clear_SendMessage_Event);
- // 수신기 추가 및 편집 폼에서 작업 완료 이벤트 핸들러 등록
- _Event.WorkViewPageName_Receiver_SendMessage_Event += new _Event.WorkViewPageName_Receiver_SendMessage_Handler(_Event_WorkViewPageName_Receiver_SendMessage_Event);
- // 캡쳐 동작 핸들러 등록
- _Event.Capture_Save_SendMessage_Event += new _Event.Capture_Save_SendMessage_Handler(_Event_Capture_Save_SendMessage_Event);
- // 트리뷰 초기화 이벤트 및 프로젝트 열기 혹은 새로만들기 겸용 핸들러 등록
- //_Event.TreeView_Clear_SendMessage_Event += new _Event.TreeView_Clear_SendMessage_Handler(_Event_TreeView_Clear_SendMessage_Event);
- ///
- /// 스타일 변경
- ///
- UI_Style_Initialize();
- ///
- /// 탭페이지 속성 변경
- ///
- // 세부보기 탭은 보여지지 않는다
- this.uiTab_DeviceListInfo.ShowTabs = false;
- // 프로젝트 노드 탭페이지가 제일 먼저 선택된다
- this.uiTabPage_Project.Selected = true;
- ///
- /// Device List Info 초기화 (컬럼명 생성)
- ///
- // Project
- DeviceListInfo_GridEx_Initialize(Object_Type.PROJECT, ColumnNames_Project, gridEX_Project);
- // 수신기
- DeviceListInfo_GridEx_Initialize(Object_Type.RECEIVER, ColumnNames_Receiver, gridEX_Receiver);
- // 수신기 - 입출력
- DeviceListInfo_GridEx_Initialize(Object_Type.INOUT, ColumnNames_InOut, gridEX_InOut);
- // 수신기 - 입출력 - 통신보드
- DeviceListInfo_GridEx_Initialize(Object_Type.COM_BOARD, ColumnNames_InOut_CommBoard, gridEX_InOut_CommBoard);
- // 수신기 - 입출력 - IO보드
- DeviceListInfo_GridEx_Initialize(Object_Type.IO_BOARD, ColumnNames_InOut_IOBoard, gridEX_InOut_IOBoard);
- // 수신기 - 입출력 - 키패드
- DeviceListInfo_GridEx_Initialize(Object_Type.KEYPAD, ColumnNames_InOut_KeyPad, gridEX_InOut_KeyPad);
- // 수신기 - 입출력 - 비상방송
- DeviceListInfo_GridEx_Initialize(Object_Type.EMERGENCY_BROADCAST, ColumnNames_InOut_EmergencyBroadcast, gridEX_InOut_EmergencyBroadcast);
- // 수신기 - 포인트
- DeviceListInfo_GridEx_Initialize(Object_Type.POINT, ColumnNames_Point, gridEX_Point);
- // 수신기 - 포인트 - 입력
- DeviceListInfo_GridEx_Initialize(Object_Type.INPUT, ColumnNames_Point_Input, gridEX_Point_Input);
- // 수신기 - 포인트 - 출력
- DeviceListInfo_GridEx_Initialize(Object_Type.OUTPUT, ColumnNames_Point_Output, gridEX_Point_Output);
- // 수신기 - 연동
- DeviceListInfo_GridEx_Initialize(Object_Type.OPER, ColumnNames_Oper, gridEX_Oper);
- // 수신기 - 그래픽
- DeviceListInfo_GridEx_Initialize(Object_Type.IMAGE, ColumnNames_Image, gridEX_Image);
- ///
- /// 그룹 및 연동설정의 경우 오로지 OPER_SET 페이지만 이용한다
- ///
- DeviceListInfo_Form_Initialize(Object_Type.OPER_SET);
- ///
- /// 포인트의 입력 및 출력의 경우 데이타바인딩용 컬럼으로 생성해야한다
- ///
- _Dataset.Create_Table(DataSet_Point_Input);
- _Dataset.Create_Table(DataSet_Point_Output);
- _Dataset.Add_DataColumn(DataSet_Point_Input, ColumnNames_Point_Input, ColumnNames_Point_Input); // 키 정보와 UI 표시부는 동일하다
- _Dataset.Add_DataColumn(DataSet_Point_Output, ColumnNames_Point_Output, ColumnNames_Point_Output); // 키 정보와 UI 표시부는 동일하다
- ///
- /// 수동 컬럼 속성 조정 (동적으로 생성된 컬럼헤더의 속성을 변경하고 싶다면 아래와 같이 조절)
- ///
- //
- // 사이즈 변경 (컬럼 사이즈 조절, 단 바운딩되면 다시 재조절해야되고 그 루틴은 각각 함수에 존재함)
- //
- // Project
- GridEXColumnList_Project[1].Width = 200;
- // 수신기
- GridEXColumnList_Receiver[1].Width = 200;
- // 수신기 - 포인트
- GridEXColumnList_Point[0].Width = 200;
- GridEXColumnList_Point[1].Width = 200;
- GridEXColumnList_Point[2].Width = 200;
- // 수신기 - 포인트 - 입력
- GridEXColumnList_Point_Input[0].Width = 100; // No
- GridEXColumnList_Point_Input[1].Width = 150; // 회로번호
- GridEXColumnList_Point_Input[2].Width = 150; // 설비종류
- GridEXColumnList_Point_Input[3].Width = 150; // 위치
- GridEXColumnList_Point_Input[4].Width = 150; // 디바이스명칭
- GridEXColumnList_Point_Output[0].Width = 100;
- GridEXColumnList_Point_Output[1].Width = 150;
- GridEXColumnList_Point_Output[2].Width = 150;
- GridEXColumnList_Point_Output[3].Width = 150;
- GridEXColumnList_Point_Output[4].Width = 150;
- // 수신기 - 연동
- GridEXColumnList_Oper[0].Width = 200;
- GridEXColumnList_Oper[1].Width = 200;
- GridEXColumnList_Oper[2].Width = 200;
- GridEXColumnList_Oper[3].Width = 200;
- // 수신기 - 그래픽
- // DataApplytoGridex_Image () 함수에서 재조절함 (컬럼명에 의해 사이즈가 변경되는 것이 많다)
- GridEXColumnList_Image[0].Width = ColumnNames_Image_PageName;
- GridEXColumnList_Image[1].Width = ColumnNames_Image_ButtonIconCount;
- GridEXColumnList_Image[2].Width = ColumnNames_Image_DeviceIconCount;
- }
- ///
- /// 폼닫기 이벤트를 등록
- ///
- public void CreateForm_FormClosing(object sender, FormClosingEventArgs e)
- {
- // 이벤트 핸들러 해제용
- // 윈도우 스타일 변경 이벤트 핸들러 해제
- _Event.WindowStyleSet_SendMessage_Event -= new _Event.WindowStyleSet_SendMessage_Handler(_Event_WindowStyleSet_SendMessage_Event);
- // 페이지별 생성 이벤트 핸들러 등록
- _Event.WorkViewPageName_SendMessage_Event -= new _Event.WorkViewPageName_SendMessage_Handler(_Event_WorkViewPageName_SendMessage_Event);
- // 비상방송 코드편집 이벤트 핸들러 해제
- _Event.EmergencyCodeEdit_SendMessage_Event -= new _Event.EmergencyCodeEdit_SendMessage_Handler(_Event_EmergencyCodeEdit_SendMessage_Event);
- // 트리뷰에 전체 노드 삭제 이벤트 핸들러 해제
- _Event.WorkView_Clear_SendMessage_Event -= new _Event.WorkView_Clear_SendMessage_Handler(_Event_WorkView_Clear_SendMessage_Event);
- // 수신기 추가 및 편집 폼에서 작업 완료 이벤트 핸들러 해제
- _Event.WorkViewPageName_Receiver_SendMessage_Event -= new _Event.WorkViewPageName_Receiver_SendMessage_Handler(_Event_WorkViewPageName_Receiver_SendMessage_Event);
- // 캡쳐 동작 핸들러 해제
- _Event.Capture_Save_SendMessage_Event -= new _Event.Capture_Save_SendMessage_Handler(_Event_Capture_Save_SendMessage_Event);
- // 트리뷰 초기화 이벤트 및 프로젝트 열기 혹은 새로만들기 겸용 핸들러 해제
- //_Event.TreeView_Clear_SendMessage_Event -= new _Event.TreeView_Clear_SendMessage_Handler(_Event_TreeView_Clear_SendMessage_Event);
- }
- // 윈도우 스타일 변경 이벤트
- public void _Event_WindowStyleSet_SendMessage_Event()
- {
- UI_Style_Initialize();
- }
- // 스타일 초기화 함수
- private void UI_Style_Initialize()
- {
- }
- ///
- /// 폼생성
- ///
- public void DeviceListInfo_Form_Initialize(Object_Type Oevice_type)
- {
- switch (Oevice_type)
- {
- case Object_Type.OPER_SET:
- {
- // 그룹 및 연동설정 폼은 1개로 처리한다
- // 수신기 - 연동 - 그룹
- // 수신기 - 연동 - 연동설정
- Form_ConfigMAP ConfigMAP = new Form_ConfigMAP();
- // 프레임으로 추가
- _Frame.Create(this.uiPanel_WorkViewContainer_Oper_Set, ConfigMAP);
- }
- break;
- }
- }
- ///
- /// 컬럼헤더 생성
- ///
- public void DeviceListInfo_GridEx_Initialize(Object_Type Oevice_type, string[] ColumnNames, GridEX Gridex)
- {
- // UI 초기화
- Gridex.ClearItems();
- // 컬럼을 생성한다
- switch (Oevice_type)
- {
- // Project
- case Object_Type.PROJECT:
- {
- GridEXColumnList_Project.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Project.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- // 수신기
- case Object_Type.RECEIVER:
- {
- GridEXColumnList_Receiver.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- // cyim - 2012.8.13
- //
- // 예제 - 수신기 노드를 선택하면 4가지 타입의 데이타가 표시됩니다
- // -> 텍스트박스(일반) , 체크박스 , 콤보박스, 버튼
- // 헤더문구는 UI_WORKFRAME_RECEIVER_COLUMNNAME =>"Text;Checkbox;Button;Combobox"; 가 있다고 가정합니다.
- // 컬럼을 제어할수 있는 GridEXColumnList_Receiver 의 리스트에는 각각 Text;Checkbox;Button;Combobox 정보가 있습니다.
- //
- /*
- // 일반
- if(ColumnName=="Text")
- GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, ColumnName));
- // 체크박스
- else if (ColumnName == "Checkbox")
- GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, ColumnName));
- // 버튼
- else if (ColumnName == "Button")
- GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.ButtonCell, ColumnName));
- // 콤보박스
- else if (ColumnName == "Combobox")
- {
- //콤보박스안에 글자를 삽입한후 컬럼을 추가한다
- ArrayList ComboboxText = new ArrayList();
- ComboboxText.Add("Test1");
- ComboboxText.Add("Test2");
- GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.Combo, ButtonStyle.NoButton, ColumnName,ComboboxText));
- }
- */
- GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- break;
- // 수신기 - 입출력
- case Object_Type.INOUT:
- {
- GridEXColumnList_InOut.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- if (ColumnName == "UseFlag")
- {
- GridEXColumnList_InOut.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, false, ColumnName));
- }
- else
- {
- GridEXColumnList_InOut.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- }
- break;
- // 수신기 - 입출력 - 통신보드
- case Object_Type.COM_BOARD:
- {
- GridEXColumnList_InOut_CommBoard.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- if ((ColumnName == "UseFlag") || (ColumnName == "Ch1_Use") || (ColumnName == "Ch2_Use") || (ColumnName == "Ch3_Use") || (ColumnName == "Ch4_Use")) // cyim 2016.10.31 : 워크뷰에서 통신보드 보기 화면에서 채널3,4 정보가 표시되지 않는 문제
- {
- GridEXColumnList_InOut_CommBoard.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, false, ColumnName));
- }
- else
- {
- GridEXColumnList_InOut_CommBoard.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- }
- break;
- // 수신기 - 입출력 - IO보드
- case Object_Type.IO_BOARD:
- {
- GridEXColumnList_InOut_IOBoard.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- if (ColumnName == "UseFlag")
- {
- GridEXColumnList_InOut_IOBoard.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, false, ColumnName));
- }
- else
- {
- GridEXColumnList_InOut_IOBoard.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- }
- break;
- // 수신기 - 입출력 - 키패드
- case Object_Type.KEYPAD:
- {
- GridEXColumnList_InOut_KeyPAD.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- if (ColumnName == "UseFlag")
- {
- GridEXColumnList_InOut_KeyPAD.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, false, ColumnName));
- }
- else
- {
- GridEXColumnList_InOut_KeyPAD.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- }
- break;
- // 수신기 - 입출력 - 비상방송
- case Object_Type.EMERGENCY_BROADCAST:
- {
- GridEXColumnList_InOut_EmergencyBroadcast.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- {
- if (ColumnName == "UseFlag")
- {
- GridEXColumnList_InOut_EmergencyBroadcast.Add(_Gridex.Column_Add(Gridex, ColumnType.CheckBox, EditType.CheckBox, ButtonStyle.NoButton, false, ColumnName));
- }
- else
- {
- GridEXColumnList_InOut_EmergencyBroadcast.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- }
- }
- break;
- // 수신기 - 포인트
- case Object_Type.POINT:
- {
- GridEXColumnList_Point.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Point.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- // 수신기 - 포인트 - 입력
- case Object_Type.INPUT:
- {
- GridEXColumnList_Point_Input.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Point_Input.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- // 수신기 - 포인트 - 출력
- case Object_Type.OUTPUT:
- {
- GridEXColumnList_Point_Output.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Point_Output.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- // 수신기 - 연동
- case Object_Type.OPER:
- {
- GridEXColumnList_Oper.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Oper.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- // 수신기 - 연동 - 그룹 (미사용)
- case Object_Type.OPER_GROUP:
- //{
- // GridEXColumnList_Oper_Group.Clear(); // 컬럼 리스트 초기화
- // foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- // GridEXColumnList_Oper_Group.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, ColumnName));
- //}
- break;
- // 수신기 - 연동 - 연동설정 (미사용)
- case Object_Type.OPER_SET:
- //{
- // GridEXColumnList_Oper_Set.Clear(); // 컬럼 리스트 초기화
- // foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- // GridEXColumnList_Oper_Set.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, ColumnName));
- //}
- break;
- // 수신기 - 그래픽
- case Object_Type.IMAGE:
- {
- GridEXColumnList_Image.Clear(); // 컬럼 리스트 초기화
- foreach (string ColumnName in ColumnNames) // 컬럼 추가 (텍스트 박스인지, 체크박스 타입인지 , 버튼인지 결정해서 생성)
- GridEXColumnList_Image.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.TextBox, ButtonStyle.NoButton, false, ColumnName));
- }
- break;
- }
- // 컬럼셋 추가 (컬럼 갯수 만큼)
- GridEXColumnSet gridEXColumnSet = _Gridex.ColumnSet_Add(Gridex, null, null, ColumnNames.Length, 400);
- // 컬럼셋 위치 조절
- // 생성한 컬럼을 컬럼셋 인덱스에 맞게 생성한다
- for (int i = 0; i < ColumnNames.Length; i++)
- _Gridex.ColumnSet_AddColumn(Gridex, gridEXColumnSet, ColumnNames[i], i);
- }
- ///
- /// 수신기 추가 및 편집 폼에서 작업 완료 이벤트
- ///
- //public void _Event_TreeView_Clear_SendMessage_Event(string ProjectName)
- //{
- // DataApplytoGridex_Project();
- //}
- ///
- /// 수신기 추가 및 편집 폼에서 작업 완료 이벤트
- ///
- delegate void CallBack_DataApplytoGridex_Receiver_Set(string RECEIVER_ID);
- public void _Event_WorkViewPageName_Receiver_SendMessage_Event(string RECEIVER_ID)
- {
- if (this.InvokeRequired)
- {
- CallBack_DataApplytoGridex_Receiver_Set d = new CallBack_DataApplytoGridex_Receiver_Set(_Event_WorkViewPageName_Receiver_SendMessage_Event);
- this.Invoke(d, new object[] { RECEIVER_ID });
- }
- else
- {
- DataApplytoGridex_Receiver(RECEIVER_ID);
- }
- }
- ///
- /// 화면 캡쳐 이벤트
- ///
- public void _Event_Capture_Save_SendMessage_Event(string RECEIVER_ID, string PAGE_ID)
- {
- // 특별처리 캡쳐 진행중
- if (_Data.Enable_Capture == true)
- {
- ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).Capure_Image_Page = _Graphic.Capture_By_Component(this.pictureBox_Background);
- }
- }
- ///
- /// 노드 전부 삭제 이벤트
- ///
- public void _Event_WorkView_Clear_SendMessage_Event()
- {
- // 페이지 선택
- this.uiTabPage_Project.Selected = true;
- // UI 초기화
- this.gridEX_Project.ClearItems();
- }
- ///
- /// 비상방송 코드편집 실행하면 발생하는 이벤트
- ///
- public void _Event_EmergencyCodeEdit_SendMessage_Event(string RECEIVER_ID)
- {
- // 입력
- //DataApplytoGridex_Point_Input();
- // 출력
- //DataApplytoGridex_Point_Output();
- if (this.uiTabPage_Point.InvokeRequired)
- {
- Cross_Thread d = new Cross_Thread(_Event_EmergencyCodeEdit_SendMessage_Event);
- this.Invoke(d, new object[] { RECEIVER_ID });
- }
- else
- {
- // 입력 출력 모두 표시
- DataApplytoGridex_Point(RECEIVER_ID);
- }
- }
- ///
- /// 노드를 클릭하면 발생하는 이벤트
- /// 예시 : 시스템 트리 노드를 선택하면 노드에 따라 탭페이지가 변경된다
- /// 아래의 함수 파라미터는 용도에 따라 변경 하세요
- ///
- public void _Event_WorkViewPageName_SendMessage_Event(string RECEIVER_ID, Object_Type TypeName, string NodeKey, string NodeText)
- {
- // 트리뷰에서 선택한 노드에 따라 페이지가 달리 보여진다
- switch (TypeName)
- {
- // 프로젝트
- case Object_Type.PROJECT:
- DataApplytoGridex_Project();
- break;
- // 수신기
- case Object_Type.RECEIVER:
- DataApplytoGridex_Receiver(RECEIVER_ID);
- break;
- // 수신기 - 입출력
- case Object_Type.INOUT:
- DataApplytoGridex_InOut(RECEIVER_ID);
- break;
- // 수신기 - 입출력 - 통신보드
- case Object_Type.COM_BOARD:
- DataApplytoGridex_InOut_ComBoard(RECEIVER_ID);
- break;
- // 수신기 - 입출력 - IO보드
- case Object_Type.IO_BOARD:
- DataApplytoGridex_InOut_IOBoard(RECEIVER_ID);
- break;
- // 수신기 - 입출력 - 키패드
- case Object_Type.KEYPAD:
- DataApplytoGridex_InOut_KeyPad(RECEIVER_ID);
- break;
- // 수신기 - 입출력 - 비상방송
- case Object_Type.EMERGENCY_BROADCAST:
- DataApplytoGridex_InOut_EmergencyBroadCast(RECEIVER_ID);
- break;
- // 수신기 - 포인트
- case Object_Type.POINT:
- DataApplytoGridex_Point(RECEIVER_ID);
- break;
- // 수신기 - 포인트 - 입력
- case Object_Type.INPUT:
- DataApplytoGridex_Point_Input(RECEIVER_ID);
- break;
- // 수신기 - 포인트 - 출력
- case Object_Type.OUTPUT:
- DataApplytoGridex_Point_Output(RECEIVER_ID);
- break;
- // 수신기 - 연동
- case Object_Type.OPER:
- DataApplytoGridex_Oper(RECEIVER_ID);
- break;
- // 수신기 - 연동 - 그룹 (한개의 폼을 동일하게 처리 : 그룹 및 연동설정)
- case Object_Type.OPER_GROUP:
- DataApplytoGridex_Oper_Group(RECEIVER_ID);
- break;
- // 수신기 - 연동 - 연동설정 (한개의 폼을 동일하게 처리 : 그룹 및 연동설정)
- case Object_Type.OPER_SET:
- DataApplytoGridex_Oper_Set(RECEIVER_ID);
- break;
- // 수신기 - 그래픽
- case Object_Type.IMAGE:
- DataApplytoGridex_Image(RECEIVER_ID);
- break;
- // 수신기 - 그래픽 - 페이지
- case Object_Type.PAGE:
- DataApplytoGridex_Image_Page(RECEIVER_ID, NodeKey, NodeText);
- break;
- }
- }
- ///
- /// GridEx 데이타 적용 - 프로젝트
- ///
- public void DataApplytoGridex_Project()
- {
- string sRecoverMode;
- string sJumpToView;
- // 페이지 선택
- this.uiTabPage_Project.Selected = true;
- // UI 초기화
- this.gridEX_Project.ClearItems();
- // Root 의 컬럼명은
- // "수신기명;빌딩이름;수신기IP;EventPort;CommandPort;축적시간;화재모드;화재시화면전환"
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).RECOVER_MODE == false)
- sRecoverMode = "자동복구";
- else
- sRecoverMode = "지속";
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).JUMP_TO_VIEW == true)
- sJumpToView = "전환함";
- else
- sJumpToView = "전환안함";
- string GridexAddItem =
- // 수신기
- ColumnNames_Project[0] + _Text.Equal + "Receiver" + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).ID + _Text.SemiColon +
- // 빌딩명
- ColumnNames_Project[1] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).NAME + _Text.SemiColon +
- // 수신기IP
- ColumnNames_Project[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).IP + _Text.SemiColon +
- // EventPort
- ColumnNames_Project[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).EVENT_PORT + _Text.SemiColon +
- // CommandPort
- ColumnNames_Project[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).COMMAND_PORT + _Text.SemiColon +
- // 축적시간
- ColumnNames_Project[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).FIRE_ACCUMULATION_SECOND + _Text.SemiColon +
- // 화재모드
- ColumnNames_Project[6] + _Text.Equal + sRecoverMode + _Text.SemiColon +
- // 화재시화면전환
- ColumnNames_Project[7] + _Text.Equal + sJumpToView + _Text.SemiColon +
- // 네트워크 마스터 모드
- ColumnNames_Project[8] + _Text.Equal + (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MASTER_FLAG ? "Y" : "N") + _Text.SemiColon +
- // 모델정보
- ColumnNames_Project[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL; // cyim 2016.12.02 : 수신기 모델 설정 기능 추가
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_Project, false, GridexAddItem);
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기
- ///
- public void DataApplytoGridex_Receiver(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//(pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Receiver.Selected = true;
- // UI 초기화
- this.gridEX_Receiver.ClearItems();
- // Receiver 의 컬럼명은
- // "Name;빌딩
- ///
- // 컬럼 내용 추가 => "Text;Checkbox;Button;Combobox""
- /*
- string GridexAddItem =
- // 일반 (데이타는 일반 문자열)
- ColumnNames_Receiver[0] + _Text.Equal + "Receiver" + _Text.SemiColon +
- // 체크박스 (데이타는 반드시 True 혹은 False)
- ColumnNames_Receiver[1] + _Text.Equal + true.ToString() + _Text.SemiColon +
- // 버튼 (데이타는 버튼 텍스트입니다)
- ColumnNames_Receiver[2] + _Text.Equal + "버튼" + _Text.SemiColon +
- // 콤보박스 (데이타는 콤보박스의 첫번째 문자열입니다 (콤보박스의 데이타는 사전에 생성될때 추가하는 루틴이 존재합니다)
- ColumnNames_Receiver[3] + _Text.Equal + "첫번째글자";
- */
- string sRecoverMode;
- string sJumpToView;
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).ID)
- {
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).RECOVER_MODE == false)
- sRecoverMode = "자동복구";
- else
- sRecoverMode = "지속";
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).JUMP_TO_VIEW == true)
- sJumpToView = "전환함";
- else
- sJumpToView = "전환안함";
- string GridexAddItem =
- // 수신기
- ColumnNames_Receiver[0] + _Text.Equal + "Receiver" + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).ID + _Text.SemiColon +
- // 빌딩명
- ColumnNames_Receiver[1] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).NAME + _Text.SemiColon +
- // 수신기IP
- ColumnNames_Receiver[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).IP + _Text.SemiColon +
- // EventPort
- ColumnNames_Receiver[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).EVENT_PORT + _Text.SemiColon +
- // CommandPort
- ColumnNames_Receiver[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).COMMAND_PORT + _Text.SemiColon +
- // 축적시간
- ColumnNames_Receiver[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).FIRE_ACCUMULATION_SECOND + _Text.SemiColon +
- // 화재모드
- ColumnNames_Receiver[6] + _Text.Equal + sRecoverMode + _Text.SemiColon +
- // 화재시화면전환
- ColumnNames_Receiver[7] + _Text.Equal + sJumpToView + _Text.SemiColon +
- // 네트워크 마스터 모드
- ColumnNames_Receiver[8] + _Text.Equal + (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MASTER_FLAG ? "Y" : "N") + _Text.SemiColon +
- // 모델정보
- ColumnNames_Project[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL; // cyim 2016.12.02 : 수신기 모델 설정 기능 추가
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_Receiver, false, GridexAddItem);
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 입출력
- ///
- public void DataApplytoGridex_InOut(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//(pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_InOut.Selected = true;
- // UI 초기화
- this.gridEX_InOut.ClearItems();
- // ColumnNames_InOut 의 컬럼명은
- // "CommID;COMM_NAME;COMM_PORT;BAUD_RATE;PARITY;DATABITS;STOPBITS;COMM_TIMEOUT;COMM_DELAY;DELTA_VOLT;RETRY_COUNT;UseFlag"
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).ID)
- {
- // CommBoard 정보 출력
- string GridexAddItem =
- // CommID
- ColumnNames_InOut[0] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.COMM_ID + _Text.SemiColon +
- // COMM_Name
- ColumnNames_InOut[1] + _Text.Equal + "통신 보드" + _Text.SemiColon +
- // COMM_Port
- ColumnNames_InOut[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Get_COM_PORT() + _Text.SemiColon +
- // Baud_Rate
- ColumnNames_InOut[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Get_COM_BAUDRATE() + _Text.SemiColon +
- // Parity
- ColumnNames_InOut[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Get_COM_PARITY() + _Text.SemiColon +
- // DataBits
- ColumnNames_InOut[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Get_COM_DATABITS() + _Text.SemiColon +
- // StopBits
- ColumnNames_InOut[6] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Get_COM_STOPBIT() + _Text.SemiColon +
- // Comm_TimeOut
- ColumnNames_InOut[7] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.TimeOut.ToString() + _Text.SemiColon +
- // Comm_Delay
- ColumnNames_InOut[8] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Delay.ToString() + _Text.SemiColon +
- // Delta_Volt
- ColumnNames_InOut[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Delta_Volt.ToString() + _Text.SemiColon +
- // Retry_Count
- ColumnNames_InOut[10] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Retry_Count.ToString() + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut[11] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard.Use_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut, false, GridexAddItem);
- // IOBoard 정보 출력
- GridexAddItem =
- ColumnNames_InOut[0] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.COMM_ID + _Text.SemiColon +
- // COMM_Name
- ColumnNames_InOut[1] + _Text.Equal + "IO 보드" + _Text.SemiColon +
- // COMM_Port
- ColumnNames_InOut[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Get_COM_PORT() + _Text.SemiColon +
- // Baud_Rate
- ColumnNames_InOut[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Get_COM_BAUDRATE() + _Text.SemiColon +
- // Parity
- ColumnNames_InOut[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Get_COM_PARITY() + _Text.SemiColon +
- // DataBits
- ColumnNames_InOut[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Get_COM_DATABITS() + _Text.SemiColon +
- // StopBits
- ColumnNames_InOut[6] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Get_COM_STOPBIT() + _Text.SemiColon +
- // Comm_TimeOut
- ColumnNames_InOut[7] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.TimeOut.ToString() + _Text.SemiColon +
- // Comm_Delay
- ColumnNames_InOut[8] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Delay.ToString() + _Text.SemiColon +
- // Delta_Volt
- ColumnNames_InOut[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Delta_Volt.ToString() + _Text.SemiColon +
- // Retry_Count
- ColumnNames_InOut[10] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Retry_Count.ToString() + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut[11] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard.Use_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut, false, GridexAddItem);
- // KeyPAD 정보 출력
- GridexAddItem =
- ColumnNames_InOut[0] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.COMM_ID + _Text.SemiColon +
- // COMM_Name
- ColumnNames_InOut[1] + _Text.Equal + "KeyPAD" + _Text.SemiColon +
- // COMM_Port
- ColumnNames_InOut[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Get_COM_PORT() + _Text.SemiColon +
- // Baud_Rate
- ColumnNames_InOut[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Get_COM_BAUDRATE() + _Text.SemiColon +
- // Parity
- ColumnNames_InOut[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Get_COM_PARITY() + _Text.SemiColon +
- // DataBits
- ColumnNames_InOut[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Get_COM_DATABITS() + _Text.SemiColon +
- // StopBits
- ColumnNames_InOut[6] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Get_COM_STOPBIT() + _Text.SemiColon +
- // Comm_TimeOut
- ColumnNames_InOut[7] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.TimeOut.ToString() + _Text.SemiColon +
- // Comm_Delay
- ColumnNames_InOut[8] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Delay.ToString() + _Text.SemiColon +
- // Delta_Volt
- ColumnNames_InOut[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Delta_Volt.ToString() + _Text.SemiColon +
- // Retry_Count
- ColumnNames_InOut[10] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Retry_Count.ToString() + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut[11] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Use_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut, false, GridexAddItem);
- // 비상방송 정보 출력
- GridexAddItem =
- ColumnNames_InOut[0] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.COMM_ID + _Text.SemiColon +
- // COMM_Name
- ColumnNames_InOut[1] + _Text.Equal + "비상방송" + _Text.SemiColon +
- // COMM_Port
- ColumnNames_InOut[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Get_COM_PORT() + _Text.SemiColon +
- // Baud_Rate
- ColumnNames_InOut[3] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Get_COM_BAUDRATE() + _Text.SemiColon +
- // Parity
- ColumnNames_InOut[4] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Get_COM_PARITY() + _Text.SemiColon +
- // DataBits
- ColumnNames_InOut[5] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Get_COM_DATABITS() + _Text.SemiColon +
- // StopBits
- ColumnNames_InOut[6] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Get_COM_STOPBIT() + _Text.SemiColon +
- // Comm_TimeOut
- ColumnNames_InOut[7] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.TimeOut.ToString() + _Text.SemiColon +
- // Comm_Delay
- ColumnNames_InOut[8] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Delay.ToString() + _Text.SemiColon +
- // Delta_Volt
- ColumnNames_InOut[9] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Delta_Volt.ToString() + _Text.SemiColon +
- // Retry_Count
- ColumnNames_InOut[10] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Retry_Count.ToString() + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut[11] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Use_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut, false, GridexAddItem);
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 입출력 - 통신보드
- ///
- public void DataApplytoGridex_InOut_ComBoard(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_InOut_CommBoard.Selected = true;
- // UI 초기화
- this.gridEX_InOut_CommBoard.ClearItems();
- // ColumnNames_CommBoard 의 컬럼명은
- // BoardID;BoardName;UseFlag;Ch1_Use;Ch2_Use
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == RECEIVER_ID)
- {
- foreach (string COM_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).List_COM_BOARD_ID)
- {
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL != "IFC3300") //3000 이하
- {
- int temp = Convert.ToInt32(((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID);
- if (temp == 15)
- {
- ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bUse_Flag = true;
- ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh1_Use_Flag = true;
- }
- if (temp > 15)
- break;
- if (temp != 0)
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_CommBoard[0] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_CommBoard[1] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_CommBoard[2] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bUse_Flag.ToString() + _Text.SemiColon +
- // Ch1_Use
- ColumnNames_InOut_CommBoard[3] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh1_Use_Flag.ToString() + _Text.SemiColon +
- // Ch2_Use
- ColumnNames_InOut_CommBoard[4] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh2_Use_Flag.ToString() + _Text.SemiColon +
- // Ch3_Use
- ColumnNames_InOut_CommBoard[5] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh3_Use_Flag.ToString() + _Text.SemiColon +
- // Ch4_Use
- ColumnNames_InOut_CommBoard[6] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh4_Use_Flag.ToString(); // cyim 2016.10.31 : 워크뷰에서 통신보드 보기 화면에서 채널3,4 정보가 표시되지 않는 문제
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- if (((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID <= 64)
- _Gridex.Column_Data_Add(this.gridEX_InOut_CommBoard, false, GridexAddItem);
- }
- }
- else //3300
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_CommBoard[0] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_CommBoard[1] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_CommBoard[2] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bUse_Flag.ToString() + _Text.SemiColon +
- // Ch1_Use
- ColumnNames_InOut_CommBoard[3] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh1_Use_Flag.ToString() + _Text.SemiColon +
- // Ch2_Use
- ColumnNames_InOut_CommBoard[4] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh2_Use_Flag.ToString() + _Text.SemiColon +
- // Ch3_Use
- ColumnNames_InOut_CommBoard[5] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh3_Use_Flag.ToString() + _Text.SemiColon +
- // Ch4_Use
- ColumnNames_InOut_CommBoard[6] + _Text.Equal + ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh4_Use_Flag.ToString(); // cyim 2016.10.31 : 워크뷰에서 통신보드 보기 화면에서 채널3,4 정보가 표시되지 않는 문제 // 생성된 컬럼명에 맞게 데이타를 추가한다
- if (((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID <= 64)
- _Gridex.Column_Data_Add(this.gridEX_InOut_CommBoard, false, GridexAddItem);
- }
- }
- }
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL != "IFC3300")
- {
- GridEXColumnList_InOut_CommBoard[5].Visible = false;
- GridEXColumnList_InOut_CommBoard[6].Visible = false;
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 입출력 - IO보드
- ///
- public void DataApplytoGridex_InOut_IOBoard(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_InOut_IOBoard.Selected = true;
- // UI 초기화
- this.gridEX_InOut_IOBoard.ClearItems();
- // ColumnNames_IOBoard 의 컬럼명은
- // BoardID;BoardName;UseFlag
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == RECEIVER_ID)
- {
- foreach (string IO_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).List_IO_BOARD_ID)
- {
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL != "IFC3300")
- {
- int temp = Convert.ToInt32(((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_ID);
- if (temp != 0)
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_IOBoard[0] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_ID + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_IOBoard[1] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_NAME + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_IOBoard[2] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).bUse_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut_IOBoard, false, GridexAddItem);
- }
- }
- else
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_IOBoard[0] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_ID + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_IOBoard[1] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_NAME + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_IOBoard[2] + _Text.Equal + ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Hash_IO_BOARD[IO_BOARD_ID]).bUse_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut_IOBoard, false, GridexAddItem);
- }
- }
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 입출력 - 키패드
- ///
- public void DataApplytoGridex_InOut_KeyPad(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_InOut_KeyPad.Selected = true;
- // UI 초기화
- this.gridEX_InOut_KeyPad.ClearItems();
- // ColumnNames_CommBoard 의 컬럼명은
- // BoardID;BoardName;UseFlag
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == RECEIVER_ID)
- {
- // 널값 보완 코드 ^^;
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).KEYPAD != null)
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_KeyPad[0] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).KEYPAD.BOARD_ID + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_KeyPad[1] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).KEYPAD.BOARD_NAME + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_KeyPad[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD.Use_Flag.ToString(); // cyim 2014.5.22 입출력수정을 해도 변동이 없는 상황 수정
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut_KeyPad, false, GridexAddItem);
- }
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 입출력 - 비상방송
- ///
- public void DataApplytoGridex_InOut_EmergencyBroadCast(string pRECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//pRECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_InOut_EmergencyBroadcast.Selected = true;
- // UI 초기화
- this.gridEX_InOut_EmergencyBroadcast.ClearItems();
- // ColumnNames_CommBoard 의 컬럼명은
- // BoardID;BoardName;UseFlag
- ///
- /// 컬럼 내용 추가
- ///
- // 우선 수신기의 정보를 가져온다. 해쉬테이블을 꺼내볼려면 해쉬테이블의 키를 관리하는 키리스트를 알아야 합니다
- foreach (string RECEIVER_ID in _Data.LIST_RECEIVER_ID)
- {
- if (pRECEIVER_ID == RECEIVER_ID)
- {
- // 널값 보완 코드 ^^;
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).EMERGENCY_BROADCAST != null)
- {
- string GridexAddItem =
- // BoardID
- ColumnNames_InOut_EmergencyBroadcast[0] + _Text.Equal + "-" + _Text.SemiColon +
- // BoardName
- ColumnNames_InOut_EmergencyBroadcast[1] + _Text.Equal + "비상방송" + _Text.SemiColon +
- // UseFlag
- ColumnNames_InOut_EmergencyBroadcast[2] + _Text.Equal + ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast.Use_Flag.ToString();
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_InOut_EmergencyBroadcast, false, GridexAddItem);
- }
- }
- }
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 포인트
- ///
- public void DataApplytoGridex_Point(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Point.Selected = true;
- // UI 초기화
- this.gridEX_Point.ClearItems();
- string input = _Text.Zero;
- string output = _Text.Zero;
- //ColumnNames_Point 의 컬럼명은 "입력 포인트 총개수;출력 포인트 총개수;등록일";
- // 입력 개수
- DataRowCollection DB_TABLE_DEVICE_IN = null;
- // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL == "IFC3300")
- {
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DB_TABLE_DEVICE_IN = _Db.ExecuteRead_SqlDataAdapter(_Sql.Count_TB_DEVICE_BigReceiver("1", "I", RECEIVER_ID));
- }
- else
- {
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DB_TABLE_DEVICE_IN = _Db.ExecuteRead_SqlDataAdapter(_Sql.Count_TB_DEVICE("1", "15", "I", RECEIVER_ID));
- }
- if (DB_TABLE_DEVICE_IN != null)
- {
- foreach (DataRow dr in DB_TABLE_DEVICE_IN)
- {
- input = dr[0].ToString();
- }
- }
- // 출력 개수
- DataRowCollection DB_TABLE_DEVICE_OUT = null;
- // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- if (((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).MODEL == "IFC3300")
- {
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DB_TABLE_DEVICE_OUT = _Db.ExecuteRead_SqlDataAdapter(_Sql.Count_TB_DEVICE_BigReceiver("1", "O", RECEIVER_ID));
- }
- else
- {
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DB_TABLE_DEVICE_OUT = _Db.ExecuteRead_SqlDataAdapter(_Sql.Count_TB_DEVICE("1", "15", "O", RECEIVER_ID));
- }
- if (DB_TABLE_DEVICE_OUT != null)
- {
- foreach (DataRow dr in DB_TABLE_DEVICE_OUT)
- {
- output = dr[0].ToString();
- }
- }
- // 등록일 출력
- string RegDate = "-"; // 없으면 "-"
- // TB_DEVICE 테이블의 첫 레코드를 가져와서 등록일을 얻음
- DataRowCollection DB_Search_TB_DEVICE = _Db.ExecuteRead_SqlDataAdapter(_Sql.Get_ColumnFirstValue("TB_DEVICE", "1", RECEIVER_ID));
- if (DB_Search_TB_DEVICE != null)
- {
- foreach (DataRow Record in DB_Search_TB_DEVICE)
- {
- try
- {
- // 시간정보는 버리고 등록일만 얻음
- RegDate = Convert.ToDateTime(Record[12].ToString()).ToString("yyyy-MM-dd");
- }
- catch
- {
- RegDate = DateTime.Now.ToString("yyyy-MM-dd");
- }
- // 속도 향상을 위해 한번만 실행되도록 한다
- break;
- }
- }
- string GridexAddItem =
- // 입력 포인트 총개수
- ColumnNames_Point[0] + _Text.Equal + input + _Text.SemiColon +
- // 출력 포인트 총개수
- ColumnNames_Point[1] + _Text.Equal + output + _Text.SemiColon +
- // 출력 포인트 총개수
- ColumnNames_Point[2] + _Text.Equal + RegDate;
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_Point, false, GridexAddItem);
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 포인트 - 입력
- ///
- public void DataApplytoGridex_Point_Input(string RECEIVER_ID)
- {
- ///
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Point_Input.Selected = true;
- // UI 초기화
- this.gridEX_Point_Input.BoundMode = BoundMode.Unbound;
- this.gridEX_Point_Input.ClearItems();
- // 데이타셋도 반드시 초기화가 되어야 한다
- DataSet_Point_Input.Tables[0].Rows.Clear();
- // 아직 디바이스 정보가 저장되어 있지 않다
- if (_Data.Hash_ImportPoint.ContainsKey(RECEIVER_ID) == false) return;
- //ColumnNames_Point_Input 의 컬럼명은 "No;회로번호;설비종류;위치;디바이스명칭"
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DataRowCollection DB_TABLE_DEVICE = ((_ImportPoint)_Data.Hash_ImportPoint[RECEIVER_ID]).IN_Points;
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- ArrayList SortSupport = new ArrayList();
- // DataSet 내용을 수정한다
- for (int i = 0; i < DB_TABLE_DEVICE.Count; i++)
- {
- // 레코드 정보
- DataRow dr = DB_TABLE_DEVICE[i];
- if (_Convert.Exception_Into_object(dr[3], dr[4], dr[5], dr[6], dr[7]) == true)
- {
- // 매개변수 순서 => COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString dev_s = new MskDeviceIDString(
- _Convert.Null_to_IntZero(dr[3].ToString()),
- _Convert.Null_to_IntZero(dr[4].ToString()),
- _Convert.Null_to_IntZero(dr[5].ToString()),
- _Convert.Null_to_IntZero(dr[6].ToString()),
- _Convert.Null_to_IntZero(dr[7].ToString()),
- dr[8].ToString(), RECEIVER_ID); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- _OrderByCircuitNo OrderByCircuitNo = new _OrderByCircuitNo();
- OrderByCircuitNo.CircuitNo = dev_s.MskId;
- OrderByCircuitNo.Type = dr[0].ToString();
- OrderByCircuitNo.Location = dr[1].ToString();
- OrderByCircuitNo.DeviceNickName = dr[2].ToString();
- OrderByCircuitNo.EmergencyCode = dr[10].ToString() + "-" + dr[11].ToString() + "-" + dr[12].ToString();
- OrderByCircuitNo.XML = string.Format("MI{0:00}{1:00}{2:0}{3:000}{4}",
- Int32.Parse(RECEIVER_ID),
- _Convert.Null_to_IntZero(dr[4].ToString()),
- _Convert.Null_to_IntZero(dr[5].ToString()),
- _Convert.Null_to_IntZero(dr[6].ToString()),
- _Convert.Null_to_IntZero(dr[7].ToString()));
- SortSupport.Add(OrderByCircuitNo);
- //DataSet_Point_Input.Tables[0].Rows.Add(
- // // No
- // //string.Format("{0:d5}", (i + 1)),
- // (i + 1),
- // // 회로번호
- // dev_s.MskId,
- // // 설비종류
- // dr[0].ToString(),
- // // 위치
- // dr[1].ToString(),
- // // 디바이스명칭
- // dr[2].ToString(),
- // // 비상방송
- // dr[10].ToString() + "-" + dr[11].ToString() + "-" + dr[12].ToString()
- // );
- }
- }
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- SortSupport.Sort(_Data.Sort_CircuitNo);
- for (int i = 0; i < SortSupport.Count; i++)
- {
- _OrderByCircuitNo OrderByCircuitNo = (_OrderByCircuitNo)SortSupport[i];
- DataSet_Point_Input.Tables[0].Rows.Add(
- // No
- //string.Format("{0:d5}", (i + 1)),
- (i + 1),
- // 회로번호
- OrderByCircuitNo.CircuitNo,
- // 설비종류
- OrderByCircuitNo.Type,
- // 위치
- OrderByCircuitNo.Location,
- // 디바이스명칭
- OrderByCircuitNo.DeviceNickName,
- // 비상방송
- OrderByCircuitNo.EmergencyCode,
- // XML
- OrderByCircuitNo.XML
- );
- }
- // 데이타바인딩 적용
- this.gridEX_Point_Input.BoundMode = BoundMode.Bound;
- this.gridEX_Point_Input.SetDataBinding(DataSet_Point_Input, "GetData");
- this.gridEX_Point_Input.RetrieveStructure();
- this.gridEX_Point_Input.ResumeLayout();
- //
- // UI 조정
- //
- // 정렬
- for (int i = 0; i < ColumnNames_Point_Input.Length; i++)
- {
- this.gridEX_Point_Input.RootTable.Columns[i].HeaderAlignment = TextAlignment.Center;
- this.gridEX_Point_Input.RootTable.Columns[i].LineAlignment = TextAlignment.Center;
- this.gridEX_Point_Input.RootTable.Columns[i].TextAlignment = TextAlignment.Center; // 단, 이벤트명은 제외
- }
- // 사이즈
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[0]].Width = 100; // No
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[1]].Width = 150; // 회로번호
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[2]].Width = 150; // 설비종류
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[3]].Width = 150; // 위치
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[4]].Width = 150; // 디바이스명칭
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[5]].Width = 150; // 비상방송
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[6]].Width = 150; // XML
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[0]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[1]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[2]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[3]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[4]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[5]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[ColumnNames_Point_Input[6]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Input.RootTable.Columns[0].SortComparer = _Data.Sort_StringNumbering;
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 포인트 - 출력
- ///
- public void DataApplytoGridex_Point_Output(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Point_Output.Selected = true;
- // UI 초기화
- this.gridEX_Point_Output.BoundMode = BoundMode.Unbound;
- this.gridEX_Point_Output.ClearItems();
- // 데이타셋도 반드시 초기화가 되어야 한다
- DataSet_Point_Output.Tables[0].Rows.Clear();
- // 아직 디바이스 정보가 저장되어 있지 않다
- if (_Data.Hash_ImportPoint.ContainsKey(RECEIVER_ID) == false) return;
- //ColumnNames_Point_Output 의 컬럼명은 "No;회로번호;설비종류;위치;디바이스명칭"
- // 매개변수 순서 => COMM_ID, INOUT_TYPE, BOARD_ID, LOOP_NO, REPEATER_ID, POSITION_CODE, DEVICE_TYPE_NAME, DEVICE_NAME
- DataRowCollection DB_TABLE_DEVICE = ((_ImportPoint)_Data.Hash_ImportPoint[RECEIVER_ID]).OUT_Points;
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- ArrayList SortSupport = new ArrayList();
- // DataSet 내용을 수정한다
- for (int i = 0; i < DB_TABLE_DEVICE.Count; i++)
- {
- // 레코드 정보
- DataRow dr = DB_TABLE_DEVICE[i];
- if (_Convert.Exception_Into_object(dr[3], dr[4], dr[5], dr[6], dr[7]) == true)
- {
- // 매개변수 순서 => COMM_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE
- MskDeviceIDString dev_s = new MskDeviceIDString(
- _Convert.Null_to_IntZero(dr[3].ToString()),
- _Convert.Null_to_IntZero(dr[4].ToString()),
- _Convert.Null_to_IntZero(dr[5].ToString()),
- _Convert.Null_to_IntZero(dr[6].ToString()),
- _Convert.Null_to_IntZero(dr[7].ToString()),
- dr[8].ToString(), RECEIVER_ID); // cyim 2016.12.05 : 수신기 모델별 내부 로직 변경
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- _OrderByCircuitNo OrderByCircuitNo = new _OrderByCircuitNo();
- OrderByCircuitNo.CircuitNo = dev_s.MskId;
- OrderByCircuitNo.Type = dr[0].ToString();
- OrderByCircuitNo.Location = dr[1].ToString();
- OrderByCircuitNo.DeviceNickName = dr[2].ToString();
- //_OrderByCircuitNo.EmergencyCode = dr[10].ToString() + "-" + dr[11].ToString() + "-" + dr[12].ToString();
- SortSupport.Add(OrderByCircuitNo);
- //DataSet_Point_Output.Tables[0].Rows.Add(
- // // No
- // //string.Format("{0:d5}", (i + 1)),
- // (i + 1),
- // // 회로번호
- // dev_s.MskId,
- // // 설비종류
- // dr[0].ToString(),
- // // 위치
- // dr[1].ToString(),
- // // 디바이스명칭
- // dr[2].ToString());
- }
- }
- // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- SortSupport.Sort(_Data.Sort_CircuitNo);
- for (int i = 0; i < SortSupport.Count; i++)
- {
- _OrderByCircuitNo OrderByCircuitNo = (_OrderByCircuitNo)SortSupport[i];
- DataSet_Point_Output.Tables[0].Rows.Add(
- // No
- //string.Format("{0:d5}", (i + 1)),
- (i + 1),
- // 회로번호
- OrderByCircuitNo.CircuitNo,
- // 설비종류
- OrderByCircuitNo.Type,
- // 위치
- OrderByCircuitNo.Location,
- // 디바이스명칭
- OrderByCircuitNo.DeviceNickName
- // 비상방송
- //_OrderByCircuitNo.EmergencyCode
- );
- }
- // 데이타바인딩 적용
- this.gridEX_Point_Output.BoundMode = BoundMode.Bound;
- this.gridEX_Point_Output.SetDataBinding(DataSet_Point_Output, "GetData");
- this.gridEX_Point_Output.RetrieveStructure();
- this.gridEX_Point_Output.ResumeLayout();
- //
- // UI 조정
- //
- // 정렬
- for (int i = 0; i < ColumnNames_Point_Output.Length; i++)
- {
- this.gridEX_Point_Output.RootTable.Columns[i].HeaderAlignment = TextAlignment.Center;
- this.gridEX_Point_Output.RootTable.Columns[i].LineAlignment = TextAlignment.Center;
- this.gridEX_Point_Output.RootTable.Columns[i].TextAlignment = TextAlignment.Center; // 단, 이벤트명은 제외
- }
- // 사이즈
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[0]].Width = 100; // No
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[1]].Width = 150; // 회로번호
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[2]].Width = 150; // 설비종류
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[3]].Width = 150; // 위치
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[4]].Width = 150; // 디바이스명칭
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[0]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[1]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[2]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[3]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Output.RootTable.Columns[ColumnNames_Point_Output[4]].SortIndicator = SortIndicator.None;
- this.gridEX_Point_Output.RootTable.Columns[0].SortComparer = _Data.Sort_StringNumbering;
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 연동
- ///
- public void DataApplytoGridex_Oper(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Oper.Selected = true;
- // UI 초기화
- this.gridEX_Oper.ClearItems();
- // 갯수
- int Group = 0;
- int Map = 0;
- // 등록일 출력
- string RegDate_Group = "-"; // 없으면 "-"
- string RegDate_Map = "-"; // 없으면 "-"
- //ColumnNames_Oper 의 컬럼명은 "그룹 총개수;연동 총개수;그룹 최종등록일;연동 최종등록일";
- // 그룹 개수 및 최종등록일 가져오기
- DataRowCollection DB_TABLE_GROUP = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_GROUP", "UPDATE_TIME", RECEIVER_ID));
- if (DB_TABLE_GROUP != null)
- {
- // 그룹 총개수
- Group = DB_TABLE_GROUP.Count;
- foreach (DataRow dr in DB_TABLE_GROUP)
- {
- if (dr[4] != null && dr[4].ToString().Length != 0)
- {
- if (RegDate_Group == "-")
- RegDate_Group = Convert.ToDateTime(dr[4].ToString()).ToString("yyyy-MM-dd");
- else
- {
- if (Convert.ToDateTime(RegDate_Group) < Convert.ToDateTime(dr[4].ToString()))
- RegDate_Group = Convert.ToDateTime(dr[4].ToString()).ToString("yyyy-MM-dd");
- }
- }
- }
- }
- // 연동 개수 및 최종등록일 가져오기
- DataRowCollection DB_TABLE_MAP = _Db.ExecuteRead_SqlDataAdapter(_Sql.SearchAll_Table_Value("TB_MAP", "UPDATE_TIME", RECEIVER_ID));
- if (DB_TABLE_MAP != null)
- {
- // 연동 총개수
- Map = DB_TABLE_MAP.Count;
- foreach (DataRow dr in DB_TABLE_MAP)
- {
- if (dr[6] != null && dr[6].ToString().Length != 0)
- {
- if (RegDate_Map == "-")
- RegDate_Map = Convert.ToDateTime(dr[6].ToString()).ToString("yyyy-MM-dd");
- else
- {
- if (Convert.ToDateTime(RegDate_Map) < Convert.ToDateTime(dr[6].ToString()))
- RegDate_Map = Convert.ToDateTime(dr[6].ToString()).ToString("yyyy-MM-dd");
- }
- }
- }
- }
- string GridexAddItem =
- // 입력 포인트 총개수
- ColumnNames_Oper[0] + _Text.Equal + Group + _Text.SemiColon +
- // 출력 포인트 총개수
- ColumnNames_Oper[1] + _Text.Equal + Map + _Text.SemiColon +
- // 출력 포인트 총개수
- ColumnNames_Oper[2] + _Text.Equal + RegDate_Group + _Text.SemiColon +
- // 출력 포인트 총개수
- ColumnNames_Oper[3] + _Text.Equal + RegDate_Map;
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_Oper, false, GridexAddItem);
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 연동 - 그룹
- ///
- public void DataApplytoGridex_Oper_Group(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택 (그룹 및 연동설정은 동일한 페이지를 사용한다)
- this.uiTabPage_Oper_Set.Selected = true;
- // 동일한 페이지 이므로 탭을 구분한다
- _Event.WorkViewPageName_Oper_SendMessage_Write(RECEIVER_ID, Object_Type.OPER_GROUP);
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 연동 - 연동설정
- ///
- public void DataApplytoGridex_Oper_Set(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택 (그룹 및 연동설정은 동일한 페이지를 사용한다)
- this.uiTabPage_Oper_Set.Selected = true;
- // 동일한 페이지 이므로 탭을 구분한다
- _Event.WorkViewPageName_Oper_SendMessage_Write(RECEIVER_ID, Object_Type.OPER_SET);
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 그래픽
- ///
- public void DataApplytoGridex_Image(string RECEIVER_ID)
- {
- //
- // 데이타베이스 접근 경로 지정부
- //
- _Data.DataBaseFilePath_Set(null);//RECEIVER_ID);
- // 페이지 선택
- this.uiTabPage_Image.Selected = true;
- // UI 초기화
- this.gridEX_Image.ClearItems();
- //
- // 수신기 - 그래픽 컬럼 헤더 정의
- //
- ArrayList NewColumnHeader = new ArrayList();
- // 페이지당 현재 설정된 이름을 전부 가져온다
- foreach (string PAGE_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).LIST_PAGE_ID)
- {
- if (((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).Receiver_ID == RECEIVER_ID)
- {
- foreach (string ICON_ID in ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).LIST_ICON_ID)
- {
- // 현재 설정된 아이콘의 이름을 모두 가져온다
- string TempDeviceIconName = ((_PictureBoxItem)((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).HASH_ICON[ICON_ID]).Device_Icon_NAME;
- // 중복 배제 및 공백 제거 (널값 허용안함)
- if (NewColumnHeader.Contains(TempDeviceIconName) == false && TempDeviceIconName != null && TempDeviceIconName.Length != 0)
- {
- NewColumnHeader.Add(TempDeviceIconName);
- }
- }
- }
- }
- // 디바이스 이름이 없다
- if (NewColumnHeader.Count != 0)
- {
- // 컬럼헤더 초기화
- this.gridEX_Image.RootTable.Columns.Clear();
- // 컬럼헤더 문자열
- string temp_ColumnNames = _Text.UI_WORKFRAME_IMAGE_COLUMNNAME;
- // 새로운 컬럼헤더 추가
- foreach (string ColumnHeader in NewColumnHeader)
- temp_ColumnNames = temp_ColumnNames + _Text.SemiColon + ColumnHeader;
- // 컬럼헤더 문구 재정의
- ColumnNames_Image = _Convert.String_to_ArrayString(temp_ColumnNames);
- // 컬럼헤더를 다시 생성
- DeviceListInfo_GridEx_Initialize(Object_Type.IMAGE, ColumnNames_Image, gridEX_Image);
- }
- // 데이타 추가
- foreach (string PAGE_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).LIST_PAGE_ID)
- {
- if (((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).Receiver_ID == RECEIVER_ID)
- {
- int Button_Icon_Count = 0;
- int Device_Icon_Count = 0;
- // 버튼 아이콘 및 디바이스 아이콘 총개수 구하기
- foreach (string ICON_ID in ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).LIST_ICON_ID)
- {
- if (((_PictureBoxItem)((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).HASH_ICON[ICON_ID]).ItemType == Item_Type.Button)
- Button_Icon_Count++;
- else if (((_PictureBoxItem)((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).HASH_ICON[ICON_ID]).ItemType == Item_Type.Device)
- Device_Icon_Count++;
- }
- // 새로운 추가 컬럼에 따라 달리 동작함
- string GridexAddItem = null;
- GridexAddItem =
- // Page Name
- ColumnNames_Image[0] + _Text.Equal + ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).NodeText + _Text.SemiColon +
- // Button
- ColumnNames_Image[1] + _Text.Equal + Button_Icon_Count + _Text.SemiColon +
- // Device
- ColumnNames_Image[2] + _Text.Equal + Device_Icon_Count;
- // 만약 새로운 추가 컬럼이 하나 이상 존재한다면
- if (NewColumnHeader.Count != 0)
- {
- // 추가 컬럼을 상위 기본 정보외에 더 추가한다
- for (int i = 3; i < NewColumnHeader.Count + 3; i++)
- {
- GridexAddItem = GridexAddItem + _Text.SemiColon +
- ColumnNames_Image[i] + _Text.Equal + Get_Count_By_Device_Icon_Name(RECEIVER_ID, PAGE_ID, ColumnNames_Image[i]);
- }
- // 아래 컬럼은 모두 고정함
- // "페이지 이름":
- // "버튼 총개수":
- // "디바이스 총개수":
- this.gridEX_Image.FrozenColumns = 3;
- }
- // 컬럼헤더가 지나치게 글자가 긴 경우에는 사이즈 변경
- foreach (GridEXColumn Column in GridEXColumnList_Image)
- {
- switch (Column.Key)
- {
- case "자동폐쇄장치 기동 확인":
- Column.Width = 150; // 기본 100 -> 150
- break;
- case "전실댐퍼 기동 확인":
- case "전실댐퍼 수동 확인":
- Column.Width = 130; // 기본 100 -> 130
- break;
- case "전실급기휀 기동":
- Column.Width = 150; // 기본 100 -> 150
- break;
- case "페이지 이름":
- Column.Width = ColumnNames_Image_PageName;
- break;
- case "버튼 총개수":
- Column.Width = ColumnNames_Image_ButtonIconCount;
- break;
- case "디바이스 총개수":
- Column.Width = ColumnNames_Image_DeviceIconCount;
- break;
- default:
- Column.Width = 80;
- break;
- }
- }
- // 생성된 컬럼명에 맞게 데이타를 추가한다
- _Gridex.Column_Data_Add(this.gridEX_Image, false, GridexAddItem);
- }
- }
- }
- // 해당 이름에 대한 디바이스 총개수
- private int Get_Count_By_Device_Icon_Name(string RECEIVER_ID, string Page_ID, string Data)
- {
- int result = 0;
- foreach (string ICON_ID in ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[Page_ID]).LIST_ICON_ID)
- {
- if (((_PictureBoxItem)((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[Page_ID]).HASH_ICON[ICON_ID]).Device_Icon_NAME == Data)
- result++;
- }
- return result;
- }
- ///
- /// GridEx 데이타 적용 - 수신기 - 그래픽 - 페이지
- ///
- public void DataApplytoGridex_Image_Page(string RECEIVER_ID, string PageNodeKey, string PageNodeText)
- {
- // 페이지 선택
- this.uiTabPage_Image_Page.Selected = true;
- ///
- /// 오브젝트 트리 초기화
- ///
- // 트리 초기화
- this.treeView_ObjectTree.Nodes.Clear();
- // 오브젝트 트리 - 프로젝트 노드 추가
- _Tree.NodeAdd_Root(this.treeView_ObjectTree, _Text.UI_TREE_ROOT_KEY, PageNodeText, Object_Type.PAGE);
- // 오브젝트 트리 - 버튼 아이콘 노드 추가 : 버튼 아이콘 메인
- _Tree.NodeAdd_Root_Node(this.treeView_ObjectTree, 0, _Text.UI_TREE_BUTTON_ICON, _Text.UI_TREE_BUTTON_ICON, Object_Type.BUTTON_ICON);
- // 오브젝트 트리 - 디바이스 아이콘 노드 추가 : 디바이스 아이콘 메인
- _Tree.NodeAdd_Root_Node(this.treeView_ObjectTree, 0, _Text.UI_TREE_DEVICE_ICON, _Text.UI_TREE_DEVICE_ICON, Object_Type.DEVICE_ICON);
- ///
- /// 배경 픽쳐박스 초기화
- ///
- this.panel_Page_Sub_BackGround.Controls.Clear();
- this.pictureBox_Background = new PictureBox();
- this.pictureBox_Background.MaximumSize = new System.Drawing.Size(1080, 720);
- this.pictureBox_Background.MinimumSize = new System.Drawing.Size(1080, 720);
- this.pictureBox_Background.Name = "pictureBox_Background";
- this.pictureBox_Background.Size = new System.Drawing.Size(1080, 720);
- this.panel_Page_Sub_BackGround.Controls.Add(this.pictureBox_Background);
- // 아이콘의 총 개수 및 적용 개수를 파악하기 위한 변수
- int ButtonIcon_AllCnt = 0;
- int ButtonIcon_ApplyCnt = 0;
- int DeviceIcon_AllCnt = 0;
- int DeviceIcon_ApplyCnt = 0;
- // 페이지 검색
- foreach (string PAGE_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).LIST_PAGE_ID)
- {
- // 페이지명이 구분자이다. _Page 클래스의 아이디는 오로지 XML 생성시에 사용될 뿐이다
- if (PageNodeKey == PAGE_ID)
- {
- // 배경그림을 저장하기 위해서 임시 맵디자이너 클래스 생성
- Form_MapDesigner Temp_MapDesigner = new Form_MapDesigner(RECEIVER_ID, null, null);
- // 임시 리스트 및 해쉬 테이블을 만듬 -> 차후 TEMP_LIST_ICON_ID,TEMP_HASH_ICON 생성에서 사용함
- ArrayList temp_list_icon_id = new ArrayList();
- Hashtable temp_hash_icon = new Hashtable();
- // 저장 정보를 토대로 리스트 및 해쉬 생성 - 불러오기
- Temp_MapDesigner.Copy_HASH_LIST(
- ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).LIST_ICON_ID,
- ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).HASH_ICON,
- temp_list_icon_id,
- temp_hash_icon);
- //
- // 배경그림
- //
- // 그림을 전체 모드로 교체 (픽쳐박스의 크기에 따라 이미지 사이즈가 자동조절)
- this.pictureBox_Background.SizeMode = PictureBoxSizeMode.StretchImage;
- // 파일경로 + 파일명
- this.pictureBox_Background.BackgroundImage = Image.FromFile(((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).PictureBoxItem_BackGround.FullPath_FileName);
- //
- // 아이콘
- //
- // 배경에다가 그리자
- Graphics gra = Graphics.FromImage(this.pictureBox_Background.BackgroundImage);
- // 아이콘 리스트를 기준으로 픽쳐박스 생성
- foreach (string ICON_ID in temp_list_icon_id)
- {
- temp_hash_icon = ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).HASH_ICON;
- //// 아이템 화면 배치
- //_PictureBoxItem PictureBoxItem = Temp_MapDesigner.UI_Create_PictureBoxItem(
- // this.pictureBox_Background,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).ItemType,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).FullPath_FileName,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).FileName,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Name,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Location.X,
- // ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Location.Y);
- ///
- /// 픽쳐박스 대신 Graphic 객체로 해결
- ///
- // 그릴 이미지를 가져오기
- Image Icon = ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Image;
- // 포인트 정보를 가져오기
- Point point = new Point(((_PictureBoxItem)temp_hash_icon[ICON_ID]).Location.X, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Location.Y);
- // 배경에다가 그리자 (해상도 72 이든 96이든)
- gra.DrawImage(Icon, point.X, point.Y, Icon.Width, Icon.Height);
- ///
- /// 오브젝트 트리
- ///
- // 버튼 아이콘의 경우 처리
- if (((_PictureBoxItem)temp_hash_icon[ICON_ID]).ItemType == Item_Type.Button)
- {
- // 트리 추가
- _Tree.NodeAdd_Root_Node_Node(this.treeView_ObjectTree, 0, 0, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Name, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).NodeText(), Object_Type.BUTTON_DETAIL);
- // 오브젝트 트리 색상 반영 (버튼)
- _Tree.ChangeColor_By_Data(this.treeView_ObjectTree, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Name, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Button_JumpPageName);
- // 개수 파악
- ButtonIcon_AllCnt++;
- if (((_PictureBoxItem)temp_hash_icon[ICON_ID]).Button_JumpPageName != "0") ButtonIcon_ApplyCnt++;
- }
- // 디바이스 아이콘의 경우 처리
- else if (((_PictureBoxItem)temp_hash_icon[ICON_ID]).ItemType == Item_Type.Device)
- {
- // 트리 추가
- _Tree.NodeAdd_Root_Node_Node(this.treeView_ObjectTree, 0, 1, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Name, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).NodeText(), Object_Type.DEVICE_DETAIL);
- // 오브젝트 트리 색상 반영 (디바이스)
- _Tree.ChangeColor_By_Data(this.treeView_ObjectTree, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Name, ((_PictureBoxItem)temp_hash_icon[ICON_ID]).Device_Oper_ID);
- // 개수 파악
- DeviceIcon_AllCnt++;
- if (((_PictureBoxItem)temp_hash_icon[ICON_ID]).Button_JumpPageName != "0") DeviceIcon_ApplyCnt++;
- }
- }
- // 오브젝트 트리 모두 확대
- this.treeView_ObjectTree.ExpandAll();
- // 오브젝트 트리 정렬
- this.treeView_ObjectTree.Sort();
- //
- // 오브젝트 트리 부모 노드에 총개수 와 연동 개수를 표시한다
- //
- _Tree.SetNodeText_By_Name(this.treeView_ObjectTree, _Text.UI_TREE_BUTTON_ICON,
- string.Format("{0} [총합:{1} 적용:{2}]", _Text.UI_TREE_BUTTON_ICON, ButtonIcon_AllCnt, ButtonIcon_ApplyCnt));
- _Tree.SetNodeText_By_Name(this.treeView_ObjectTree, _Text.UI_TREE_DEVICE_ICON,
- string.Format("{0} [총합:{1} 적용:{2}]", _Text.UI_TREE_DEVICE_ICON, DeviceIcon_AllCnt, DeviceIcon_ApplyCnt));
- // 종료
- break;
- }
- }
- }
- }
- }
|