제가 질문을 올렸는데 PAI에서 인터널 테이블로 저장하게 만들면
화면에 입력한 값이 엔터를 치고 사라지지 않게 된다고 말씀들을 해주셨습니다.
그래서 인터널 테이블로 저장을 하고 싶은데... 아직 개념이 안 잡혀서 그런지 인터널 테이블에 어떻게 들어가는지
찾을 수가 없습니다. 책도 열심히 보지만 도통 모르겠네요.
레포트의 경우는 파라미터나 셀렉트옵션으로 받은 값을 인터널 테이블로 append 해주면 간단히 할 수 있는데...
모듈 풀에서는 메인에서 스크린 페인터에서 사용하는 필드를 선언하는 건 아닌 것 같네요.
그렇다고 screen에 가도 선언된 필드가 없는데 어떻게 인터널 테이블로 값이 들어갈 수가 있는거죠?
입력 받은 필드값과 인터널 테이블의 필드를 1:1로 마춰줄 수 있는 방법인 무엇인가요?
테이블 컨트롤 : tc
인터널 테이블 : itab
**** screen 로직
PROCESS AFTER INPUT.
MODULE CANC AT EXIT-COMMAND. "위쪽 취소버튼
LOOP WITH CONTROL TC. " 데이블 컨트롤 연결?
FIELD Z10COT014-BWKEY.
FIELD Z10COT014-BDATJ.
FIELD Z10COT014-POPER.
FIELD Z10COT014-SEQUENCE.
FIELD Z10COT014-MATNR.
FIELD Z10COT014-KST001.
FIELD Z10COT014-KST002.
FIELD Z10COT014-KST003.
FIELD Z10COT014-KST007.
FIELD Z10COT014-KST009.
FIELD Z10COT014-KST011.
FIELD Z10COT014-KST013.
FIELD Z10COT014-KST017.
FIELD Z10COT014-KST015.
FIELD Z10COT014-ST_LABOR.
FIELD Z10COT014-ST_MACHINE.
FIELD Z10COT014-CU_YIELD. "데이터선언을 이렇게 하는 건가요?
MODULE READ_TABLE_CONTROL. "메인으로 데이터 append 하러 가는 것?
ENDLOOP.
MODULE USER_COMMAND_0100.
**** 메인프로그램.
.
.
.
MODULE read_table_control INPUT. "화면에 저장?
APPEND ITAB. " 이렇게 한다고 인터널 테이블에 append 되는 건 아니죠? ㅠ_ㅠ
ENDMODULE.
.
.
.
참고로... 테이블 컨트롤 예제들을 보면 DB 테이블의 데이터를 가져와서 수정하거나 추가하는 내용이던데
저는 테이블 컨트롤에 데이터를 넣으면 인터널 테이블에 값을 넣고 계산해서 DB 테이블에 저장하는 프로그램을 만들고 있습니다.
댓글 3
-
Giant
2008.11.25 20:21
-
기본도없는초보
2008.11.25 23:08
외계인님 일단 님께서 질문하신것중에서 제생각이 맞다면 이걸 빠뜨리신것 같은데 맞는지 모르겠네요
님께서
그렇다고 screen에 가도 선언된 필드가 없는데 어떻게 인터널 테이블로 값이 들어갈 수가 있는거죠?
입력 받은 필드값과 인터널 테이블의 필드를 1:1로 마춰줄 수 있는 방법인 무엇인가요? 이렇게 적어놓으셨네요
스크린에 가보시면 각필드들이 있을겁니다 그걸 클릭했을때
님께서 선언한 인터널 테이블명으로 나와야합니다
지금 보면 외계인님의 스크린에서 클릭했을때 Z10COT014-KST001, 이런식으로 나오는것 같습니다
만약 이런식으로 나오고 있다면 ITAB-KST001이런식으로 바꿔주셔야 합니다 몸통자체는 테이블 컨트롤이지만 그안에 데이터는
인터널테이블이어야 합니다 무슨말인지 아시겠죠
그럴경우 님께서 값을 입력하는것은 인터널테이블에 값이 입력되는거기때문에 어펜드나 모디파이를 해주시면 값이 들어가겠죠
저두 예전에 이부분에서 잠시 고생했거든요
도움이 되길 바랍니다.
-
행복을 파는 외계인
2008.11.26 22:35
giant님 기본도없는초보님 답변 감사드립니다.
이해는 되는데 적용할 능력이 없어서 테이블 컨트롤 포기했습니다. ㅠ_ㅠ
아직 제 능력으로는 안되나 봅니다.
업체에 요청하거나... 업로드 프로그램으로 바꿔야할 것 같네요.
좀 더 공부해서 훗날을 기약하며...
위에서 보면 FIELD문법을 사용하는데 좀 약간 틀리는것 같은데.....
위에서 CHAIN......ENDCHAIN을 같이 사용해보십시요! 그리고 MODULE <NAME>뒤에 ON CHAIN-REQUEST문구를 추가해십시요.
그러면 위의 필드에서 어느 필드위에서 ENTER을 쳐도 뒤에 있는 모듈을 실행시킬것입니다.
LOOP WITH CONTROL TC.
CHAIN.
FIELD:Z10COT014-BWKEY,
Z10COT014-BDATJ,
Z10COT014-POPER,
Z10COT014-SEQUENCE,
Z10COT014-MATNR,
Z10COT014-KST001,
Z10COT014-KST002,
Z10COT014-KST003,
Z10COT014-KST007,
Z10COT014-KST009,
Z10COT014-KST011,
Z10COT014-KST013,
Z10COT014-KST017,
Z10COT014-KST015,
Z10COT014-ST_LABOR,
Z10COT014-ST_MACHINE,
Z10COT014-CU_YIELD.
MODULE READ_TABLE_CONTROL ON CHAIN-REQUEST.
ENDCHAIN.