메일로 샘플 드렸습니다.
>* 고객시스템명 : glovis
>* 문의할 Component명 및 버전 : Grid
>* DataSet 버전 : 1,2,1,71
>* Tr 버전 : 1,2,1,45
>* 문의 유형(질문/요청/참조) : 질문
>* 내용 :
>
><script language=JavaScript for=dsID event=onColumnChanged(row,colid)>
> dsID.NameValue(row,"max") = form.max.text;
>
> dsID.NameValue(row,"컬럼(5)") =
> Number(dsID.NameValue(row,"컬럼(1)")) * Number(dsID.NameValue(row,"컬럼(3)"));
> dsID.NameValue(row,"컬럼(6)") =
> Number(dsID.NameValue(row,"컬럼(2)")) * Number(dsID.NameValue(row,"컬럼(4)"));
> dsID.NameValue(row,"컬럼(7)") =
> Number(dsID.NameValue(row,"컬럼(5)")) + Number(dsID.NameValue(row,"컬럼(6)"));
> dsID.NameValue(row,"컬럼(8)") =
> Number(dsID.NameValue(row,"컬럼(7)")) * Number(dsID.NameValue(row,"max"));
>
></script>
>
>max 값 = 2
>
>GRID
>컬럼(0) | 컬럼(1) | 컬럼(2) | 컬럼(3) | 컬럼(4) | 컬럼(5) | 컬럼(6) | 컬럼(8)
> 곱1
> 곱2 2 3 5 2 10 6 32
>
>그리드에서 컬럼(1)의 값, 컬럼(3)의 값을 변경하거나 입력 했을때 두 값이 연산되어 컬럼(5)에 입력되고,
>컬럼(2)의 값, 컬럼(4)의 값을 변경하거나 입력 했을때 두 값이 연산되어 컬럼(6)에 입력됩니다.
>입력된 컬럼(5)의 값과 컬럼(6)의 값을 다시 연산하고
>그 연산한 값에 max 값을 연산하여 컬럼(8)에 입력되게 하려고 합니다.
>
>처음 로딩된 상태나 모든 컬럼에 값이 존재할때는 정상적으로 돌아가는데
>
>위 상황처럼 ROW 1 에 컬럼(0)은 "곱1" 라는 데이터셋 값이 존재, 나머지 값은 존재하지 않을때
>
>버튼을 눌러 이벤트가 발생해 max값이 변경될때, 특히 소수로 변경되면
>
>max = 4.4
>
>GRID
>컬럼(0) | 컬럼(1) | 컬럼(2) | 컬럼(3) | 컬럼(4) | 컬럼(5) | 컬럼(6) | 컬럼(8)
> 곱1
> 곱2 2 3 5 2 10 6 6
>
>위 상황처럼 컬럼(6)의 값이 그대로 컬럼(8)로 들어갑니다.
>어쩔때는 컬럼(3)이나 컬럼(4)를 변경하였을때 그값이 컬럼(8)에 들어가기도 합니다..
>
>즉 데이터셋 이벤트에서 1,2번 연산식은 실행되는데 3번 연산식 부터는 실행이 되지 않고
>변경한 값이나 컬럼(6)의 값이 다시 들어옵니다.
>
>alert(); 으로 계산식을 찍어보면 값은 잘 나오는데
>dsID.NameValue(row,"컬럼(8)") 에는 값이 들어가지 않아 버그가 발생합니다.
>이문제 좀 해결해 주세요....
>아참 그리고 max값을 다시 2 로 돌리면 원래 그값이 나오더라구요...
>그럼 수고하세요!!!!!!!!!!!!!!!!!!