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

FlexGrid 2019 v3 에서의 열 그룹 > 블로그 & Tips

본문 바로가기

FlexGrid 2019 v3 에서의 열 그룹

페이지 정보

작성자 GrapeCity 작성일 2019-11-13 08:46 조회 4,385회 댓글 0건

본문

FlexGrid는 항상 마스터/세부 정보, 데이터 그룹화, 트리 스타일 그룹화 및 행 세부 사항과 같은 다양한 형식의 계층적 데이터를 지원했습니다. 데이터를 행으로 그룹화하고 해당 그룹을 조작하는 것은 항상 간단했지만, 지금까지는 데이터를 열로 쉽게 그룹화할 수 없었습니다. 


이 기능에 대한 수많은 요청을 받았으며, 이를 수행하는 방법을 보여주는 샘플을 만들었지만 상당한 양의 코드가 필요했습니다.


최신 FlexGrid 릴리스에는 사용하기 쉬운 열 그룹에 대한 지원이 추가되었습니다.


예를 들어, 각 항목에 계층 구조 자산 목록이 포함된 데이터가 있다고 가정해보겠습니다.

let data = [  
{  
    name: 'Constant Growth', currency: 'USD',  
    perf: { ytd: .0523, m1: 0.0142, m6: 0.0443, m12: 0.0743 },  
    alloc: { stock: 0.17, bond: 0.32, cash: 0.36, other: 0.15, amount: 23432 }  
}, {  
    name: 'Optimus Prime',  
    currency: 'EUR',  
    perf: { ytd: .0343, m1: 0.043, m6: 0.0244, m12: 0.0543 },  
    alloc: { stock: 0.61, bond: 0.8, cash: 0.9, other: 0.22, amount: 43223 }  
}, {  
    name: 'Crypto Planet',  
    currency: 'BTC',  
    perf: { ytd: .0343, m1: 0.014, m6: 0.034, m12: 0.01243 },  
    alloc: { stock: 0.1, bond: 0, cash: 0, other: 0.9, amount: 2234 }  
}, { …  


이 데이터를 쉽게 다음과 같이 FlexGrid 바인딩 할 수 있습니다.

let theGrid = new FlexGrid('#theGrid', {  
  autoGenerateColumns: false,  
  columns: [  
    { binding: 'name', header: 'Name', width: 150 },  
    { binding: 'currency', header: 'Curr', width: 80, align: 'center' },  
    { binding: 'perf.ytd', header: 'Perf/YTD', format: 'p2', width: 100 },  
    { binding: 'perf.m1', header: 'Perf/1M', format: 'p2', width: 80 },  
    { binding: 'perf.m6', header: 'Perf/6M', format: 'p2', width: 80 },  
    { binding: 'perf.m12', header: 'Perf/12M', format: 'p2', width: 80 },  
    { binding: 'alloc.stock', header: 'Stocks', format: 'p0', width: 80 },  
    { binding: 'alloc.bond', header: 'Bonds', format: 'p0', width: 80 },  
    { binding: 'alloc.cash', header: 'Cash', format: 'p0', width: 80 },  
    { binding: 'alloc.other', header: 'Other', format: 'p0', width: 80 },  
    { binding: 'alloc.amount', header: 'Amount', format: 'c0', width: 100 }  
  ],  
  itemsSource: getFundData()  
});  


그리고 다음과 같은 훌륭한 결과를 얻을 수 있습니다. :

 FlexGrid의 열 그룹


그러나 최신 버전의 FlexGrid에서는 columnGroups 속성을 계층적 버전의 열 데이터로 설정하면 훨씬 더 나은 결과를 얻을 수 있습니다.

let theGrid = new FlexGrid('#theGrid', {
  autoGenerateColumns: false, 
  columnGroups: [
    { binding: 'name', header: 'Name', width: 150 },
    { binding: 'currency', header: 'Curr', width: 80, align: 'center' },
    { header: 'Perf', align: 'center', collapseTo: 'perf.ytd', columns: [
      { binding: 'perf.ytd', header: 'YTD', format: 'p2', width: 100 },
      { binding: 'perf.m1', header: '1 M', format: 'p2', width: 80 },
      { binding: 'perf.m6', header: '6 M', format: 'p2', width: 80 },
      { binding: 'perf.m12', header: '12 M', format: 'p2', width: 80 }
    ]},
    { header: 'Allocation', align: 'center', collapseTo: 'alloc.amt', columns: [
      { binding: 'alloc.stock', header: 'Stocks', format: 'p0', width: 80 },
      { binding: 'alloc.bond', header: 'Bonds', format: 'p0', width: 80 },
      { binding: 'alloc.cash', header: 'Cash', format: 'p0', width: 80 },
      { binding: 'alloc.other', header: 'Other', format: 'p0', width: 80 },
      { binding: 'alloc.amount', header: 'Amount', format: 'c0', width: 100 }
    ]}
  ],
  itemsSource: getFundData()
});


열 데이터에 다른 열을 포함하는 두 개의 "부모" 열을 추가한 것을 제외하고 열 데이터는 거의 동일합니다.


결과는 다음과 같습니다.

 FlexGrid의 열 그룹


이제 성능(Perf) 및 할당(Allocation) 데이터가 서로 다른 제목으로 그룹화되어 정보를 훨씬 쉽게 이해할 수 있습니다.


열은 이미 그룹으로 나뉘어져 있으므로 각 그룹에서 "collapseTo" 열을 지정할 수 있습니다. 이렇게하면 그룹이 축소되고 그룹이 축소될 때 표시될 열을 정의 할 수 있습니다.


예를 들어, 성능 분석에 관심이 있는 사용자는 이 정보를 얻기 위해 할당 정보를 축소하도록 선택할 수 있습니다.


 FlexGrid의 열 그룹


열을 원하는 수준으로 그룹화 할 수 있습니다.


 FlexGrid의 열 그룹


가장 좋은 부분은 코드를 전혀 작성하지 않고도 이 모든 것을 선언적으로 수행할 수 있다는 것입니다.


이 새로운 기능을 업무에 활용해 보시길 바랍니다.



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

댓글목록

등록된 댓글이 없습니다.

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

태그1

인기글

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