using System; using System.Collections; using System.Linq; using System.Text; using System.Windows.Forms; using Janus.Windows.UI; using Microsoft.VisualBasic.PowerPacks; using System.Collections.Generic; using System.Data; using System.Drawing; namespace IControls_FireManager { // 사용자가 지정한 클래스는 모두 여기에서 정의 (static 클래스와 일반 클래스가 혼용되어 있으므로 사용에 주의 요망) // 참고로 데이타베이스와 동일한 클래스는 모두 대문자로 통일함 /// /// UI 에 관련된 공용으로 사용하는 Static 클래스 /// // 윈도우 프레임 안에 패널을 재정의 (Close 이벤트는 없이 Hide 로 처리함, 나머지는 프로퍼티) public class _UIPanel : Janus.Windows.UI.Dock.UIPanel { public override bool Closed { get { return base.Closed; } set { // base.Closed = value; base.Hide(); } } } /// /// 트리 노드 /// public class _NODE { public int T_DEPTH; public int T_INDEX; public string T_PARENT; } /// /// 수신기 /// public class _RECEIVER { // 수신기 ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 수신기 정보 /// private int _Accumulation_Second; public bool ENABLE; // 사용여부 public string KEY_NAME; // 이름 public string NAME; // 표시명 public bool REDUNDANT_FLAG = false; // 통신 포트 이중화 여부 (현재 사용할 수 없음. 항상 false로 설정) public string TYPE; // 타입(미사용) public string IP; // IP public string USERID = "icontrols"; public string USER_PASSWORD = ""; public int EVENT_PORT = 9001; // 이벤트 포트 (디폴트 : 9001) public int COMMAND_PORT = 9002; // 명령 포트 (디폴트 : 9002) public string sUseFlag { get { string sRet = "N"; if (ENABLE == true) { sRet = "Y"; } return sRet; } set { if (value.Substring(0, 1).ToUpper() == "Y") { ENABLE = true; } else ENABLE = false; } } public bool FIRE_ACCUMULATION_MODE; // 축적 모드 (true:축적, false:비축적) public int FIRE_ACCUMULATION_SECOND // 축적 시간 (0, 30, 40, 50, 60) { get { return (_Accumulation_Second); } set { if (value == 0) { FIRE_ACCUMULATION_MODE = false; _Accumulation_Second = 0; } if ((value == 30) || (value == 40) || (value == 50) || (value == 60)) { FIRE_ACCUMULATION_MODE = true; _Accumulation_Second = value; } } } // cyim 2016.12.02 : 수신기 모델 설정 기능 추가 public string MODEL; public bool RECOVER_MODE; // 복구 모드 (true: 자동복구, false: 지속모드) public bool JUMP_TO_VIEW; // 화재시 화면을 전환할지 여부를 설정함. (true : 전환, false : 전환 안함) public bool MASTER_FLAG; // 네트워크 수신기 설정 기능 추가 (true : 마스터, false : 슬레이브) public int COM_BOARD_MAX_NUM; // 통신보드 최대개수 public int IO_BOARD_MAX_NUM; // IO보드 최대개수 /// /// 하위 노드 /// /// 입출력 /// // 통신 보드 public _SERIAL_PORT Port4CommBoard = new _SERIAL_PORT(); public Hashtable Hash_COM_BOARD = new Hashtable(); // _COM_BOARD 클래스 집합 public ArrayList List_COM_BOARD_ID = new ArrayList(); // IO 보드 public _SERIAL_PORT Port4IOBoard = new _SERIAL_PORT(); public Hashtable Hash_IO_BOARD = new Hashtable(); // _IO_BOARD 클래스 집합 public ArrayList List_IO_BOARD_ID = new ArrayList(); // 키패드 public _SERIAL_PORT Port4KeyPAD = new _SERIAL_PORT(); public _KEYPAD KEYPAD; // 비상방송 public _SERIAL_PORT Port4EmergencyBroadcast = new _SERIAL_PORT(); public _EMERGENCY_BROADCAST EMERGENCY_BROADCAST; ///// 포인트 /// //// 입력 //public Hashtable Hash_POINT_INPUT = new Hashtable(); // _POINT_INPUT 클래스 집합 //public ArrayList List_POINT_INPUT_ID = new ArrayList(); //// 출력 //public Hashtable Hash_POINT_OUTPUT = new Hashtable(); // _POINT_OUTPUT 클래스 집합 //public ArrayList List_POINT_OUTPUT_ID = new ArrayList(); ///// 연동 /// //// 그룹 //public Hashtable Hash_OPER_GROUP = new Hashtable();// _OPER_GROUP 클래스 집합 //public ArrayList List_OPER_GROUP_ID = new ArrayList(); //// 설정 //public Hashtable Hash_OPER_SET = new Hashtable(); // _OPER_SET 클래스 집합// //public ArrayList List_OPER_SET_ID = new ArrayList(); /// 그래픽 /// // 맵디자이너중 추가된 페이지를 관리하기 위해서 사용되는 해쉬테이블 (안에 각각 아이콘 해쉬테이블과 리스트가 존재한다) public Hashtable HASH_PAGE = new Hashtable(); // 맵디자이너중 추가된 페이지를 관리하기 위해서 사용되는 해쉬테이블 키 리스트 public ArrayList LIST_PAGE_ID = new ArrayList(); // 서브 키 설정 (키를 달리 생성시키려면 여기서 수정함) public string Set_SubKey(_RECEIVER RECEIVER, string PORT_NUM) { return RECEIVER.ID + _Text.Minus + PORT_NUM; } } public class _SERIAL_PORT { public int COMM_ID; private int _COM_PortNum; private int _COM_BaudRate; private COMM_PARITY _COM_Parity; private int _COM_DataBits; private COMM_STOPBIT _COM_Stopbit; public int TimeOut; public int Delay; public int Delta_Volt; public int Retry_Count; public Boolean Use_Flag; public int PortNo { get { return (this._COM_PortNum); } set { this._COM_PortNum = value; } } public int BaudRate { get { return (this._COM_BaudRate); } set { // 체크 if ((value == 2400) || (value == 4800) || (value == 9600) || (value == 19200) || (value == 38400) || (value == 57600) || (value == 115200)) { this._COM_BaudRate = value; } } } public COMM_PARITY Parity { get { return (this._COM_Parity); } set { switch (value) { case COMM_PARITY.NONE: case COMM_PARITY.EVEN: case COMM_PARITY.ODD: _COM_Parity = value; break; default: // 디폴트 값으로 NONE을 가지도록 한다. _COM_Parity = COMM_PARITY.NONE; break; } } } public void Set_Parity(string sParity) { switch (sParity) { case "NONE": _COM_Parity = COMM_PARITY.NONE; break; case "EVEN": _COM_Parity = COMM_PARITY.EVEN; break; case "ODD": _COM_Parity = COMM_PARITY.ODD; break; default: _COM_Parity = COMM_PARITY.NONE; break; } } public COMM_STOPBIT StopBits { get { return (this._COM_Stopbit); } set { this._COM_Stopbit = value; } } public void Set_StopBits(string sStopBits) { switch (sStopBits) { case "1": this._COM_Stopbit = COMM_STOPBIT.ONESTOPBIT; break; //case "1.5": // this._COM_Stopbit = COMM_STOPBIT.ONE5STOPBITS; // break; case "2": this._COM_Stopbit = COMM_STOPBIT.TWOSTOPBITS; break; default: this._COM_Stopbit = COMM_STOPBIT.ONESTOPBIT; break; } } public int DataBits { get { return (this._COM_DataBits); } set { // 체크 if ((value >= 5) && (value <= 8)) { this._COM_DataBits = value; } } } public string Get_COM_PORT() // 포트 넘버 (COM1, COM2..) { return (string.Format("COM{0}", this._COM_PortNum)); } public string Get_COM_BAUDRATE() // 포트BPS (1200,9600,14400, 38400 ...) { return (this._COM_BaudRate.ToString()); } public string Get_COM_PARITY() { string sRet = ""; switch (this._COM_Parity) { case COMM_PARITY.NONE: sRet = "NONE"; break; case COMM_PARITY.EVEN: sRet = "EVEN"; break; case COMM_PARITY.ODD: sRet = "ODD"; break; } return (sRet); } public string Get_COM_STOPBIT() { string sRet = ""; switch (this._COM_Stopbit) { case COMM_STOPBIT.ONESTOPBIT: sRet = "1"; break; //case COMM_STOPBIT.ONE5STOPBITS: // sRet = "1.5"; // break; case COMM_STOPBIT.TWOSTOPBITS: sRet = "2"; break; } return (sRet); } public string Get_COM_DATABITS() { return (this._COM_DataBits.ToString()); } } /// /// 입출력 - 통신 보드 /// public class _COM_BOARD { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// private string KEY_NAME; // 이름 public int BOARD_ID; // 보드 ID public string BOARD_NAME; // 보드 이름 public bool bCh1_Use_Flag; public bool bCh2_Use_Flag; // cyim 2016.08.26 : 대용량 수신기 public bool bCh3_Use_Flag; public bool bCh4_Use_Flag; public bool bUse_Flag; public void Set_KEY_NAME(string sValue) { this.KEY_NAME = sValue; } public string Get_KEY_NAME() { return this.KEY_NAME; } public string Get_CH1_Use() { string sRetData = "사용"; if (bCh1_Use_Flag == false) { sRetData = "사용안함"; } if (bUse_Flag == false) { sRetData = "-"; } return sRetData; } public string Get_CH2_Use() { string sRetData = "사용"; if (bCh2_Use_Flag == false) { sRetData = "사용안함"; } if (bUse_Flag == false) { sRetData = "-"; } return sRetData; } // cyim 2016.08.26 : 대용량 수신기 public string Get_CH3_Use() { string sRetData = "사용"; if (bCh3_Use_Flag == false) { sRetData = "사용안함"; } if (bUse_Flag == false) { sRetData = "-"; } return sRetData; } public string Get_CH4_Use() { string sRetData = "사용"; if (bCh4_Use_Flag == false) { sRetData = "사용안함"; } if (bUse_Flag == false) { sRetData = "-"; } return sRetData; } public string Get_Use() { string sRetData = "사용"; if (bUse_Flag == false) { sRetData = "사용안함"; } return sRetData; } public void Set_CH1_Use(string sValue) { if (sValue == "Y") { bCh1_Use_Flag = true; } else { bCh1_Use_Flag = false; } } public void Set_CH2_Use(string sValue) { if (sValue == "Y") { bCh2_Use_Flag = true; } else { bCh2_Use_Flag = false; } } // cyim 2016.08.26 : 대용량 수신기 public void Set_CH3_Use(string sValue) { if (sValue == "Y") { bCh3_Use_Flag = true; } else { bCh3_Use_Flag = false; } } public void Set_CH4_Use(string sValue) { if (sValue == "Y") { bCh4_Use_Flag = true; } else { bCh4_Use_Flag = false; } } public void Set_Use_Flag(string sValue) { if (sValue == "Y") { bUse_Flag = true; } else { bUse_Flag = false; } } /// /// 채널 정보 /// } public class _Channel { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 public List<_REPEATER> LIST_CHANNEL1_REPEATER = new List<_REPEATER>(); public List<_REPEATER> LIST_CHANNEL2_REPEATER = new List<_REPEATER>(); } /// /// 입출력 - IO 보드 /// public class _IO_BOARD { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// private string KEY_NAME; // 이름 public int BOARD_ID; // 보드 ID public string BOARD_NAME; // 보드 이름 public bool bUse_Flag; public void Set_KEY_NAME(string sValue) { this.KEY_NAME = sValue; } public string Get_KEY_NAME() { return this.KEY_NAME; } public string Get_Use() { string sRetData = "사용"; if (bUse_Flag == false) { sRetData = "사용안함"; } return sRetData; } public void Set_Use_Flag(string sValue) { if (sValue == "Y") { bUse_Flag = true; } else { bUse_Flag = false; } } } /// /// 입출력 - 키패드 /// public class _KEYPAD { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// private string KEY_NAME; // 이름 public int BOARD_ID; // 보드 ID public string BOARD_NAME; // 보드 이름 public bool bUse_Flag; public void Set_KEY_NAME(string sValue) { this.KEY_NAME = sValue; } public string Get_KEY_NAME() { return this.KEY_NAME; } public string Get_Use() { string sRetData = "사용"; if (bUse_Flag == false) { sRetData = "사용안함"; } return sRetData; } public void Set_Use_Flag(string sValue) { if (sValue == "Y") { bUse_Flag = true; } else { bUse_Flag = false; } } } /// /// 입출력 - 비상방송 /// public class _EMERGENCY_BROADCAST { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// private string KEY_NAME; // 이름 public int BOARD_ID; // 보드 ID public string COMPORT_NAME; // 보드 이름 private bool bUse_Flag; public void Set_KEY_NAME(string sValue) { this.KEY_NAME = sValue; } public string Get_KEY_NAME() { return this.KEY_NAME; } public string Get_Use() { string sRetData = "사용"; if (bUse_Flag == false) { sRetData = "사용안함"; } return sRetData; } public void Set_Use_Flag(string sValue) { if (sValue == "Y") { bUse_Flag = true; } else { bUse_Flag = false; } } } /// /// 포인트 - 입력 /// public class POINT_INPUT { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 } /// /// 포인트 - 출력 /// public class POINT_OUTPUT { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 } /// /// 연동 - 그룹 /// public class _OPER_GROUP { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 } /// /// 연동 - 설정 /// public class _OPER_SET { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 } /// /// 그래픽 - 그림 /// public class _IMAGE { // ID public string ID; public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// public string KEY_NAME; // 이름 public int x; public int y; public int w; public int h; } /// /// Receiver XML 파일 전용 클래스 /// public class _ReceiverXML { public string ID; public string IP; public string KEY_NAME; } /// /// FieldSetting XML 파일 읽기 전용 클래스 /// public class _FieldSetting { public string Receiver_ID = null; public string ID = null; public string Name = null; public string IMAGE = null; // _FieldSetting_Button 클래스 리스트 public ArrayList Button = new ArrayList(); // _FieldSetting_Device 클래스 리스트 public ArrayList Device = new ArrayList(); } public class _FieldSetting_Button { public string ID; // 고유 아이디 public string Xposition; public string Yposition; public string Image; public string NAME; public string JumpField; public string Width; public string Height; } public class _FieldSetting_Device { public string ID; // 회로번호 public string Xposition; public string Yposition; public string DevIconID; // 아이콘아이디 } /// /// DevType XML 파일 읽기 전용 클래스 /// public class _DevTypeXML { public string ID; public string FILENAME; public string NAME; } /// /// 맵디자이너에서 사용 /// public class _PictureBoxItem : PictureBox { // ID // 픽쳐박스 순번 (숫자로 저장되는 고유 아이디) // PictureBox.Name 으로 대체됨 // xml 저장시에는 버튼 아이콘의 경우 B 접두사를 붙임 // xml 저장시에는 디바이스 아이콘의 경우 사용하지 않음 // 타입 public Item_Type ItemType; // 파일정보 (파일포맷 및 사이즈) public string Info; // 디바이스 아이콘 아이디 (DevType.XML) public string Device_Icon_ID; // 디바이스 아이콘 이름 (DevType.XML) public string Device_Icon_NAME; // 드래그 상태 public bool MouseDrag_Status; // 드래그 X 좌표 public int MouseDown_X; // 드래그 Y 좌료 public int MouseDown_Y; // 파일 이름 public string FileName; // 파일 경로 public string FullPath_FileName; // 현재 선택여부 public bool Selected; // 선택하는 경우 외부 테두리 public ShapeContainer ShapeContainer_Seleted = new ShapeContainer(); public LineShape LineShape_TOP = new LineShape(); public LineShape LineShape_BOTTOM = new LineShape(); public LineShape LineShape_LEFT = new LineShape(); public LineShape LineShape_RIGHT = new LineShape(); /// /// 동적으로 계속 바뀌는 값 /// // 디바이스 연동 회로 번호 (맵디자이너에서 동적으로 생성, 즉 연동 버튼 누를때에만 값이 입력됨) public string Device_Oper_ID; // 디바이스 연동 명칭 (데이타베이스로 부터 정보를 가져옴) public string Device_DB_Name; // 점프 페이지 (문자열로 저장되는 페이지 이름이다. 단, xml 저장시에는 페이지 아이디로 저장됨) public string Button_JumpPageName; // 트리 노드의 텍스트 public string NodeText() { string result=null; // 파일 이름을 토대로 string[] Temps = FileName.Split('.'); //예시 : test.txt => txt // 아이콘의 타입에 따라 틀리다 (단, 디바이스 아이콘의 경우 파일명이 아닌 이름으로 대체 (DevType.xml 참조), 또한 데이타베이스의 디바이스 명칭을 가져온다) if (ItemType == Item_Type.Device) { if (Device_Oper_ID == null || Device_Oper_ID.Length == 0 || Device_Oper_ID == _Text.Blank || Device_Oper_ID == _Text.None) result = Device_Icon_NAME; else result = Device_Icon_NAME + _Text.Blank + _Text.LeftBracket + Device_Oper_ID + _Text.Colon + Device_DB_Name +_Text.RightBracket; } else if (ItemType == Item_Type.Button) { if (Button_JumpPageName == null || Button_JumpPageName.Length == 0 || Button_JumpPageName == _Text.Blank || Button_JumpPageName == _Text.None) result = Temps[0]; else result = Temps[0] + _Text.Blank + _Text.LeftBracket + Button_JumpPageName + _Text.RightBracket; } return result; } } public class _Page { // 페이지명 (트리 키값 - 구분자) public string NodeKey; // 페이지명 (트리 이름 - 표시자) public string NodeText; // 페이지 아이디 public string ID; // xml 에 저장할때 생성된다 // 수신기 아이디 public string Receiver_ID; // 배경그림 public _PictureBoxItem PictureBoxItem_BackGround; // 페이지에 저장된 아이콘 (디바이스 아이콘 혹은 버튼 아이콘)을 관리하기 위해서 사용되는 해쉬테이블 public Hashtable HASH_ICON = new Hashtable(); // 페이지에 저장된 아이콘 (디바이스 아이콘 혹은 버튼 아이콘)을 관리하기 위해서 사용되는 키리스트 public ArrayList LIST_ICON_ID = new ArrayList(); // 캡쳐이미지 public Image Capure_Image_Page; } /// /// 중계기 /// public enum REPEATER_KIND { NULL = 0, // 미적용 _2BY2 = 1, // 2*2 중계기 _4BY4 = 2, // 4*4 중계기 _ANALOG_DETECT_SMOKE = 3, // 아나로그 연감지기 _ANALOG_DETECT_TEMP = 4 // 아나로그 열감지기 } public class _REPEATER { // ID //public string ID; //public _NODE NODE = new _NODE(); // 노드 정보 /// /// 세부 정보 /// private string KEY_NAME; // 이름 public void Set_KEY_NAME(string sValue) { this.KEY_NAME = sValue; } public string Get_KEY_NAME() { return this.KEY_NAME; } public int REPEATER_ID; // 중계기 ID public REPEATER_KIND KIND_CODE = REPEATER_KIND.NULL; // 중계기 종류 public bool CUT_FLAG; public bool USE_FLAG; } public class _DB_Connect { public string sSERVER_NAME; public string sDATABASE_NAME; public string sUSER_ID; public string sPASSWORD; }; // 출력디바이스 그룹명 클래스 public class _OUTDEVIDE_GROUP { public int Receive_ID; public string ID; public string Group; } // 맵명 클래스 public class _MAP { public int Receive_ID; public int Map_No; public string ID; public string Map; } /* 'I' : 입력,'O' : 출력 */ public struct code_InOutType { public const String Input = "I"; public const String Output = "O"; } /// /// 엑셀연동 한 후 데이타를 토대로 생성된 위치 정보 클래스 (데이타베이스 연동용) /// public class _Code_Position { // 6자리 숫자코드 public string Code_Position_ID; public string Code_Emergency_ID; // 아이디에 따른 명칭 public string Code_Position_NAME; // 실제 사용여부 (기본코드대로 생성되다가 실제로 사용하는 코드만 남도록 해야한다) public bool Enable; } public class _Code_Device_Type { // 디바이스 타입 public string DEVICE_TYPE; // 디바이스 타입명 public string DEVICE_TYPE_NAME; // 심볼타입 public string SYMBOL_TYPE; // 시퀀스 public string SEQ_NO; // 사용여부 public string USE_FLAG; } public class _Code_IO_Board { // 이름 public string IOBOARD_NAME; // Com Port public string IOBOARD_COM_PORT; // Board ID public string IOBOARD_BOARD_ID; // Loop No public string IOBOARD_LOOP_NO; // 중계기 public string IOBOARD_REPEATER_ID; // 디바이스 public string IOBOARD_DEVICE_ID; // I or O public string IOBOARD_INOUT; // 추가중계기 여부 Y or N public string IOBOARD_ADDREPEATER_YN; // 추가중계기 Type None 혹은 4*4 -> 2 2*2 -> 1 public string IOBOARD_ADDREPEATER_TYPE; } public class _Code_Event_Type { // 이벤트 타입 public string EVENT_TYPE; // 이벤트 타입명 public string EVENT_TYPE_NAME; } /// /// 엑셀연동 시에 읽기를 위한 정보 클래스 (엑셀 읽기용) /// // 읽은 정보 값 : 각 시트별의 중계기 및 포인트의 위치 정보 public class _Excel_Position { // 건물명 public string Building; // 계단 public string Stair; // 층 public string Floor; } // 읽은 정보 값 : 시트값 (시트별로 생성) public class _Excel_Sheet { // 시트명 public string Sheet_Name; // 통신보드 아이디 // EXCEL : ID public string BOARD_ID; // 계통 // EXCEL : 계통 public string LOOP_NO; // 중계기 총개수 public int Repeater_Count; // 중계기 (중계기 클래스 집합) public ArrayList List_Repeater = new ArrayList(); } // 읽은 정보 값 : 중계기 public class _Excel_Repeater { // 타입 public POINT_TYPE TYPE; // 명칭 public string NAME; // 중계기 아이디 public string REPEATER_ID; // 위치정보 public _Excel_Position Excel_Position = new _Excel_Position(); // 입력 및 출력 (포인트 클래스 집합) public ArrayList List_Point = new ArrayList(); } // 엑셀 읽은 정보 값 : 포인트 (입력 및 출력) public class _Excel_Point { // 타입 public POINT_TYPE TYPE; // 명칭 public string NAME; // 디바이스 아이디 (중계기 포트 번호) public string PortNum; // 위치정보 public _Excel_Position Excel_Position = new _Excel_Position(); // 입력 및 출력 코드 public string Code_FullName; // ex : IA <일반화재입력> public string Code_Type; // ex : IA public string Code_Name; // ex : <일반화재입력> } // 엑셀 읽은 정보 값 : 그룹 public class _Excel_Group { public string Group_ID; public string Group_Name; } // 엑셀 읽은 정보 값 : 맵 public class _Excel_Map { public string Map_ID; public string Map_Name; public string Group_Number; public string Groups; public string InDevices; } // 입력 데이타는 회로번호순대로 정렬 public class _OrderByCircuitNo { // 회로번호 public string CircuitNo; //dev_s.MskId, // 설비종류 public string Type;//dr[0].ToString(), // 위치 public string Location;//dr[1].ToString(), // 디바이스명칭 public string DeviceNickName; //dr[2].ToString(), // 비상방송 public string EmergencyCode;//dr[10].ToString() + "-" + dr[11].ToString() + "-" + dr[12].ToString() // XML public string XML; } // 레포트 입력 데이타 (입력 및 출력 포인트) public class _ImportPoint { public DataRowCollection IN_Points = null; public DataRowCollection OUT_Points = null; } // // 엑티브레포트 가변 레포트 전용 // // 가변레포트에서 컬럼을 생성하는 경우에만 사용함 public class _Report_Column_Info { public string Column_Key; // 고유키 (DB 혹은 클래스 정보의 고유값) public string Column_Name; // 컬럼명 public float Column_Size; // 컬럼 사이즈 } // // 엑티브레포트 고정 레포트에서 기존에 생성된 컬럼과 매칭하기 위하여 인덱서 사용 (리플렉션은 필수임, 단 DataRow 가 아닌 클래스를 사용할때만 필수이다) // // 레포트 출력 데이타 (연동그룹) public class _Report_OperGroup { public string Group_Header { get; set; } // 동일한 그룹의 데이타를 구분하기 위함 public int Group_No { get; set; } // 그룹 순번 public string Group_ID { get; set; } // 그룹 아이디 public string Group_Name { get; set; } // 그룹 이름 public int Detail_No { get; set; } // 내용 순번 public string Detail_Circuit { get; set; } // 내용 회로 번호 public string Detail_Type { get; set; } // 내용 회로 종류 public string Detail_Location { get; set; } // 내용 회로 위치 public string Detail_Name { get; set; } // 내용 회로 이름 } // 레포트 출력 데이타 (연동설정) public class _Report_Operset { public string Group_Header { get; set; } // 동일한 그룹의 데이타를 구분하기 위함 public int Group_No { get; set; } // 그룹 순번 public string Group_ID { get; set; } // 그룹 아이디 public string Group_Name { get; set; } // 그룹 이름 public string Group_Header_Sub { get; set; } public string Detail_IO { get; set; } // 입출력 표시 public string Detail_Receiver { get; set; } // 수신기 public string Detail_ID { get; set; } // 아이디 public string Detail_Name { get; set; } // 이름 public string Detail_Type { get; set; } // 종류 public string Detail_Location { get; set; } // 위치 } // 레포트 출력 데이타 (페이지) public class _Report_Page { public string Group_Header { get; set; } // 동일한 그룹의 데이타를 구분하기 위함 public int Group_No { get; set; } // 그룹 순번 public string Group_Name { get; set; } // 그룹 이름 public string Group_Cnt { get; set; } // 개수 public string Group_Etc { get; set; } // 기타 정보 public Image Detail_Image { get; set; } } // cyim 2016.12.15 : 모바일앱용 사용자 관리 public class _USER { public string USER_NO; public string USER_NAME; public string USER_ID; public string USER_PW; public string USER_COMPANY; public string USER_POSITION; public string USER_PHONE; } }