WinForms윈폼 그룹핑 설정
페이지 정보
작성자 tomleee 작성일 2024-03-07 09:51 조회 36회 댓글 0건본문
관련링크
excel 파일을 import 할 시에 아이템명을 기준으로 그룹을 생성하는 기능을 구현하고 싶습니다. 방법이 있을까요?
댓글목록
등록된 댓글이 없습니다.
excel 파일을 import 할 시에 아이템명을 기준으로 그룹을 생성하는 기능을 구현하고 싶습니다. 방법이 있을까요?
등록된 댓글이 없습니다.
tomleee 님, 안녕하세요.
메시어스입니다.
먼저, Excel 파일을 Spread로 불러올 때 자동으로 그룹핑을 설정해주는 옵션은 없기 때문에, 먼저 Excel 파일을 Spread로 불러온 후 그룹을 설정하는 동작을 추가해주셔야 합니다.
Spread.NET에서 지원하는 그룹화 기능에 대한 내용은 아래 링크된 도움말에서 확인해보실 수 있습니다.
- Spread WinForms 16 | Managing Grouping of Rows of User Data
그룹화 방법에 대한 정확한 안내를 위해 "아이템명을 기준으로 그룹을 생성한다"는 의미를 조금 더 구체적으로 설명 부탁드립니다.
아래 이미지와 같이 확대/축소를 할 수 있는 그룹을 설정하는 것을 말씀하시는 것일까요?
혹은 아이템명을 기준으로 정렬하고 셀을 병합하여 같은 아이템끼리 모여있게 하거나, 또는 다른 방식으로 보여주길 원하시는 것일까요?
보여주고 싶으신 화면 예시 이미지를 함께 공유해주시면, 적용 가능한 방법이 있는지 확인하여 안내드리겠습니다.
감사합니다.
메시어스 드림
등록된 댓글이 없습니다.
등록된 댓글이 없습니다.
tomleee 님, 안녕하세요.
메시어스입니다.
1. Excel을 Import한 후 Item을 기준으로 그룹핑하는 방법
Excel 파일을 먼저 불러온 후, 타겟 시트의 데이터 모델에 대한 Group Data Model을 설정하여 특정 컬럼을 기준으로 그룹화 할 수 있습니다.
아래 샘플 코드를 참고 부탁드립니다.
fpSpread1.OpenExcel(fileName, FarPoint.Excel.ExcelOpenFlags.ColumnHeaders | FarPoint.Excel.ExcelOpenFlags.TruncateEmptyRowsAndColumns); // GroupDataModel 설정 FarPoint.Win.Spread.SheetView sheet = fpSpread1.ActiveSheet; FarPoint.Win.Spread.Model.GroupDataModel gdm = new FarPoint.Win.Spread.Model.GroupDataModel(sheet.Models.Data); sheet.Models.Data = gdm; // B열 기준으로 그룹화 FarPoint.Win.Spread.SortInfo[] siList = new FarPoint.Win.Spread.SortInfo[] { new FarPoint.Win.Spread.SortInfo(1, true) }; gdm.Group(siList, null);
2. 아이템의 토탈 Qty가 row header에 보여지게 하는 방법
아쉽게도, 그룹의 헤더는 그룹핑 기준 텍스트를 보여주는 데에만 사용이 되어, 말씀하신 기능을 지원하지 않습니다.
대신 그룹 푸터를 사용해 토탈 Qty를 표현해보실 수 있습니다. 아래 샘플을 참고 부탁드립니다.
sheet.GroupFooterVisible = true; FarPoint.Win.Spread.Model.Group g; for (int i=0; i<gdm.Groups.Count; i++) { g = (FarPoint.Win.Spread.Model.Group)gdm.Groups[i]; ((FarPoint.Win.Spread.Model.IAggregationSupport)g.GroupFooter.DataModel).SetCellAggregationType(0, 2, FarPoint.Win.Spread.Model.AggregationType.Sum); }
3. import 를 마쳤을때에는 row header만 보이는 상태를 default로, 필요한 그룹만 열어서 볼 수 있는 기능
GroupingPolicy를 CollapseAll로 설정하여 그룹화 작업이 발생했을 때 모든 그룹을 접을 수 있습니다. 그룹화 전에 아래 코드를 추가하여, Excel Import 후 그룹화를 했을 때 모든 그룹이 Collapse 되도록 설정해보시기 바랍니다.
fpSpread1.ActiveSheet.GroupingPolicy = FarPoint.Win.Spread.Model.GroupingPolicy.CollapseAll;
감사합니다.
메시어스 드림
등록된 댓글이 없습니다.