123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246 |
- using System;
- using System.Collections.Generic;
- using System.Collections;
- using System.Linq;
- using System.Text;
- using System.Windows.Forms;
- using Janus.Windows.EditControls;
- using System.Drawing;
- using System.Data.SqlClient;
- using System.IO;
- using System.Data;
- using System.Media;
- using System.Timers;
- namespace IControls_FireManager
- {
- // 전역 변수 및 함수는 여기 클래스에서 전담한다
- public static class _Data
- {
- // Program
- public static string Program_Version;
- // Project
- public static string Project_Name;
- public static string Project_Path;
- public static string Project_ExcelOpenCheck; // 1 : 체크함, 0 : 체크안함
- public static string Project_MapGroupIDTypeNumber; // cyim 2016.04.01 : 6자리 혹은 4자리로 맵아이디와 그룹아이디 지정할수 있도록함
- // Korea
- public static string Language;
- // Database
- public static string DB_IP;
- public static string DB_ID;
- public static string DB_PassWord;
- public static string DB_FullPath;
- // STYLE
- public static Janus.Windows.UI.Dock.PanelVisualStyle Style_PanelVisualStyle;
- public static Janus.Windows.UI.VisualStyle Style_VisualStyle;
- public static Janus.Windows.Ribbon.Office2007ColorScheme Style_Office2007ColorScheme;
- // 데이타베이스 접속상태
- public static bool DB_Connection_Open_Ok = false;
- public static bool DB_Connection_FailLogOnce = false;
- // HashTable
- // 수신기 정보 해쉬테이블
- public static Hashtable HASH_RECEIVER = new Hashtable();
- // 수신기 정보 해쉬테이블 키 리스트
- public static ArrayList LIST_RECEIVER_ID = new ArrayList();
- // 맵디자이너중 리스트뷰의 아이템 패널(기기타입)에 아이콘을 추가하기 위해서 사용되는 해쉬테이블
- public static Hashtable HASH_XMLDEVTYPE = new Hashtable();
- // 맵디자이너중 리스트뷰의 아이템 패널(기기타입)에 아이콘을 추가하기 위해서 사용되는 해쉬테이블 키 리스트
- public static ArrayList LIST_XMLDEVTYPE_ID = new ArrayList();
- // _Receiver.xml 제거 : cyim 2012.8.29 -> 복구 2013.5.27
- //// Read Receiver Xml 전용 해쉬테이블
- //public static Hashtable HASH_XMLRECEIVER = new Hashtable();
- //// Read Receiver Xml 전용 해쉬테이블 키 리스트
- public static ArrayList LIST_XMLRECEIVER_ID = new ArrayList();
- // 엑셀에서 포인트 정보를 읽은 결과를 저장하는 리스트
- public static ArrayList List_ExcelPoint = new ArrayList();
- // 엑셀에서 연동 그룹 정보를 읽은 결과를 저장하는 리스트
- public static ArrayList List_ExcelGroup = new ArrayList();
- // 엑셀에서 연동 맵 정보를 읽은 결과를 저장하는 리스트
- public static ArrayList List_ExcelMap = new ArrayList();
- // 엑셀에서 읽은 정보를 토대로 재생성되는 위치 정보, 디바이스 타입, IO 보드, 이벤트 타입 클래스
- public static Hashtable HASH_CodePosition = new Hashtable();
- public static ArrayList LIST_CodePosition_NAME = new ArrayList();
- public static ArrayList LIST_CodeDeviceType = new ArrayList();
- public static ArrayList LIST_CodeIOBoard = new ArrayList();
- public static ArrayList LIST_CodeEventType = new ArrayList();
- public static ArrayList LIST_CodeAnalogLevel_Smoke = new ArrayList(); // cyim 2016.07.27 : 아날로그 감지기 레벨 감지기 타입별 설정 기능
- public static ArrayList LIST_CodeAnalogLevel_Heat = new ArrayList();
- public static ArrayList LIST_CodeFireDayTime = new ArrayList();
- // XML 데이타를 저장하였는지 최종 확인 (저장직전 해당 수신기 아이디가 리스트 형태로 저장됨)
- public static ArrayList LIST_XmlDBNotSave_Receiver = new ArrayList();
- // 프로젝트 저장하였는지 최종 확인
- public static bool ProJect_Save_Complete = true;
- // 진행바 팝업창 마지막 문구
- public static string Result_Text = _Text.CompleteInform;
- // 메뉴를 클릭하여 활성화된 폼
- public static Form MenuActivedForm = null;
- // 특별히 엑티브 레포트 뷰어는 메뉴 혹은 다른 형태로 생성될 가능성이 많으므로 여러개를 띄우지 않도록 처리
- public static bool ActiveReportViewer_Enable = false;
- // 디바이스 입출력 포인트 출력용 해쉬테이블 (입력 및 출력 포인트 모두 저장 : 키는 수신기 아이디)
- public static Hashtable Hash_ImportPoint = new Hashtable();
- // 1회성 데이타 (이전 데이타 저장용)
- public static string Temp_DeviceName = null;
- public static string Temp_Position = null;
- public static string Temp_GroupName = null;
- // 엑셀 연동과 같이 속도가 오래걸리는 경우 버튼을 2번눌러서 문제가 발생할수가 있다.
- public static bool Enable_Button = true;
- // 화면 캡쳐 진행중
- public static bool Enable_Capture = false; // true : 캡쳐진행중
- // 수신기 ID
- public static int INIT_RECEIVER_ID = 1;
- // 정렬 인터페이스
- public static _Sort.StringNumbering Sort_StringNumbering = new _Sort.StringNumbering();
- public static _Sort.CircuitStringNumbering Sort_CircuitNo = new _Sort.CircuitStringNumbering(); // cyim 2016.04.01 : 입력 및 출력회로 정렬 기능
- // cyim 2016.12.05 : 만약 프로젝트를 열다가 중간에 예외 처리 및 강제 저장 옵션이 발동되었다면 경고 폼 출력
- public static bool Receiver_Model_TempSetting = false; // 강제로 임시 모델 셋팅을 했다고 알려주는 체크 변수
- // cyim 2016.12.15 : 모바일앱용 사용자 관리
- // 시스템사용자 정보 해쉬테이블
- public static Hashtable HASH_USER = new Hashtable();
- // 시스템사용자 정보 해쉬테이블 키 리스트
- public static ArrayList LIST_USER_KEY = new ArrayList();
- // 수신기 ID 생성
- public static int CREATE_RECEIVER_ID()
- {
- // 리스트에서 조회해서 없는 값으로 대체
- // if (LIST_RECEIVER_ID.Contains(RECEIVER_ID.ToString()) == false)
- // {
- // RECEIVER_ID++;
- // }
- // else
- // {
- while (LIST_RECEIVER_ID.Contains(INIT_RECEIVER_ID.ToString()) == true)
- {
- INIT_RECEIVER_ID++;
- }
- // }
- return INIT_RECEIVER_ID;
- }
- // 페이지 ID 생성
- public static string CREATE_PAGE_ID(string RECEIVER_ID, string Page_Name)
- {
- return RECEIVER_ID + _Text.Minus + Page_Name;
- }
- // 해당 수신기아이디에 페이지 이름이 있는지 없는지 조회 (NodeText)
- public static bool Check_Receiver_In_PageName(string RECEIVER_ID, string Page_Name)
- {
- 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
- && ((_Page)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).HASH_PAGE[PAGE_ID]).NodeText == Page_Name
- )
- return true;
- }
- return false;
- }
- // Device 사용
- // GridEX_GroupList의 레코드를 선택했을 때, Group_ID를 저장
- public static string Group_ID = null;
- // GridEX_MapList의 레코드를 선택했을 때, Map_ID를 저장
- public static string Map_No = null;
- // 데이타베이스 경로 재지정 (null 이면 temp 폴더에 DB 이며, 수신기 아이디가 있다면 해당 DB 이다)
- public static void DataBaseFilePath_Set(string RECEIVER_ID)
- {
- if (RECEIVER_ID != null)
- {
- // 수신기 폴더명
- string ReiceiverFolderName = _Text.DEFAULT_FOLDER_RECEIVER_PREFIX + RECEIVER_ID;
- _Data.DB_FullPath = _Data.Project_Path + "\\" + _Data.Project_Name + "\\" + ReiceiverFolderName + "\\" + _Text.DEFAULT_FOLDER_DB + "\\" + _Text.DEFAULT_DB_FILENAME;
- }
- else
- {
- _Data.DB_FullPath = _Data.Project_Path + "\\" + _Data.Project_Name + "\\" + _Text.DEFALUT_FOLDER_TEMP + "\\" + _Text.DEFAULT_DB_FILENAME;
- }
- }
- // 데이타베이스 경로 얻기 (null 이면 temp 폴더에 DB 이며, 수신기 아이디가 있다면 해당 DB 이다)
- public static string DataBaseFilePath_Get(string RECEIVER_ID)
- {
- if (RECEIVER_ID != null)
- {
- // 수신기 폴더명
- string ReiceiverFolderName = _Text.DEFAULT_FOLDER_RECEIVER_PREFIX + RECEIVER_ID;
- return _Data.Project_Path + "\\" + _Data.Project_Name + "\\" + ReiceiverFolderName + "\\" + _Text.DEFAULT_FOLDER_DB + "\\" + _Text.DEFAULT_DB_FILENAME;
- }
- else
- {
- return _Data.DB_FullPath = _Data.Project_Path + "\\" + _Data.Project_Name + "\\" + _Text.DEFALUT_FOLDER_TEMP + "\\" + _Text.DEFAULT_DB_FILENAME;
- }
- }
- // 점프필드에는 널값이 들어가면 수신기UI 가 에러처리됨 - 2013.6.18
- // 또한 디바이스 아이콘의 정보가 널값이라면 디바이스 조회창 색상을 바꾼다
- public static string Get_Verify_ID(string ID)
- {
- if (ID == null || ID.Trim().Length == 0 || ID == _Text.None)
- return "0";
- return ID;
- }
- // TB_EVENT_TYPE 내용이 없다면 에러처리됨 - 2013.8.12
- public static bool Check_Verify_EVENT_TYPE()
- {
- DataRowCollection DB_TABLE_EVENT_TYPE = _Db.ExecuteRead_SqlDataAdapter(_Sql.Get_TableRecordCount("TB_EVENT_TYPE"));
- if (DB_TABLE_EVENT_TYPE != null)
- {
- foreach (DataRow Record in DB_TABLE_EVENT_TYPE)
- if (Int32.Parse(Record[0].ToString()) > 0)
- return true;
- }
- return false;
- }
- // 소방설정프로그램에서는 LOOP 대신 채널 및 계통이라는 용어를 사용한다
- // LOOP 0 -> CH1 , LOOP 1 -> CH2
- public static string UI_CH_TO_LOOP(string Data)
- {
- string TempCh = null;
- if (Data == "CH1") TempCh = "0";
- else if (Data == "CH2") TempCh = "1";
- else if (Data == "CH3") TempCh = "2";
- else if (Data == "CH4") TempCh = "3";
- else TempCh = "";
- return TempCh;
- }
- }
- }
|