* 고객시스템명 : glovis
* GAUCE 버전 : 4.X
* WAS 종류(WebLogic 등등) : weblogic
* DB 종류 : oracle
* 문의 유형(질문/요청/참조) : 질문
* 내용 :
<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 로 돌리면 원래 그값이 나오더라구요...
그럼 수고하세요!!!!!!!!!!!!!!!!!!