TEST 테이블의 ZCATX200 필드에 수식이 들어 있는 그러니까 아래와 같이요.
TEST-ZCATX200 = ' ( T + ( B * ( 1 + 0.07 ) * Z ) * 1.02 )' .
물론 위에 T,B,Z 값은 특정 숫자 값으로 REPLACE 를 할겁니다.
이렇게 특정 필드 값에 수식과 값이 있는 경우 위 수식에 의한 계산 결과 값을
받아내려면 어떻게 해야할까요??
필드심볼을 써야될듯 하기도 한데..
좋은 방법 좀 알려주세요~~
댓글 7
-
정군
2009.06.15 19:33
-
열공아밥
2009.06.15 19:43
generate 구문을 사용해도될것 같다는 생각이 드네요.
-
홍구나라국민
2009.06.15 20:21
EVAL_FORMULA 이란 펑션을 이용해 보세요.
-
열공아밥
2009.06.15 21:00
홍구나라국민님 감사합니다.
해당 함수의 데모 프로그램도 있네요
RSCALC01
-
늙은 밥퍼
2009.06.16 00:22
이거 함 해보세요 ^^
DATA: OUTPUT TYPE F .
CALL FUNCTION 'EVAL_FORMULA'
EXPORTING
FORMULA = '( 1 + ( 2 * ( 1 + 0.07 ) * 3 ) * 1.02 )'
IMPORTING
VALUE = OUTPUT.
WRITE :/ OUTPUT.
-
한마크
2009.06.16 00:35
아 감사합니다..
위에 홍구나라국민님과 늙은 밥퍼님..말씀대로 했더니 잘됩니다.
필드심볼은 사용할 필요가 없네요^^;..
-
정군
2009.06.16 01:45
함수가 있네요.
좋은 것을 배우고 갑니다.
재밌는 아이디어라서 짬을 내서 고민하다가, WC의 fomula가 기억나서 debug를 좀 했습니다.
정확하게는 모르겠지만, WC의 foumla는 그것에 해당하는 프로그램이 자동으로 만들어져 있는 듯 합니다.
즉, TEST-ZCATX200 에 있는 식을 그대로 프로그램으로 만들어두고
그 프로그램을 호출해서 결과를 받아오는 식으로 되어 있다는 의미와 동일합니다.
제 생각에 field symbol은 말씀하시는 용도가 아니므로 사용이 불가할 듯 보입니다.
앞에 이야기한 WC의 방식과 같이 하지 않으려면, 문자열을 해독해서 수식을 실행하는 함수를 하나
짜시는게 맞을 것 같습니다.