! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

WinForms용 DataFilter에 포함되어 있는 FilterEditor 소개 > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

WinForms용 DataFilter에 포함되어 있는 FilterEditor 소개

페이지 정보

작성자 GrapeCity 작성일 2020-06-09 00:00 조회 5,243회 댓글 0건

본문

최신 ComponentOne 2020v1 릴리스에서는 새로운 UI 기반 필터 컨트롤 인 C1FilterEditor가 추가되었습니다FilterEditor는 직관적인 UI로 설계되어 최종 사용자가 복잡한 필터 기준을 동적으로 만들 수 있습니다.


C1FilterEditor


C1FilterEditor는 최종 사용자가 필터 조합 및 작업을 노드로 추가하여 고급 필터 기준을 만들 수있는 트리 뷰 레이아웃이 있는 컨트롤입니다. 필터 조합은 최종 사용자가 데이터를 필터링해야하는 필드, 값 및 논리적 작업 유형을 선택할 수 있는 표현식인 필터 작업 모음입니다.


이 컨트롤은 기존 C1DataFilter 컨트롤이 포함된 'C1.Win.DataFilter' 어셈블리에 추가되었습니다.


WinForms 용 DataFilters의 FilterEditor 소개


이제 C1FilterEditor가 무엇이며 어떻게 보이는지 알게 되었습니다. 조금 더 나아가 컨트롤에 대해 자세히 알아 보겠습니다.


C1FilterEditor 주요 특징 :


UI 기반 필터링


FilterEditor는 데이터 소스를 트리와 유사한 구조로 구성하는 필터 조작 조합을 추가하여 데이터 소스를 필터링합니다. 컨트롤의 UI를 통해 개발자는 몇 번의 클릭만으로 복잡한 필터 기준을 만들 수 있습니다.


최종 사용자 상호 작용


이 컨트롤은 대화형 기능을 지원하여 최종 사용자에게 편리한 필터링 인터페이스를 제공합니다. 다음은 최종 사용자가 C1FilterEditor로 수행 할 수 있는 작업 목록입니다.


필터 확장 / 축소 :


FilterEditor는 필터 조건을 논리적으로 (또는 함수로) 그룹화하여 트리와 유사한 구조를 만듭니다. 이 레이아웃을 사용하면 필터 조건 표시를 토글하고 특정 필터 작동에 더 집중할 수 있습니다. C1FilterEditor는 각 노드에 +/- 상자를 제공하여 이 기능을 활성화합니다.


필터 추가 / 삭제 :


최종 사용자는 FilterEditor를 사용하여 필터 조합/연산을 동적으로 추가 또는 삭제하고 데이터 컨트롤에서 해당 결과를 동시에 볼 수 있습니다. FilterEditor는 각 필터 조합/연산에 + / X 버튼을 제공하여 이를 가능하게 합니다.


필터 드래그 / 드롭


FilterEditor는 필터 조합 순서 변경 또는 필터 조작을 드래그앤드롭하여 한 조합에서 다른 조합으로 이동하는 것을 지원합니다. C1FilterEditor는 세로 줄임표 단추를 사용하여 이를 활성화합니다.


컨트롤은 EnableDragDrop 속성을 각각 true / false 로 설정하여 드래그앤드롭을 허용하거나 방지할 수 있는 유연성을 제공합니다.


프로그래밍 방식 필터링


동적 UI 기반 필터링 외에도 컨트롤은 코드를 통해 동일한 필터 기준을 만들 수 있도록 지원합니다. 이를 통해, 애플리케이션 개발자는 사전 정의 된 필터를 적용하여 기본 보기를 빌드 할 수 있습니다. 코드를 통한 필터링은 CombinationExpression 및 OperationExpression 클래스를 사용하여 수행할 수 있습니다.


완벽한 통합


FilterEditor 컨트롤은 모든 UI 컴포넌트와 완벽하게 통합되므로 기본 제공 필터링 지원이 없는 UI 컴포넌트를 사용하여 편리하게 필터링 할 수 있습니다.


지금까지 C1FilterEditor 사용의 이점과 그 기능에 대해 설명했습니다. 이러한 기능을 활용하는 방법을 알아보기 전에 먼저 C1FilterEditor와 관련된 몇 가지 일반적인 용어를 살펴 보겠습니다.


FilterEditor의 용어


C1FilterEditor를 사용하여 필터 기준을 빌드하려면 C1FilterEditor와 관련된 다음과 같은 공통 용어가 있습니다.


필터 연산


필터 연산은 데이터가 필터링 될 것으로 예상되는 필터 조건으로 정의될 수 있습니다. 각 필터 연산은 열 / 필드, 논리 연산자 및 값을 정의합니다.


예를 들어, 'SupplierID = 4'는 필터 연산입니다. 여기서 "SupplierID"는 데이터 소스에 존재하는 열 / 필드 / 속성의 이름이고 'Equal'은 '=' 연산자이고 4는 값입니다.


WinForms 용 DataFilters의 FilterEditor 소개


필터 조합


필터 조합은 간단한 필터 조건 / 연산 또는 동일한 논리 연산자로 결합 된 다른 그룹의 집합입니다. 수학 용어에서는 괄호로 묶인 필터 표현식의 섹션으로 간주될 수 있습니다.


예를 들어, 'SupplierID = 4 AND Discontinued = False OR CategoryID = 2' 필터 식은 '(SupplierID = 4 AND Discontinued = False) OR (CategoryID = 2)'와 같이 괄호로 묶을 수 있습니다. 이 표현식은 이제 Group1 : SupplierID = 4 AND Discontinued = False 및 Group2 : CategoryID = 2의 두 그룹을 보여줍니다. 여기서 각 그룹의 필터 조건은 동일한 논리 연산자로 결합됩니다.


WinForms 용 DataFilters의 FilterEditor 소개


이제 C1FilterEditor와 관련된 용어를 설명하였으므로 C1FilterEditor를 사용하여 필터 기준을 작성하는 방법에 대해 이야기하겠습니다.


필터 표현식


C1FilterEditor 컨트롤을 사용하면 일련의 필터 조합 및 연산을 추가하여 복잡한 필터 기준을 만들 수 있습니다. 다음 섹션에서는 단계별 구현을 보여줍니다.


간단한 필터 기준 구축


가장 간단한 필터 식에도 다음의 세가지 요소가 포함됩니다. 필드, 연산자 및 값을 총괄하여 필터 연산이라고 합니다.


구현을 확인하기 위해 위의 필터 작업 제목에서 'SupplierID = 4'라는 필터 기준을 살펴 보겠습니다.


런타임 단계 :
  1. VS 도구 상자에서 C1FilterEditor 컨트롤을 WinForms 프로젝트 양식으로 끌어다 놓습니다.

  2. 속성 창에서 'DataSource' 속성을 찾아서 데이터 소스로 설정하십시오.

  3. 컨트롤의 기본 레이아웃에는 기본 루트 연산자 'AND'가 있습니다.

  4. 오른쪽의 + 아이콘을 클릭하여 필터 작업 템플릿을 만듭니다.

  5. C1FilterEditor는 데이터 소스의 모든 필드/속성으로 첫 번째 드롭 다운을 자동으로 채 웁니다. 드롭 다운에서 'SupplierID'를 선택하십시오.

  6. 두 번째 드롭 다운에는 선택한 필드/속성의 유형에 따른 논리 연산자가 포함됩니다. 여기에서 'Equal(같음)' 연산자를 선택하십시오.

  7. 이제 세 번째 요소에 4라는 값을 입력하십시오.

  8. 하단의 ApplyFilter 버튼을 클릭하십시오.


동등한 C # 코드 :


위의 필터 표현식은 아래 코드를 사용하여 구현할 수도 있습니다.


private static CombinationExpression GetPredefinedFilter()
{
  var filterExpression = new CombinationExpression();
  var filterExpressions = filterExpression.Expressions;
  var supplierIDEqual4Expression = new OperationExpression()
   {
      PropertyName = "SupplierID",
      FilterOperation = FilterOperation.Equal,
      Value = 4
   };
   filterExpressions.Add(supplierIDEqual4Expression);       
   return filterExpression;
}


위의 단계를 UI/코드로 완료하면 'SupplierID = 4' 조건을 만족하는 레코드만 데이터 소스/보기에 유지되는 방식으로 데이터 소스가 필터링됩니다.


WinForms 용 DataFilters의 FilterEditor 소개


복잡한 필터 기준 작성


C1FilterEditor를 사용하면 여러 필터 작업이 포함된 고급 필터 기준을 만들 수 있습니다. 즉, C1FilterEditor를 사용하면 AND / OR 연산자를 통해 논리적으로 결합된 여러 필터 조건 그룹으로 구성된 필터 표현식을 작성할 수 있습니다. 이를 보여주기 위해 복잡한 필터 기준인 'SupplierID = 4 AND Discontinued = False OR CategoryID = 2 OR CategoryID = 6'을 고려해 보겠습니다. 이러한 필터 표현식을 구현하려면 먼저 그룹을 식별해야 합니다. 따라서 이 표현식을 괄호로 묶고 '(SupplierID = 4 AND Discontinued = False) OR (CategoryID = 2 OR CategoryID = 6)'과 같이 논리 연산자를 통해 결합해 보겠습니다.


두 그룹은 아래와 같습니다.


  • 그룹 1 :( 공급 업체 ID = 4 AND 중단됨 = False)
  • 그룹 2 :( 범주 ID = 2 OR CategoryID = 6)

런타임 단계 :

  1. VS 도구 상자에서 C1FilterEditor 컨트롤을 WinForms 프로젝트 양식으로 끌어다 놓습니다.

  2. 속성 창에서 'DataSource' 속성을 찾아서 데이터 소스로 설정합니다.

  3. 컨트롤의 기본 레이아웃에는 기본 루트 연산자 'AND'가 있습니다. OR 논리 연산자를 통해 그룹을 결합하기를 원하므로 OR 연산자로 전환하십시오.

  4. + 아이콘을 클릭하고 'Combination'을 선택하면 그룹 1에 대한 행이 생성됩니다.

  5. 새 행에서 + 아이콘을 클릭하고 'Operation'을 선택하여 필터 조건에 대한 행을 작성합니다.

  6. 이제 필드 요소를 'SupplierID'로 변경하고 필터 연산자를 'Equal'로 변경한 다음 마지막 요소에 '4'를 입력합니다.

  7. 마찬가지로 다른 'Operation' 행을 추가하고 해당 요소를 각각 Discontinued, Equal 및 False로 설정하십시오. 이것으로 첫 번째 그룹이 완성되었습니다.

  8. 첫 번째 그룹이 완료되면 그룹 2에 대한 행을 추가해야합니다.

  9. 그룹 2의 경우 루트 행에서 + 아이콘을 다시 클릭하고 'Combination'을 선택한 다음 OR을 연산자로 설정하십시오.

  10. 5 단계와 같이 새 행에서 + 아이콘을 클릭하고 'Operation'을 선택하여 필터 조건에 대한 행을 작성합니다.

  11. 요소 값을 'CategoryID', 'Equal' 및 '2'로 설정합니다.

  12. 다시 두 번째 필터 조건에 새 행을 추가하고 해당 값을 'CategoryID', 'Equal' 및 '6'으로 설정합니다.

  13. 필터 적용 버튼을 클릭하여 데이터 소스를 필터링합니다.


동등한 C # 코드 :


위의 필터 표현식은 아래 코드를 사용하여 구현할 수도 있습니다.


//Using AND combination
private static CombinationExpression GetPredefinedFilter()
{
  var filterExpression = new CombinationExpression();
  var filterExpressions = filterExpression.Expressions;

  //Adding first operation to AND combination
  var supplierIDEqual4Expression = new OperationExpression()
  {
      PropertyName = "SupplierID",
      FilterOperation = FilterOperation.Equal,
      Value = 4
  };
  filterExpressions.Add(supplierIDEqual4Expression);        

  //Adding second operation to AND combination
  var discontinuedEqualFalseExpression = new OperationExpression()
  {
     PropertyName = "Discontinued",
     FilterOperation = FilterOperation.Equal, 
     Value = False
  };
  filterExpressions.Add(discontinuedEqualFalseExpression);

  //Adding new OR combination
  var categoryIDOrExpression = new CombinationExpression();
  categoryIDOrExpression.FilterCombination = FilterCombination.Or;
  var categoryIDExpressions = categoryIDOrExpression.Expressions;

  //Adding first operation to OR combination
  var categoryIDEqual2Expression = new OperationExpression()
  {
      PropertyName = "CategoryID",
      FilterOperation = FilterOperation.Equal,
      Value = "2"
  };

  categoryIDExpressions.Add(categoryIDEqual2Expression);

  //Adding second operation to OR combination
  var categoryIDEqual6Expression = new OperationExpression()
  {
      PropertyName = "CategoryID",
      FilterOperation = FilterOperation.Equal,
      Value = "6"
  };

   categoryIDExpressions.Add(categoryIDEqual6Expression);
   filterExpressions.Add(categoryIDOrExpression);
   return filterExpression;
}


위 코드는 'SupplierID = 4 AND Discontinued = False OR CategoryID = 2 OR CategoryID = 6'라는 복잡한 필터 기준으로 데이터를 필터링합니다. 


WinForms 용 DataFilters의 FilterEditor 소개


새로운 컨트롤이 마음에 드셨기를 바라며, 쉽게 사용하고 애플리케이션에 통합할 수 있기를 바랍니다.


  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.