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

getAggregateValue 내부 row.헤더이름에 변수를 사용하는 방법 > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

PureJS getAggregateValue 내부 row.헤더이름에 변수를 사용하는 방법

페이지 정보

작성자 RooK 작성일 2021-06-08 20:05 조회 3,295회 댓글 0건
제품 버전 : 5.20211.781

본문

피벗엔진의 필드 내부에 getAggregateValue 를 사용하여

showRowTotals : Subtotals에 표시되는 %를 제대로 계산하고 싶습니다.

진척율 컬럼을 다른 필드처럼 바인딩하면 단순히 퍼센테이지를 단순 합계해버려서

데이터에 왜곡이 생기고 있습니다.

한참 구글링 하던 끝에 getAggregateValue를 이용하여 row.헤더 를 사용하면

Subtotals의 데이터에서 재계산되는걸 알아내었는데

문제는 헤더를 언어/데이터에 따라 변수로 입력해야하는데

row.변수는 먹히지 않네요...

답변 부탁드립니다.


소스는 아래와 같습니다.

(Winter.lang은 저희쪽에서 만든 다국어처리 로직입니다)

verCdMon = verCdMon + Winter.lang('lbl.ame.curMonQty');
    var billing = Winter.lang('lbl.ame.BillingQty');
    
    // initialize pivot engine
    var ng = new wjOlap.PivotEngine({
        autoGenerateFields: false,
        fields: [
            { binding: 'TEAM_CD', header: Winter.lang('lbl.ame.teamCode'},//팀코드
            { binding: 'TEAM_CODE_NAME', header: Winter.lang('lbl.ame.teamName'},//팀명
            { binding: 'PART_CD', header: Winter.lang('lbl.ame.partCd'},//파트코드
            { binding: 'PART_CODE_NAME', header: Winter.lang('lbl.ame.partName'},//파트명
            { binding: 'CUST_CD', header: Winter.lang('lbl.wnt.custCd'},          //고객코드
            { binding: 'CUST_NM', header: Winter.lang('lbl.wnt.custNm'), width: 150 },          //고객명
            { binding: 'PRD_CD', header: Winter.lang('lbl.ame.prdCd'), width: 150 },            //제품코드
            { binding: 'PROD_LVL_1_NM', header: Winter.lang('lbl.ame.ProdScmHrcy1'},   //대분류
            { binding: 'PROD_LVL_2_NM', header: Winter.lang('lbl.ame.ProdScmHrcy2'},   //중분류
            { binding: 'DSTRB_ROUT_CD', header: Winter.lang('lbl.ame.crclPathCd'}, //유통경로
            { binding: 'LAST_MON_QTY', header: Winter.lang('lbl.ame.lastMPfrslt'), aggregate: 'Sum', format: 'n2' }, //전월실적
            { binding: 'CURR_MON_QTY', header: verCdMon, aggregate: 'Sum', format: 'n2' }, //M월계획
            { binding: 'SALE_ORD_QTY', header: Winter.lang('lbl.ame.salesOrdQty'), aggregate: 'Sum', format: 'n2' }, //수주실적
            { binding: 'SHTS_QTY', header: Winter.lang('lbl.ame.shtsQty'), aggregate: 'Sum', format: 'n2' }, //적송실적
            { binding: 'BILLING_QTY', header: billing, aggregate: 'Sum', format: 'n2' }, //Billing실적
            { binding: 'SALE_ORD_QTY_RATE', header: Winter.lang('lbl.ame.salesOrdQtyRate'), aggregate: 'Sum', format: 'p2' }, //수주진척률
            { binding: 'SHTS_QTY_RATE', header: Winter.lang('lbl.ame.shtsQtyRate'), aggregate: 'Sum', format: 'p2' }, //적송진척률
            { header: Winter.lang('lbl.ame.BillingQtyRate'), format: 'p2', dataType:'Number', 
                getAggregateValue: row => row.verCdMon != 0 ? row.billing / row.verCdMon : 0
            } //Billing진척률
        ],
        itemsSource: rowData,
        columnFields: [
        ],
        filterFields: [
        ],
        //'전월실적','M월계획','수주실적','적송실적','Billing'
        valueFields: [
            Winter.lang('lbl.ame.lastMPfrslt'), //전월실적
            verCdMon, //M월계획
            Winter.lang('lbl.ame.salesOrdQty'), //수주실적
            Winter.lang('lbl.ame.shtsQty'), //적송실적
            billing, //Billing실적
            Winter.lang('lbl.ame.salesOrdQtyRate'), //수주실적
            Winter.lang('lbl.ame.shtsQtyRate'), //적송실적
            Winter.lang('lbl.ame.BillingQtyRate'//Billing실적
        ],
        //'팀명','파트명',판매처,대분류,중분류,제품코드,유통경로
        rowFields: [
            Winter.lang('lbl.ame.teamName'),//팀명
            Winter.lang('lbl.ame.partName'),//파트명
            Winter.lang('lbl.wnt.custNm'),          //고객명
            Winter.lang('lbl.ame.ProdScmHrcy1'),   //대분류
            Winter.lang('lbl.ame.ProdScmHrcy2'),   //중분류
            Winter.lang('lbl.ame.prdCd'),           //제품코드
        ],
        showRowTotals: 'Subtotals',
        showColumnTotals: 'None'
    });
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

PureJS Re: getAggregateValue 내부 row.헤더이름에 변수를 사용하는 방법

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

페이지 정보

작성자 GCK루시 작성일 2021-06-10 14:48 댓글 0건

본문

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


문의 주신 내용이 object.key 방식으로 객체를 접근했을 때, 값을 가져오지 못한다는 말씀이실까요? 만일, 맞으시다면 object['key'] 형식으로 속성에 접근해보시길 추천 드립니다. object['key'] 방식은 속성을 변수로 접근 가능하기에 언어/데이터에 따라 값이 변경되는 변수를 사용하시는데 있어 해당 방식이 알맞을 것이라 생각합니다.

아래는 object['key'] 방식을 이용하여 row 객체를 접근하여 값을 얻는 코드입니다.

getAggregateValue: row => row.Bonus ? row[saleVal] / row.Bonus : 0}


참고적으로 샘플에서는 Sale를 대문자로 전환하고 saleVal 변수에 할당한 뒤, field의 값으로 사용하고 있으며 Bonus 열의 getAggregateValue 속성에서 해당 변수를 이용해서 객체 속성에 접근 및 계산 결과가 나오시는 것을 확인하실 수 있습니다.



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


감사합니다. 

그레이프시티 드림 



* 그레이프시티(GrapeCity)는 개발자를 위하여 ComponentOne(컴포넌트원), Spread(스프레드), ActiveReports(액티브리포츠), SpreadJS(스프레드JS), Wijmo(위즈모)와 같은 엑셀 스프레드시트 리포팅 그리드와 차트 등 다양한 종류의 .NET JavaScript(자바스크립트) 컴포넌트 툴을 생산하고있는 개발툴 전문 회사 입니다



댓글목록

등록된 댓글이 없습니다.

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