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

소계 합계 처리 > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

ReactJS 소계 합계 처리

페이지 정보

작성자 토끼바람 작성일 2023-01-05 15:07 조회 928회 댓글 0건
제품 버전 : 5.20221.857
컨트롤 이름 : flexgrid

본문

첨부파일

그리드에서 원본데이터가 있고 소계 와 합계 표시를 유형별로 할수있는지요?



원본데이터는 

[{DIV:"A", SUB_DIV:"B", "AMOUNT": 100}

,{DIV:"A", SUB_DIV:"C", "AMOUNT": 200}

,{DIV:"A", SUB_DIV:"D", "AMOUNT": 300}

,{DIV:"가", SUB_DIV:"나", "AMOUNT": 100}

,{DIV:"가", SUB_DIV:"다", "AMOUNT": 200}

,{DIV:"가", SUB_DIV:"라", "AMOUNT": 300}

]


이렇게 되어있을때 

1. 이미지 처럼 표현이 가능한지 문의 합니다. (좌측형태, 우측형태, 2가지)


2. 합계나 소계를 별도로 계산하지 않고 그리드에서 가능할러니죠??


3. 표현이 가능하고 마지막 컬럼에 있는 Button에 특정한 값들을 포함해서 함수를 호출 할수있는지요?




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

댓글목록

등록된 댓글이 없습니다.

2 답변

ReactJS Re: 소계 합계 처리

추천0 이 글을 추천하셨습니다 비추천0

페이지 정보

작성자 GCK다이애나 작성일 2023-01-05 16:36 댓글 1건

본문

안녕하세요 그레이프시티입니다.


문의 주신 내용에 대하여 아래의 내용을 확인 후, 답변 부탁 드립니다.

  1. 전달해 주신 이미지에서 확인 가능한 2가지의 형태가 각각 표현된 2개의 그리드를 생성하는 방법에 대한 말씀은, 아래의 이미지와 같이 2가지의 형태가 각각 표현된 그리드를 생성하는 방법에 대해 문의 주신 것으로 이해하면 될까요?
    a9372619850582d828764751fd3e48ef_1672904005_3429.png

  2. 합계나 소계를 별도로 계산하지 않고 그리드에서 계산하는 방법에 대한 말씀은, FlexGrid 컨트롤의 속성 혹은 메서드를 이용해 특정 그룹에 대한 데이터 소계 및 전체 데이터 합계를 구하는 방법에 대한 것으로 이해하면 될까요?
  3. 표현이 가능하고 마지막 컬럼에 있는 Button에 특정한 값들을 포함해서 함수를 호출하는 방법에 대한 말씀은, 1번 항목의 문의와 같이 그리드를 표현하는 것이 가능한 경우 그리드의 맨 마지막 열의 헤더에 존재하는 버튼 클릭 시 매개변수가 전달된 함수를 호출하는 방법에 대한 것으로 이해하면 될까요? 


정확한 답변을 드리기 위해 요청 드리며 확인 후, 회신하여 주시기 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

토끼바람님의 댓글

토끼바람 작성일

네..1, 2,3, 번 다  문의한 내용의 이 맞습니다.

ReactJS Re: 소계 합계 처리

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK다이애나 작성일 2023-01-10 10:58 댓글 0건

본문

안녕하세요 그레이프시티입니다.


문의 주신 내용에 대해 답변 드립니다.

1. 전체 그리드 및 각 그룹에 대한 데이터의 집계를 나타내는 행을 커스터마이징하여 그리드에 추가하는 방법

그리드에 바인딩된 데이터를 groupDescriptions 속성을 이용하여 특정 열에 대해 그룹화 한 후, 집계를 나타낼 열의 aggregate 속성을 'Sum' 으로 지정하여 전체 그리드 및 각 그룹에 대한 데이터의 집계를 나타낼 수 있습니다. 전체 그리드에 대한 데이터의 집계를 나타내는 행을 맨 하단에 표시하시려는 경우, columnFooter 패널에 GroupRow 를 추가하는 코드를 FlexGrid 의 initialized 이벤트에 작성하시면 됩니다. 

전달해 주신 이미지의 첫 번째 그리드 형태와 같이 각 그룹에 대한 데이터 집계를 나타내는 그룹 행을 그룹의 상단이 아닌 하단에 표시하시길 원하신다면 splice 메서드를 이용하여 해당 그룹 행의 위치를 변경하시면 됩니다. 또한, 각 그룹에 대한 데이터 집계를 나타내는 그룹 행을 커스터마이징 하시려는 경우 FlexGrid 의 formatItem 이벤트를 이용하여 그룹 행에 해당하는 셀을 커스터마이징 하시면 됩니다.

자세한 코드는 아래의 샘플을 참고해 보시기 바랍니다.

샘플에서는 formatItem 이벤트에 innerHTML 속성을 통해 그룹을 접는 버튼을 그룹 행에서 제거하고 style 속성을 통해 그룹 행의 CSS 스타일 속성을 지정하는 코드를 작성하여 그룹 행을 커스터마이징 하였습니다.


이와 관련된 API 문서를 공유 드리오니 참고해 보시기 바랍니다.

- 데이터 아래에 집계 표시 (React)

- 사용자 정의 집계 (React) 데모

- initialize API 문서

- formatItem API 문서

- groupDescriptions API 문서

- aggregate API 문서


2. FlexGrid 컨트롤의 속성 혹은 메서드를 이용해 전체 그리드 및 각 그룹에 대한 데이터의 집계를 구하는 방법

해당 문의와 관련하여 1번 항목의 내용을 참고해 주시기 바랍니다.


3. 그리드의 마지막 열 헤더의 버튼 클릭 시 매개 변수가 전달된 사용자 정의 함수를 호출하는 방법

formatItem 이벤트를 통해 그리드의 마지막 열 헤더에 버튼을 생성 후, 해당 버튼의 클릭 이벤트에 매개 변수가 전달된 사용자 정의 함수를 호출하는 코드를 작성하시면 됩니다.

이때 버튼이 존재하는 셀의 정보를 이용하시려는 경우, 아래의 코드와 같이 사용자 정의 함수를 통해 버튼의 클릭 이벤트를 지정해 주셔야 합니다.

  grid.formatItem.addHandler((s, e) => {
    // 버튼 추가
    if (e.panel == s.columnHeaders) {
      if (e.col == 3) { // 그리드의 맨 마지막 열
        e.cell.innerHTML = "<button>Button</button>";
        // 버튼 클릭 이벤트 추가
        // click 메서드 호출 시 e.cell 값이 업데이트 되어 잘못된 값이 들어가는 것을 방지
        addButton(e.cell, "매개 변수");
      }
    }
  });

  // 버튼에 클릭이벤트 추가
  function addButton(cell, string) {
    let button = cell.querySelector("button");
    button.addEventListener("click", function (event) {
      click(cell, string); // -> 매개변수가 전달된 사용자 정의 함수를 호출하는 자리
    });
  }

  // 매개 변수가 전달된 사용자 정의 함수
  function click(p, s) {
    // 열 헤더의 버튼이 클릭 되었을 때
    if (p.querySelector("button")) {
      console.log(s);
    }
  }


다른 궁금한 점이 생기면, 문의 주시기 바랍니다.


감사합니다.

그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

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