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 GridEXColumnList = new List(); // 컬럼 추가 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 "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()); } } } }