| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using Janus.Windows.GridEX;using System.Drawing;using System.Collections;namespace IControls_FireManager{    // Janus Gridex 관련 함수는 여기 클래스에서 전담한다    public static class _Gridex    {        /* 샘플                    // 컬럼 관리 리스트        List<GridEXColumn> GridEXColumnList = new List<GridEXColumn>();         // 컬럼 추가        GridEXColumnList.Add(_Gridex.Column_Add(gridEX_DeviceListInfo,ColumnType.Text,EditType.TextBox,ButtonStyle.NoButton, "test1"));        GridEXColumnList.Add(_Gridex.Column_Add(gridEX_DeviceListInfo, ColumnType.Text, EditType.TextBox,ButtonStyle.ButtonCell, "test2"));        GridEXColumnList.Add(_Gridex.Column_Add(gridEX_DeviceListInfo, ColumnType.CheckBox, EditType.CheckBox,ButtonStyle.NoButton, "test3"));        // 컬럼셋 추가 (컬럼 생성 개수에 맞게)        GridEXColumnSet gridEXColumnSet = _Gridex.ColumnSet_Add(gridEX_DeviceListInfo, null, null, 3, 400);        // 컬럼셋 위치 조절        _Gridex.ColumnSet_AddColumn(gridEX_DeviceListInfo, gridEXColumnSet, "test1", 0);        _Gridex.ColumnSet_AddColumn(gridEX_DeviceListInfo, gridEXColumnSet, "test2", 1);        _Gridex.ColumnSet_AddColumn(gridEX_DeviceListInfo, gridEXColumnSet, "test3", 2);        // 컬럼 사이즈        _Gridex.Column_Width(GridEXColumnList[0], 200);        // 컬럼         _Gridex.Column_Data_Add(gridEX_DeviceListInfo, true, "test1=1;test2=2;test3=3");                */        // 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")        //{        //    //콤보박스안에 글자를 삽입한후 컬럼을 추가한다        //    GridEXColumnList_Receiver.Add(_Gridex.Column_Add(Gridex, ColumnType.Text, EditType.Combo, ButtonStyle.NoButton, ColumnName,"test1;test2"));        //}        // 컬럼추가        public static GridEXColumn Column_Add(Janus.Windows.GridEX.GridEX gridEX, ColumnType Columntype, EditType Edittype, ButtonStyle Buttonstyle, bool AllowSort, string ColumnName)        {            GridEXColumn NewGridEXColumn = new Janus.Windows.GridEX.GridEXColumn();            NewGridEXColumn.ColumnType = Columntype;            NewGridEXColumn.EditType = Edittype;            NewGridEXColumn.ButtonStyle = Buttonstyle;            if (Buttonstyle == ButtonStyle.ButtonCell) NewGridEXColumn.ButtonDisplayMode = CellButtonDisplayMode.Always;                        NewGridEXColumn.Caption = ColumnName;            NewGridEXColumn.Key = ColumnName;                               NewGridEXColumn.HeaderAlignment = TextAlignment.Center;            NewGridEXColumn.TextAlignment = TextAlignment.Center;            NewGridEXColumn.LineAlignment = TextAlignment.Center;            NewGridEXColumn.WordWrap = true;            NewGridEXColumn.AllowSize = true;                          NewGridEXColumn.AutoSizeMode = ColumnAutoSizeMode.AllCells;                        NewGridEXColumn.MaxLines = 100;                        NewGridEXColumn.Trimming = Trimming.NoTrimming;            NewGridEXColumn.BoundMode = ColumnBoundMode.Unbound;                        if (AllowSort == true) NewGridEXColumn.SortIndicator = SortIndicator.Automatic;            else NewGridEXColumn.SortIndicator = SortIndicator.None;            NewGridEXColumn.AllowSort = AllowSort;            gridEX.RootTable.Columns.Add(NewGridEXColumn);                        return NewGridEXColumn;        }        public static GridEXColumn Column_Add(Janus.Windows.GridEX.GridEX gridEX, ColumnType Columntype, EditType Edittype, ButtonStyle Buttonstyle, string ColumnName, ArrayList ComboboxItems)        {            GridEXColumn NewGridEXColumn = new Janus.Windows.GridEX.GridEXColumn();            NewGridEXColumn.ColumnType = Columntype;            NewGridEXColumn.EditType = Edittype;            NewGridEXColumn.ButtonStyle = Buttonstyle;                        NewGridEXColumn.Caption = ColumnName;            NewGridEXColumn.Key = ColumnName;            NewGridEXColumn.HeaderAlignment = TextAlignment.Center;            NewGridEXColumn.TextAlignment = TextAlignment.Center;            NewGridEXColumn.LineAlignment = TextAlignment.Center;            NewGridEXColumn.WordWrap = true;            NewGridEXColumn.AllowSize = true;            NewGridEXColumn.AutoSizeMode = ColumnAutoSizeMode.AllCells;            NewGridEXColumn.MaxLines = 100;            NewGridEXColumn.Trimming = Trimming.NoTrimming;            NewGridEXColumn.BoundMode = ColumnBoundMode.Unbound;            gridEX.RootTable.Columns.Add(NewGridEXColumn);            if (Edittype == EditType.Combo)            {                // 콤보박스에 추가할 헤더를 찾는다                GridEXColumn column = gridEX.RootTable.Columns[ColumnName];                column.HasValueList = true;                column.EditButtonDisplayMode = CellButtonDisplayMode.Always;                GridEXValueListItemCollection valueList = column.ValueList;                // 콤보박스의 경우 특별히 추가될 아이템이 존재한다                valueList.PopulateValueList(ComboboxItems);            }            return NewGridEXColumn;        }        // 컬럼 가로사이즈        public static void Column_Width(GridEXColumn ColumnName, int Width)        {            ColumnName.Width = Width;        }        // 컬럼셋추가                public static GridEXColumnSet ColumnSet_Add(Janus.Windows.GridEX.GridEX gridEX, string ColumnSetName, string Title, int Count,int Width)        {            GridEXColumnSet NewGridEXColumnSet = gridEX.RootTable.ColumnSets.Add();            NewGridEXColumnSet.Caption = Title;            NewGridEXColumnSet.HeaderAlignment = TextAlignment.Center;            NewGridEXColumnSet.Key = ColumnSetName;            NewGridEXColumnSet.ColumnCount = Count;            NewGridEXColumnSet.Width = Width; // 실제 컬럼 가로 사이즈            return NewGridEXColumnSet;        }        // 컬럼셋에 컬럼을 추가        public static void ColumnSet_AddColumn(Janus.Windows.GridEX.GridEX gridEX, GridEXColumnSet gridEXColumnSet, string ColumnName, int Index) // index 는 0부터 시작함        {            gridEXColumnSet.Add(gridEX.RootTable.Columns[ColumnName], 0, Index);        }                // 컬럼키를 모두 조회 (결과는 ArrauList)        public static ArrayList Get_ColumnHeaderName(Janus.Windows.GridEX.GridEX gridEX)        {            ArrayList result = new ArrayList();            for(int i=0;i<gridEX.RootTable.Columns.Count;i++)                            result.Add(gridEX.RootTable.Columns[i].Key);                        return result;        }		 		// 컬럼키를 모두 조회 (결과는 String)        public static string[] Get_ColumnHeadersName(Janus.Windows.GridEX.GridEX gridEX)        {             string [] result = new string[gridEX.RootTable.Columns.Count];            for(int i=0;i<gridEX.RootTable.Columns.Count;i++)            {                result[i] = gridEX.RootTable.Columns[i].Key;            }            return result;        }		        //        // 색상 조절 1         // 컨디션 조건을 등록하는 경우 사전에 미리 등록된 값이 변경되면 해당되는 컬럼의 배경색을 바꾼다        //        // 컬럼 배경색 컨디션 속성 생성        public static bool BackColorFormatCondition_Create(Janus.Windows.GridEX.GridEX gridEX, Color TargetColor, string[] ColumnNames, string CompareColumn_Key, string CompareColumn_Value)        {            try             {                // ColumnNames 예시 -> "test1;test2"                   foreach (GridEXColumn Columnn in gridEX.RootTable.Columns)                {                    for (int i = 0; i < ColumnNames.Length; i++)                    {                        if (ColumnNames[i] == Columnn.Key)                        {                            GridEXFormatCondition gGridEXFormatCondition = new GridEXFormatCondition(gridEX.RootTable.Columns[CompareColumn_Key], ConditionOperator.Equal, CompareColumn_Value);                            gGridEXFormatCondition.TargetColumn = Columnn;                            gGridEXFormatCondition.FormatStyle.BackColor = TargetColor;                            gridEX.RootTable.FormatConditions.Add(gGridEXFormatCondition);                        }                    }                }                return true;            }            catch (Exception e)            {                // LOG                                _Event.DebugView_SendMessage_Write(e.ToString());                return false;            }        }         // 컬럼 배경색 컨디션 속성 초기화        public static bool BackColorFormatCondition_Clear(Janus.Windows.GridEX.GridEX gridEX)        {            try            {                gridEX.RootTable.FormatConditions.Clear();                return true;            }            catch (Exception e)            {                // LOG                                _Event.DebugView_SendMessage_Write(e.ToString());                return false;            }        }        // 컬럼 데이터 삽입 (단, string 형태의 데이터만 허용한다)        // Key_Data 의 예시 "Key1=Data1;Key2=Data2"         public static void Column_Data_Add(Janus.Windows.GridEX.GridEX gridEX, bool top, string Key_Data) // ascending descending        {            try            {                GridEXRow row;                if (top == true)                    row = gridEX.AddItem(0);                else                             row = gridEX.AddItem();                // 속성 이름 임시 저장소                string Temp_Names = _Convert.String_to_Key_Data(Key_Data, true, false);                // 제거 문자대로 분리시켜버림                string[] Column_Names = Temp_Names.Split(_Convert.Result_Char);                // 속성 값 임시 저장소                string Temp_Values = _Convert.String_to_Key_Data(Key_Data, false, false);                // 제거 문자대로 분리시켜버림                string[] Column_Values = Temp_Values.Split(_Convert.Result_Char);                row.BeginEdit();                for (int i = 0; i < Column_Names.Length; i++)                {                    if (row.Cells[Column_Names[i]].Column.ColumnType == ColumnType.CheckBox)                    {                        row.Cells[Column_Names[i]].Value = Convert.ToBoolean(Column_Values[i]);                    }                    else                    {                        row.Cells[Column_Names[i]].Value = Column_Values[i];                    }                }                row.EndEdit();            }            catch (Exception e)            {                // LOG                                _Event.DebugView_SendMessage_Write(e.ToString());                            }        }                // 컬럽 데이터 편집        public static void Column_Data_Edit(Janus.Windows.GridEX.GridEX gridEX, string Target_Key_Data, string Key_Data)         {            try            {                // 속성 이름 임시 저장소                string Temp_Names = _Convert.String_to_Key_Data(Key_Data, true, false);                // 제거 문자대로 분리시켜버림                string[] Column_Names = Temp_Names.Split(_Convert.Result_Char);                // 속성 값 임시 저장소                string Temp_Values = _Convert.String_to_Key_Data(Key_Data, false, false);                // 제거 문자대로 분리시켜버림                string[] Column_Values = Temp_Values.Split(_Convert.Result_Char);                // 속성 이름 임시 저장소                string Temp_Names_Target = _Convert.String_to_Key_Data(Target_Key_Data, true, false);                // 제거 문자대로 분리시켜버림                string[] Column_Names_Target = Temp_Names_Target.Split(_Convert.Result_Char);                // 속성 값 임시 저장소                string Temp_Values_Target = _Convert.String_to_Key_Data(Target_Key_Data, false, false);                // 제거 문자대로 분리시켜버림                string[] Column_Values_Target = Temp_Values_Target.Split(_Convert.Result_Char);                GridEXRow[] row = gridEX.GetRows();                // 편집                foreach (GridEXRow editrow in row)                {                    for (int j = 0; j < Column_Names_Target.Length; j++)                    {                        if (editrow.Cells[Column_Names_Target[j]].Value.ToString() == Column_Values_Target[j])                        {                            editrow.BeginEdit();                            for (int i = 0; i < Column_Names.Length; i++)                            {                                if (editrow.Cells[Column_Names[i]].Column.ColumnType == ColumnType.CheckBox)                                {                                    editrow.Cells[Column_Names[i]].Value = Convert.ToBoolean(Column_Values[i]);                                }                                else                                {                                    editrow.Cells[Column_Names[i]].Value = Column_Values[i];                                }                            }                            editrow.EndEdit();                        }                    }                }            }            catch (Exception e)            {                // LOG                                _Event.DebugView_SendMessage_Write(e.ToString());            }        }                      }}
 |