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

Winforms FlexGrid의 열 바닥글(Column Footer)을 이용한 데이터 요약하기 > 블로그 & Tips

본문 바로가기

ComponentOne

블로그 & Tips

Winforms FlexGrid의 열 바닥글(Column Footer)을 이용한 데이터 요약하기

페이지 정보

작성자 GrapeCity 작성일 2019-08-23 00:00 조회 6,076회 댓글 0건

본문

첨부파일

FlexGrid의 열 바닥글(Column Footers)


보다 논리적이고 이해하기 쉬운 데이터를 만들기 위해, ComponentOne WinForms 2019 v2 릴리스에는 FlexGrid에 열 바닥글(Footer)이 도입되었습니다 . 이제 그리드의 열 바닥글(Footer)에 집계를 표시하고, 표시되는 내용 및 표시 방식에 대해서 완전히 제어할 수 있습니다.


Marvel 영화의 총 컬렉션을 분석하고 요약하는 매우 흥미로운 시나리오를 통해, 그리드 열 바닥글(Column Footer)의 사용법과 구현을 이해하고자 합니다. 슈퍼 히어로라는 영화 프랜차이즈에서 마블은 오랫동안 지배적인 영화였습니다. 2008 년 아이언 맨 (Iron Man) 이 전 세계 박스 오피스에서 213억 3 천만 달러 이상을 벌어 들인 이후 줄곧 뜨거운 상승세를 이어가고 있습니다. 이 영화는 많은 사람들의 인구 통계에 호소하기 때문에, 이것을 예로 사용하고자 합니다.


FlexGrid에서 열 바닥글(Footer)을 사용하여 Marvel 동영상의 전체 컬렉션을 요약하고 표시합니다. 모든 영화에 할당된 최대 및 최소 예산, 모든 영화 중에서 가장 높은 개봉 주간 컬렉션, 현재까지의 전 세계 컬렉션 등의 집계를 보여줍니다.


main.png



FlexGrid에서 열 바닥글(Column Footer) 구현


예산, 오픈 주말 컬렉션 및 다양한 Marvel 영화에 대한 전세계 컬렉션에 대한 정보가 포함된 데이터 소스에 그리드(Grid)를 바인딩합니다. 이제 FlexGrid에서 열 단위 집계를 표시하기 위해 바닥글(Footer) 행을 추가 해야합니다.


FooterDescription 유형의 항목을 FlexGrid의 Footers 객체의 Descriptions 컬렉션에 추가하여 바닥글 행을 추가할 수 있습니다.


__flex.Footers.Descriptions.Add(new FooterDescription ());_


Footer.png


그리드에 여러 바닥글 행을 추가할 수 있습니다.



위에서 추가 된 바닥글 행을 사용하여, 필요한 열에 대한 집계를 표시하는 방법을 살펴 보겠습니다.



고정된 위치(Fixed Position)


바닥글이 그리드의 맨 아래에 고정되어 스크롤할 수 없는지, 또는 마지막에 표시되고 일반 행처럼 스크롤이 되는지 여부를 결정할 수 있습니다. 아래와 같이 FlexGrid의 Footers 객체의 Fixed 속성을 설정하면 됩니다.


__flex.Footers.Fixed = true;_


위 예제에서 바닥글 위치는 고정되어 있습니다. 디자이너를 통해 속성 창(property window)에서 바닥글 옵션을 확장하여 설정할 수도 있습니다.



바닥글의 캡션(Caption)


계산된 값과 함께 텍스트를 표시하여 보다 의미있게 하려면, 요약값 앞에 텍스트를 표시하는 Caption 속성을 사용할 수 있습니다.


이 예에서는 바닥글 행의 각 셀에 캡션(Caption)을 추가하여 계산을 수행했습니다.


_flex.Footers.Descriptions[0].Aggregates[0].Caption = " Max Budget (In Million $): ";



집계(Aggregates)


Aggregate 속성은 AggregateEnum 멤버 (예 : Max, Min, Sum, Count, Percent, Average 등)를 통해 설정하여 열의 집계 값을 계산할 수 있습니다.


아래 사용 사례에서는 Aggregate 속성을 사용하여 최대 예산, 평균 주말 수집을 다음과 같이 계산했습니다.


__flex.Footers.Descriptions[0].Aggregates.Add(new AggregateDefinition() { Column = 4, Aggregate = AggregateEnum.Max });_

__flex.Footers.Descriptions[0].Aggregates[0]. Aggregate = AggregateEnum.Max;_


표현(Expression)


이는 여러 열을 기반으로 복잡한 계산을 수행할 수 있는 주요 속성입니다. 이 속성을 사용하려면 C1.Win.ExpressionEditor 어셈블리 에 대한 참조를 추가하고, Aggregate 속성이 AggregateEnum.None으로 설정되어 있는지 확인하십시오.


이 예에서는 지금까지 Marvel 필름의 총 총 컬렉션을 계산하기 위해, 그리드의 마지막 열 "WorldWideCollection"에서 Expression을 사용했습니다.


__flex.Footers.Descriptions[0].Aggregates[3].Expression = "Sum([WorldWide Collection]-[Budget])";_

AggreGateFinal (1) .png



Styling 및 OwnerDraw


바닥글 행의 스타일을 지정하기 위해, FlexGrid 컨트롤의 네임스페이스 [C1.Win.C1FlexGrid]는 backColor, forecolor, font, height 및 width와 같은 여러 속성을 노출하는 CellStyleCollection 이라는 클래스를 제공합니다 .


열 바닥 글은 OwnerDraw를 사용하여 사용자 정의 셀 드로잉을 수행할 수도 있습니다.



디자인 타임 지원


디자인 타임에 바닥글 행을 추가하고, 사용자 지정할 수도 있습니다. 아래와 같이 진행합니다:


  • Visual Studio의 속성 창에서 그리드의 속성을 엽니다.

  • 바닥글 속성 아래에, "설명(Description)"속성의 줄임표 단추를 클릭하여, 바닥글 "설명 컬렉션 편집기 (FooterDescription Collection Editor)"를 엽니다 .

propertyWindow.png

footerDescriptinEditor.png


FooterDescription Collection Editor
 에서 Aggregates 속성에 대한 줄임표 단추를 클릭하면 나타나는 
AggregateDefinition Collection Editor를 사용하여, 디자이너를 통해 위에 제공된 모든 속성을 간단하게 설정할 수 있습니다 .

Aggregate.png


이제 첨부한 샘플 프로젝트를 통해 직접 해보시기를 권장드립니다.

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

댓글목록

등록된 댓글이 없습니다.

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

태그1

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