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());
- }
- }
-
-
- }
- }
|