• 고객센터
  • 교육
  • 매뉴얼
  • 데모
  • 제품소개
조회 수 : 918
2009.05.04 (16:30:06)
* 고객시스템명 : 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 로 돌리면 원래 그값이 나오더라구요...
그럼 수고하세요!!!!!!!!!!!!!!!!!!  
 
Tag List
XE Login