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

calculatedField 를 추가한 이후 에러가 발생합니다. > Q&A | 토론

본문 바로가기

Wijmo

Q&A | 토론

PureJS calculatedField 를 추가한 이후 에러가 발생합니다.

페이지 정보

작성자 nxdev1 작성일 2024-01-25 18:30 조회 60회 댓글 0건
제품 버전 : 5.20221.842
컨트롤 이름 : wijmo.collections.CollectionView

본문

안녕하세요.

grid에서 result1, result2, total_result 이름의 colum들을 계산된 필드로 사용하고 싶어서

calculatedFields: {
                                result1: (aaa) => (aaa.insert1 * aaa.insert2 * 4.9) / (aaa.insert3),
                                result2: (aaa) => (aaa.insert4 * aaa.insert5 * 4.9) / (aaa.insert6),
                                total_result: (aaa) => (aaa.result1 + aaa.result2) / 2,

                            }

위 코드를 맨 아래 코드에 추가한 이후에 이러한 타입 에러

(TypeError: 'ownKeys' on proxy: trap returned duplicate entries)

가 뜹니다.
 

5756af636c876caaec698b88ab3675dd_1706174870_5762.png
어떻게 해결하면 좋을지 알려주시면 감사하겠습니다.

아래는 calculatedField를 사용한 코드입니다.

var grid = new wijmo.grid.FlexGrid('#lasGrid');

fetch('/getCalTable', {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: selected // String 타입의 변수
}).then(response => response.json())
.then(data => {

grid.columns.clear();
var columns = [
{ binding: 'insert1', header: '1-1' },
{ binding: 'insert2', header: '1-2' },
{ binding: 'insert3', header: '1-3' },
{ binding: 'insert4', header: '2-1' },
{ binding: 'insert5', header: '2-2' },
{ binding: 'insert6', header: '2-3' },
{ binding: 'result1', header: '1회 result' },
{ binding: 'result2', header: '2회 result' },
{ binding: 'total_result', header: '함량 평균' }
];


columns.forEach(column => {
let col = new wijmo.grid.Column(
column
);
grid.columns.push(col);
})

LasTD = new wijmo.collections.CollectionView(data, {
trackChanges: true,
calculatedFields: {
result1: (aaa) => (aaa.insert1 * aaa.insert2 * 10) / (aaa.insert3),
result2: (aaa) => (aaa.insert4 * aaa.insert5 * 10) / (aaa.insert6),
total_result: (aaa) => (aaa.result1 + aaa.result2) / 2,

}
});

grid.itemsSource = LasTD;
grid.newRowAtTop = true;
});
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

2 답변

PureJS Re: calculatedField 를 추가한 이후 에러가 발생합니다.

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

페이지 정보

작성자 MESCIUS루시 작성일 2024-01-26 13:10 댓글 2건

본문

안녕하세요 메시우스입니다.


해당 에러메시지는 일반적으로 CalculatedField를 사용하는데 있어 계산하는 key와 value가 비슷한 값을 가질 때 일어납니다. 다만 key와 value가 비슷한 값으로 설정하시지 않았으며 저희 쪽에서 재현이 되지 않아 정확한 원인 파악이 어려운 상황입니다. 관련하여 아래 샘플을 공유드리오니 저희 쪽으로 재현 가능한 샘플 프로젝트를 공유해주신다면 재현 및 디버깅 후 안내드리겠습니다.


 


감사합니다.

메시어스 드림

댓글목록

nxdev1님의 댓글

nxdev1 작성일

autoGenerateColumns: false
이 코드를 추가하니 잘 동작하네요.
감사합니다.

추가로 좀 다른 주제의 질문이긴 한데 column에서 format으로 서식을 정할 때 format: 'n2'를 하면
소수점 두자리까지 보여주는게 아닌 세자리에서 반올림 하는 것 같은데
반올림 없이 두자리까지만 표기할 수 있는 format이 있을까요?

감사합니다. 

MESCIUS루시님의 댓글의 댓글

MESCIUS루시 작성일

안녕하세요 메시어스입니다.

문의하신 내용은 확인 중에 있으며 업데이트가 되는대로 안내드리겠습니다.

감사합니다.
메시어스 드림

PureJS Re: calculatedField 를 추가한 이후 에러가 발생합니다.

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

페이지 정보

작성자 MESCIUS루시 작성일 2024-01-31 10:03 댓글 0건

본문

안녕하세요 메시어스입니다.


본사 개발팀에 확인해본 결과, FlexGrid 컨트롤에 대한 해당 동작은 예상된 동작으로 열의 형식 속성이 설정되면 셀 값이 반올림되어 데이터가 서식이 지정됩니다. 


말씀하신 사용자 지정 서식으로 데이터를 표시하기 위해서는 열의 cellTemplate 속성을 사용하여 데이터를 원하는 형식으로 설정해주셔야 합니다. 


자세한 코드는 아래 샘플에서 확인할 수 있습니다. Globalize.format 메서드의 4번째 파라미터는 숫자 값의 반올림 여부를 설정하며 true로 지정 시, 값을 잘라내줍니다.



- format API 문서


관련 API 문서를 공유드리며 다른 궁금한 점이 생기면 문의주시기 바랍니다.


감사합니다.

메시어스 드림


댓글목록

등록된 댓글이 없습니다.

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